|
| | 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.