14 #ifndef __GD_TrimPiece_h_
15 #define __GD_TrimPiece_h_
27 class gdTrimIntersection;
35 return (
t==x.
t && u==x.
u && d2==x.
d2);
54 int64 mem = inclusive ?
sizeof(*this) : 0;
55 mem += myCV.getMemoryUsage(
false);
58 mem += myNext->getMemoryUsage(
true);
62 void init(
int order,
float ustart,
float ulength,
83 float tol = 0.0001F) = 0;
86 virtual int intersectIsoparm(
float val,
int isoparm,
88 float tol = 1E-4F,
int depth = 4) = 0;
93 virtual unsigned getPrimitiveTypeId()
const = 0;
95 virtual int evaluate(
float u,
UT_Vector2 &pos)
const;
99 virtual int evaluateUnit(
float u,
UT_Vector2 &pos)
const=0;
100 virtual int evaluateUnit(
float u,
UT_Vector2 &pos,
108 virtual void buildBBox();
131 void buildCoeff(
UT_MatrixF &
A,
int index1,
int index2);
143 float tol = 0.0001F)
override;
148 float tol = 0.0001F);
152 float tol = 0.0001F);
157 float tol = 1E-4F,
int depth = 4)
override;
174 float tol = 1E-4F)
const;
178 float ucut,
float tol = 1E-4F)
const;
192 int64 mem = inclusive ?
sizeof(*this) : 0;
194 mem += myCurve.getMemoryUsage(
false);
208 float tol = 0.0001F)
override;
213 float tol = 1E-4F,
int depth = 4)
override;
227 void buildCurve(
int idx);
228 void appendPoint(
float x,
float y);
virtual int evaluateUnit(float u, UT_Vector2 &pos) const =0
OIIO_UTIL_API bool copy(string_view from, string_view to, std::string &err)
void reverse(I begin, I end)
GLuint GLsizei GLsizei * length
virtual GD_TrimPiece * cut(float u1, float u2) const =0
int64 getMemoryUsage(bool inclusive) const override
virtual GD_Face * createFace(GD_Detail *gdp)=0
unsigned getPrimitiveTypeId() const override
GLdouble GLdouble GLint GLint order
virtual int intersectIsoparm(float val, int isoparm, UT_Array< GD_TrimHitInfo > &hitlist, float tol=1E-4F, int depth=4)=0
unsigned getPrimitiveTypeId() const override
GLint GLint GLsizei GLsizei GLsizei depth
int operator==(const GD_TrimHitInfo &x) const
ImageBuf OIIO_API cut(const ImageBuf &src, ROI roi={}, int nthreads=0)
GD_TrimPieceRBezCurve myCurve
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
virtual GD_TrimPiece * copy()=0
FMT_INLINE void print(format_string< T...> fmt, T &&...args)
virtual int64 getMemoryUsage(bool inclusive) const
virtual int intersect(GD_TrimPiece &curve, UT_Array< GD_TrimHitInfo > &hitlist, float tol=0.0001F)=0
gdTrimIntersection * isect