#include <GD_TrimLoop.h>
Public Member Functions | |
| GD_TrimLoop () | |
| GD_TrimLoop (GD_TrimPiece *curve) | |
| ~GD_TrimLoop () | |
| int | evaluate (float u, UT_Vector2 &pos) const |
| int | evaluate (float u, UT_Vector2 &pos, UT_Vector2 &der) const |
| int | evaluateHead (UT_Vector2 &pos) const |
| int | evaluateTail (UT_Vector2 &pos) const |
| void | evaluateNormal (UT_Vector3 &normal) const |
| void | findDirection () |
| unsigned | isClosed () const |
| void | close (int connect_ends=0) |
| float | length () const |
| unsigned | isClockwise () const |
| void | appendLoop (GD_TrimLoop *loop) |
| void | append (GD_TrimLoop *loop, int consolidate=0, int deleteloop=0, int join=0) |
| void | appendPoint (float u, float v) |
| int | appendAtIntersect (GD_TrimLoop *loop, int deleteloop, float tol=1E-4F) |
| void | append (GD_TrimPiece *piece) |
| GD_TrimLoop * | copy () const |
| GD_TrimLoop * | copyThis () const |
| void | reverse () |
| void | reverseThis () |
| int | isInsideJitter (const UT_Vector2 &pt, float tol=1e-4F, float dither=1e-5F) const |
| int | isInside (const GD_TrimLoop &prim, float tol=1E-4F) const |
| int | isInside (const UT_Vector2 &pt, float tol=1E-4F) const |
| int | isTrimmedIn (const UT_Vector2 &pt, GD_TrimRule rule=GD_TrimWindingRule) const |
| int | isTrimmedIn (float u, float v, GD_TrimRule rule=GD_TrimWindingRule) const |
| int | isTrimmedIn (const UT_Vector2 &pt, UT_IntArray &validloops, GD_TrimRule rule=GD_TrimWindingRule) const |
| int | isTrimmedIn (float u, float v, UT_IntArray &validloops, GD_TrimRule rule=GD_TrimWindingRule) const |
| int | isTrimmedInJitter (const UT_Vector2 &pt, GD_TrimRule rule=GD_TrimWindingRule) const |
| int | isTrimmedInJitter (float u, float v, GD_TrimRule rule=GD_TrimWindingRule) const |
| int | isTrimmedIn (GD_TrimLoop *loop, GD_TrimRule rule=GD_TrimWindingRule) const |
| void | getParameterRange (float &umin, float &umax) const |
| float | parametricDist (float u1, float u2) const |
| float | parametricLength (float u1, float u2) const |
| GD_TrimLoop * | cut (float u1, float u2) const |
| void | cutAtIsoparm (GD_TrimLoop **left, GD_TrimLoop **right, GD_IsoparmDirection iso, float val, float tol=1e-4f) |
| void | cutAtTrim (GD_TrimLoop **inside, GD_TrimLoop **outside, const GD_TrimLoop *cutter, GD_TrimLoop *source) |
| int | intersect (const GD_TrimLoop &loop, UT_RefArray< GD_TrimHitInfo > &hitlist, float tol=1E-4F) const |
| int | intersect (GD_TrimPiece &piece, UT_RefArray< GD_TrimHitInfo > &hitlist, float tol=1e-4F) const |
| int | intersectAll (const GD_TrimLoop &loop, UT_RefArray< GD_TrimHitInfo > &hitlist, float tol=1e-4F) const |
| int | intersectDomain (const UT_BoundingRect &brect, UT_RefArray< GD_TrimHitInfo > &hitlist, float tol=1E-4F) const |
| GD_TrimLoop * | domainClip (const UT_BoundingRect &brect, float tol=1E-4F, int preservedirection=1) |
| int | startWalk (float inc, float minstep, float maxstep, float &u, float &v) |
| int | doWalk (float &u, float &v) |
| void | endWalk () |
| int | getData (UT_IntArray &ncurves, UT_IntArray &order, UT_IntArray &ncvs, UT_FloatArray &knots, UT_FloatArray &min, UT_FloatArray &max, UT_FloatArray &u, UT_FloatArray &v, UT_FloatArray &w) const |
| int | setLoopIds (int id=0) |
| int | getId () const |
| GD_TrimLoop * | getNext () const |
| GD_TrimLoop * | getChild () const |
| GD_Detail * | getDetail () const |
| void | setDetail (GD_Detail *gdp) |
| GD_TrimLoop * | preprocessLoops (GD_TrimRule rule, int altitude=0) |
| int | getMaxHeight () const |
| int | getBaseDir () const |
| GD_TrimLoop * | flatten () |
| void | print (int i=1, int recurse=1) const |
| int | isHeadNearTail (float tol=1E-4F) const |
| int | hitHead (const UT_BoundingRect &brect, UT_RefArray< GD_TrimHitInfo > &hitlist, float tol=1E-4F) const |
| int | hitTail (const UT_BoundingRect &brect, UT_RefArray< GD_TrimHitInfo > &hitlist, float tol=1E-4F) const |
| int | getPoints (int numdivs, UT_Vector3Array &domain, int usebreak) |
| GD_TrimPiece * | getPiece (GD_TrimPiece *prev_piece) const |
Static Public Member Functions | |
| static GD_TrimLoop * | domainBridge (const UT_BoundingRect &brect, const UT_Vector2 &posa, float ua, GD_DomainBoundary a, const UT_Vector2 &posb, float ub, GD_DomainBoundary b, float tol, const UT_BoundingRect &bbox, int alwayscounter=0) |
Public Attributes | |
| UT_BoundingRect | myBBox |
| GD_TrimPiece * | myTrimPieces |
| GD_TrimPiece * | myLastTrimPiece |
Protected Member Functions | |
| void | snapPieces () |
| GD_TrimLoop * | applyWindingRule (int isfragmented=0, int altitude=0, int *maxdepth=0, int *basedir=0) |
| GD_TrimLoop * | fragment (const GD_TrimLoop *loop) const |
| int | intersect (float val, GD_IsoparmDirection isoparm, UT_RefArray< GD_TrimHitInfo > &hitlist, float tol=1E-4F) const |
| int | processIsoparmHits (UT_RefArray< GD_TrimHitInfo > &hits, int hit, float tol=1E-4F) const |
| void | doIsoparm (int isoparm, float val, float tol, GD_DomainBoundary code, UT_RefArray< GD_TrimHitInfo > &hitlist, int &hit, int &i) const |
| GD_TrimLoop * | addPossibleChild (GD_TrimLoop *loop) |
| GD_TrimLoop * | removeDegenerateLoops (float tol=1E-4F) |
| GD_TrimLoop * | removeRedundantLoops () |
| void | findDepths (int depth) |
| int | findMaxDepth () const |
| int | getBaseTrimDir () const |
| void | adjustDepths (int deltadepth) |
Definition at line 67 of file GD_TrimLoop.h.
| GD_TrimLoop::GD_TrimLoop | ( | ) |
| GD_TrimLoop::GD_TrimLoop | ( | GD_TrimPiece * | curve | ) |
| GD_TrimLoop::~GD_TrimLoop | ( | ) |
| GD_TrimLoop* GD_TrimLoop::addPossibleChild | ( | GD_TrimLoop * | loop | ) | [protected] |
| void GD_TrimLoop::adjustDepths | ( | int | deltadepth | ) | [protected] |
| void GD_TrimLoop::append | ( | GD_TrimPiece * | piece | ) |
| void GD_TrimLoop::append | ( | GD_TrimLoop * | loop, | |
| int | consolidate = 0, |
|||
| int | deleteloop = 0, |
|||
| int | join = 0 | |||
| ) |
| int GD_TrimLoop::appendAtIntersect | ( | GD_TrimLoop * | loop, | |
| int | deleteloop, | |||
| float | tol = 1E-4F | |||
| ) |
| void GD_TrimLoop::appendLoop | ( | GD_TrimLoop * | loop | ) |
| void GD_TrimLoop::appendPoint | ( | float | u, | |
| float | v | |||
| ) |
| GD_TrimLoop* GD_TrimLoop::applyWindingRule | ( | int | isfragmented = 0, |
|
| int | altitude = 0, |
|||
| int * | maxdepth = 0, |
|||
| int * | basedir = 0 | |||
| ) | [protected] |
| void GD_TrimLoop::close | ( | int | connect_ends = 0 |
) |
| GD_TrimLoop* GD_TrimLoop::copy | ( | ) | const |
| GD_TrimLoop* GD_TrimLoop::copyThis | ( | ) | const |
| GD_TrimLoop* GD_TrimLoop::cut | ( | float | u1, | |
| float | u2 | |||
| ) | const |
| void GD_TrimLoop::cutAtIsoparm | ( | GD_TrimLoop ** | left, | |
| GD_TrimLoop ** | right, | |||
| GD_IsoparmDirection | iso, | |||
| float | val, | |||
| float | tol = 1e-4f | |||
| ) |
| void GD_TrimLoop::cutAtTrim | ( | GD_TrimLoop ** | inside, | |
| GD_TrimLoop ** | outside, | |||
| const GD_TrimLoop * | cutter, | |||
| GD_TrimLoop * | source | |||
| ) |
| void GD_TrimLoop::doIsoparm | ( | int | isoparm, | |
| float | val, | |||
| float | tol, | |||
| GD_DomainBoundary | code, | |||
| UT_RefArray< GD_TrimHitInfo > & | hitlist, | |||
| int & | hit, | |||
| int & | i | |||
| ) | const [protected] |
| static GD_TrimLoop* GD_TrimLoop::domainBridge | ( | const UT_BoundingRect & | brect, | |
| const UT_Vector2 & | posa, | |||
| float | ua, | |||
| GD_DomainBoundary | a, | |||
| const UT_Vector2 & | posb, | |||
| float | ub, | |||
| GD_DomainBoundary | b, | |||
| float | tol, | |||
| const UT_BoundingRect & | bbox, | |||
| int | alwayscounter = 0 | |||
| ) | [static] |
| GD_TrimLoop* GD_TrimLoop::domainClip | ( | const UT_BoundingRect & | brect, | |
| float | tol = 1E-4F, |
|||
| int | preservedirection = 1 | |||
| ) |
| int GD_TrimLoop::doWalk | ( | float & | u, | |
| float & | v | |||
| ) |
| void GD_TrimLoop::endWalk | ( | ) |
| int GD_TrimLoop::evaluate | ( | float | u, | |
| UT_Vector2 & | pos, | |||
| UT_Vector2 & | der | |||
| ) | const |
| int GD_TrimLoop::evaluate | ( | float | u, | |
| UT_Vector2 & | pos | |||
| ) | const |
| int GD_TrimLoop::evaluateHead | ( | UT_Vector2 & | pos | ) | const |
| void GD_TrimLoop::evaluateNormal | ( | UT_Vector3 & | normal | ) | const |
| int GD_TrimLoop::evaluateTail | ( | UT_Vector2 & | pos | ) | const |
| void GD_TrimLoop::findDepths | ( | int | depth | ) | [protected] |
| void GD_TrimLoop::findDirection | ( | ) |
| int GD_TrimLoop::findMaxDepth | ( | ) | const [protected] |
| GD_TrimLoop* GD_TrimLoop::flatten | ( | ) |
| GD_TrimLoop* GD_TrimLoop::fragment | ( | const GD_TrimLoop * | loop | ) | const [protected] |
| int GD_TrimLoop::getBaseDir | ( | ) | const |
| int GD_TrimLoop::getBaseTrimDir | ( | ) | const [protected] |
| GD_TrimLoop* GD_TrimLoop::getChild | ( | ) | const [inline] |
Definition at line 242 of file GD_TrimLoop.h.
| int GD_TrimLoop::getData | ( | UT_IntArray & | ncurves, | |
| UT_IntArray & | order, | |||
| UT_IntArray & | ncvs, | |||
| UT_FloatArray & | knots, | |||
| UT_FloatArray & | min, | |||
| UT_FloatArray & | max, | |||
| UT_FloatArray & | u, | |||
| UT_FloatArray & | v, | |||
| UT_FloatArray & | w | |||
| ) | const |
| GD_Detail* GD_TrimLoop::getDetail | ( | ) | const [inline] |
Definition at line 244 of file GD_TrimLoop.h.
| int GD_TrimLoop::getId | ( | ) | const [inline] |
Definition at line 239 of file GD_TrimLoop.h.
| int GD_TrimLoop::getMaxHeight | ( | ) | const |
| GD_TrimLoop* GD_TrimLoop::getNext | ( | ) | const [inline] |
Definition at line 241 of file GD_TrimLoop.h.
| void GD_TrimLoop::getParameterRange | ( | float & | umin, | |
| float & | umax | |||
| ) | const |
| GD_TrimPiece* GD_TrimLoop::getPiece | ( | GD_TrimPiece * | prev_piece | ) | const |
Walks over all trim pieces of this loop. Pass NULL to it in the first call, and then the current piece in all subsequent calls. Once the traversal reaches the end, a NULL pointer is returned.
| int GD_TrimLoop::getPoints | ( | int | numdivs, | |
| UT_Vector3Array & | domain, | |||
| int | usebreak | |||
| ) |
| int GD_TrimLoop::hitHead | ( | const UT_BoundingRect & | brect, | |
| UT_RefArray< GD_TrimHitInfo > & | hitlist, | |||
| float | tol = 1E-4F | |||
| ) | const |
| int GD_TrimLoop::hitTail | ( | const UT_BoundingRect & | brect, | |
| UT_RefArray< GD_TrimHitInfo > & | hitlist, | |||
| float | tol = 1E-4F | |||
| ) | const |
| int GD_TrimLoop::intersect | ( | float | val, | |
| GD_IsoparmDirection | isoparm, | |||
| UT_RefArray< GD_TrimHitInfo > & | hitlist, | |||
| float | tol = 1E-4F | |||
| ) | const [protected] |
| int GD_TrimLoop::intersect | ( | GD_TrimPiece & | piece, | |
| UT_RefArray< GD_TrimHitInfo > & | hitlist, | |||
| float | tol = 1e-4F | |||
| ) | const |
| int GD_TrimLoop::intersect | ( | const GD_TrimLoop & | loop, | |
| UT_RefArray< GD_TrimHitInfo > & | hitlist, | |||
| float | tol = 1E-4F | |||
| ) | const |
| int GD_TrimLoop::intersectAll | ( | const GD_TrimLoop & | loop, | |
| UT_RefArray< GD_TrimHitInfo > & | hitlist, | |||
| float | tol = 1e-4F | |||
| ) | const |
| int GD_TrimLoop::intersectDomain | ( | const UT_BoundingRect & | brect, | |
| UT_RefArray< GD_TrimHitInfo > & | hitlist, | |||
| float | tol = 1E-4F | |||
| ) | const |
| unsigned GD_TrimLoop::isClockwise | ( | void | ) | const [inline] |
Definition at line 102 of file GD_TrimLoop.h.
| unsigned GD_TrimLoop::isClosed | ( | ) | const [inline] |
Definition at line 93 of file GD_TrimLoop.h.
| int GD_TrimLoop::isHeadNearTail | ( | float | tol = 1E-4F |
) | const |
| int GD_TrimLoop::isInside | ( | const UT_Vector2 & | pt, | |
| float | tol = 1E-4F | |||
| ) | const |
| int GD_TrimLoop::isInside | ( | const GD_TrimLoop & | prim, | |
| float | tol = 1E-4F | |||
| ) | const |
| int GD_TrimLoop::isInsideJitter | ( | const UT_Vector2 & | pt, | |
| float | tol = 1e-4F, |
|||
| float | dither = 1e-5F | |||
| ) | const |
| int GD_TrimLoop::isTrimmedIn | ( | GD_TrimLoop * | loop, | |
| GD_TrimRule | rule = GD_TrimWindingRule | |||
| ) | const |
| int GD_TrimLoop::isTrimmedIn | ( | float | u, | |
| float | v, | |||
| UT_IntArray & | validloops, | |||
| GD_TrimRule | rule = GD_TrimWindingRule | |||
| ) | const |
| int GD_TrimLoop::isTrimmedIn | ( | const UT_Vector2 & | pt, | |
| UT_IntArray & | validloops, | |||
| GD_TrimRule | rule = GD_TrimWindingRule | |||
| ) | const |
| int GD_TrimLoop::isTrimmedIn | ( | float | u, | |
| float | v, | |||
| GD_TrimRule | rule = GD_TrimWindingRule | |||
| ) | const |
| int GD_TrimLoop::isTrimmedIn | ( | const UT_Vector2 & | pt, | |
| GD_TrimRule | rule = GD_TrimWindingRule | |||
| ) | const |
| int GD_TrimLoop::isTrimmedInJitter | ( | float | u, | |
| float | v, | |||
| GD_TrimRule | rule = GD_TrimWindingRule | |||
| ) | const |
| int GD_TrimLoop::isTrimmedInJitter | ( | const UT_Vector2 & | pt, | |
| GD_TrimRule | rule = GD_TrimWindingRule | |||
| ) | const |
| float GD_TrimLoop::length | ( | ) | const |
| float GD_TrimLoop::parametricDist | ( | float | u1, | |
| float | u2 | |||
| ) | const |
| float GD_TrimLoop::parametricLength | ( | float | u1, | |
| float | u2 | |||
| ) | const |
| GD_TrimLoop* GD_TrimLoop::preprocessLoops | ( | GD_TrimRule | rule, | |
| int | altitude = 0 | |||
| ) |
| void GD_TrimLoop::print | ( | int | i = 1, |
|
| int | recurse = 1 | |||
| ) | const |
| int GD_TrimLoop::processIsoparmHits | ( | UT_RefArray< GD_TrimHitInfo > & | hits, | |
| int | hit, | |||
| float | tol = 1E-4F | |||
| ) | const [protected] |
| GD_TrimLoop* GD_TrimLoop::removeDegenerateLoops | ( | float | tol = 1E-4F |
) | [protected] |
| GD_TrimLoop* GD_TrimLoop::removeRedundantLoops | ( | ) | [protected] |
| void GD_TrimLoop::reverse | ( | ) |
| void GD_TrimLoop::reverseThis | ( | ) |
| void GD_TrimLoop::setDetail | ( | GD_Detail * | gdp | ) | [inline] |
Definition at line 245 of file GD_TrimLoop.h.
| int GD_TrimLoop::setLoopIds | ( | int | id = 0 |
) |
| void GD_TrimLoop::snapPieces | ( | ) | [protected] |
| int GD_TrimLoop::startWalk | ( | float | inc, | |
| float | minstep, | |||
| float | maxstep, | |||
| float & | u, | |||
| float & | v | |||
| ) |
Definition at line 363 of file GD_TrimLoop.h.
Definition at line 367 of file GD_TrimLoop.h.
Definition at line 366 of file GD_TrimLoop.h.
1.5.9