27 #include "../version.h"
29 #include "../sdc/type.h"
30 #include "../sdc/crease.h"
31 #include "../sdc/options.h"
32 #include "../vtr/types.h"
40 namespace OpenSubdiv {
41 namespace OPENSUBDIV_VERSION {
45 template <
class MESH>
class TopologyRefinerFactory;
46 class TopologyRefinerFactoryBase;
47 class TopologyRefiner;
48 class PatchTablesFactory;
454 countOffsetPair[0] = count;
455 countOffsetPair[1] = (faceIndex == 0) ? 0 : (countOffsetPair[-2] + countOffsetPair[-1]);
503 countOffsetPair[0] = count;
504 countOffsetPair[1] = (vertIndex == 0) ? 0 : (countOffsetPair[-2] + countOffsetPair[-1]);
540 countOffsetPair[0] = count;
541 countOffsetPair[1] = (vertIndex == 0) ? 0 : (countOffsetPair[-2] + countOffsetPair[-1]);
580 countOffsetPair[0] = count;
581 countOffsetPair[1] = (edgeIndex == 0) ? 0 : (countOffsetPair[-2] + countOffsetPair[-1]);
704 using namespace OPENSUBDIV_VERSION;
int gatherQuadRegularInteriorPatchVertices(Index fIndex, Index patchVerts[], int rotation=0) const
Index findEdge(Index v0Index, Index v1Index) const
A specialized factory for feature adaptive PatchTables.
int getNumVertexFaces(Index vertIndex) const
void print(const Refinement *parentRefinement=0) const
int getOffsetOfVertexFaces(Index vertIndex) const
int getOffsetOfVertexEdges(Index vertIndex) const
std::vector< FVarLevel * > _fvarChannels
std::vector< Index > _vertEdgeIndices
int getNumEdgeFaces(Index edgeIndex) const
int getMaxEdgeFaces() const
Array< Index > IndexArray
int getNumEdgeVertices(Index) const
int getNumFaceVertices(Index faceIndex) const
void trimEdgeFaces(Index edgeIndex, int count)
int getOffsetOfEdgeVertices(Index edgeIndex) const
IndexArray const shareFaceVertCountsAndOffsets() const
void trimVertexEdges(Index vertIndex, int count)
LocalIndexArray const getVertexFaceLocalIndices(Index vertIndex) const
int getMaxValence() const
int getNumEdgeFacesTotal() const
int getNumEdgeVerticesTotal() const
void resizeFaces(int numFaces)
int getNumFaceEdges(Index faceIndex) const
void resizeFaceEdges(int numFaceEdgesTotal)
void resizeEdges(int numEdges)
int getOffsetOfFaceVertices(Index faceIndex) const
void orientIncidentComponents()
int gatherTriRegularBoundaryEdgePatchVertices(Index fIndex, Index patchVerts[], int boundaryEdgeInFace) const
int getNumVertices() const
int gatherTriRegularBoundaryVertexPatchVertices(Index fIndex, Index patchVerts[], int boundaryVertInFace) const
IndexArray const getEdgeFaces(Index edgeIndex) const
std::vector< VTag > _vertTags
int getNumFaceEdgesTotal() const
int createFVarChannel(int fvarValueCount, Sdc::Options const &options)
std::vector< Index > _faceVertCountsAndOffsets
int gatherQuadRegularBoundaryPatchVertices(Index fIndex, Index patchVerts[], int boundaryEdgeInFace) const
void resizeEdgeFaces(int numEdgeFacesTotal)
int gatherQuadRegularCornerPatchVertices(Index fIndex, Index patchVerts[], int cornerVertInFace) const
std::vector< Index > _vertEdgeCountsAndOffsets
void resizeVertexFaces(int numVertexFacesTotal)
int gatherTriRegularInteriorPatchVertices(Index fIndex, Index patchVerts[], int rotation=0) const
LocalIndexArray const getVertexEdgeLocalIndices(Index vertIndex) const
int getOffsetOfFaceEdges(Index faceIndex) const
bool validateTopology() const
bool orderVertexFacesAndEdges(Index vIndex, Index *vFaces, Index *vEdges) const
void destroyFVarChannel(int channel=0)
bool isHole(Index faceIndex) const
int gatherManifoldVertexRingFromIncidentQuads(Index vIndex, int vOffset, int ringVerts[]) const
std::vector< LocalIndex > _vertEdgeLocalIndices
std::vector< Index > _edgeFaceCountsAndOffsets
std::vector< Sharpness > _edgeSharpness
IndexArray const getFaceVertices(Index faceIndex) const
std::vector< Index > _vertFaceCountsAndOffsets
std::vector< ETag > _edgeTags
std::vector< Index > _vertFaceIndices
Stores topology data for a specified set of refinement options.
std::vector< Index > _edgeFaceIndices
IndexArray const getVertexEdges(Index vertIndex) const
int getNumVertexEdgesTotal() const
IndexArray const getVertexFaces(Index vertIndex) const
void resizeEdgeVertices()
void resizeVertexEdges(int numVertexEdgesTotal)
void resizeVertices(int numVertices)
int getNumFVarChannels() const
int gatherTriRegularCornerEdgePatchVertices(Index fIndex, Index patchVerts[], int cornerEdgeInFace) const
void resizeFaceVertices(int numFaceVertsTotal)
std::vector< LocalIndex > _vertFaceLocalIndices
void trimVertexFaces(Index vertIndex, int count)
std::vector< Index > _faceEdgeIndices
std::vector< Index > _faceVertIndices
IndexArray const getFaceEdges(Index faceIndex) const
int gatherTriRegularCornerVertexPatchVertices(Index fIndex, Index patchVerts[], int cornerVertInFace) const
void setHole(Index faceIndex, bool b)
void completeTopologyFromFaceVertices()
bool isSingleCreasePatch(Index face, float *sharpnessOut=NULL, int *rotationOut=NULL) const
int getOffsetOfEdgeFaces(Index edgeIndex) const
Sharpness getVertexSharpness(Index vertIndex) const
Array< LocalIndex > LocalIndexArray
Sharpness getEdgeSharpness(Index edgeIndex) const
IndexArray const getFVarFaceValues(Index faceIndex, int channel=0) const
VTag getFaceCompositeVTag(IndexArray const &faceVerts) const
int getNumVertexEdges(Index vertIndex) const
void populateLocalIndices()
Sdc::Crease::Rule getVertexRule(Index vertIndex) const
void completeFVarChannelTopology(int channel=0)
std::vector< Index > _edgeVertIndices
int getNumVertexFacesTotal() const
std::vector< Sharpness > _vertSharpness
int getNumFVarValues(int channel=0) const
int getNumFaceVerticesTotal() const
std::vector< FTag > _faceTags
IndexArray const getEdgeVertices(Index edgeIndex) const