#include <parametricCurve.h>
Inheritance diagram for ParametricCurve:
Public Types | |
typedef pvector< BezierSeg > | BezierSegs |
Public Member Functions | |
virtual bool | safe_to_flatten () const |
virtual bool | safe_to_transform () const |
virtual float | get_max_t () const |
void | set_curve_type (int type) |
int | get_curve_type () const |
void | set_num_dimensions (int num) |
int | get_num_dimensions () const |
float | calc_length () const |
float | calc_length (float from, float to) const |
float | find_length (float start_t, float length_offset) const |
virtual bool | get_point (float t, LVecBase3f &point) const=0 |
virtual bool | get_tangent (float t, LVecBase3f &tangent) const=0 |
virtual bool | get_pt (float t, LVecBase3f &point, LVecBase3f &tangent) const=0 |
virtual bool | get_2ndtangent (float t, LVecBase3f &tangent2) const=0 |
virtual bool | adjust_point (float t, float px, float py, float pz) |
virtual bool | adjust_tangent (float t, float tx, float ty, float tz) |
virtual bool | adjust_pt (float t, float px, float py, float pz, float tx, float ty, float tz) |
virtual bool | recompute () |
virtual bool | stitch (const ParametricCurve *a, const ParametricCurve *b) |
bool | write_egg (Filename filename, CoordinateSystem cs=CS_default) |
bool | write_egg (ostream &out, const Filename &filename, CoordinateSystem cs) |
virtual bool | get_bezier_segs (BezierSegs &) const |
virtual bool | get_bezier_seg (BezierSeg &) const |
virtual NurbsCurveInterface * | get_nurbs_interface () |
virtual bool | convert_to_hermite (HermiteCurve *hc) const |
virtual bool | convert_to_nurbs (ParametricCurve *nc) const |
void | register_drawer (ParametricCurveDrawer *drawer) |
void | unregister_drawer (ParametricCurveDrawer *drawer) |
virtual TypeHandle | get_type () const |
virtual TypeHandle | force_init_type () |
Static Public Member Functions | |
TypeHandle | get_class_type () |
void | init_type () |
Public Attributes | |
PUBLISHED | __pad1__: virtual bool is_valid() const |
Protected Member Functions | |
void | invalidate (float t1, float t2) |
void | invalidate_all () |
virtual bool | format_egg (ostream &out, const string &name, const string &curve_type, int indent_level) const |
virtual void | write_datagram (BamWriter *manager, Datagram &me) |
void | fillin (DatagramIterator &scan, BamReader *manager) |
Protected Attributes | |
int | _curve_type |
int | _num_dimensions |
Private Types | |
typedef plist< ParametricCurveDrawer * > | DrawerList |
Private Member Functions | |
virtual | ~ParametricCurve () |
float | r_calc_length (float t1, float t2, const LPoint3f &p1, const LPoint3f &p2, float seglength) const |
bool | r_find_length (float target_length, float &found_t, float t1, float t2, const LPoint3f &p1, const LPoint3f &p2, float &seglength) const |
bool | r_find_t (float target_length, float &found_t, float t1, float t2, const LPoint3f &p1, const LPoint3f &p2) const |
bool | find_t_linear (float target_length, float &found_t, float t1, float t2, const LPoint3f &p1, const LPoint3f &p2) const |
Private Attributes | |
PUBLISHED | __pad0__: ParametricCurve() |
DrawerList | _drawers |
Static Private Attributes | |
TypeHandle | _type_handle |
|
Definition at line 112 of file parametricCurve.h. Referenced by convert_to_hermite(), and convert_to_nurbs(). |
|
Definition at line 151 of file parametricCurve.h. |
|
Definition at line 54 of file parametricCurve.cxx. References _drawers. |
|
Reimplemented in PiecewiseCurve. Definition at line 305 of file parametricCurve.cxx. Referenced by ParametricCurveCollection::adjust_hpr(), and ParametricCurveCollection::adjust_xyz(). |
|
Reimplemented in PiecewiseCurve. Definition at line 328 of file parametricCurve.cxx. |
|
Reimplemented in PiecewiseCurve. Definition at line 317 of file parametricCurve.cxx. |
|
Definition at line 210 of file parametricCurve.cxx. References get_point(), length(), and r_calc_length(). |
|
Definition at line 199 of file parametricCurve.cxx. References get_max_t(). Referenced by ParametricCurveCollection::make_even(). |
|
|
Reimplemented in ClassicNurbsCurve, and NurbsPPCurve. Definition at line 581 of file parametricCurve.cxx. References _curve_type, NurbsCurveInterface::append_cv(), BezierSegs, get_bezier_segs(), get_nurbs_interface(), NULL, recompute(), NurbsCurveInterface::remove_all_cvs(), set_curve_type(), NurbsCurveInterface::set_knot(), and t. Referenced by ClassicNurbsCurve::ClassicNurbsCurve(), and NurbsPPCurve::NurbsPPCurve(). |
|
Reimplemented from PandaNode. Reimplemented in ClassicNurbsCurve, CubicCurveseg, HermiteCurve, and PiecewiseCurve. Definition at line 1002 of file parametricCurve.cxx. References _curve_type, _num_dimensions, PandaNode::fillin(), and DatagramIterator::get_int8(). Referenced by PiecewiseCurve::fillin(), and CubicCurveseg::fillin(). |
|
Definition at line 258 of file parametricCurve.cxx. References cfloor(), get_max_t(), get_point(), and r_find_length(). Referenced by ParametricCurveCollection::make_even(). |
|
Definition at line 910 of file parametricCurve.cxx. References get_point(), len, and tolerance_divisor. Referenced by r_find_length(). |
|
Reimplemented from PandaNode. Reimplemented in ClassicNurbsCurve, CubicCurveseg, HermiteCurve, NurbsPPCurve, and PiecewiseCurve. Definition at line 171 of file parametricCurve.h. References PandaNode::get_class_type(), and PandaNode::init_type(). |
|
Reimplemented in ClassicNurbsCurve, HermiteCurve, and NurbsPPCurve. Definition at line 701 of file parametricCurve.cxx. Referenced by write_egg(). |
|
Implemented in CubicCurveseg, NurbsPPCurve, and PiecewiseCurve. Referenced by PiecewiseCurve::get_2ndtangent(). |
|
Definition at line 484 of file parametricCurve.cxx. |
|
Definition at line 471 of file parametricCurve.cxx. Referenced by convert_to_hermite(), and convert_to_nurbs(). |
|
Reimplemented from PandaNode. Reimplemented in ClassicNurbsCurve, CubicCurveseg, HermiteCurve, NurbsPPCurve, and PiecewiseCurve. Definition at line 160 of file parametricCurve.h. Referenced by PiecewiseCurve::force_init_type(), CubicCurveseg::force_init_type(), PiecewiseCurve::get_type(), CubicCurveseg::get_type(), PiecewiseCurve::init_type(), NurbsPPCurve::init_type(), CubicCurveseg::init_type(), and ParametricCurveCollection::r_add_curves(). |
|
|
Reimplemented in NurbsPPCurve, and PiecewiseCurve. Definition at line 112 of file parametricCurve.cxx. Referenced by ParametricCurveCollection::adjust_hpr(), ParametricCurveCollection::adjust_xyz(), calc_length(), ParametricCurveDrawer::draw(), find_length(), and ParametricCurveCollection::make_even(). |
|
Definition at line 187 of file parametricCurve.cxx. References _num_dimensions. |
|
Reimplemented in ClassicNurbsCurve, and NurbsPPCurve. Definition at line 496 of file parametricCurve.cxx. References NULL. Referenced by convert_to_nurbs(), NurbsCurveInterface::convert_to_nurbs(), and NurbsCurveDrawer::draw(). |
|
|
Implemented in CubicCurveseg, NurbsPPCurve, and PiecewiseCurve. Referenced by ParametricCurveDrawer::draw(), and PiecewiseCurve::get_pt(). |
|
Implemented in CubicCurveseg, NurbsPPCurve, and PiecewiseCurve. Referenced by ParametricCurveCollection::determine_hpr(), and PiecewiseCurve::get_tangent(). |
|
Reimplemented from PandaNode. Reimplemented in ClassicNurbsCurve, CubicCurveseg, HermiteCurve, NurbsPPCurve, and PiecewiseCurve. Definition at line 168 of file parametricCurve.h. References PandaNode::get_class_type(). Referenced by stitch(). |
|
Reimplemented from PandaNode. Reimplemented in ClassicNurbsCurve, CubicCurveseg, HermiteCurve, NurbsPPCurve, and PiecewiseCurve. Definition at line 163 of file parametricCurve.h. References PandaNode::get_class_type(), PandaNode::init_type(), and register_type(). Referenced by ConfigureFn(), PiecewiseCurve::force_init_type(), CubicCurveseg::force_init_type(), PiecewiseCurve::init_type(), NurbsPPCurve::init_type(), and CubicCurveseg::init_type(). |
|
Definition at line 672 of file parametricCurve.cxx. References invalidate_all(). Referenced by HermiteCurve::invalidate_cv(). |
|
Definition at line 684 of file parametricCurve.cxx. Referenced by HermiteCurve::append_cv(), HermiteCurve::insert_cv(), invalidate(), HermiteCurve::invalidate_cv(), HermiteCurve::remove_all_cvs(), HermiteCurve::remove_cv(), and HermiteCurve::set_cv_tstart(). |
|
Definition at line 716 of file parametricCurve.cxx. References get_point(). Referenced by calc_length(). |
|
Definition at line 763 of file parametricCurve.cxx. References find_t_linear(), and get_point(). Referenced by find_length(). |
|
Definition at line 841 of file parametricCurve.cxx. References get_point(). |
|
Reimplemented in ClassicNurbsCurve, and NurbsPPCurve. Definition at line 340 of file parametricCurve.cxx. Referenced by convert_to_nurbs(), NurbsCurveInterface::convert_to_nurbs(), and ParametricCurveCollection::recompute(). |
|
Definition at line 645 of file parametricCurve.cxx. References _drawers. Referenced by ParametricCurveCollection::prepare_add_curve(), and ParametricCurveCollection::register_drawer(). |
|
Reimplemented from PandaNode. Definition at line 72 of file parametricCurve.cxx. |
|
Reimplemented from PandaNode. Definition at line 85 of file parametricCurve.cxx. |
|
Definition at line 133 of file parametricCurve.cxx. References _curve_type, _num_dimensions, PCT_HPR, PCT_NONE, PCT_T, PCT_XYZ, and type. Referenced by convert_to_hermite(), convert_to_nurbs(), NurbsPPCurve::convert_to_nurbs(), ClassicNurbsCurve::convert_to_nurbs(), ParametricCurveCollection::make_even(), and PT(). |
|
Definition at line 173 of file parametricCurve.cxx. References _num_dimensions. |
|
Reimplemented in ClassicNurbsCurve, and NurbsPPCurve. Definition at line 355 of file parametricCurve.cxx. References get_type(). |
|
Definition at line 657 of file parametricCurve.cxx. References _drawers. Referenced by ParametricCurveCollection::prepare_remove_curve(), and ParametricCurveCollection::unregister_drawer(). |
|
Reimplemented from PandaNode. Reimplemented in ClassicNurbsCurve, CubicCurveseg, HermiteCurve, and PiecewiseCurve. Definition at line 986 of file parametricCurve.cxx. References _curve_type, _num_dimensions, Datagram::add_int8(), and PandaNode::write_datagram(). Referenced by PiecewiseCurve::write_datagram(), and CubicCurveseg::write_datagram(). |
|
Definition at line 390 of file parametricCurve.cxx. References cs, CS_default, CS_invalid, CS_yup_left, CS_yup_right, CS_zup_left, CS_zup_right, default_coordinate_system, format_egg(), get_curve_type(), Namable::get_name(), Namable::has_name(), PCT_HPR, PCT_T, PCT_XYZ, and Namable::set_name(). |
|
Definition at line 370 of file parametricCurve.cxx. References cs. Referenced by ParametricCurveCollection::write_egg(). |
|
Reimplemented from PandaNode. Reimplemented in ClassicNurbsCurve, CubicCurveseg, HermiteCurve, NurbsPPCurve, and PiecewiseCurve. Definition at line 66 of file parametricCurve.h. |
|
Reimplemented from PandaNode. Reimplemented in ClassicNurbsCurve, and NurbsPPCurve. Definition at line 74 of file parametricCurve.h. |
|
Definition at line 147 of file parametricCurve.h. Referenced by convert_to_hermite(), convert_to_nurbs(), NurbsPPCurve::convert_to_nurbs(), ClassicNurbsCurve::convert_to_nurbs(), fillin(), get_curve_type(), HermiteCurve::invalidate_cv(), HermiteCurve::recompute_basis(), set_curve_type(), and write_datagram(). |
|
Definition at line 152 of file parametricCurve.h. Referenced by invalidate_all(), register_drawer(), unregister_drawer(), and ~ParametricCurve(). |
|
Definition at line 148 of file parametricCurve.h. Referenced by fillin(), HermiteCurve::format_egg(), get_num_dimensions(), set_curve_type(), set_num_dimensions(), and write_datagram(). |
|
Reimplemented from PandaNode. Reimplemented in ClassicNurbsCurve, CubicCurveseg, HermiteCurve, NurbsPPCurve, and PiecewiseCurve. Definition at line 33 of file parametricCurve.cxx. |