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< PatchDescriptorGetAdaptivePatchDescriptors (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: