OpenSubdiv
PatchTableFactory::Options Struct Reference

Public options for the PatchTable factory. More...

#include <patchTableFactory.h>

Public Types

enum  EndCapType {
  ENDCAP_NONE = 0,
  ENDCAP_BILINEAR_BASIS,
  ENDCAP_BSPLINE_BASIS,
  ENDCAP_GREGORY_BASIS,
  ENDCAP_LEGACY_GREGORY
}
 Choice for approximating irregular patches (end-caps) More...
 

Public Member Functions

 Options (unsigned int maxIsolation=10)
 
EndCapType GetEndCapType () const
 Get endcap basis type. More...
 
void SetEndCapType (EndCapType e)
 Set endcap basis type. More...
 
void SetMaxIsolationLevel (unsigned int level)
 Set maximum isolation level. More...
 
template<typename REAL >
void SetPatchPrecision ()
 Set precision of vertex patches. More...
 
template<typename REAL >
void SetFVarPatchPrecision ()
 Set precision of face-varying patches. More...
 
TopologyRefiner::AdaptiveOptions GetRefineAdaptiveOptions () const
 Determine adaptive refinement options to match assigned patch options. More...
 
template<>
void SetPatchPrecision ()
 
template<>
void SetFVarPatchPrecision ()
 
template<>
void SetPatchPrecision ()
 
template<>
void SetFVarPatchPrecision ()
 

Public Attributes

unsigned int generateAllLevels: 1
 Generate levels from 'firstLevel' to 'maxLevel' (Uniform mode only) More...
 
unsigned int includeBaseLevelIndices: 1
 Include base level in patch point indices (Uniform mode only) More...
 
unsigned int includeFVarBaseLevelIndices: 1
 Include base level in face-varying patch point indices (Uniform mode only) More...
 
unsigned int triangulateQuads: 1
 Triangulate 'QUADS' primitives (Uniform mode only) More...
 
unsigned int useSingleCreasePatch: 1
 Use single crease patch. More...
 
unsigned int useInfSharpPatch: 1
 Use infinitely-sharp patch. More...
 
unsigned int maxIsolationLevel: 4
 Cap adaptive feature isolation to the given level (max. 10) More...
 
unsigned int endCapType: 3
 EndCapType. More...
 
unsigned int shareEndCapPatchPoints: 1
 
unsigned int generateVaryingTables: 1
 Generate varying patch tables. More...
 
unsigned int generateVaryingLocalPoints: 1
 Generate local points with varying patches. More...
 
unsigned int generateFVarTables: 1
 Generate face-varying patch tables. More...
 
unsigned int patchPrecisionDouble: 1
 Generate double-precision stencils for vertex patches. More...
 
unsigned int fvarPatchPrecisionDouble: 1
 Generate double-precision stencils for face-varying patches. More...
 
unsigned int generateFVarLegacyLinearPatches: 1
 Generate all linear face-varying patches (legacy) More...
 
unsigned int generateLegacySharpCornerPatches: 1
 Generate sharp regular patches at smooth corners (legacy) More...
 
int numFVarChannels
 Number of channel indices and interpolation modes passed. More...
 
int const * fvarChannelIndices
 List containing the indices of the channels selected for the factory. More...
 

Detailed Description

Public options for the PatchTable factory.

Definition at line 45 of file patchTableFactory.h.

Member Enumeration Documentation

◆ EndCapType

enum EndCapType

Choice for approximating irregular patches (end-caps)

This enum specifies how irregular patches (end-caps) are approximated. A basis is chosen, rather than a specific patch type, and has a corresponding patch type for each subdivision scheme, i.e. a quad and triangular patch type exists for each basis. These choices provide a trade-off between surface quality and performance.

Enumerator
ENDCAP_NONE 

unspecified

ENDCAP_BILINEAR_BASIS 

use linear patches (simple quads or tris)

ENDCAP_BSPLINE_BASIS 

use BSpline-like patches (same patch type as regular)

ENDCAP_GREGORY_BASIS 

use Gregory patches (highest quality, recommended default)

ENDCAP_LEGACY_GREGORY 

legacy option for 2.x style Gregory patches (Catmark only)

Definition at line 55 of file patchTableFactory.h.

Constructor & Destructor Documentation

◆ Options()

Options ( unsigned int  maxIsolation = 10)
inline

Definition at line 63 of file patchTableFactory.h.

Member Function Documentation

◆ GetEndCapType()

EndCapType GetEndCapType ( ) const
inline

Get endcap basis type.

Definition at line 85 of file patchTableFactory.h.

◆ GetRefineAdaptiveOptions()

TopologyRefiner::AdaptiveOptions GetRefineAdaptiveOptions ( ) const
inline

Determine adaptive refinement options to match assigned patch options.

Definition at line 100 of file patchTableFactory.h.

◆ SetEndCapType()

void SetEndCapType ( EndCapType  e)
inline

Set endcap basis type.

Definition at line 88 of file patchTableFactory.h.

◆ SetFVarPatchPrecision() [1/3]

void SetFVarPatchPrecision ( )

Set precision of face-varying patches.

◆ SetFVarPatchPrecision() [2/3]

void SetFVarPatchPrecision ( )
inline

Definition at line 215 of file patchTableFactory.h.

◆ SetFVarPatchPrecision() [3/3]

void SetFVarPatchPrecision ( )
inline

Definition at line 222 of file patchTableFactory.h.

◆ SetMaxIsolationLevel()

void SetMaxIsolationLevel ( unsigned int  level)
inline

Set maximum isolation level.

Definition at line 91 of file patchTableFactory.h.

◆ SetPatchPrecision() [1/3]

void SetPatchPrecision ( )

Set precision of vertex patches.

◆ SetPatchPrecision() [2/3]

void SetPatchPrecision ( )
inline

Definition at line 212 of file patchTableFactory.h.

◆ SetPatchPrecision() [3/3]

void SetPatchPrecision ( )
inline

Definition at line 219 of file patchTableFactory.h.

Member Data Documentation

◆ endCapType

unsigned int endCapType

EndCapType.

Definition at line 110 of file patchTableFactory.h.

◆ fvarChannelIndices

int const* fvarChannelIndices

List containing the indices of the channels selected for the factory.

Definition at line 140 of file patchTableFactory.h.

◆ fvarPatchPrecisionDouble

unsigned int fvarPatchPrecisionDouble

Generate double-precision stencils for face-varying patches.

Definition at line 110 of file patchTableFactory.h.

◆ generateAllLevels

unsigned int generateAllLevels

Generate levels from 'firstLevel' to 'maxLevel' (Uniform mode only)

Definition at line 110 of file patchTableFactory.h.

◆ generateFVarLegacyLinearPatches

unsigned int generateFVarLegacyLinearPatches

Generate all linear face-varying patches (legacy)

Definition at line 110 of file patchTableFactory.h.

◆ generateFVarTables

unsigned int generateFVarTables

Generate face-varying patch tables.

Definition at line 110 of file patchTableFactory.h.

◆ generateLegacySharpCornerPatches

unsigned int generateLegacySharpCornerPatches

Generate sharp regular patches at smooth corners (legacy)

Definition at line 110 of file patchTableFactory.h.

◆ generateVaryingLocalPoints

unsigned int generateVaryingLocalPoints

Generate local points with varying patches.

Definition at line 110 of file patchTableFactory.h.

◆ generateVaryingTables

unsigned int generateVaryingTables

Generate varying patch tables.

Definition at line 110 of file patchTableFactory.h.

◆ includeBaseLevelIndices

unsigned int includeBaseLevelIndices

Include base level in patch point indices (Uniform mode only)

Definition at line 110 of file patchTableFactory.h.

◆ includeFVarBaseLevelIndices

unsigned int includeFVarBaseLevelIndices

Include base level in face-varying patch point indices (Uniform mode only)

Definition at line 110 of file patchTableFactory.h.

◆ maxIsolationLevel

unsigned int maxIsolationLevel

Cap adaptive feature isolation to the given level (max. 10)

Definition at line 110 of file patchTableFactory.h.

◆ numFVarChannels

int numFVarChannels

Number of channel indices and interpolation modes passed.

Definition at line 139 of file patchTableFactory.h.

◆ patchPrecisionDouble

unsigned int patchPrecisionDouble

Generate double-precision stencils for vertex patches.

Definition at line 110 of file patchTableFactory.h.

◆ shareEndCapPatchPoints

unsigned int shareEndCapPatchPoints

Share endcap patch points among adjacent endcap patches. currently only work with GregoryBasis.

Definition at line 110 of file patchTableFactory.h.

◆ triangulateQuads

unsigned int triangulateQuads

Triangulate 'QUADS' primitives (Uniform mode only)

Definition at line 110 of file patchTableFactory.h.

◆ useInfSharpPatch

unsigned int useInfSharpPatch

Use infinitely-sharp patch.

Definition at line 110 of file patchTableFactory.h.

◆ useSingleCreasePatch

unsigned int useSingleCreasePatch

Use single crease patch.

Definition at line 110 of file patchTableFactory.h.


The documentation for this struct was generated from the following file: