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