17 INLINE NurbsSurfaceResult::
18 ~NurbsSurfaceResult() {
59 eval_point(PN_stdfloat u, PN_stdfloat v, LVecBase3 &point) {
60 int ui = find_u_segment(u);
61 int vi = find_v_segment(v);
62 if (ui == -1 || vi == -1) {
77 eval_normal(PN_stdfloat u, PN_stdfloat v, LVecBase3 &normal) {
78 int ui = find_u_segment(u);
79 int vi = find_v_segment(v);
80 if (ui == -1 || vi == -1) {
95 int ui = find_u_segment(u);
96 int vi = find_v_segment(v);
97 if (ui == -1 || vi == -1) {
114 int ui = find_u_segment(u);
115 int vi = find_v_segment(v);
116 if (ui == -1 || vi == -1) {
121 _v_basis.
scale_t(vi, v), d, result,
171 INLINE
int NurbsSurfaceResult::
172 verti(
int ui,
int vi)
const {
173 return ui * _num_v_vertices + vi;
181 INLINE
int NurbsSurfaceResult::
182 segi(
int ui,
int vi)
const {
PN_stdfloat get_segment_v(int vi, PN_stdfloat v) const
Accepts a v value in the range [0, 1], and assumed to be relative to the indicated segment (as in eva...
bool eval_normal(PN_stdfloat u, PN_stdfloat v, LVecBase3 &normal)
Computes the normal to the surface at the indicated point in parametric time.
int get_num_segments() const
Returns the number of piecewise continuous segments in the curve.
PN_stdfloat get_from(int segment) const
Returns the t value of the beginning of this segment.
PN_stdfloat get_start_v() const
Returns the first legal value of v on the surface.
PN_stdfloat get_segment_u(int ui, PN_stdfloat u) const
Accepts a u value in the range [0, 1], and assumed to be relative to the indicated segment (as in eva...
PN_stdfloat get_to(int segment) const
Returns the t value of the end of this segment.
int get_num_v_segments() const
Returns the number of piecewise continuous segments within the surface in the V direction.
PN_stdfloat get_start_t() const
Returns the first legal value of t on the curve.
PN_stdfloat get_end_v() const
Returns the last legal value of v on the surface.
PN_stdfloat get_start_u() const
Returns the first legal value of u on the surface.
PN_stdfloat scale_t(int segment, PN_stdfloat t) const
Scales the value of t into the range [0, 1] corresponding to [from, to].
PN_stdfloat get_end_u() const
Returns the last legal value of u on the surface.
void eval_segment_point(int ui, int vi, PN_stdfloat u, PN_stdfloat v, LVecBase3 &point) const
Evaluates the point on the surface corresponding to the indicated value in parametric time within the...
int get_num_u_segments() const
Returns the number of piecewise continuous segments within the surface in the U direction.
bool eval_point(PN_stdfloat u, PN_stdfloat v, LVecBase3 &point)
Computes the point on the surface corresponding to the indicated value in parametric time.
void eval_segment_normal(int ui, int vi, PN_stdfloat u, PN_stdfloat v, LVecBase3 &normal) const
As eval_segment_point, but computes the normal to the surface at the indicated point.
PN_stdfloat eval_segment_extended_point(int ui, int vi, PN_stdfloat u, PN_stdfloat v, int d) const
Evaluates the surface in n-dimensional space according to the extended vertices associated with the s...
bool eval_extended_points(PN_stdfloat u, PN_stdfloat v, int d, PN_stdfloat result[], int num_values)
Simultaneously performs eval_extended_point on a contiguous sequence of dimensions.
PN_stdfloat get_end_t() const
Returns the last legal value of t on the curve.
PN_stdfloat eval_extended_point(PN_stdfloat u, PN_stdfloat v, int d)
Evaluates the surface in n-dimensional space according to the extended vertices associated with the s...
void eval_segment_extended_points(int ui, int vi, PN_stdfloat u, PN_stdfloat v, int d, PN_stdfloat result[], int num_values) const
Simultaneously performs eval_extended_point on a contiguous sequence of dimensions.