25 #ifndef OPENSUBDIV3_FAR_PATCH_TABLE_FACTORY_H
26 #define OPENSUBDIV3_FAR_PATCH_TABLE_FACTORY_H
28 #include "../version.h"
30 #include "../far/patchTable.h"
33 namespace OPENSUBDIV_VERSION {
39 class TopologyRefiner;
138 struct AdaptiveContext;
153 static void identifyAdaptivePatches(AdaptiveContext & state);
155 static void populateAdaptivePatches(AdaptiveContext & state,
158 static void allocateVertexTables(
PatchTable * table,
int nlevels,
bool hasSharpness);
166 int boundaryMask,
int transitionMask,
PatchParam * coord);
168 static int gatherFVarData(AdaptiveContext & state,
169 int level,
Index faceIndex,
Index levelFaceOffset,
int rotation,
177 using namespace OPENSUBDIV_VERSION;
unsigned int generateAllLevels
Include levels from 'firstLevel' to 'maxLevel' (Uniform mode only)
unsigned int _boundaryCount
Local patch parameterization descriptor.
unsigned int shareEndCapPatchPoints
unsigned int _boundaryIndex
Options(unsigned int maxIsolation=10)
static PatchTable * Create(TopologyRefiner const &refiner, Options options=Options())
Factory constructor for PatchTable.
int const * fvarChannelIndices
List containing the indices of the channels selected for the factory.
unsigned int _boundaryMask
void SetEndCapType(EndCapType e)
Set endcap patch type.
unsigned int triangulateQuads
Triangulate 'QUADS' primitives (Uniform mode only)
unsigned int useSingleCreasePatch
Use single crease patch.
int numFVarChannels
Number of channel indices and interpolation modes passed.
unsigned int maxIsolationLevel
Cap adaptive feature isolation to the given level (max. 10)
unsigned int _transitionMask
EndCapType GetEndCapType() const
Get endcap patch type.
use bilinear quads (4 cp) as end-caps
unsigned int _isSingleCrease
unsigned int endCapType
EndCapType.
Container for arrays of parametric patches.
unsigned int generateFVarTables
Generate face-varying patch tables.
unsigned int _hasBoundaryEdge
Stores topology data for a specified set of refinement options.
use legacy (2.x) Gregory patches (4 cp + valence table) as end-caps
Object used to compute and query ptex face indices.
void assignBoundaryPropertiesFromVertexMask(int boundaryVertexMask)
use Gregory basis patches (20 cp) as end-caps
std::vector< PatchFaceTag > PatchTagVector
void assignTransitionPropertiesFromEdgeMask(int transitionMask)
void assignBoundaryPropertiesFromEdgeMask(int boundaryEdgeMask)
use BSpline basis patches (16 cp) as end-caps