OpenSubdiv
Loading...
Searching...
No Matches
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.
 
void SetEndCapType (EndCapType e)
 Set endcap basis type.
 
void SetMaxIsolationLevel (unsigned int level)
 Set maximum isolation level.
 
template<typename REAL >
void SetPatchPrecision ()
 Set precision of vertex patches.
 
template<typename REAL >
void SetFVarPatchPrecision ()
 Set precision of face-varying patches.
 
TopologyRefiner::AdaptiveOptions GetRefineAdaptiveOptions () const
 Determine adaptive refinement options to match assigned patch options.
 
template<>
void SetPatchPrecision ()
 
template<>
void SetFVarPatchPrecision ()
 

Public Attributes

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

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/2]

void SetFVarPatchPrecision ( )

Set precision of face-varying patches.

◆ SetFVarPatchPrecision() [2/2]

void SetFVarPatchPrecision< double >
inline

Definition at line 215 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/2]

void SetPatchPrecision ( )

Set precision of vertex patches.

◆ SetPatchPrecision() [2/2]

void SetPatchPrecision< double >
inline

Definition at line 212 of file patchTableFactory.h.

Member Data Documentation

◆ endCapType

unsigned int endCapType

EndCapType.

Definition at line 120 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 133 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 136 of file patchTableFactory.h.

◆ generateFVarTables

unsigned int generateFVarTables

Generate face-varying patch tables.

Definition at line 129 of file patchTableFactory.h.

◆ generateLegacySharpCornerPatches

unsigned int generateLegacySharpCornerPatches

Generate sharp regular patches at smooth corners (legacy)

Definition at line 137 of file patchTableFactory.h.

◆ generateVaryingLocalPoints

unsigned int generateVaryingLocalPoints

Generate local points with varying patches.

Definition at line 126 of file patchTableFactory.h.

◆ generateVaryingTables

unsigned int generateVaryingTables

Generate varying patch tables.

Definition at line 125 of file patchTableFactory.h.

◆ includeBaseLevelIndices

unsigned int includeBaseLevelIndices

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

Definition at line 111 of file patchTableFactory.h.

◆ includeFVarBaseLevelIndices

unsigned int includeFVarBaseLevelIndices

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

Definition at line 112 of file patchTableFactory.h.

◆ maxIsolationLevel

unsigned int maxIsolationLevel

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

Definition at line 117 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 132 of file patchTableFactory.h.

◆ shareEndCapPatchPoints

unsigned int shareEndCapPatchPoints

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

Definition at line 121 of file patchTableFactory.h.

◆ triangulateQuads

unsigned int triangulateQuads

Triangulate 'QUADS' primitives (Uniform mode only)

Definition at line 113 of file patchTableFactory.h.

◆ useInfSharpPatch

unsigned int useInfSharpPatch

Use infinitely-sharp patch.

Definition at line 116 of file patchTableFactory.h.

◆ useSingleCreasePatch

unsigned int useSingleCreasePatch

Use single crease patch.

Definition at line 115 of file patchTableFactory.h.


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