 |
My Project
|
Go to the documentation of this file.
24 #ifndef OPENSUBDIV3_VTR_REFINEMENT_H
25 #define OPENSUBDIV3_VTR_REFINEMENT_H
27 #include "../version.h"
29 #include "../sdc/types.h"
30 #include "../sdc/options.h"
31 #include "../vtr/types.h"
32 #include "../vtr/level.h"
40 namespace OPENSUBDIV_VERSION {
453 using namespace OPENSUBDIV_VERSION;
virtual void populateVertexEdgeRelation()=0
int _childEdgeFromEdgeCount
ChildTag & getChildEdgeTag(Index e)
Index getChildFaceParentFace(Index f) const
Sdc::Split getSplitType() const
bool isChildVertexComplete(Index v) const
void populateVertexTagsFromParentEdges()
std::vector< SparseTag > _parentFaceTag
Split
Enumerated type for all face splitting schemes.
std::vector< SparseTag > _parentVertexTag
bool hasFaceVerticesFirst() const
unsigned int _vertexFaces
ConstIndexArray getFaceChildEdges(Index parentFace) const
unsigned char _indexInParent
void populateFaceParentFromParentFaces(ChildTag const initialChildTags[2][4])
int getNumChildEdgesFromFaces() const
virtual void populateEdgeVertexRelation()=0
virtual void populateEdgeFaceRelation()=0
void markSparseVertexChildren()
Index getChildVertexParentIndex(Index v) const
Index getChildEdgeParentIndex(Index e) const
void populateEdgeParentVectors(ChildTag const initialChildTags[2][4])
IndexVector _vertChildVertIndex
int _firstChildEdgeFromEdge
int _firstChildEdgeFromFace
IndexVector _childEdgeParentIndex
unsigned int _faceVertices
Index getFaceChildVertex(Index f) const
virtual void populateVertexFaceRelation()=0
void printParentToChildMapping() const
virtual void populateFaceEdgeRelation()=0
void initializeChildComponentCounts()
unsigned int _faceVertsFirst
Level const & child() const
void populateFaceTagVectors()
IndexVector _faceChildEdgeIndices
int getChildFaceInParentFace(Index f) const
void populateEdgeParentFromParentEdges(ChildTag const initialChildTags[2][4])
void subdivideFVarChannels()
int _childVertFromVertCount
All supported options applying to subdivision scheme.
void populateFaceParentVectors(ChildTag const initialChildTags[2][4])
void populateParentChildIndices()
ConstIndexArray getEdgeChildEdges(Index parentEdge) const
Level const & parent() const
int getNumChildEdgesFromEdges() const
unsigned char _parentType
void populateVertexParentFromParentEdges(ChildTag const initialChildTags[2][4])
virtual void markSparseFaceChildren()=0
ChildTag & getChildVertexTag(Index v)
Array< Index > IndexArray
Sdc::Options getOptions() const
ConstIndexArray getFaceChildFaces(Index parentFace) const
std::vector< ChildTag > _childEdgeTag
unsigned int _minimalTopology
void populateVertexParentVectors(ChildTag const initialChildTags[2][4])
int _childVertFromEdgeCount
void populateVertexTagVectors()
std::vector< ChildTag > _childVertexTag
void initializeSparseSelectionTags()
void populateParentToChildMapping()
SparseTag const & getParentVertexSparseTag(Index v) const
Index getFirstChildVertexFromVertices() const
void populateVertexParentFromParentVertices(ChildTag const initialChildTags[2][4])
unsigned int _edgeVertices
void populateVertexParentFromParentFaces(ChildTag const initialChildTags[2][4])
void populateEdgeTagVectors()
SparseTag & getParentEdgeSparseTag(Index e)
ChildTag & getChildFaceTag(Index f)
std::vector< SparseTag > _parentEdgeTag
int _firstChildVertFromFace
void populateEdgeTagsFromParentFaces()
int _childVertFromFaceCount
unsigned char _transitional
void populateChildToParentMapping()
virtual void populateFaceVertexRelation()=0
int getNumChildVerticesFromVertices() const
int getNumChildVerticesFromEdges() const
void populateVertexTagsFromParentFaces()
unsigned int _vertexEdges
void print(const Refinement *parentRefinement=0) const
IndexVector _childFaceParentIndex
std::vector< ChildTag > _childFaceTag
SparseTag & getParentFaceSparseTag(Index f)
int getNumChildFacesFromFaces() const
void populateFaceTagsFromParentFaces()
ConstArray< Index > ConstIndexArray
IndexVector _childVertexParentIndex
Index getFirstChildEdgeFromEdges() const
IndexArray _faceChildEdgeCountsAndOffsets
int _childEdgeFromFaceCount
int _firstChildVertFromEdge
unsigned char _incomplete
void subdivideSharpnessValues()
FVarRefinement const & getFVarRefinement(int c) const
int _childFaceFromFaceCount
IndexVector _edgeChildEdgeIndices
Index getFirstChildVertexFromEdges() const
IndexVector _faceChildFaceIndices
void reclassifySemisharpVertices()
void propagateComponentTags()
Index getFirstChildEdgeFromFaces() const
IndexVector _faceChildVertIndex
Index getEdgeChildVertex(Index e) const
int _firstChildFaceFromFace
void populateVertexTagsFromParentVertices()
int getNumFVarChannels() const
int getNumChildVerticesFromFaces() const
Index getVertexChildVertex(Index v) const
ChildTag const & getChildEdgeTag(Index e) const
int getRegularFaceSize() const
SparseTag const & getParentEdgeSparseTag(Index e) const
Refinement(Level const &parent, Level &child, Sdc::Options const &schemeOptions)
void subdivideEdgeSharpness()
void refine(Options options=Options())
std::vector< FVarRefinement * > _fvarChannels
virtual void allocateParentChildIndices()=0
void markSparseChildComponentIndices()
void subdivideTopology(Relations const &relationsToSubdivide)
int _firstChildVertFromVert
void populateEdgeTagsFromParentEdges()
ChildTag const & getChildVertexTag(Index v) const
void markSparseEdgeChildren()
Index getFirstChildFaceFromFaces() const
ChildTag const & getChildFaceTag(Index f) const
void populateEdgeParentFromParentFaces(ChildTag const initialChildTags[2][4])
SparseTag const & getParentFaceSparseTag(Index f) const
SparseTag & getParentVertexSparseTag(Index v)
Index getFirstChildVertexFromFaces() const
std::vector< Index > IndexVector
IndexVector _edgeChildVertIndex
void subdivideVertexSharpness()
IndexArray _faceChildFaceCountsAndOffsets