Public Types | Public Member Functions | List of all members
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

## § CreasingMethod

enum CreasingMethod

Enumerator
CREASE_UNIFORM | Catmark rule.
CREASE_CHAIKIN | Chaikin rule.

Definition at line 66 of file options.h.

## § FVarLinearInterpolation

enum FVarLinearInterpolation

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.

## § TriangleSubdivision

enum TriangleSubdivision

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.

## § VtxBoundaryInterpolation

enum VtxBoundaryInterpolation

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

Options | ( |  | ) |
| inline

Definition at line 77 of file options.h.

## Member Function Documentation

## § GetCreasingMethod()

CreasingMethod GetCreasingMethod | ( |  | ) | const
| inline

Get edge crease rule.

Definition at line 99 of file options.h.

## § GetFVarLinearInterpolation()

FVarLinearInterpolation GetFVarLinearInterpolation | ( |  | ) | const
| inline

Get face-varying interpolation rule.

Definition at line 93 of file options.h.

## § GetTriangleSubdivision()

TriangleSubdivision GetTriangleSubdivision | ( |  | ) | const
| inline

Get triangle subdivsion weights rule (Catmark scheme only !)

Definition at line 105 of file options.h.

## § GetVtxBoundaryInterpolation()

VtxBoundaryInterpolation GetVtxBoundaryInterpolation | ( |  | ) | const
| inline

Set vertex boundary interpolation rule.

Definition at line 87 of file options.h.

## § SetCreasingMethod()

void SetCreasingMethod | ( | CreasingMethod | c | ) |
| inline

Set edge crease rule.

Definition at line 102 of file options.h.

## § SetFVarLinearInterpolation()

void SetFVarLinearInterpolation | ( | FVarLinearInterpolation | b | ) |
| inline

Set face-varying interpolation rule.

Definition at line 96 of file options.h.

## § SetTriangleSubdivision()

void SetTriangleSubdivision | ( | TriangleSubdivision | t | ) |
| inline

Set triangle subdivsion weights rule (Catmark scheme only !)

Definition at line 108 of file options.h.

## § SetVtxBoundaryInterpolation()

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:

- opensubdiv/sdc/options.h