15 #ifndef __GD_TrimLoop_h__
16 #define __GD_TrimLoop_h__
26 class gdTrimIntersection;
70 int64 getMemoryUsage(
bool inclusive)
const;
90 void close(
int connect_ends = 0);
103 void append(
GD_TrimLoop *loop,
int consolidate = 0,
109 void appendPoint(
float u,
float v);
113 int appendAtIntersect(
GD_TrimLoop *loop,
int deleteloop,
135 int isInsideJitter(
const UT_Vector2 &pt,
float tol = 1e-4F,
136 float dither = 1e-5F)
const;
137 int isInside(
const GD_TrimLoop &prim,
float tol = 1E-4F)
139 int isInside(
const UT_Vector2 &pt,
float tol = 1E-4F)
145 int isTrimmedIn(
float u,
float v,
152 int isTrimmedIn(
float u,
float v,
159 int isTrimmedInJitter(
float u,
float v,
164 void getParameterRange(
float &umin,
float &umax)
const;
167 float parametricDist(
float u1,
float u2)
const;
170 float parametricLength(
float u1,
float u2)
const;
190 float tol = 1E-4F)
const;
195 float tol = 1e-4F)
const;
200 float tol = 1e-4F)
const;
206 float tol = 1E-4F)
const;
212 float tol = 1E-4F,
int preservedirection = 1);
215 int startWalk(
float inc,
float minstep,
float maxstep,
218 int doWalk(
float &u,
float &
v);
232 int setLoopIds(
int id = 0);
246 int getMaxHeight()
const;
249 int getBaseDir()
const;
254 void print(
int i = 1,
int recurse = 1)
const;
258 int isHeadNearTail(
float tol=1E-4F)
const;
265 float tol = 1E-4F)
const;
268 float tol = 1E-4F)
const;
282 int alwayscounter = 0);
305 GD_TrimLoop *applyWindingRule(
int isfragmented = 0,
319 float tol = 1E-4F)
const;
324 int hit,
float tol = 1E-4F)
const;
327 void doIsoparm(
int isoparm,
float val,
float tol,
330 int &hit,
int &i)
const;
339 GD_TrimLoop *removeDegenerateLoops(
float tol=1E-4F);
345 void findDepths(
int depth);
348 int findMaxDepth()
const;
351 int getBaseTrimDir()
const;
354 void adjustDepths(
int deltadepth);
367 float myUStart, myULength;
370 gdTrimIntersection *myNextIntersection;
385 float myWalkUInc, myWalkMinStep2, myWalkMaxStep2;
386 float myWalkLastX, myWalkLastY;
OIIO_UTIL_API bool copy(string_view from, string_view to, std::string &err)
GLboolean GLboolean GLboolean GLboolean a
void reverse(I begin, I end)
GLuint GLsizei GLsizei * length
ImageBuf OIIO_API min(Image_or_Const A, Image_or_Const B, ROI roi={}, int nthreads=0)
ImageBuf OIIO_API flatten(const ImageBuf &src, ROI roi={}, int nthreads=0)
GLsizei GLsizei GLchar * source
GD_Detail * getDetail() const
GLdouble GLdouble GLint GLint order
GLboolean GLboolean GLboolean b
GD_TrimLoop * getChild() const
GD_TrimPiece * myTrimPieces
GLint GLint GLsizei GLsizei GLsizei depth
void setDetail(GD_Detail *gdp)
unsigned isClosed() const
GD_TrimPiece * myLastTrimPiece
ImageBuf OIIO_API cut(const ImageBuf &src, ROI roi={}, int nthreads=0)
unsigned isClockwise() const
IMATH_CONSTEXPR14 bool intersect(const Line3< T > &line, const Vec3< T > &v0, const Vec3< T > &v1, const Vec3< T > &v2, Vec3< T > &pt, Vec3< T > &barycentric, bool &front) IMATH_NOEXCEPT
ImageBuf OIIO_API max(Image_or_Const A, Image_or_Const B, ROI roi={}, int nthreads=0)
GD_TrimLoop * getNext() const
GLubyte GLubyte GLubyte GLubyte w
FMT_INLINE void print(format_string< T...> fmt, T &&...args)