16 #ifndef __GEO_PrimNURBCurve_h__
17 #define __GEO_PrimNURBCurve_h__
49 static bool forceValidDivisions(
int &
div,
int order,
bool closed);
56 int &cvoffset,
unsigned du = 0,
57 int uoffset = -1)
const override;
65 unsigned du=0,
int uoffset=-1)
const override;
69 int du=0)
const override;
92 int &maxbkp)
const override;
107 float sharpness = 0.0
f,
float bias = -1.0
f)
override;
139 float tolerance = 1.0
f,
165 void close(
int rounded = 1,
int preserveShape = 0)
override;
186 void open(
int preserveShape = 0,
int = 0)
override;
189 void toggleEndCondition();
192 bool getEndInterpolation()
const;
207 int unroll(
int append_pts = 1)
override;
213 int cycle(
int amount,
int keepSpan = 1)
override;
219 int loft(
int newcount,
int start=-1,
int stop=-1)
override;
240 int num,
int mult = 0,
244 int unrefine(
int knotIdx,
int num,
int mult = 0,
250 float getKnotRemovalBound(
int knotIdx,
int mult=0)
const;
286 const int *curvepointnumbers,
289 const bool closed =
false,
290 const bool interpends =
true);
295 const int *curvepointnumbers,
298 const bool closed =
false,
299 const bool interpends =
true);
322 void correctParam(
const UT_Vector4 &p,
float &u,
323 float distTol=1e-10F,
float angTol=1e-2F,
324 int maxIter=50)
const;
328 virtual int translateBkptsFixed(
const UT_IntArray &uindices,
332 virtual int transformBkptsFixed(
const UT_IntArray &uindices,
339 int translateBkptsNonFixed(
const UT_IntArray &uindices,
343 int transformBkptsNonFixed(
const UT_IntArray &uindices,
388 int alignKnot(
float k,
int &kidx,
389 int &cycfix,
int &interpfix);
390 void unAlignKnot(
int &kidx,
int cycfix,
int interpfix);
static GA_IntrinsicManager::Registrar registerIntrinsics(GA_PrimitiveDefinition &defn)
virtual int refineInt(float k, int r=1)
GA_API const UT_StringHolder div
virtual int domainRangeOfCV(int cvidx, int &mink, int &maxk) const =0
void reverse() override
Reverse the order of vertices.
int attach(const GEO_Face &face, int blend=1, float bias=0.5f, float tolerance=1.0f, int unrefine=1, GA_PointGroup *ptgroup=0) override
virtual int breakpointRangeOfCV(int cvidx, int &minbkp, int &maxbkp) const =0
#define SYS_DEPRECATED_PUSH_DISABLE()
#define SYS_DEPRECATED_POP_DISABLE()
virtual int loft(int newcount, int start=-1, int stop=-1)=0
virtual int warp(float u, const UT_Vector3 &delta, GA_AttributeRefMap &map, float sharpness=0.0f, float bias=-1.0f)=0
exint GA_Size
Defines the bit width for index and offset types in GA.
virtual int transformBreakpoints(const UT_IntArray &uindices, const UT_Matrix4 &matx, int fixbkpts=1, GA_PointGroup *ptgroup=NULL, GEO_Delta *geodelta=0)=0
#define GA_INVALID_OFFSET
vint4 blend(const vint4 &a, const vint4 &b, const vbool4 &mask)
~GEO_PrimNURBCurve() override
virtual GA_Size appendVertex(GA_Offset ppt)
GA_API const UT_StringHolder trans
virtual int translateBreakpoints(const UT_IntArray &uindices, const UT_Vector3 &delta, int fixbkpts=1, GA_PointGroup *ptgroup=NULL, GEO_Delta *geodelta=0)=0
virtual GEO_Curve * extract(float ustart, float ustop) const =0
int refine(float k, GA_AttributeRefMap &gah, int r=1)
virtual GD_Face * planar(GD_Detail &dgdp, int copyxy=0) const =0
virtual const GA_PrimitiveJSON * getJSON() const =0
Provide a JSON interface to a primitive.
fpreal calcPerimeter() const override
Bezier or NURBS basis classes which maintain knot vectors.
virtual GA_Basis * newBasis() const =0
GEO_PrimNURBCurve(GA_Detail *d, GA_Offset offset=GA_INVALID_OFFSET)
NURBS basis classes which maintain knot vectors.
GLdouble GLdouble GLint GLint order
A handle to simplify manipulation of multiple attributes.
virtual void close(int rounded=1, int preserve_shape=0)
static GA_IntrinsicManager::Registrar registerIntrinsics(GA_PrimitiveDefinition &defn)
virtual int raiseOrderRefMap(int neworder, GA_AttributeRefMap &map)=0
virtual int raiseOrderInt(int neworder)=0
virtual int cycle(int amount, int=1)
virtual int subdivideFloat(float u)
virtual int refineRefMap(float k, GA_AttributeRefMap &gah, int r=1)
virtual int subdivideRefMap(float u, GA_AttributeRefMap &map)
Container class for all geometry.
virtual GA_Size insertVertex(GA_Offset ppt, GA_Size where=0)
Definition of a geometric primitive.
virtual void reparameterize(GA_ParameterizationType ptype)=0
virtual int evaluateBasis(float u, float *ubvals, int &cvoffset, unsigned du=0, int uoffset=-1) const =0
virtual int evaluateBreakpoint(int uidx, UT_Vector4 &pos, int du=0) const =0
virtual float getKnotLengths(GA_ParameterizationType ptype, UT_Array< float > &lengths) const =0
GLdouble GLdouble GLint GLint uorder
virtual int deleteVertex(GA_Size num)
static GA_PrimitiveFamilyMask buildFamilyMask()
virtual void open(int preserve_shape=0, int safe=0)
virtual int unroll(int append_pts=1)
virtual int evaluateBasisDerivs(float u, float bmatx[][GA_MAXORDER], int &cvoffset, unsigned du=0, int uoffset=-1) const =0
GLsizei GLenum GLenum GLuint GLenum GLsizei * lengths
static GA_PrimitiveFamilyMask buildFamilyMask()
virtual void setBasisCopy(const GA_Basis *basis)=0
static GA_Offset buildBlock(GA_PrimitiveTypeId type, GA_Detail *detail, const GA_Offset startpt, const GA_Size npoints, const GEO_PolyCounts &facesizelist, const int *facepointnumbers, const bool closed=true)