24 #ifndef OPENSUBDIV3_FAR_TOPOLOGY_LEVEL_H 
   25 #define OPENSUBDIV3_FAR_TOPOLOGY_LEVEL_H 
   27 #include "../version.h" 
   29 #include "../vtr/level.h" 
   30 #include "../vtr/refinement.h" 
   31 #include "../far/types.h" 
   35 namespace OpenSubdiv {
 
   36 namespace OPENSUBDIV_VERSION {
 
  250     void PrintTopology(
bool children = 
true)
 const { _level->
print((children && _refToChild) ? _refToChild : 0); }
 
  270 using namespace OPENSUBDIV_VERSION;
 
bool validateTopology(ValidationCallback callback=0, void const *clientData=0) const 
int getNumVertices() const 
int GetNumEdges() const 
Return the number of edges in this level. 
Index FindEdge(Index v0, Index v1) const 
Identify the edge matching the given vertex pair. 
ConstLocalIndexArray GetVertexFaceLocalIndices(Index v) const 
Access the local indices of a vertex with respect to its incident faces. 
ConstIndexArray GetFaceFVarValues(Index f, int channel=0) const 
Access the face-varying values associated with a particular face. 
Sdc::Crease::Rule getVertexRule(Index vertIndex) const 
int GetNumVertices() const 
Return the number of vertices in this level. 
bool IsEdgeBoundary(Index e) const 
Return if the edge is a boundary. 
bool IsEdgeNonManifold(Index e) const 
Return if the edge is non-manifold. 
ConstLocalIndexArray GetVertexEdgeLocalIndices(Index v) const 
Access the local indices of a vertex with respect to its incident edges. 
Index GetFaceParentFace(Index f) const 
Return the parent face (in the previous level) of a given face. 
float GetVertexSharpness(Index v) const 
Return the sharpness assigned a given vertex. 
ConstIndexArray getFaceFVarValues(Index faceIndex, int channel) const 
int getNumFVarValues(int channel) const 
bool IsVertexBoundary(Index v) const 
Return if the vertex is a boundary. 
ConstLocalIndexArray getEdgeFaceLocalIndices(Index edgeIndex) const 
Index GetVertexChildVertex(Index v) const 
Return the child vertex (in the next level) of a given vertex. 
ConstLocalIndexArray getVertexFaceLocalIndices(Index vertIndex) const 
bool DoesFaceFVarTopologyMatch(Index f, int channel=0) const 
Return if face-varying topology around a face matches. 
Index getFaceChildVertex(Index f) const 
float getEdgeSharpness(Index edgeIndex) const 
ConstIndexArray GetVertexEdges(Index v) const 
Access the edges incident a given vertex. 
bool isFaceHole(Index faceIndex) const 
bool doesEdgeFVarTopologyMatch(Index eIndex, int fvarChannel) const 
bool isEdgeNonManifold(Index edgeIndex) const 
Stores topology data for a specified set of refinement options. 
int GetNumFVarValues(int channel=0) const 
Return the total number of face-varying values in a particular channel (the upper bound of a face-var...
ConstIndexArray GetFaceVertices(Index f) const 
Access the vertices incident a given face. 
bool ValidateTopology() const 
int getNumFVarChannels() const 
ConstIndexArray GetFaceEdges(Index f) const 
Access the edges incident a given face. 
bool IsVertexNonManifold(Index v) const 
Return if the vertex is non-manifold. 
Index getVertexChildVertex(Index v) const 
ConstIndexArray getEdgeChildEdges(Index parentEdge) const 
ConstIndexArray GetFaceChildEdges(Index f) const 
Access the child edges (in the next level) of a given face. 
ConstIndexArray getVertexFaces(Index vertIndex) const 
int getNumFaceVerticesTotal() const 
Index getChildFaceParentFace(Index f) const 
ETag const & getEdgeTag(Index edgeIndex) const 
ConstIndexArray GetVertexFaces(Index v) const 
Access the faces incident a given vertex. 
Index findEdge(Index v0Index, Index v1Index) const 
VTag const & getVertexTag(Index vertIndex) const 
ConstIndexArray GetFaceChildFaces(Index f) const 
Access the child faces (in the next level) of a given face. 
bool doesVertexFVarTopologyMatch(Index vIndex, int fvarChannel) const 
ConstIndexArray GetEdgeChildEdges(Index e) const 
Access the child edges (in the next level) of a given edge. 
ConstIndexArray getFaceVertices(Index faceIndex) const 
Index getEdgeChildVertex(Index e) const 
void print(const Refinement *parentRefinement=0) const 
Sdc::Crease::Rule GetVertexRule(Index v) const 
Return the subdivision rule assigned a given vertex specific to this level. 
Index GetFaceChildVertex(Index f) const 
Return the child vertex (in the next level) of a given face. 
ConstIndexArray getEdgeFaces(Index edgeIndex) const 
An interface for accessing data in a specific level of a refined topology hierarchy. 
int GetNumFVarChannels() const 
Return the number of face-varying channels (should be same for all levels) 
ConstLocalIndexArray GetEdgeFaceLocalIndices(Index e) const 
Access the local indices of an edge with respect to its incident faces. 
int GetNumFaces() const 
Return the number of faces in this level. 
bool DoesEdgeFVarTopologyMatch(Index e, int channel=0) const 
Return if face-varying topology across the edge only matches. 
ConstIndexArray getVertexEdges(Index vertIndex) const 
ConstLocalIndexArray getVertexEdgeLocalIndices(Index vertIndex) const 
float getVertexSharpness(Index vertIndex) const 
void PrintTopology(bool children=true) const 
bool DoesVertexFVarTopologyMatch(Index v, int channel=0) const 
Return if face-varying topology around a vertex matches. 
ConstIndexArray getFaceEdges(Index faceIndex) const 
bool IsFaceHole(Index f) const 
Return if a given face has been tagged as a hole. 
float GetEdgeSharpness(Index e) const 
Return the sharpness assigned a given edge. 
int GetNumFaceVertices() const 
Return the total number of face-vertices, i.e. the sum of all vertices for all faces. 
ConstIndexArray getFaceChildFaces(Index parentFace) const 
bool doesFaceFVarTopologyMatch(Index fIndex, int fvarChannel) const 
Index GetEdgeChildVertex(Index e) const 
Return the child vertex (in the next level) of a given edge. 
bool isVertexNonManifold(Index vertIndex) const 
ConstIndexArray getFaceChildEdges(Index parentFace) const 
ConstIndexArray getEdgeVertices(Index edgeIndex) const 
ConstIndexArray GetEdgeVertices(Index e) const 
Access the vertices incident a given edge. 
ConstIndexArray GetEdgeFaces(Index e) const 
Access the faces incident a given edge.