15 #ifndef NURBSCURVERESULT_H 16 #define NURBSCURVERESULT_H 18 #include "pandabase.h" 19 #include "referenceCount.h" 20 #include "nurbsBasisVector.h" 21 #include "vector_stdfloat.h" 48 INLINE PN_stdfloat get_start_t()
const;
49 INLINE PN_stdfloat get_end_t()
const;
51 INLINE
bool eval_point(PN_stdfloat t,
LVecBase3 &point);
52 INLINE
bool eval_tangent(PN_stdfloat t,
LVecBase3 &tangent);
53 INLINE PN_stdfloat eval_extended_point(PN_stdfloat t,
int d);
54 INLINE
bool eval_extended_points(PN_stdfloat t,
int d,
55 PN_stdfloat result[],
int num_values);
57 INLINE
int get_num_segments()
const;
58 void eval_segment_point(
int segment, PN_stdfloat t,
LVecBase3 &point)
const;
59 void eval_segment_tangent(
int segment, PN_stdfloat t,
LVecBase3 &tangent)
const;
60 PN_stdfloat eval_segment_extended_point(
int segment, PN_stdfloat t,
int d)
const;
61 void eval_segment_extended_points(
int segment, PN_stdfloat t,
int d,
62 PN_stdfloat result[],
int num_values)
const;
63 INLINE PN_stdfloat get_segment_t(
int segment, PN_stdfloat t)
const;
65 void adaptive_sample(PN_stdfloat tolerance);
66 INLINE
int get_num_samples()
const;
67 INLINE PN_stdfloat get_sample_t(
int n)
const;
68 INLINE
const LPoint3 &get_sample_point(
int n)
const;
69 MAKE_SEQ(get_sample_ts, get_num_samples, get_sample_t);
70 MAKE_SEQ(get_sample_points, get_num_samples, get_sample_points);
73 int find_segment(PN_stdfloat t);
74 int r_find_segment(PN_stdfloat t,
int top,
int bot)
const;
76 void r_adaptive_sample(
int segment, PN_stdfloat t0,
const LPoint3 &p0,
77 PN_stdfloat t1,
const LPoint3 &p1, PN_stdfloat tolerance_2);
78 static PN_stdfloat sqr_dist_to_line(
const LPoint3 &point,
const LPoint3 &origin,
87 typedef epvector<LMatrix4> ComposedGeom;
88 ComposedGeom _composed;
91 PN_stdfloat _last_from;
94 class AdaptiveSample {
96 INLINE AdaptiveSample(PN_stdfloat t,
const LPoint3 &point);
101 AdaptiveResult _adaptive_result;
104 #include "nurbsCurveResult.I" This is the base class for all three-component vectors and points.
This is a three-component vector distance (as opposed to a three-component point, which represents a ...
This is a three-component point in space (as opposed to a three-component vector, which represents a ...
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...
This is the base class for all three-component vectors and points.
A base class for all things that want to be reference-counted.
The result of a NurbsCurveEvaluator.