14 #ifndef NURBSSURFACEEVALUATOR_H 15 #define NURBSSURFACEEVALUATOR_H 39 INLINE
void set_u_order(
int u_order);
40 INLINE
int get_u_order()
const;
42 INLINE
void set_v_order(
int v_order);
43 INLINE
int get_v_order()
const;
45 void reset(
int num_u_vertices,
int num_v_vertices);
47 INLINE
int get_num_u_vertices()
const;
48 INLINE
int get_num_v_vertices()
const;
49 INLINE
void set_vertex(
int ui,
int vi,
const LVecBase4 &vertex);
50 INLINE
void set_vertex(
int ui,
int vi,
const LVecBase3 &vertex, PN_stdfloat weight = 1.0);
51 INLINE
const LVecBase4 &get_vertex(
int ui,
int vi)
const;
52 INLINE LVecBase4 get_vertex(
int ui,
int vi,
const NodePath &rel_to)
const;
54 INLINE
void set_vertex_space(
int ui,
int vi,
const NodePath &space);
55 INLINE
void set_vertex_space(
int ui,
int vi,
const std::string &space);
58 INLINE
void set_extended_vertex(
int ui,
int vi,
int d, PN_stdfloat value);
59 INLINE PN_stdfloat get_extended_vertex(
int ui,
int vi,
int d)
const;
60 void set_extended_vertices(
int ui,
int vi,
int d,
61 const PN_stdfloat values[],
int num_values);
63 INLINE
int get_num_u_knots()
const;
64 void set_u_knot(
int i, PN_stdfloat knot);
65 PN_stdfloat get_u_knot(
int i)
const;
66 MAKE_SEQ(get_u_knots, get_num_u_knots, get_u_knot);
67 void normalize_u_knots();
69 INLINE
int get_num_v_knots()
const;
70 void set_v_knot(
int i, PN_stdfloat knot);
71 PN_stdfloat get_v_knot(
int i)
const;
72 MAKE_SEQ(get_v_knots, get_num_v_knots, get_v_knot);
73 void normalize_v_knots();
75 INLINE
int get_num_u_segments()
const;
76 INLINE
int get_num_v_segments()
const;
80 void output(std::ostream &out)
const;
82 MAKE_PROPERTY(u_order, get_u_order, set_u_order);
83 MAKE_PROPERTY(v_order, get_v_order, set_v_order);
84 MAKE_SEQ_PROPERTY(u_knots, get_num_u_knots, get_u_knot, set_u_knot);
85 MAKE_SEQ_PROPERTY(v_knots, get_num_v_knots, get_v_knot, set_v_knot);
88 typedef epvector<LVecBase4> Vert4Array;
90 void get_vertices(Vert4Array &verts,
const NodePath &rel_to)
const;
95 INLINE
const NurbsVertex &vert(
int ui,
int vi)
const;
97 void recompute_u_knots();
98 void recompute_v_knots();
99 void recompute_u_basis();
100 void recompute_v_basis();
105 typedef epvector<NurbsVertex> Vertices;
112 typedef vector_stdfloat Knots;
PANDA 3D SOFTWARE Copyright (c) Carnegie Mellon University.
PANDA 3D SOFTWARE Copyright (c) Carnegie Mellon University.
PANDA 3D SOFTWARE Copyright (c) Carnegie Mellon University.
PANDA 3D SOFTWARE Copyright (c) Carnegie Mellon University.
PANDA 3D SOFTWARE Copyright (c) Carnegie Mellon University.
PANDA 3D SOFTWARE Copyright (c) Carnegie Mellon University.
This class is an abstraction for evaluating NURBS surfaces.
This represents a single control vertex in a NurbsEvaluator.
This encapsulates a series of matrices that are used to represent the sequential segments of a NurbsC...
PANDA 3D SOFTWARE Copyright (c) Carnegie Mellon University.
The result of a NurbsSurfaceEvaluator.
PANDA 3D SOFTWARE Copyright (c) Carnegie Mellon University.
PANDA 3D SOFTWARE Copyright (c) Carnegie Mellon University.
A base class for all things that want to be reference-counted.
PANDA 3D SOFTWARE Copyright (c) Carnegie Mellon University.
PANDA 3D SOFTWARE Copyright (c) Carnegie Mellon University.
NodePath is the fundamental system for disambiguating instances, and also provides a higher-level int...
PANDA 3D SOFTWARE Copyright (c) Carnegie Mellon University.