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::Sdc::Options Class Reference

All supported options applying to subdivision scheme. More...

#include <options.h>

Public Types

enum  VtxBoundaryInterpolation { VTX_BOUNDARY_NONE = 0, VTX_BOUNDARY_EDGE_ONLY, VTX_BOUNDARY_EDGE_AND_CORNER }
 
enum  FVarLinearInterpolation {
  FVAR_LINEAR_NONE = 0, FVAR_LINEAR_CORNERS_ONLY, FVAR_LINEAR_CORNERS_PLUS1, FVAR_LINEAR_CORNERS_PLUS2,
  FVAR_LINEAR_BOUNDARIES, FVAR_LINEAR_ALL
}
 
enum  CreasingMethod { CREASE_UNIFORM = 0, CREASE_CHAIKIN }
 
enum  TriangleSubdivision { TRI_SUB_CATMARK = 0, TRI_SUB_SMOOTH }
 

Public Member Functions

VtxBoundaryInterpolation GetVtxBoundaryInterpolation () const
 Get vertex boundary interpolation rule. More...
 
void SetVtxBoundaryInterpolation (VtxBoundaryInterpolation b)
 Set vertex boundary interpolation rule. More...
 
FVarLinearInterpolation GetFVarLinearInterpolation () const
 Get face-varying interpolation rule. More...
 
void SetFVarLinearInterpolation (FVarLinearInterpolation b)
 Set face-varying interpolation rule. More...
 
CreasingMethod GetCreasingMethod () const
 Get edge crease rule. More...
 
void SetCreasingMethod (CreasingMethod c)
 Set edge crease rule. More...
 
TriangleSubdivision GetTriangleSubdivision () const
 Get triangle subdivision weights rule (Catmark scheme only !) More...
 
void SetTriangleSubdivision (TriangleSubdivision t)
 Set triangle subdivision weights rule (Catmark scheme only !) More...
 

Detailed Description

All supported options applying to subdivision scheme.

The Options class contains all supported options that can be applied to a subdivision scheme to affect the shape of the limit surface. These differ from approximations that may be applied at a higher level, i.e. options to limit the level of feature adaptive subdivision, options to ignore fractional creasing, or creasing entirely, etc. These options define the shape of a particular limit surface, including the "shape" of primitive variable data associated with it.

The intent is that these sets of options be defined at a high level and propagated into the lowest-level computation in support of each subdivision scheme. Ideally it remains a set of bit-fields (essentially an int) and so remains light weight and easily passed around by value.

Member Enumeration Documentation

Enumerator
CREASE_UNIFORM 

Catmark rule.

CREASE_CHAIKIN 

Chaikin rule.

Enumerator
FVAR_LINEAR_NONE 

smooth everywhere ("edge only")

FVAR_LINEAR_CORNERS_ONLY 

sharpen corners only

FVAR_LINEAR_CORNERS_PLUS1 

("edge corner")

FVAR_LINEAR_CORNERS_PLUS2 

("edge and corner + propagate corner")

FVAR_LINEAR_BOUNDARIES 

sharpen all boundaries ("always sharp")

FVAR_LINEAR_ALL 

bilinear interpolation ("bilinear")

Enumerator
TRI_SUB_CATMARK 

Catmark weights (Catmark scheme only)

TRI_SUB_SMOOTH 

"smooth triangle" weights (Catmark scheme only)

Enumerator
VTX_BOUNDARY_NONE 

no boundary interpolation, except where < boundary edges were explicitly sharpened

VTX_BOUNDARY_EDGE_ONLY 

all boundary edges sharpened and interpolated

VTX_BOUNDARY_EDGE_AND_CORNER 

all boundary edges and corner vertices < sharpened and interpolated

Member Function Documentation

CreasingMethod OpenSubdiv::v3_4_3::Sdc::Options::GetCreasingMethod ( ) const
inline

Get edge crease rule.

FVarLinearInterpolation OpenSubdiv::v3_4_3::Sdc::Options::GetFVarLinearInterpolation ( ) const
inline

Get face-varying interpolation rule.

Referenced by OpenSubdiv::v3_4_3::Far::TopologyRefinerFactory< MESH >::createBaseFVarChannel().

TriangleSubdivision OpenSubdiv::v3_4_3::Sdc::Options::GetTriangleSubdivision ( ) const
inline

Get triangle subdivision weights rule (Catmark scheme only !)

VtxBoundaryInterpolation OpenSubdiv::v3_4_3::Sdc::Options::GetVtxBoundaryInterpolation ( ) const
inline

Get vertex boundary interpolation rule.

void OpenSubdiv::v3_4_3::Sdc::Options::SetCreasingMethod ( CreasingMethod  c)
inline

Set edge crease rule.

void OpenSubdiv::v3_4_3::Sdc::Options::SetFVarLinearInterpolation ( FVarLinearInterpolation  b)
inline

Set face-varying interpolation rule.

Referenced by OpenSubdiv::v3_4_3::Far::TopologyRefinerFactory< MESH >::createBaseFVarChannel().

void OpenSubdiv::v3_4_3::Sdc::Options::SetTriangleSubdivision ( TriangleSubdivision  t)
inline

Set triangle subdivision weights rule (Catmark scheme only !)

void OpenSubdiv::v3_4_3::Sdc::Options::SetVtxBoundaryInterpolation ( VtxBoundaryInterpolation  b)
inline

Set vertex boundary interpolation rule.


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