|
| GQ_Detail (GU_Detail *gdp, GA_PrimitiveGroup *=0, fpreal super_point_tolerance=1E-6) |
|
| ~GQ_Detail () |
|
void | clearAndDestroy () |
|
void | cusp (fpreal angle, bool no_cut=false) |
| Cusp polygons which have adjacent edges larger than angle (in degrees) More...
|
|
void | cusp (const GA_EdgeGroup &edges, bool do_cut=false) |
| Cusp edges in a group. More...
|
|
void | clip (UT_Vector3 &norm, fpreal distance, int normalize) |
|
int | crease (UT_Vector3 &norm, fpreal distance, int normalize, int outputGroups, GA_PrimitiveGroup *primitive_above=0, GA_PrimitiveGroup *primitive_below=0) |
|
void | bricker (fpreal sizex=1.0, fpreal sizey=1.0, fpreal sizez=1.0, fpreal offx=0.0, fpreal offy=0.0, fpreal offz=0.0, fpreal anglex=0.0, fpreal angley=0.0, fpreal anglez=0.0, bool fixsharededges=false) |
| } More...
|
|
void | smooth (int divisions, fpreal relativeSize, fpreal weight) |
|
void | createEdgeWeights () |
|
void | setCreaseWeight (const GEO_PrimPoly &poly, fpreal weight) |
|
void | setCreaseWeight (const GEO_PrimPoly &poly, GA_ROHandleF vtxattrib, GA_ROHandleF primattrib) |
|
void | setCreaseWeight (const GA_Edge &edge, const GU_Detail &edge_gdp, fpreal weight) |
|
void | setCreaseWeight (const GA_Edge &gedge, const GA_Primitive &prim, GA_ROHandleF vtxattrib, GA_ROHandleF primattrib) |
|
fpreal | getEdgeWeight (const GA_Edge &edge) |
|
fpreal | getEdgeWeight (exint edge_index) const |
|
bool | setEdgeWeight (exint edge_index, fpreal weight) |
|
void | subdivide (const GQ_SubdivideParms &parms, GA_PrimitiveGroup *nonsubdivprims) |
|
void | dual (const char *attribs_to_swap=NULL) |
|
void | stitch (const GQ_StitchParms &parms) |
|
int | stitchEdges (GEO_PrimPoly &polya, const UT_Array< GEO_PrimPoly * > &facea, GEO_PrimPoly &polyb, const UT_Array< GEO_PrimPoly * > &faceb, GA_PrimitiveGroup &changedpolys, fpreal tol, int clamp, int consolidate) |
|
void | makeWire (fpreal radius, const GA_Attribute *radscale, bool dospheres, bool docaps) |
|
void | buildGeometry (GA_PrimitiveGroup *output=NULL) |
|
void | buildCreases (GA_PrimitiveGroup *group=0) |
|
void | copyEdgeWeightToVertex () |
|
void | unHole (int maintain) |
|
void | boundary () |
|
void | createCuspGroup (GA_Group *group, bool doMinAngle, fpreal minAngle, bool doMaxAngle, fpreal maxAngle) |
|
void | createBoundaryGroup (GA_Group *grp) |
|
void | createBoundaryGroup (GA_PointGroup &grp, UT_IntArray *arr) |
|
void | createBoundaryGroup (GA_Offset ppt, GA_PointGroup &pointgroup) |
|
void | createBoundaryGroup (const GA_Edge &edge, GA_PointGroup &grp, GEO_PrimPoly *&poly) |
|
void | createBoundaryList (UT_Array< UT_IntArray > &ptlist) |
|
void | groupEdgePoints (GA_Offset ptoff, int depth, GA_PointGroup &point_group) |
|
int | isClose () |
|
void | deleteAllShareEdges () |
|
GQ_Point * | appendPoint (const GQ_Point *src=0) |
|
GQ_Edge * | appendEdge () |
|
GQ_Face * | appendFace (GEO_PrimPoly *poly) |
|
void | removePoint (GQ_Point *p) |
|
void | removePoint (int i) |
|
void | removeEdge (GQ_Edge *e) |
|
void | removeEdge (int i) |
|
bool | removeFace (GQ_Face *f) |
|
void | removeFace (int i) |
|
void | collapseEdgeList () |
|
void | collapseFaceList () |
|
UT_Array< GQ_Point * > & | getPointList () |
|
const UT_Array< GQ_Point * > & | getPointList () const |
|
UT_ValArray< GQ_Edge * > & | getEdgeList () |
|
const UT_ValArray< GQ_Edge * > & | getEdgeList () const |
|
UT_DoubleArray & | getEdgeWeights () |
|
const UT_DoubleArray & | getEdgeWeights () const |
|
UT_Array< GQ_Point * > & | getEdgePoints () |
|
const UT_Array< GQ_Point * > & | getEdgePoints () const |
|
UT_ValArray< GQ_Face * > & | getFaceList () |
|
const UT_ValArray< GQ_Face * > & | getFaceList () const |
|
GU_Detail * | getGdp () |
|
const GU_Detail * | getGdp () const |
|
GU_RayIntersect * | getRay () |
|
void | buildRay () |
|
UT_Array< GA_RWAttributeRef > & | getOffsets () |
|
GQ_Point * | splitEdge (GQ_Edge *edge, fpreal t) |
| Split edge will return 0 if t is too close to 0 or 1. More...
|
|
GQ_Edge * | splitEdge (GQ_Edge *, GQ_Point &pt) |
|
void | deleteShareEdge (GQ_Edge *edge, GA_PrimitiveGroup *deletePrimGroup=0) |
|
void | wireEdge (GQ_Edge *edge, fpreal radius, const GA_ROHandleF &radscale_h, bool doCaps) |
|
void | pointSphere (GQ_Point *pt, fpreal radius, const GA_ROHandleF &radscale_h) |
|
int | nEdges () const |
|
int | nFaces () const |
|
int | nPoints () const |
|
GU_Detail * | getDetail () const |
|
int | aboveOrBelow (GQ_Face *face) |
|
void | simpleDecimate (int targetPolys) |
|
void | decCollapse (GQ_Edge *e, GA_PrimitiveGroup *) |
|
void | decSplit (GQ_Edge *e) |
|
void | decSwap (GQ_Edge *e) |
|
void | save (std::ostream &os) const |
|
GQ_Edge * | findEdge (const GA_Edge *edge, const GU_Detail *edge_gdp) |
|
GQ_Edge * | findEdge (const GA_Edge *edge) |
|
GQ_Edge * | findEdge (const GQ_Point *org, const GQ_Point *dest) |
|
GA_Offset | stepForwardOffset (const GA_Edge *edge) |
|
GA_Offset | pickArbitraryConnectedPointOffset (GA_Offset org) |
|
GA_Offset | rotateAboutOriginOffset (GA_Edge &edge, int dir) |
|
GEO_PrimPoly * | adjacentFace (const GEO_Face &face, int edge) |
|
Quad Edge data structure for topological manipulation of polygonal data.
The Quad Edge data structure was invented by Guibas & Stolfi in their 1985 paper, "Primitives for the Manipulation of General Subdivisions and
the Computation of Voronoi Diagrams", ACM Transactions on Graphics, 4(2):74-123, April 1985.
That paper has a good description of the capabilities of the data structure, and the definition of its basic operators, makeedge and splice().
Definition at line 70 of file GQ_Detail.h.