All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends
Level Class Reference

#include <level.h>

Classes

struct  ETag
 
struct  FTag
 
struct  VSpan
 
struct  VTag
 

Public Types

enum  TopologyError {
  TOPOLOGY_MISSING_EDGE_FACES =0,
  TOPOLOGY_MISSING_EDGE_VERTS,
  TOPOLOGY_MISSING_FACE_EDGES,
  TOPOLOGY_MISSING_FACE_VERTS,
  TOPOLOGY_MISSING_VERT_FACES,
  TOPOLOGY_MISSING_VERT_EDGES,
  TOPOLOGY_FAILED_CORRELATION_EDGE_FACE,
  TOPOLOGY_FAILED_CORRELATION_FACE_VERT,
  TOPOLOGY_FAILED_CORRELATION_FACE_EDGE,
  TOPOLOGY_FAILED_ORIENTATION_INCIDENT_EDGE,
  TOPOLOGY_FAILED_ORIENTATION_INCIDENT_FACE,
  TOPOLOGY_FAILED_ORIENTATION_INCIDENT_FACES_EDGES,
  TOPOLOGY_DEGENERATE_EDGE,
  TOPOLOGY_NON_MANIFOLD_EDGE,
  TOPOLOGY_INVALID_CREASE_EDGE,
  TOPOLOGY_INVALID_CREASE_VERT
}
 
typedef void(* ValidationCallback )(TopologyError errCode, char const *msg, void const *clientData)
 

Public Member Functions

 Level ()
 
 ~Level ()
 
int getDepth () const
 
int getNumVertices () const
 
int getNumFaces () const
 
int getNumEdges () const
 
int getNumFaceVerticesTotal () const
 
int getNumFaceEdgesTotal () const
 
int getNumEdgeVerticesTotal () const
 
int getNumEdgeFacesTotal () const
 
int getNumVertexFacesTotal () const
 
int getNumVertexEdgesTotal () const
 
int getMaxValence () const
 
int getMaxEdgeFaces () const
 
ConstIndexArray getFaceVertices (Index faceIndex) const
 
ConstIndexArray getFaceEdges (Index faceIndex) const
 
ConstIndexArray getEdgeVertices (Index edgeIndex) const
 
ConstIndexArray getEdgeFaces (Index edgeIndex) const
 
ConstIndexArray getVertexFaces (Index vertIndex) const
 
ConstIndexArray getVertexEdges (Index vertIndex) const
 
ConstLocalIndexArray getEdgeFaceLocalIndices (Index edgeIndex) const
 
ConstLocalIndexArray getVertexFaceLocalIndices (Index vertIndex) const
 
ConstLocalIndexArray getVertexEdgeLocalIndices (Index vertIndex) const
 
float getEdgeSharpness (Index edgeIndex) const
 
float getVertexSharpness (Index vertIndex) const
 
Sdc::Crease::Rule getVertexRule (Index vertIndex) const
 
Index findEdge (Index v0Index, Index v1Index) const
 
void setFaceHole (Index faceIndex, bool b)
 
bool isFaceHole (Index faceIndex) const
 
Sdc::Options getFVarOptions (int channel) const
 
int getNumFVarChannels () const
 
int getNumFVarValues (int channel) const
 
ConstIndexArray getFaceFVarValues (Index faceIndex, int channel) const
 
FVarLevelgetFVarLevel (int channel)
 
FVarLevel const & getFVarLevel (int channel) const
 
void setEdgeNonManifold (Index edgeIndex, bool b)
 
bool isEdgeNonManifold (Index edgeIndex) const
 
void setVertexNonManifold (Index vertIndex, bool b)
 
bool isVertexNonManifold (Index vertIndex) const
 
VTag const & getVertexTag (Index vertIndex) const
 
ETag const & getEdgeTag (Index edgeIndex) const
 
FTag const & getFaceTag (Index faceIndex) const
 
VTaggetVertexTag (Index vertIndex)
 
ETaggetEdgeTag (Index edgeIndex)
 
FTaggetFaceTag (Index faceIndex)
 
bool validateTopology (ValidationCallback callback=0, void const *clientData=0) const
 
void print (const Refinement *parentRefinement=0) const
 
bool isSingleCreasePatch (Index face, float *sharpnessOut=NULL, int *rotationOut=NULL) const
 
bool doesVertexFVarTopologyMatch (Index vIndex, int fvarChannel) const
 
bool doesFaceFVarTopologyMatch (Index fIndex, int fvarChannel) const
 
bool doesEdgeFVarTopologyMatch (Index eIndex, int fvarChannel) const
 
void getFaceVTags (Index fIndex, VTag vTags[], int fvarChannel=-1) const
 
void getFaceETags (Index fIndex, ETag eTags[], int fvarChannel=-1) const
 
VTag getFaceCompositeVTag (Index fIndex, int fvarChannel=-1) const
 
VTag getFaceCompositeVTag (ConstIndexArray &fVerts) const
 
VTag getVertexCompositeFVarVTag (Index vIndex, int fvarChannel) const
 
int gatherQuadLinearPatchPoints (Index fIndex, Index patchPoints[], int rotation=0, int fvarChannel=-1) const
 
int gatherQuadRegularInteriorPatchPoints (Index fIndex, Index patchPoints[], int rotation=0, int fvarChannel=-1) const
 
int gatherQuadRegularBoundaryPatchPoints (Index fIndex, Index patchPoints[], int boundaryEdgeInFace, int fvarChannel=-1) const
 
int gatherQuadRegularCornerPatchPoints (Index fIndex, Index patchPoints[], int cornerVertInFace, int fvarChannel=-1) const
 
int gatherQuadRegularRingAroundVertex (Index vIndex, Index ringPoints[], int fvarChannel=-1) const
 
int gatherQuadRegularPartialRingAroundVertex (Index vIndex, VSpan const &span, Index ringPoints[], int fvarChannel=-1) const
 
int gatherTriRegularInteriorPatchPoints (Index fIndex, Index patchVerts[], int rotation=0) const
 
int gatherTriRegularBoundaryVertexPatchPoints (Index fIndex, Index patchVerts[], int boundaryVertInFace) const
 
int gatherTriRegularBoundaryEdgePatchPoints (Index fIndex, Index patchVerts[], int boundaryEdgeInFace) const
 
int gatherTriRegularCornerVertexPatchPoints (Index fIndex, Index patchVerts[], int cornerVertInFace) const
 
int gatherTriRegularCornerEdgePatchPoints (Index fIndex, Index patchVerts[], int cornerEdgeInFace) const
 
void resizeFaces (int numFaces)
 
void resizeFaceVertices (int numFaceVertsTotal)
 
void resizeFaceEdges (int numFaceEdgesTotal)
 
void resizeEdges (int numEdges)
 
void resizeEdgeVertices ()
 
void resizeEdgeFaces (int numEdgeFacesTotal)
 
void resizeVertices (int numVertices)
 
void resizeVertexFaces (int numVertexFacesTotal)
 
void resizeVertexEdges (int numVertexEdgesTotal)
 
void setMaxValence (int maxValence)
 
IndexArray getFaceVertices (Index faceIndex)
 
IndexArray getFaceEdges (Index faceIndex)
 
IndexArray getEdgeVertices (Index edgeIndex)
 
IndexArray getEdgeFaces (Index edgeIndex)
 
IndexArray getVertexFaces (Index vertIndex)
 
IndexArray getVertexEdges (Index vertIndex)
 
LocalIndexArray getEdgeFaceLocalIndices (Index edgeIndex)
 
LocalIndexArray getVertexFaceLocalIndices (Index vertIndex)
 
LocalIndexArray getVertexEdgeLocalIndices (Index vertIndex)
 
float & getEdgeSharpness (Index edgeIndex)
 
float & getVertexSharpness (Index vertIndex)
 
int createFVarChannel (int fvarValueCount, Sdc::Options const &options)
 
void destroyFVarChannel (int channel)
 
IndexArray getFaceFVarValues (Index faceIndex, int channel)
 
void completeFVarChannelTopology (int channel, int regBoundaryValence)
 
int getNumFaceVertices (Index faceIndex) const
 
int getOffsetOfFaceVertices (Index faceIndex) const
 
int getNumFaceEdges (Index faceIndex) const
 
int getOffsetOfFaceEdges (Index faceIndex) const
 
int getNumEdgeVertices (Index) const
 
int getOffsetOfEdgeVertices (Index edgeIndex) const
 
int getNumEdgeFaces (Index edgeIndex) const
 
int getOffsetOfEdgeFaces (Index edgeIndex) const
 
int getNumVertexFaces (Index vertIndex) const
 
int getOffsetOfVertexFaces (Index vertIndex) const
 
int getNumVertexEdges (Index vertIndex) const
 
int getOffsetOfVertexEdges (Index vertIndex) const
 
ConstIndexArray getFaceVertices () const
 
void resizeFaceVertices (Index FaceIndex, int count)
 
void resizeEdgeFaces (Index edgeIndex, int count)
 
void trimEdgeFaces (Index edgeIndex, int count)
 
void resizeVertexFaces (Index vertIndex, int count)
 
void trimVertexFaces (Index vertIndex, int count)
 
void resizeVertexEdges (Index vertIndex, int count)
 
void trimVertexEdges (Index vertIndex, int count)
 
bool completeTopologyFromFaceVertices ()
 
Index findEdge (Index v0, Index v1, ConstIndexArray v0Edges) const
 
void orientIncidentComponents ()
 
bool orderVertexFacesAndEdges (Index vIndex, Index *vFaces, Index *vEdges) const
 
bool orderVertexFacesAndEdges (Index vIndex)
 
void populateLocalIndices ()
 
IndexArray shareFaceVertCountsAndOffsets () const
 

Static Public Member Functions

static char const * getTopologyErrorString (TopologyError errCode)
 

Friends

class Refinement
 
class TriRefinement
 
class QuadRefinement
 

Detailed Description

Definition at line 83 of file level.h.

Member Typedef Documentation

typedef void(* ValidationCallback)(TopologyError errCode, char const *msg, void const *clientData)

Definition at line 303 of file level.h.

Member Enumeration Documentation

Enumerator
TOPOLOGY_MISSING_EDGE_FACES 
TOPOLOGY_MISSING_EDGE_VERTS 
TOPOLOGY_MISSING_FACE_EDGES 
TOPOLOGY_MISSING_FACE_VERTS 
TOPOLOGY_MISSING_VERT_FACES 
TOPOLOGY_MISSING_VERT_EDGES 
TOPOLOGY_FAILED_CORRELATION_EDGE_FACE 
TOPOLOGY_FAILED_CORRELATION_FACE_VERT 
TOPOLOGY_FAILED_CORRELATION_FACE_EDGE 
TOPOLOGY_FAILED_ORIENTATION_INCIDENT_EDGE 
TOPOLOGY_FAILED_ORIENTATION_INCIDENT_FACE 
TOPOLOGY_FAILED_ORIENTATION_INCIDENT_FACES_EDGES 
TOPOLOGY_DEGENERATE_EDGE 
TOPOLOGY_NON_MANIFOLD_EDGE 
TOPOLOGY_INVALID_CREASE_EDGE 
TOPOLOGY_INVALID_CREASE_VERT 

Definition at line 278 of file level.h.

Constructor & Destructor Documentation

Level ( )
~Level ( )

Member Function Documentation

void completeFVarChannelTopology ( int  channel,
int  regBoundaryValence 
)
bool completeTopologyFromFaceVertices ( )
int createFVarChannel ( int  fvarValueCount,
Sdc::Options const &  options 
)
void destroyFVarChannel ( int  channel)
bool doesEdgeFVarTopologyMatch ( Index  eIndex,
int  fvarChannel 
) const
bool doesFaceFVarTopologyMatch ( Index  fIndex,
int  fvarChannel 
) const
bool doesVertexFVarTopologyMatch ( Index  vIndex,
int  fvarChannel 
) const
Index findEdge ( Index  v0Index,
Index  v1Index 
) const
Index findEdge ( Index  v0,
Index  v1,
ConstIndexArray  v0Edges 
) const
int gatherQuadLinearPatchPoints ( Index  fIndex,
Index  patchPoints[],
int  rotation = 0,
int  fvarChannel = -1 
) const
int gatherQuadRegularBoundaryPatchPoints ( Index  fIndex,
Index  patchPoints[],
int  boundaryEdgeInFace,
int  fvarChannel = -1 
) const
int gatherQuadRegularCornerPatchPoints ( Index  fIndex,
Index  patchPoints[],
int  cornerVertInFace,
int  fvarChannel = -1 
) const
int gatherQuadRegularInteriorPatchPoints ( Index  fIndex,
Index  patchPoints[],
int  rotation = 0,
int  fvarChannel = -1 
) const
int gatherQuadRegularPartialRingAroundVertex ( Index  vIndex,
VSpan const &  span,
Index  ringPoints[],
int  fvarChannel = -1 
) const
int gatherQuadRegularRingAroundVertex ( Index  vIndex,
Index  ringPoints[],
int  fvarChannel = -1 
) const
int gatherTriRegularBoundaryEdgePatchPoints ( Index  fIndex,
Index  patchVerts[],
int  boundaryEdgeInFace 
) const
int gatherTriRegularBoundaryVertexPatchPoints ( Index  fIndex,
Index  patchVerts[],
int  boundaryVertInFace 
) const
int gatherTriRegularCornerEdgePatchPoints ( Index  fIndex,
Index  patchVerts[],
int  cornerEdgeInFace 
) const
int gatherTriRegularCornerVertexPatchPoints ( Index  fIndex,
Index  patchVerts[],
int  cornerVertInFace 
) const
int gatherTriRegularInteriorPatchPoints ( Index  fIndex,
Index  patchVerts[],
int  rotation = 0 
) const
int getDepth ( ) const
inline

Definition at line 200 of file level.h.

ConstLocalIndexArray getEdgeFaceLocalIndices ( Index  edgeIndex) const
inline

Definition at line 698 of file level.h.

LocalIndexArray getEdgeFaceLocalIndices ( Index  edgeIndex)
inline

Definition at line 704 of file level.h.

ConstIndexArray getEdgeFaces ( Index  edgeIndex) const
inline

Definition at line 685 of file level.h.

IndexArray getEdgeFaces ( Index  edgeIndex)
inline

Definition at line 691 of file level.h.

float getEdgeSharpness ( Index  edgeIndex) const
inline

Definition at line 728 of file level.h.

float & getEdgeSharpness ( Index  edgeIndex)
inline

Definition at line 732 of file level.h.

ETag const& getEdgeTag ( Index  edgeIndex) const
inline

Definition at line 268 of file level.h.

ETag& getEdgeTag ( Index  edgeIndex)
inline

Definition at line 272 of file level.h.

ConstIndexArray getEdgeVertices ( Index  edgeIndex) const
inline

Definition at line 673 of file level.h.

IndexArray getEdgeVertices ( Index  edgeIndex)
inline

Definition at line 677 of file level.h.

VTag getFaceCompositeVTag ( Index  fIndex,
int  fvarChannel = -1 
) const
VTag getFaceCompositeVTag ( ConstIndexArray fVerts) const
ConstIndexArray getFaceEdges ( Index  faceIndex) const
inline

Definition at line 578 of file level.h.

IndexArray getFaceEdges ( Index  faceIndex)
inline

Definition at line 583 of file level.h.

void getFaceETags ( Index  fIndex,
ETag  eTags[],
int  fvarChannel = -1 
) const
ConstIndexArray getFaceFVarValues ( Index  faceIndex,
int  channel 
) const
IndexArray getFaceFVarValues ( Index  faceIndex,
int  channel 
)
FTag const& getFaceTag ( Index  faceIndex) const
inline

Definition at line 269 of file level.h.

FTag& getFaceTag ( Index  faceIndex)
inline

Definition at line 273 of file level.h.

ConstIndexArray getFaceVertices ( Index  faceIndex) const
inline

Definition at line 548 of file level.h.

IndexArray getFaceVertices ( Index  faceIndex)
inline

Definition at line 553 of file level.h.

ConstIndexArray getFaceVertices ( ) const
inline

Definition at line 570 of file level.h.

void getFaceVTags ( Index  fIndex,
VTag  vTags[],
int  fvarChannel = -1 
) const
FVarLevel& getFVarLevel ( int  channel)
inline

Definition at line 256 of file level.h.

FVarLevel const& getFVarLevel ( int  channel) const
inline

Definition at line 257 of file level.h.

Sdc::Options getFVarOptions ( int  channel) const
int getMaxEdgeFaces ( ) const
inline

Definition at line 215 of file level.h.

int getMaxValence ( ) const
inline

Definition at line 214 of file level.h.

int getNumEdgeFaces ( Index  edgeIndex) const
inline

Definition at line 416 of file level.h.

int getNumEdgeFacesTotal ( ) const
inline

Definition at line 210 of file level.h.

int getNumEdges ( ) const
inline

Definition at line 204 of file level.h.

int getNumEdgeVertices ( Index  ) const
inline

Definition at line 413 of file level.h.

int getNumEdgeVerticesTotal ( ) const
inline

Definition at line 209 of file level.h.

int getNumFaceEdges ( Index  faceIndex) const
inline

Definition at line 410 of file level.h.

int getNumFaceEdgesTotal ( ) const
inline

Definition at line 208 of file level.h.

int getNumFaces ( ) const
inline

Definition at line 203 of file level.h.

int getNumFaceVertices ( Index  faceIndex) const
inline

Definition at line 407 of file level.h.

int getNumFaceVerticesTotal ( ) const
inline

Definition at line 207 of file level.h.

int getNumFVarChannels ( ) const
inline

Definition at line 252 of file level.h.

int getNumFVarValues ( int  channel) const
int getNumVertexEdges ( Index  vertIndex) const
inline

Definition at line 422 of file level.h.

int getNumVertexEdgesTotal ( ) const
inline

Definition at line 212 of file level.h.

int getNumVertexFaces ( Index  vertIndex) const
inline

Definition at line 419 of file level.h.

int getNumVertexFacesTotal ( ) const
inline

Definition at line 211 of file level.h.

int getNumVertices ( ) const
inline

Definition at line 202 of file level.h.

int getOffsetOfEdgeFaces ( Index  edgeIndex) const
inline

Definition at line 417 of file level.h.

int getOffsetOfEdgeVertices ( Index  edgeIndex) const
inline

Definition at line 414 of file level.h.

int getOffsetOfFaceEdges ( Index  faceIndex) const
inline

Definition at line 411 of file level.h.

int getOffsetOfFaceVertices ( Index  faceIndex) const
inline

Definition at line 408 of file level.h.

int getOffsetOfVertexEdges ( Index  vertIndex) const
inline

Definition at line 423 of file level.h.

int getOffsetOfVertexFaces ( Index  vertIndex) const
inline

Definition at line 420 of file level.h.

static char const* getTopologyErrorString ( TopologyError  errCode)
static
VTag getVertexCompositeFVarVTag ( Index  vIndex,
int  fvarChannel 
) const
ConstLocalIndexArray getVertexEdgeLocalIndices ( Index  vertIndex) const
inline

Definition at line 640 of file level.h.

LocalIndexArray getVertexEdgeLocalIndices ( Index  vertIndex)
inline

Definition at line 645 of file level.h.

ConstIndexArray getVertexEdges ( Index  vertIndex) const
inline

Definition at line 629 of file level.h.

IndexArray getVertexEdges ( Index  vertIndex)
inline

Definition at line 634 of file level.h.

ConstLocalIndexArray getVertexFaceLocalIndices ( Index  vertIndex) const
inline

Definition at line 603 of file level.h.

LocalIndexArray getVertexFaceLocalIndices ( Index  vertIndex)
inline

Definition at line 608 of file level.h.

ConstIndexArray getVertexFaces ( Index  vertIndex) const
inline

Definition at line 592 of file level.h.

IndexArray getVertexFaces ( Index  vertIndex)
inline

Definition at line 597 of file level.h.

Sdc::Crease::Rule getVertexRule ( Index  vertIndex) const
inline

Definition at line 746 of file level.h.

float getVertexSharpness ( Index  vertIndex) const
inline

Definition at line 737 of file level.h.

float & getVertexSharpness ( Index  vertIndex)
inline

Definition at line 741 of file level.h.

VTag const& getVertexTag ( Index  vertIndex) const
inline

Definition at line 267 of file level.h.

VTag& getVertexTag ( Index  vertIndex)
inline

Definition at line 271 of file level.h.

bool isEdgeNonManifold ( Index  edgeIndex) const
inline

Definition at line 770 of file level.h.

bool isFaceHole ( Index  faceIndex) const
inline

Definition at line 758 of file level.h.

bool isSingleCreasePatch ( Index  face,
float *  sharpnessOut = NULL,
int *  rotationOut = NULL 
) const
bool isVertexNonManifold ( Index  vertIndex) const
inline

Definition at line 779 of file level.h.

bool orderVertexFacesAndEdges ( Index  vIndex,
Index vFaces,
Index vEdges 
) const
bool orderVertexFacesAndEdges ( Index  vIndex)
void orientIncidentComponents ( )
void populateLocalIndices ( )
void print ( const Refinement parentRefinement = 0) const
void resizeEdgeFaces ( int  numEdgeFacesTotal)
inline

Definition at line 822 of file level.h.

void resizeEdgeFaces ( Index  edgeIndex,
int  count 
)
inline

Definition at line 711 of file level.h.

void resizeEdges ( int  numEdges)
inline

Definition at line 804 of file level.h.

void resizeEdgeVertices ( )
inline

Definition at line 817 of file level.h.

void resizeFaceEdges ( int  numFaceEdgesTotal)
inline

Definition at line 799 of file level.h.

void resizeFaces ( int  numFaces)
inline

Definition at line 787 of file level.h.

void resizeFaceVertices ( int  numFaceVertsTotal)
inline

Definition at line 795 of file level.h.

void resizeFaceVertices ( Index  FaceIndex,
int  count 
)
inline

Definition at line 559 of file level.h.

void resizeVertexEdges ( int  numVertexEdgesTotal)
inline

Definition at line 846 of file level.h.

void resizeVertexEdges ( Index  vertIndex,
int  count 
)
inline

Definition at line 651 of file level.h.

void resizeVertexFaces ( int  numVertexFacesTotal)
inline

Definition at line 840 of file level.h.

void resizeVertexFaces ( Index  vertIndex,
int  count 
)
inline

Definition at line 614 of file level.h.

void resizeVertices ( int  numVertices)
inline

Definition at line 829 of file level.h.

void setEdgeNonManifold ( Index  edgeIndex,
bool  b 
)
inline

Definition at line 766 of file level.h.

void setFaceHole ( Index  faceIndex,
bool  b 
)
inline

Definition at line 754 of file level.h.

void setMaxValence ( int  maxValence)
inline

Definition at line 665 of file level.h.

void setVertexNonManifold ( Index  vertIndex,
bool  b 
)
inline

Definition at line 775 of file level.h.

IndexArray shareFaceVertCountsAndOffsets ( ) const
inline

Definition at line 853 of file level.h.

void trimEdgeFaces ( Index  edgeIndex,
int  count 
)
inline

Definition at line 720 of file level.h.

void trimVertexEdges ( Index  vertIndex,
int  count 
)
inline

Definition at line 660 of file level.h.

void trimVertexFaces ( Index  vertIndex,
int  count 
)
inline

Definition at line 621 of file level.h.

bool validateTopology ( ValidationCallback  callback = 0,
void const *  clientData = 0 
) const

Friends And Related Function Documentation

friend class QuadRefinement
friend

Definition at line 471 of file level.h.

friend class Refinement
friend

Definition at line 469 of file level.h.

friend class TriRefinement
friend

Definition at line 470 of file level.h.


The documentation for this class was generated from the following file: