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 ()

## 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/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:

- opensubdiv/far/patchTableFactory.h