#include <UT_Convex.h>
|
| static bool | canSplitQuad02 (const UT_Vector3 &p0, const UT_Vector3 &p1, const UT_Vector3 &p2, const UT_Vector3 &p3) |
| |
| static bool | isQuadConvex (const UT_Vector3 &p0, const UT_Vector3 &p1, const UT_Vector3 &p2, const UT_Vector3 &p3) |
| |
| template<typename T = fpreal> |
| static constexpr T | smallAngleTolerance () |
| |
| template<typename T > |
| static bool | shouldFlipEdge (const UT_Vector2T< T > &a, const UT_Vector2T< T > &b, const UT_Vector2T< T > &c, const UT_Vector2T< T > &d) |
| |
| template<typename PTS , typename TRIS , typename ON_FLIP > |
| static void | flipEdgesToAvoidSmallAngles (const PTS &pts, TRIS &tripts, ON_FLIP &&on_flip) |
| |
| template<typename PTS , typename TRIS > |
| static void | flipEdgesToAvoidSmallAngles (const PTS &pts, TRIS &tripts) |
| | As above, without a flip callback. More...
|
| |
Definition at line 28 of file UT_Convex.h.
| virtual UT_Convex::~UT_Convex |
( |
| ) |
|
|
inlinevirtual |
| virtual void UT_Convex::beginPolygon |
( |
int |
npoints, |
|
|
bool |
lastone |
|
) |
| |
|
pure virtual |
beginPolygon will be told when the last polygon is being added
Implemented in GU_TrimTesselator.
Returns true if splitting the specified quad along the line from point 0 to point 2 is possible
Definition at line 70 of file UT_Convex.h.
| void UT_Convex::convex |
( |
exint |
maxsides, |
|
|
bool |
allowinterrupt = true, |
|
|
bool |
avoiddegeneracy = false |
|
) |
| |
| virtual void UT_Convex::earlyTermination |
( |
| ) |
|
|
virtual |
If the last polygon to be added won't be added after all, e.g. if it is degenerate and avoiddegeneracy is true, the earlyTermination() method will be called. This is so that the caller can clean up properly, since beginPolygon will not have been called with lastone==true. By default, this method does nothing.
| virtual void UT_Convex::endPolygon |
( |
| ) |
|
|
pure virtual |
template<typename PTS , typename TRIS , typename ON_FLIP >
| static void UT_Convex::flipEdgesToAvoidSmallAngles |
( |
const PTS & |
pts, |
|
|
TRIS & |
tripts, |
|
|
ON_FLIP && |
on_flip |
|
) |
| |
|
inlinestatic |
Flips edges of the triangulation tripts (three corner indices per triangle) until the smallest angles are maximized. pts(i) is the 2D position of corner i. on_flip(tri, tri2, i, j) is called before each flip of tri's edge i, shared with tri2's edge j.
Definition at line 204 of file UT_Convex.h.
template<typename PTS , typename TRIS >
| static void UT_Convex::flipEdgesToAvoidSmallAngles |
( |
const PTS & |
pts, |
|
|
TRIS & |
tripts |
|
) |
| |
|
inlinestatic |
As above, without a flip callback.
Definition at line 327 of file UT_Convex.h.
| virtual int64 UT_Convex::getMemoryUsage |
( |
bool |
inclusive | ) |
const |
|
virtual |
| virtual int UT_Convex::getPointCount |
( |
| ) |
const |
|
pure virtual |
It's the sub-class responsibility to fill these out...
Implemented in GU_TrimTesselator.
| virtual void UT_Convex::initialize |
( |
| ) |
|
|
virtual |
| bool UT_Convex::isConcave |
( |
| ) |
|
Returns true if the specified quad is convex. NOTE: This may return false negatives for highly non-planar quads, since the definition of convex breaks down.
Definition at line 86 of file UT_Convex.h.
| virtual void UT_Convex::polyVertex |
( |
int |
num | ) |
|
|
pure virtual |
Returns true if, for triangles (a,b,c) and (c,b,d) sharing edge b-c, the diagonal a-d gives the larger smallest angle. This is the "Avoid
Small Angles" test of SOP_Divide and handles degenerate input.
Definition at line 121 of file UT_Convex.h.
template<typename T = fpreal>
| static constexpr T UT_Convex::smallAngleTolerance |
( |
| ) |
|
|
inlinestatic |
Relative size below which a triangle or diagonal counts as degenerate. A template so that it is always inlined, never imported from the DLL.
Definition at line 104 of file UT_Convex.h.
| UT_ConvexPoint* UT_Convex::myData |
|
protected |
The documentation for this class was generated from the following file: