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

template<typename REAL>

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]

template<typename REAL>

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