# NurbsCurveInterface

class NurbsCurveInterface

This abstract class defines the interface only for a Nurbs-style curve, with knots and coordinates in homogeneous space.

The `NurbsCurve` class inherits both from this and from `ParametricCurve`.

Inheritance diagram

int append_cv(PN_stdfloat x, PN_stdfloat y, PN_stdfloat z)
int append_cv(LVecBase3 const &v)
int append_cv(LVecBase4 const &v)
static TypeHandle get_class_type(void)
virtual LVecBase4 get_cv(int n) const = 0
LVecBase3 get_cv_point(int n) const

Returns the position of the indicated CV.

PN_stdfloat get_cv_weight(int n) const

Returns the weight of the indicated CV.

virtual PN_stdfloat get_knot(int n) const = 0
virtual int get_num_cvs(void) const = 0
virtual int get_num_knots(void) const = 0
virtual int get_order(void) const = 0
virtual bool insert_cv(PN_stdfloat t) = 0
virtual void remove_all_cvs(void) = 0
virtual bool remove_cv(int n) = 0
virtual bool set_cv(int n, LVecBase4 const &v) = 0
bool set_cv_point(int n, PN_stdfloat x, PN_stdfloat y, PN_stdfloat z)
bool set_cv_point(int n, LVecBase3 const &v)

Repositions the indicated CV. Returns true if successful, false otherwise.

bool set_cv_weight(int n, PN_stdfloat w)

Sets the weight of the indicated CV without affecting its position in 3-d space.

virtual bool set_knot(int n, PN_stdfloat t) = 0
virtual void set_order(int order) = 0
void write_cv(std::ostream &out, int n) const