 |
My Project
|
Go to the documentation of this file.
25 #ifndef OPENSUBDIV3_FAR_PATCH_TABLE_FACTORY_H
26 #define OPENSUBDIV3_FAR_PATCH_TABLE_FACTORY_H
28 #include "../version.h"
30 #include "../far/topologyRefiner.h"
31 #include "../far/patchTable.h"
34 namespace OPENSUBDIV_VERSION {
104 return adaptiveOptions;
209 template <>
inline void PatchTableFactory::Options::SetPatchPrecision<float>() {
212 template <>
inline void PatchTableFactory::Options::SetFVarPatchPrecision<float>() {
213 fvarPatchPrecisionDouble =
false;
216 template <>
inline void PatchTableFactory::Options::SetPatchPrecision<double>() {
217 patchPrecisionDouble =
true;
219 template <>
inline void PatchTableFactory::Options::SetFVarPatchPrecision<double>() {
220 fvarPatchPrecisionDouble =
true;
227 using namespace OPENSUBDIV_VERSION;
unsigned int _boundaryIndex
unsigned int useInfSharpPatch
Use infinitely-sharp patch.
unsigned int considerFVarChannels
unsigned int _isSingleCrease
unsigned int generateVaryingTables
Generate varying patch tables.
unsigned int endCapType
EndCapType.
@ ENDCAP_BILINEAR_BASIS
use linear patches (simple quads or tris)
unsigned int useSingleCreasePatch
Use single crease patch.
Adaptive refinement options.
unsigned int triangulateQuads
Triangulate 'QUADS' primitives (Uniform mode only)
unsigned int generateAllLevels
Generate levels from 'firstLevel' to 'maxLevel' (Uniform mode only)
void assignBoundaryPropertiesFromVertexMask(int boundaryVertexMask)
Public options for the PatchTable factory.
Stores topology data for a specified set of refinement options.
std::vector< PatchFaceTag > PatchTagVector
unsigned int includeFVarBaseLevelIndices
Include base level in face-varying patch point indices (Uniform mode only)
@ ENDCAP_LEGACY_GREGORY
legacy option for 2.x style Gregory patches (Catmark only)
Obsolete internal struct not intended for public use – due to be deprecated.
void SetPatchPrecision()
Set precision of vertex patches.
unsigned int shareEndCapPatchPoints
void SetFVarPatchPrecision()
Set precision of face-varying patches.
Factory for constructing a PatchTable from a TopologyRefiner.
@ ENDCAP_GREGORY_BASIS
use Gregory patches (highest quality, recommended default)
unsigned int _boundaryCount
unsigned int generateFVarTables
Generate face-varying patch tables.
void assignTransitionPropertiesFromEdgeMask(int boundaryVertexMask)
int numFVarChannels
Number of channel indices and interpolation modes passed.
TopologyRefiner::AdaptiveOptions GetRefineAdaptiveOptions() const
Determine adaptive refinement options to match assigned patch options.
unsigned int maxIsolationLevel
Cap adaptive feature isolation to the given level (max. 10)
unsigned int useSingleCreasePatch
unsigned int generateLegacySharpCornerPatches
Generate sharp regular patches at smooth corners (legacy)
unsigned int fvarPatchPrecisionDouble
Generate double-precision stencils for face-varying patches.
static PatchTable * Create(TopologyRefiner const &refiner, Options options=Options(), ConstIndexArray selectedFaces=ConstIndexArray())
Instantiates a PatchTable from a client-provided TopologyRefiner.
unsigned int _transitionMask
EndCapType
Choice for approximating irregular patches (end-caps)
Container for arrays of parametric patches.
unsigned int _hasBoundaryEdge
unsigned int generateFVarLegacyLinearPatches
Generate all linear face-varying patches (legacy)
unsigned int generateVaryingLocalPoints
Generate local points with varying patches.
void assignBoundaryPropertiesFromEdgeMask(int boundaryEdgeMask)
unsigned int includeBaseLevelIndices
Include base level in patch point indices (Uniform mode only)
unsigned int _boundaryMask
Options(unsigned int maxIsolation=10)
Vtr::ConstIndexArray ConstIndexArray
@ ENDCAP_BSPLINE_BASIS
use BSpline-like patches (same patch type as regular)
const int * fvarChannelIndices
List containing the indices of the channels selected for the factory.
unsigned int patchPrecisionDouble
Generate double-precision stencils for vertex patches.
EndCapType GetEndCapType() const
Get endcap basis type.
void SetEndCapType(EndCapType e)
Set endcap basis type.
unsigned int useInfSharpPatch