15 #ifndef NURBSSURFACEEVALUATOR_H
16 #define NURBSSURFACEEVALUATOR_H
18 #include "pandabase.h"
19 #include "nurbsBasisVector.h"
20 #include "nurbsSurfaceResult.h"
21 #include "nurbsVertex.h"
22 #include "pointerTo.h"
23 #include "vector_stdfloat.h"
27 #include "referenceCount.h"
43 INLINE
void set_u_order(
int u_order);
44 INLINE
int get_u_order()
const;
46 INLINE
void set_v_order(
int v_order);
47 INLINE
int get_v_order()
const;
49 void reset(
int num_u_vertices,
int num_v_vertices);
51 INLINE
int get_num_u_vertices()
const;
52 INLINE
int get_num_v_vertices()
const;
53 INLINE
void set_vertex(
int ui,
int vi,
const LVecBase4 &vertex);
54 INLINE
void set_vertex(
int ui,
int vi,
const LVecBase3 &vertex, PN_stdfloat weight = 1.0);
55 INLINE
const LVecBase4 &get_vertex(
int ui,
int vi)
const;
58 INLINE
void set_vertex_space(
int ui,
int vi,
const NodePath &space);
59 INLINE
void set_vertex_space(
int ui,
int vi,
const string &space);
62 INLINE
void set_extended_vertex(
int ui,
int vi,
int d, PN_stdfloat value);
63 INLINE PN_stdfloat get_extended_vertex(
int ui,
int vi,
int d)
const;
64 void set_extended_vertices(
int ui,
int vi,
int d,
65 const PN_stdfloat values[],
int num_values);
67 INLINE
int get_num_u_knots()
const;
68 void set_u_knot(
int i, PN_stdfloat knot);
69 PN_stdfloat get_u_knot(
int i)
const;
70 MAKE_SEQ(get_u_knots, get_num_u_knots, get_u_knot);
71 void normalize_u_knots();
73 INLINE
int get_num_v_knots()
const;
74 void set_v_knot(
int i, PN_stdfloat knot);
75 PN_stdfloat get_v_knot(
int i)
const;
76 MAKE_SEQ(get_v_knots, get_num_v_knots, get_v_knot);
77 void normalize_v_knots();
79 INLINE
int get_num_u_segments()
const;
80 INLINE
int get_num_v_segments()
const;
84 void output(ostream &out)
const;
87 typedef epvector<LVecBase4> Vert4Array;
89 void get_vertices(Vert4Array &verts,
const NodePath &rel_to)
const;
94 INLINE
const NurbsVertex &vert(
int ui,
int vi)
const;
96 void recompute_u_knots();
97 void recompute_v_knots();
98 void recompute_u_basis();
99 void recompute_v_basis();
104 typedef epvector<NurbsVertex> Vertices;
111 typedef vector_stdfloat Knots;
123 #include "nurbsSurfaceEvaluator.I"
This is the base class for all three-component vectors and points.
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...
The result of a NurbsSurfaceEvaluator.
This is the base class for all three-component vectors and points.
A base class for all things that want to be reference-counted.
NodePath is the fundamental system for disambiguating instances, and also provides a higher-level int...