3DCoat  3D-COAT 4.9.xx
3DCoat is the one application that has all the tools you need to take your 3D idea from a block of digital clay all the way to a production ready, fully textured organic or hard surface model.
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Macros Pages
OpenSubdiv::v3_4_3::Far::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

EndCapType GetEndCapType () const
 Get endcap basis type. More...
 
void SetEndCapType (EndCapType e)
 Set endcap basis type. 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...
 

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
 Share endcap patch points among adjacent endcap patches. < currently only work with GregoryBasis. More...
 
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.

Member Enumeration Documentation

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)

Member Function Documentation

EndCapType OpenSubdiv::v3_4_3::Far::PatchTableFactory::Options::GetEndCapType ( ) const
inline

Get endcap basis type.

TopologyRefiner::AdaptiveOptions OpenSubdiv::v3_4_3::Far::PatchTableFactory::Options::GetRefineAdaptiveOptions ( ) const
inline
void OpenSubdiv::v3_4_3::Far::PatchTableFactory::Options::SetEndCapType ( EndCapType  e)
inline
template<typename REAL >
void OpenSubdiv::v3_4_3::Far::PatchTableFactory::Options::SetFVarPatchPrecision ( )

Set precision of face-varying patches.

template<typename REAL >
void OpenSubdiv::v3_4_3::Far::PatchTableFactory::Options::SetPatchPrecision ( )

Set precision of vertex patches.

Referenced by OpenSubdiv::v3_4_3::Far::LimitStencilTableFactoryReal< REAL >::Create().

Member Data Documentation

unsigned int OpenSubdiv::v3_4_3::Far::PatchTableFactory::Options::endCapType

EndCapType.

int const* OpenSubdiv::v3_4_3::Far::PatchTableFactory::Options::fvarChannelIndices

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

Referenced by OpenSubdiv::v3_4_3::Far::LimitStencilTableFactoryReal< REAL >::Create().

unsigned int OpenSubdiv::v3_4_3::Far::PatchTableFactory::Options::fvarPatchPrecisionDouble

Generate double-precision stencils for face-varying patches.

unsigned int OpenSubdiv::v3_4_3::Far::PatchTableFactory::Options::generateAllLevels

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

unsigned int OpenSubdiv::v3_4_3::Far::PatchTableFactory::Options::generateFVarLegacyLinearPatches

Generate all linear face-varying patches (legacy)

Referenced by OpenSubdiv::v3_4_3::Far::LimitStencilTableFactoryReal< REAL >::Create().

unsigned int OpenSubdiv::v3_4_3::Far::PatchTableFactory::Options::generateFVarTables

Generate face-varying patch tables.

Referenced by OpenSubdiv::v3_4_3::Far::LimitStencilTableFactoryReal< REAL >::Create().

unsigned int OpenSubdiv::v3_4_3::Far::PatchTableFactory::Options::generateLegacySharpCornerPatches

Generate sharp regular patches at smooth corners (legacy)

unsigned int OpenSubdiv::v3_4_3::Far::PatchTableFactory::Options::generateVaryingLocalPoints

Generate local points with varying patches.

unsigned int OpenSubdiv::v3_4_3::Far::PatchTableFactory::Options::generateVaryingTables

Generate varying patch tables.

Referenced by OpenSubdiv::v3_4_3::Far::LimitStencilTableFactoryReal< REAL >::Create().

unsigned int OpenSubdiv::v3_4_3::Far::PatchTableFactory::Options::includeBaseLevelIndices

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

Referenced by OpenSubdiv::v3_4_3::Far::LimitStencilTableFactoryReal< REAL >::Create().

unsigned int OpenSubdiv::v3_4_3::Far::PatchTableFactory::Options::includeFVarBaseLevelIndices

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

Referenced by OpenSubdiv::v3_4_3::Far::LimitStencilTableFactoryReal< REAL >::Create().

unsigned int OpenSubdiv::v3_4_3::Far::PatchTableFactory::Options::maxIsolationLevel

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

int OpenSubdiv::v3_4_3::Far::PatchTableFactory::Options::numFVarChannels

Number of channel indices and interpolation modes passed.

Referenced by OpenSubdiv::v3_4_3::Far::LimitStencilTableFactoryReal< REAL >::Create().

unsigned int OpenSubdiv::v3_4_3::Far::PatchTableFactory::Options::patchPrecisionDouble

Generate double-precision stencils for vertex patches.

unsigned int OpenSubdiv::v3_4_3::Far::PatchTableFactory::Options::shareEndCapPatchPoints

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

unsigned int OpenSubdiv::v3_4_3::Far::PatchTableFactory::Options::triangulateQuads

Triangulate 'QUADS' primitives (Uniform mode only)

unsigned int OpenSubdiv::v3_4_3::Far::PatchTableFactory::Options::useInfSharpPatch
unsigned int OpenSubdiv::v3_4_3::Far::PatchTableFactory::Options::useSingleCreasePatch

Use single crease patch.


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