24 #ifndef VTR_FVAR_LEVEL_H
25 #define VTR_FVAR_LEVEL_H
27 #include "../version.h"
29 #include "../sdc/type.h"
30 #include "../sdc/crease.h"
31 #include "../sdc/options.h"
32 #include "../vtr/types.h"
33 #include "../vtr/level.h"
40 namespace OpenSubdiv {
41 namespace OPENSUBDIV_VERSION {
45 class TopologyRefiner;
348 using namespace OPENSUBDIV_VERSION;
ETag getEdgeTag(Index eIndex) const
std::vector< Index > _vertValueIndices
std::vector< int > _vertSiblingOffsets
ValueTagArray const getVertexValueTags(Index vIndex) const
Vtr::Array< CreaseEndPair > CreaseEndPairArray
Vtr::Array< ValueTag > ValueTagArray
int getNumVertexValues(Index v) const
Level const & getLevel() const
Array< Index > IndexArray
void setOptions(Sdc::Options const &options)
std::vector< ValueTag > _vertValueTags
int getNumFaceValuesTotal() const
IndexArray const getVertexValues(Index vIndex) const
LocalIndexArray SiblingArray
bool _hasDependentSharpness
std::vector< Index > _faceVertValues
bool valueTopologyMatches(Index valueIndex) const
void resizeVertexValues(int numVertexValues)
void resizeValues(int numValues)
Index getVertexValueOffset(Index v, Sibling i=0) const
void buildFaceVertexSiblingsFromVertexFaceSiblings(std::vector< Sibling > &fvSiblings) const
std::vector< Sibling > _vertFaceSiblings
CreaseEndPairArray const getVertexValueCreaseEnds(Index vIndex) const
std::vector< Sibling > _vertSiblingCounts
std::vector< Index > _faceVertCountsAndOffsets
std::vector< Index > _vertFaceCountsAndOffsets
FVarLevel(Level const &level)
ValueTag getValueTag(Index valueIndex) const
Stores topology data for a specified set of refinement options.
std::vector< CreaseEndPair > _vertValueCreaseEnds
unsigned char ValueTagSize
IndexArray const getFaceValues(Index fIndex) const
Index getVertexValue(Index v, Sibling i=0) const
void getVertexCreaseEndValues(Index vIndex, Sibling sibling, Index endValues[2]) const
SiblingArray const getVertexFaceSiblings(Index vIndex) const
void gatherValueSpans(Index vIndex, ValueSpan *vValueSpans) const
void initializeFaceValuesFromFaceVertices()
void completeTopologyFromFaceValues()
void getVertexEdgeValues(Index vIndex, Index valuesPerEdge[]) const
void initializeFaceValuesFromVertexFaceSiblings()
std::vector< ETag > _edgeTags
void getEdgeFaceValues(Index eIndex, int fIncToEdge, Index valuesPerVert[2]) const
bool _hasSmoothBoundaries
bool edgeTopologyMatches(Index eIndex) const