HDK
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
GU_SubDivPatch Class Reference

#include <GU_SubDivPatch.h>

Public Member Functions

void decRefCount ()
 
int getRefCount ()
 
void catclark (UT_Array< GU_SubDivPatch * > &patches)
 
GU_SubDivVertexgetChild ()
 Return the face centroid. More...
 
int getValence () const
 Return the number of edges and vertices bordering this patch. More...
 
GU_SubDivVertexgetNextVertex (GU_SubDivVertex *vtx) const
 Return the next vertex after vtx. More...
 
GU_SubDivVertexgetPrevVertex (GU_SubDivVertex *vtx) const
 
bool getBezier (UT_Array< GU_SubDivVertex * > &vtx, UT_Array< float * > &vtxdata) const
 
void getVertices (UT_Array< GU_SubDivVertex * > &vtx) const
 Get internal and external vertices bordering this patch. More...
 
GU_SubDivVertexgetVertex (int i) const
 
void getFaceRing (UT_Array< GU_SubDivPatch * > &list) const
 
GU_SubDivPatchcopy () const
 Make an independent copy of this patch with new vertices and edges. More...
 
void makeLive ()
 
bool isLive () const
 
void reverse ()
 
void dumpGeo () const
 Dump geometry for the patch as a draw file. More...
 
void setFlag (uint8 f)
 
void clearFlag (uint8 f)
 
void toggleFlag (uint8 f)
 
bool getFlag (uint8 f) const
 

Static Public Member Functions

static GU_SubDivPatchallocPatch (const UT_Array< GU_SubDivVertex * > &vertices, bool islive)
 
static void freePatch (GU_SubDivPatch *patch)
 

Protected Member Functions

void decRefCountInternal ()
 
void catclarkPatches (GU_SubDivPatch *face=0)
 

Detailed Description

Definition at line 302 of file GU_SubDivPatch.h.

Member Function Documentation

static GU_SubDivPatch* GU_SubDivPatch::allocPatch ( const UT_Array< GU_SubDivVertex * > &  vertices,
bool  islive 
)
static
void GU_SubDivPatch::catclark ( UT_Array< GU_SubDivPatch * > &  patches)

Catmull-clark subdivision

Perform subdivision on this patch, creating a new set of subpatches. The caller attains ownership of the patches.

void GU_SubDivPatch::catclarkPatches ( GU_SubDivPatch face = 0)
protected

Creates subpatches within this patch. If a face is supplied, we'll only construct subpatches on the boundary with the face.

void GU_SubDivPatch::clearFlag ( uint8  f)
inline

Definition at line 361 of file GU_SubDivPatch.h.

GU_SubDivPatch* GU_SubDivPatch::copy ( ) const

Make an independent copy of this patch with new vertices and edges.

void GU_SubDivPatch::decRefCount ( )
void GU_SubDivPatch::decRefCountInternal ( )
inlineprotected

Definition at line 366 of file GU_SubDivPatch.h.

void GU_SubDivPatch::dumpGeo ( ) const

Dump geometry for the patch as a draw file.

static void GU_SubDivPatch::freePatch ( GU_SubDivPatch patch)
static
bool GU_SubDivPatch::getBezier ( UT_Array< GU_SubDivVertex * > &  vtx,
UT_Array< float * > &  vtxdata 
) const

If we're a bezier, returns the bezier hull. The correct vertex attribute associations are returned in the vtxdata array. If we're not a bezier, false is returned.

GU_SubDivVertex* GU_SubDivPatch::getChild ( )
inline

Return the face centroid.

Definition at line 321 of file GU_SubDivPatch.h.

void GU_SubDivPatch::getFaceRing ( UT_Array< GU_SubDivPatch * > &  list) const
bool GU_SubDivPatch::getFlag ( uint8  f) const
inline

Definition at line 363 of file GU_SubDivPatch.h.

GU_SubDivVertex* GU_SubDivPatch::getNextVertex ( GU_SubDivVertex vtx) const

Return the next vertex after vtx.

GU_SubDivVertex* GU_SubDivPatch::getPrevVertex ( GU_SubDivVertex vtx) const
int GU_SubDivPatch::getRefCount ( )
inline

Definition at line 310 of file GU_SubDivPatch.h.

int GU_SubDivPatch::getValence ( ) const
inline

Return the number of edges and vertices bordering this patch.

Definition at line 329 of file GU_SubDivPatch.h.

GU_SubDivVertex* GU_SubDivPatch::getVertex ( int  i) const
inline

Definition at line 341 of file GU_SubDivPatch.h.

void GU_SubDivPatch::getVertices ( UT_Array< GU_SubDivVertex * > &  vtx) const

Get internal and external vertices bordering this patch.

bool GU_SubDivPatch::isLive ( ) const
inline

Definition at line 351 of file GU_SubDivPatch.h.

void GU_SubDivPatch::makeLive ( )

Live patches are allowed to be externally referenced and keep additional references to the surrounding ring of patches so that all the data required for subdivision is available.

void GU_SubDivPatch::reverse ( )

Reverse the vertex order for this patch. We'll keep a flag to determine whether it is flipped relative to the original geometry.

void GU_SubDivPatch::setFlag ( uint8  f)
inline

Definition at line 360 of file GU_SubDivPatch.h.

void GU_SubDivPatch::toggleFlag ( uint8  f)
inline

Definition at line 362 of file GU_SubDivPatch.h.


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