PatchDescriptor Class Reference

Public Types | Public Member Functions | Static Public Member Functions | List of all members
PatchDescriptor Class Reference

Describes the type of a patch. More...

`#include <patchDescriptor.h>`

## Public Types
enum | Type { NON_PATCH = 0, POINTS, LINES, QUADS, TRIANGLES, LOOP, REGULAR, GREGORY, GREGORY_BOUNDARY, GREGORY_BASIS }

## Public Member Functions
| PatchDescriptor ()
| Default constructor. More...
| PatchDescriptor (int type)
| Constructor. More...
| PatchDescriptor (PatchDescriptor const &d)
| Copy Constructor. More...
Type | GetType () const
| Returns the type of the patch. More...
bool | IsAdaptive () const
| Returns true if the type is an adaptive patch. More...
short | GetNumControlVertices () const
| Returns the number of control vertices expected for a patch of the type described. More...
short | GetNumFVarControlVertices () const
| Deprecated. More...
bool | operator< (PatchDescriptor const other) const
| Allows ordering of patches by type. More...
bool | operator== (PatchDescriptor const other) const
| True if the descriptors are identical. More...
void | print () const

## Static Public Member Functions
static bool | IsAdaptive (Type type)
| Returns true if the type is an adaptive patch. More...
static short | GetNumControlVertices (Type t)
| Returns the number of control vertices expected for a patch of the type described. More...
static short | GetNumFVarControlVertices (Type t)
| Deprecated. More...
static short | GetRegularPatchSize ()
| Number of control vertices of Regular Patches in table. More...
static short | GetGregoryPatchSize ()
| Number of control vertices of Gregory (and Gregory Boundary) Patches in table. More...
static short | GetGregoryBasisPatchSize ()
| Number of control vertices of Gregory patch basis (20) More...
static Vtr::ConstArray< PatchDescriptor > | GetAdaptivePatchDescriptors (Sdc::SchemeType type)
| Returns a vector of all the legal patch descriptors for the given adaptive subdivision scheme. More...

## Detailed Description

Describes the type of a patch.

Uniquely identifies all the different types of patches

- Uniformly subdivided meshes contain bilinear patches of either QUADS or TRIANGLES
- Adaptively subdivided meshes contain bicubic patches of types REGULAR, GREGORY, GREGORY_BOUNDARY, GREGORY_BASIS.

Definition at line 50 of file patchDescriptor.h.

## Member Enumeration Documentation

## § Type

enum Type

Enumerator
NON_PATCH | undefined
POINTS | points (useful for cage drawing)
LINES | lines (useful for cage drawing)
QUADS | bilinear quads-only patches
TRIANGLES | bilinear triangles-only mesh
LOOP | Loop patch.
REGULAR | feature-adaptive bicubic patches
GREGORY |
GREGORY_BOUNDARY |
GREGORY_BASIS |

Definition at line 54 of file patchDescriptor.h.

## Constructor & Destructor Documentation

## § PatchDescriptor() [1/3]

PatchDescriptor | ( |  | ) |
| inline

Default constructor.

Definition at line 74 of file patchDescriptor.h.

## § PatchDescriptor() [2/3]

PatchDescriptor | ( | int | type | ) |
| inline

Constructor.

Definition at line 78 of file patchDescriptor.h.

## § PatchDescriptor() [3/3]

PatchDescriptor | ( | PatchDescriptor const & | d | ) |
| inline

Copy Constructor.

Definition at line 82 of file patchDescriptor.h.

## Member Function Documentation

## § GetAdaptivePatchDescriptors()

static Vtr::ConstArray<PatchDescriptor> GetAdaptivePatchDescriptors | ( | Sdc::SchemeType | type | ) |
| static

Returns a vector of all the legal patch descriptors for the given adaptive subdivision scheme.

## § GetGregoryBasisPatchSize()

static short GetGregoryBasisPatchSize | ( |  | ) |
| inlinestatic

Number of control vertices of Gregory patch basis (20)

Definition at line 125 of file patchDescriptor.h.

## § GetGregoryPatchSize()

static short GetGregoryPatchSize | ( |  | ) |
| inlinestatic

Number of control vertices of Gregory (and Gregory Boundary) Patches in table.

Definition at line 122 of file patchDescriptor.h.

## § GetNumControlVertices() [1/2]

short GetNumControlVertices | ( | Type | t | ) |
| inlinestatic

Returns the number of control vertices expected for a patch of the type described.

Definition at line 149 of file patchDescriptor.h.

## § GetNumControlVertices() [2/2]

short GetNumControlVertices | ( |  | ) | const
| inline

Returns the number of control vertices expected for a patch of the type described.

Definition at line 109 of file patchDescriptor.h.

## § GetNumFVarControlVertices() [1/2]

short GetNumFVarControlVertices | ( | Type | t | ) |
| inlinestatic

Deprecated.

See also
  PatchDescriptor::GetNumControlVertices

Definition at line 165 of file patchDescriptor.h.

## § GetNumFVarControlVertices() [2/2]

short GetNumFVarControlVertices | ( |  | ) | const
| inline

Deprecated.

See also
  PatchDescriptor::GetNumControlVertices

Definition at line 114 of file patchDescriptor.h.

## § GetRegularPatchSize()

static short GetRegularPatchSize | ( |  | ) |
| inlinestatic

Number of control vertices of Regular Patches in table.

Definition at line 119 of file patchDescriptor.h.

## § GetType()

Type GetType | ( |  | ) | const
| inline

Returns the type of the patch.

Definition at line 86 of file patchDescriptor.h.

## § IsAdaptive() [1/2]

static bool IsAdaptive | ( | Type | type | ) |
| inlinestatic

Returns true if the type is an adaptive patch.

Definition at line 91 of file patchDescriptor.h.

## § IsAdaptive() [2/2]

bool IsAdaptive | ( |  | ) | const
| inline

Returns true if the type is an adaptive patch.

Definition at line 96 of file patchDescriptor.h.

## § operator<()

bool operator< | ( | PatchDescriptor const | other | ) | const
| inline

Allows ordering of patches by type.

Definition at line 171 of file patchDescriptor.h.

## § operator==()

bool operator== | ( | PatchDescriptor const | other | ) | const
| inline

True if the descriptors are identical.

Definition at line 177 of file patchDescriptor.h.

## § print()

void print | ( |  | ) | const

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

- opensubdiv/far/patchDescriptor.h