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.
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 97 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]

template<typename REAL >

void SetFVarPatchPrecision | ( |  | ) |

Set precision of face-varying patches.

## SetFVarPatchPrecision() [2/2]

void SetFVarPatchPrecision< double > | ( |  | ) |

inline

Definition at line 212 of file patchTableFactory.h.

## SetPatchPrecision() [1/2]

template<typename REAL >

void SetPatchPrecision | ( |  | ) |

Set precision of vertex patches.

## SetPatchPrecision() [2/2]

void SetPatchPrecision< double > | ( |  | ) |

inline

Definition at line 209 of file patchTableFactory.h.

## Member Data Documentation

## endCapType

unsigned int endCapType

EndCapType.

Definition at line 117 of file patchTableFactory.h.

## fvarChannelIndices

int const* fvarChannelIndices

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

Definition at line 137 of file patchTableFactory.h.

## fvarPatchPrecisionDouble

unsigned int fvarPatchPrecisionDouble

Generate double-precision stencils for face-varying patches.

Definition at line 130 of file patchTableFactory.h.

## generateAllLevels

unsigned int generateAllLevels

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

Definition at line 107 of file patchTableFactory.h.

## generateFVarLegacyLinearPatches

unsigned int generateFVarLegacyLinearPatches

Generate all linear face-varying patches (legacy)

Definition at line 133 of file patchTableFactory.h.

## generateFVarTables

unsigned int generateFVarTables

Generate face-varying patch tables.

Definition at line 126 of file patchTableFactory.h.

## generateLegacySharpCornerPatches

unsigned int generateLegacySharpCornerPatches

Generate sharp regular patches at smooth corners (legacy)

Definition at line 134 of file patchTableFactory.h.

## generateVaryingLocalPoints

unsigned int generateVaryingLocalPoints

Generate local points with varying patches.

Definition at line 123 of file patchTableFactory.h.

## generateVaryingTables

unsigned int generateVaryingTables

Generate varying patch tables.

Definition at line 122 of file patchTableFactory.h.

## includeBaseLevelIndices

unsigned int includeBaseLevelIndices

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

Definition at line 108 of file patchTableFactory.h.

## includeFVarBaseLevelIndices

unsigned int includeFVarBaseLevelIndices

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

Definition at line 109 of file patchTableFactory.h.

## maxIsolationLevel

unsigned int maxIsolationLevel

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

Definition at line 114 of file patchTableFactory.h.

## numFVarChannels

int numFVarChannels

Number of channel indices and interpolation modes passed.

Definition at line 136 of file patchTableFactory.h.

## patchPrecisionDouble

unsigned int patchPrecisionDouble

Generate double-precision stencils for vertex patches.

Definition at line 129 of file patchTableFactory.h.

## shareEndCapPatchPoints

unsigned int shareEndCapPatchPoints

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

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

## useSingleCreasePatch

unsigned int useSingleCreasePatch

Use single crease patch.

Definition at line 112 of file patchTableFactory.h.

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

- opensubdiv/far/patchTableFactory.h