13 #ifndef __GU_PrimNURBCurve_h__ 
   14 #define __GU_PrimNURBCurve_h__ 
   65         return *theDefinition;
 
   71                                      float tmax = 1E17F, 
float tol = 1E-12F,
 
   74                                      float *u = 0, 
float *
v = 0, 
 
   75                                      int ignoretrim = 1) 
const override;
 
   79                                   float tol = 0.01F, 
int ignoretrim=1) 
const override;
 
   88                                        int order = 4, 
int closed = 0,
 
   89                                        int interpEnds = 1, 
int appendPoints= 1);
 
  104                              int &ind1, 
int &ind2, 
int keep) 
override;
 
  107     void                 openAt(
float u) 
override;
 
  109     virtual void         rotateTo(
float u);
 
  116                                      bool nonrational) 
const override;
 
  124                                     const UT_Vector &dest, 
float tol = 1e-2F);
 
  128                                             int du=0) 
const override;
 
  151     int                  removeKnot(
int knotIdx, 
int num, 
int mult=0,
 
  153                                     int uniqueInteriorCvs=0);
 
  165                                      float tol=1e-1F, 
int num=0,
 
  172     int                  interpGlobal(
const GA_Range &point_range,
 
  173                             int order=4, 
int wrapped=0,
 
  177                             const bool elevate_order_if_required = 
true);
 
  179                             int order=4, 
int wrapped=0,
 
  183                             const bool elevate_order_if_required = 
true);
 
  190                             const bool elevate_order_if_required = 
true);
 
  198                             const bool elevate_order_if_required = 
true);
 
  201                                      int order=4, 
int wrapped=0, 
int corner=0);
 
  203                                      int order=4, 
int wrapped=0, 
int corner=0);
 
  206     int                  interpBreakpoints(
 
  208                             int order=4, 
int wrapped=0,
 
  211                             const bool elevate_order_if_required = 
true);
 
  212     int                  interpBreakpoints(
 
  214                             int order=4, 
int wrapped=0,
 
  217                             const bool elevate_order_if_required = 
true);
 
  224                                       int order=4, 
int wrapped=0,
 
  225                                       float tol=1e-1
f, 
float smooth=0.0F,
 
  226                                       int noMultipleKnots=1);
 
  236     static int           interpGlobal(
const UT_MatrixF &dataPts,
 
  244     static int           interpGlobal(
const UT_MatrixF &dataPts,
 
  251     static int           interpGlobal(
const UT_MatrixF &dataPts,
 
  258     static int           interpGlobal(
const UT_MatrixF &dataPts,
 
  284     int                 create(
int nelems, 
int order=4, 
int closed = 0,
 
  285                                int interpEnds = 1, 
int appendPoints = 1);
 
  294     friend class                         GU_PrimitiveFactory;
 
virtual GEO_Curve * cut(float u1, float u2, int &ind1, int &ind2, int keep)=0
 
virtual int64 getMemoryUsage() const 
 
#define GA_INVALID_OFFSET
 
int evaluateBreakpoint(int uidx, UT_Vector4 &pos, int du=0) const override
 
virtual bool fit(GA_AttributeOperand &d, GA_AttributeOperand &a, GA_AttributeOperand &omin, GA_AttributeOperand &omax, GA_AttributeOperand &nmin, GA_AttributeOperand &nmax) const 
d = SYSfit(a, omin, omax, nmin, nmax); 
 
A range of elements in an index-map. 
 
GLint GLint GLsizei GLint GLenum GLenum type
 
virtual void countMemory(UT_MemoryCounter &counter) const 
 
~GU_PrimNURBCurve() override
 
GLsizei GLsizei GLchar * source
 
NURBS basis classes which maintain knot vectors. 
 
virtual int translateBkptsFixed(const UT_IntArray &uindices, const UT_Vector3 &delta, GA_PointGroup *ptgroup=NULL, GEO_Delta *geodelta=0)
 
GLdouble GLdouble GLint GLint order
 
virtual GEO_Face * reconfigure(unsigned type, int order, bool open, bool interpends, bool nonrational) const =0
 
virtual int transformBkptsFixed(const UT_IntArray &uindices, const UT_Matrix4 &matx, GA_PointGroup *ptgroup=NULL, GEO_Delta *geodelta=0)
 
virtual void openAt(float u)=0
Open the primitive at the given domain value. 
 
virtual void getRangeBBox(const UT_Interval &u, UT_BoundingBox &bbox, const GA_PwHandleRO &h) const =0
 
GLfloat GLfloat GLfloat GLfloat h
 
GA_API const UT_StringHolder parms
 
virtual bool smooth(GA_AttributeOperand &d, GA_AttributeOperand &min, GA_AttributeOperand &max, GA_AttributeOperand &t) const 
d = SYSsmooth(min, max, t); 
 
GA_PwHandle< true > GA_PwHandleRO
 
virtual int intersectRay(const UT_Vector3 &o, const UT_Vector3 &d, float tmax=1E17F, float tol=1E-12F, float *distance=0, UT_Vector3 *pos=0, UT_Vector3 *nml=0, int accurate=0, float *u=0, float *v=0, int ignoretrim=1) const 
 
Container class for all geometry. 
 
virtual GEO_Primitive * convert(GEO_ConvertParms &parms, GA_PointGroup *usedpts=0)=0
 
Definition of a geometric primitive. 
 
SIM_API const UT_StringHolder distance
 
const GA_PrimitiveDefinition & getTypeDef() const override
 
GU_PrimNURBCurve(GA_Detail *gdp, GA_Offset offset=GA_INVALID_OFFSET)
NOTE: This constructor should only be called via GU_PrimitiveFactory. 
 
virtual int intersect(const GEO_Primitive &prim, UT_Array< GU_RayInfoHit > &hit_list, float tol=0.01F, int ignoretrim=1) const =0
 
virtual GEO_Primitive * convertNew(GEO_ConvertParms &parms)=0