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

 Options ()
 
VtxBoundaryInterpolation GetVtxBoundaryInterpolation () const
 Set vertex boundary interpolation rule. More...
 
void SetVtxBoundaryInterpolation (VtxBoundaryInterpolation b)
 Get 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 subdivsion weights rule (Catmark scheme only !) More...
 
void SetTriangleSubdivision (TriangleSubdivision t)
 Set triangle subdivsion 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.

Definition at line 51 of file options.h.

Member Enumeration Documentation

Enumerator
CREASE_UNIFORM 

Catmark rule.

CREASE_CHAIKIN 

Chaikin rule.

Definition at line 66 of file options.h.

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

Definition at line 58 of file options.h.

Enumerator
TRI_SUB_CATMARK 

Catmark weights (Catmark scheme only)

TRI_SUB_SMOOTH 

"smooth triangle" weights (Catmark scheme only)

Definition at line 70 of file options.h.

Enumerator
VTX_BOUNDARY_NONE 

do not interpolate boundaries

VTX_BOUNDARY_EDGE_ONLY 

sharpen edges

VTX_BOUNDARY_EDGE_AND_CORNER 

sharpen edges and corners

Definition at line 53 of file options.h.

Constructor & Destructor Documentation

Options ( )
inline

Definition at line 77 of file options.h.

Member Function Documentation

CreasingMethod GetCreasingMethod ( ) const
inline

Get edge crease rule.

Definition at line 99 of file options.h.

FVarLinearInterpolation GetFVarLinearInterpolation ( ) const
inline

Get face-varying interpolation rule.

Definition at line 93 of file options.h.

TriangleSubdivision GetTriangleSubdivision ( ) const
inline

Get triangle subdivsion weights rule (Catmark scheme only !)

Definition at line 105 of file options.h.

VtxBoundaryInterpolation GetVtxBoundaryInterpolation ( ) const
inline

Set vertex boundary interpolation rule.

Definition at line 87 of file options.h.

void SetCreasingMethod ( CreasingMethod  c)
inline

Set edge crease rule.

Definition at line 102 of file options.h.

void SetFVarLinearInterpolation ( FVarLinearInterpolation  b)
inline

Set face-varying interpolation rule.

Definition at line 96 of file options.h.

void SetTriangleSubdivision ( TriangleSubdivision  t)
inline

Set triangle subdivsion weights rule (Catmark scheme only !)

Definition at line 108 of file options.h.

void SetVtxBoundaryInterpolation ( VtxBoundaryInterpolation  b)
inline

Get vertex boundary interpolation rule.

Definition at line 90 of file options.h.


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