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"
36 namespace OPENSUBDIV_VERSION {
201 void PrintTopology(
bool children =
true)
const { _level->
print((children && _refToChild) ? _refToChild : 0); }
221 using namespace OPENSUBDIV_VERSION;
ConstIndexArray GetVertexEdges(Index v) const
Access the edges incident a given vertex.
ConstIndexArray GetFaceVertices(Index f) const
Access the vertices incident a given face.
int GetNumFaces() const
Return the number of faces in this level.
bool validateTopology(ValidationCallback callback=0, void const *clientData=0) const
ConstIndexArray GetFaceEdges(Index f) const
Access the edges incident a given face.
Index GetEdgeChildVertex(Index e) const
Return the child vertex (in the next level) of a given edge.
float GetEdgeSharpness(Index e) const
Return the sharpness assigned a given edge.
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
ConstIndexArray getEdgeVertices(Index edgeIndex) const
ConstIndexArray getFaceChildEdges(Index parentFace) const
ConstIndexArray GetEdgeVertices(Index e) const
Access the vertices incident a given edge.
ConstLocalIndexArray getEdgeFaceLocalIndices(Index edgeIndex) const
ConstLocalIndexArray getVertexFaceLocalIndices(Index vertIndex) const
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.
Index getChildFaceParentFace(Index f) const
ConstIndexArray GetFaceChildFaces(Index f) const
Access the child faces (in the next level) of a given face.
float getEdgeSharpness(Index edgeIndex) const
Index FindEdge(Index v0, Index v1) const
Identify the edge matching the given vertex pair.
ConstIndexArray getFaceChildFaces(Index parentFace) const
float GetVertexSharpness(Index v) const
Return the sharpness assigned a given vertex.
int getNumFVarChannels() const
int GetNumVertices() const
Return the number of vertices in this level.
bool isFaceHole(Index faceIndex) const
void print(const Refinement *parentRefinement=0) const
ConstIndexArray GetFaceChildEdges(Index f) const
Access the child edges (in the next level) of a given face.
ConstIndexArray getVertexFaces(Index vertIndex) const
ConstLocalIndexArray getVertexEdgeLocalIndices(Index vertIndex) const
int getNumFaceVerticesTotal() const
int GetNumFaceVertices() const
Return the total number of face-vertices, i.e. the sum of all vertices for all faces.
bool ValidateTopology() const
ConstIndexArray getFaceVertices(Index faceIndex) const
float getVertexSharpness(Index vertIndex) const
ConstIndexArray GetVertexFaces(Index v) const
Access the faces incident a given vertex.
Index GetFaceChildVertex(Index f) const
Return the child vertex (in the next level) of a given face.
ConstIndexArray getEdgeChildEdges(Index parentEdge) 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 getEdgeFaces(Index edgeIndex) const
int GetNumFVarChannels() const
Return the number of face-varying channels (should be same for all levels)
Index findEdge(Index v0Index, Index v1Index) const
ConstIndexArray getVertexEdges(Index vertIndex) const
ConstLocalIndexArray GetEdgeFaceLocalIndices(Index e) const
Access the local indices of an edge with respect to its incident faces.
Sdc::Crease::Rule GetVertexRule(Index v) const
Return the subdivision rule assigned a given vertex specific to this level.
int GetNumEdges() const
Return the number of edges in this level.
int getNumVertices() const
Index getFaceChildVertex(Index f) const
ConstLocalIndexArray GetVertexFaceLocalIndices(Index v) const
Access the local indices of a vertex with respect to its incident faces.
ConstIndexArray GetEdgeChildEdges(Index e) const
Access the child edges (in the next level) of a given edge.
void PrintTopology(bool children=true) const
ConstIndexArray getFaceEdges(Index faceIndex) const
Index getEdgeChildVertex(Index e) const
Index getVertexChildVertex(Index v) const
bool IsFaceHole(Index f) const
Return if a given face has been tagged as a hole.
ConstIndexArray GetEdgeFaces(Index e) const
Access the faces incident a given edge.
Index GetVertexChildVertex(Index v) const
Return the child vertex (in the next level) of a given vertex.
TopologyLevel is an interface for accessing data in a specific level of a refined topology hierarchy...
ConstIndexArray getFaceFVarValues(Index faceIndex, int channel) const
int getNumFVarValues(int channel) const