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

#include <GU_Decompose.h>

Classes

struct  Iterator
 

Public Types

enum  DecompositionType { MAXIMAL_MANIFOLD = 0, EULER_TRAVERSAL }
 

Public Member Functions

 GU_Decompose (const GU_Detail *gdp, const GA_Group *grp, const GA_Group *split_grp=NULL, bool split_all=false, const GEO_DetachedHedgeInterface *hip=NULL, DecompositionType dectype=MAXIMAL_MANIFOLD)
 
 ~GU_Decompose ()
 
int fillComponentIDAttribute (GA_RWHandleI &attrib)
 
int getNumComponents ()
 Returns the number of maximal manifold components. More...
 
int getNumBoundaries ()
 
int getComponentNumBoundaries (int comp)
 Returns the number of boundary components of a given component. More...
 
int getBoundaryComponentID (int idx)
 
bool isComponentClosed (int idx)
 
GA_OffsetgetComponent (int idx, int &length)
 
int getComponentSize (int idx)
 
int getComponentSizesSum ()
 
int getBoundarySize (int idx)
 
GA_OffsetgetBoundary (int idx, int &length)
 
int getComponentBoundarySize (int comp, int i)
 
GA_OffsetgetComponentBoundary (int comp, int idx, int &length)
 
int getBoundarySizesSum ()
 
GA_GroupType getGroupType ()
 
Iterator getComponentIterator (int comp)
 
Iterator getBoundaryIterator (int bd)
 
Iterator getComponentBoundaryIterator (int comp, int bd)
 

Detailed Description

Definition at line 33 of file GU_Decompose.h.

Member Enumeration Documentation

Enumerator
MAXIMAL_MANIFOLD 
EULER_TRAVERSAL 

Definition at line 37 of file GU_Decompose.h.

Constructor & Destructor Documentation

GU_Decompose::GU_Decompose ( const GU_Detail gdp,
const GA_Group grp,
const GA_Group split_grp = NULL,
bool  split_all = false,
const GEO_DetachedHedgeInterface hip = NULL,
DecompositionType  dectype = MAXIMAL_MANIFOLD 
)
GU_Decompose::~GU_Decompose ( )

Member Function Documentation

int GU_Decompose::fillComponentIDAttribute ( GA_RWHandleI attrib)
GA_Offset* GU_Decompose::getBoundary ( int  idx,
int length 
)

Returns a pointer to an array of half-edges which form the boundary cycle of numbered idx among all boundary cycles.

int GU_Decompose::getBoundaryComponentID ( int  idx)

Returns index of the primitive component to which the idx-th boundary cycle belongs.

Iterator GU_Decompose::getBoundaryIterator ( int  bd)
inline

Definition at line 170 of file GU_Decompose.h.

int GU_Decompose::getBoundarySize ( int  idx)
int GU_Decompose::getBoundarySizesSum ( )
GA_Offset* GU_Decompose::getComponent ( int  idx,
int length 
)
GA_Offset* GU_Decompose::getComponentBoundary ( int  comp,
int  idx,
int length 
)

Returns a pointer to an array of half-edges which form the idx-th boundary cycle among all boundary chains for the patch comp. (first index is zero).

Iterator GU_Decompose::getComponentBoundaryIterator ( int  comp,
int  bd 
)
inline

Definition at line 173 of file GU_Decompose.h.

int GU_Decompose::getComponentBoundarySize ( int  comp,
int  i 
)
Iterator GU_Decompose::getComponentIterator ( int  comp)
inline

Definition at line 167 of file GU_Decompose.h.

int GU_Decompose::getComponentNumBoundaries ( int  comp)

Returns the number of boundary components of a given component.

int GU_Decompose::getComponentSize ( int  idx)
int GU_Decompose::getComponentSizesSum ( )
GA_GroupType GU_Decompose::getGroupType ( )
inline

Definition at line 93 of file GU_Decompose.h.

int GU_Decompose::getNumBoundaries ( )

Returns the total number of boundary chains (cycles) in all the components. Note that some components may have no boundary chains and other may have multiple. For a 2-manifold maximal patch, i.e. one made of primitives, each boundary chain is a closed cycle of edges. For a 1-manifold maximal patch, i.e. oen made of edges, the boundary chain (when non-empty) consists of the two endpoints.

int GU_Decompose::getNumComponents ( )

Returns the number of maximal manifold components.

bool GU_Decompose::isComponentClosed ( int  idx)

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