|
HDK
|
#include <GU_Cookie.h>
Protected Types | |
| using | EdgeTable = GA_EdgeMap< UT_UniquePtr< guEdgeHashEntry >> |
Protected Attributes | |
| GU_Detail * | myGdp |
| UT_Array< guTrimInfo * > | myTrimInfo |
| UT_UniquePtr< EdgeTable > | myEdgeTable |
| GA_ElementWranglerCache * | myWranglers |
| GA_PointGroup * | myPtGrpA |
| GA_PointGroup * | myPtGrpB |
| const GA_PrimitiveGroup * | myGrpA |
| const GA_PrimitiveGroup * | myGrpB |
| UT_Array< guIsectVal > | myIsects |
| int | myAutoJoin |
| float | myTol |
Definition at line 45 of file GU_Cookie.h.
|
protected |
Definition at line 145 of file GU_Cookie.h.
| GU_Cookie::GU_Cookie | ( | ) |
|
virtual |
| void GU_Cookie::addPointToGroup | ( | GA_Offset | ptoff, |
| GEO_PrimPoly * | poly | ||
| ) |
| UT_IntArray* GU_Cookie::buildConnectivityGraph | ( | ) |
| void GU_Cookie::buildTrimSegments | ( | GEO_PrimPoly * | dst, |
| GEO_PrimPoly * | src | ||
| ) |
This adds all the isects of the second polygon into the trim list of the first:
| void GU_Cookie::buildTrimSegmentsCoplanar | ( | GEO_PrimPoly * | dst, |
| GEO_PrimPoly * | src, | ||
| bool | reverse | ||
| ) |
| void GU_Cookie::classifyPolygons | ( | const GA_PrimitiveGroup & | originalgrp, |
| GA_PrimitiveGroup & | ingrp, | ||
| GA_PrimitiveGroup & | outgrp, | ||
| GA_PrimitiveGroup & | overlapgrp, | ||
| UT_IntArray * | edges, | ||
| const GA_PrimitiveGroup & | othergrp, | ||
| GU_RayIntersect *& | inter, | ||
| bool | insidetest, | ||
| bool | inter_closed | ||
| ) |
| void GU_Cookie::cookie | ( | GU_Detail & | gdp, |
| int | generatecrease, | ||
| GA_PrimitiveGroup & | aingrp, | ||
| GA_PrimitiveGroup & | aoutgrp, | ||
| GA_PrimitiveGroup & | aoverlapgrp, | ||
| int | aclosed, | ||
| GA_PrimitiveGroup & | bingrp, | ||
| GA_PrimitiveGroup & | boutgrp, | ||
| GA_PrimitiveGroup & | boverlapgrp, | ||
| int | bclosed, | ||
| int | insidetest | ||
| ) |
Invoke the cookie operation.
The group of polygons to cookie must be setup with the setGroups function.
The [a|b][in|out|overlap]grps are the primitive groups to classify each clipped polygon piece into.
If a set of connected polygons doesn't intersect, and the insidetest is enabled, the insidedness of the polygons will be determined by sending a ray with the winding rule.
If generatecrease is set, instead of clipping the polygons, the line segments generated by poly-poly intersection will be generated.
| GA_Offset GU_Cookie::createEdgeVertex | ( | GA_WorkVertexBuffer & | vbuf, |
| guTrimInfo * | base, | ||
| int | edge, | ||
| float | t, | ||
| int | dir | ||
| ) |
The edge is poly(edge-1) to poly(edge).
| GEO_PrimPoly* GU_Cookie::createPoly | ( | guTrimInfo * | base, |
| const UT_Array< GA_Offset > & | vtxes, | ||
| bool | closed, | ||
| bool | preserve_groups = true |
||
| ) |
|
inline |
Definition at line 51 of file GU_Cookie.h.
|
inline |
Definition at line 63 of file GU_Cookie.h.
The call back from intersection tests: The two indices are the primitive numbers to intersect.
| void GU_Cookie::punchHole | ( | GEO_PrimPoly * | base, |
| GEO_PrimPoly * | hole | ||
| ) |
Punches a hole in the polygon base with the polygon hole. The appropriate bridges are formed.
Definition at line 65 of file GU_Cookie.h.
|
inline |
Definition at line 53 of file GU_Cookie.h.
Definition at line 64 of file GU_Cookie.h.
|
protected |
Definition at line 160 of file GU_Cookie.h.
|
protected |
Definition at line 146 of file GU_Cookie.h.
|
protected |
Definition at line 142 of file GU_Cookie.h.
|
protected |
Definition at line 154 of file GU_Cookie.h.
|
protected |
Definition at line 154 of file GU_Cookie.h.
|
protected |
Definition at line 159 of file GU_Cookie.h.
|
protected |
Definition at line 153 of file GU_Cookie.h.
|
protected |
Definition at line 153 of file GU_Cookie.h.
|
protected |
Definition at line 161 of file GU_Cookie.h.
|
protected |
Definition at line 143 of file GU_Cookie.h.
|
protected |
Definition at line 148 of file GU_Cookie.h.