14 #ifndef __GD_PrimNURBCurve_h__
15 #define __GD_PrimNURBCurve_h__
37 int order = 4,
int closed = 0,
38 int clamped = 1,
int appendPts = 1);
47 int &cvoffset,
unsigned du = 0,
48 int uoffset = -1)
const override;
57 int &cvoffset,
unsigned du=0,
58 int uoffset=-1)
const override;
69 unsigned du=0)
const override;
76 int &mink,
int &maxk)
const override;
81 void close(
int rounded = 1,
int preserveShape = 0)
override;
84 void open(
int preserveShape = 0,
int = 0)
override;
87 short interpolatesEnds()
const;
88 void toggleEndCondition();
105 int cycle(
int amount,
int keepSpan = 1)
override;
131 int create(
int nelems,
int order=4,
int closed = 0,
132 int interpEnds = 1,
int appendPoints = 1);
134 friend class GD_PrimitiveFactory;
virtual int evaluateBasis(fpreal u, fpreal *ubvals, int &cvoffset, unsigned du=0, int uoffset=-1) const =0
virtual GA_Size appendVertex(GA_Offset ptoff=GA_INVALID_OFFSET)
bool evaluateBreakSegm(int uStartIdx, int uStopIdx, int lod, UT_Vector3Array &pos, unsigned du=0) const override
virtual int evaluateBasisDerivs(fpreal u, fpreal bmatx[][GA_MAXORDER], int &cvoffset, unsigned du=0, int uoffset=-1) const =0
virtual GD_TrimLoop * trimLoop(float ustart, float ustop) const =0
virtual void open(int preserveShape=0, int safe=0)
static GA_IntrinsicManager::Registrar rerIntrinsics(GA_PrimitiveDefinition &definition)
exint GA_Size
Defines the bit width for index and offset types in GA.
#define GA_INVALID_OFFSET
static GA_IntrinsicManager::Registrar registerIntrinsics(GA_PrimitiveDefinition &definition)
Bezier or NURBS basis classes which maintain knot vectors.
GD_PrimNURBCurve(GD_Detail *d, GA_Offset offset=GA_INVALID_OFFSET)
GLdouble GLdouble GLint GLint order
virtual void close(int rounded=1, int preserveShape=0)
virtual int deleteVertex(GA_Size i)
virtual int domainRangeOfCV(int cvidx, int &mink, int &maxk) const =0
virtual int cycle(int amount, int=1)
~GD_PrimNURBCurve() override
Definition of a geometric primitive.
virtual const GA_PrimitiveDefinition & getTypeDef() const =0
int create(GD_Curve *crv, int nelems, int closed, int appendPoints=1)
virtual GA_Size insertVertex(GA_Offset ptoff=GA_INVALID_OFFSET, GA_Size where=0)
virtual GA_Basis * newBasis() const =0