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.