15 #ifndef EGGNURBSCURVE_H
16 #define EGGNURBSCURVE_H
18 #include "pandabase.h"
22 #include "vector_double.h"
31 INLINE EggNurbsCurve(
const EggNurbsCurve ©);
32 INLINE EggNurbsCurve &operator = (
const EggNurbsCurve ©);
34 void setup(
int order,
int num_knots);
36 INLINE
void set_order(
int order);
37 void set_num_knots(
int num);
39 INLINE
void set_knot(
int k,
double value);
41 bool is_valid()
const;
43 INLINE
int get_order()
const;
44 INLINE
int get_degree()
const;
45 INLINE
int get_num_knots()
const;
46 INLINE
int get_num_cvs()
const;
48 bool is_closed()
const;
50 INLINE
double get_knot(
int k)
const;
51 MAKE_SEQ(get_knots, get_num_knots, get_knot);
53 virtual void write(ostream &out,
int indent_level)
const;
56 typedef vector_double Knots;
65 static void init_type() {
66 EggCurve::init_type();
67 register_type(_type_handle,
"EggNurbsCurve",
68 EggCurve::get_class_type());
71 return get_class_type();
73 virtual TypeHandle force_init_type() {init_type();
return get_class_type();}
80 #include "eggNurbsCurve.I"
A parametric NURBS curve.
A parametric curve of some kind.
TypeHandle is the identifier used to differentiate C++ class types.