Main Page   Namespace List   Class Hierarchy   Alphabetical List   Compound List   File List   Compound Members   File Members  

PiecewiseCurve Class Reference

#include <piecewiseCurve.h>

Inheritance diagram for PiecewiseCurve:

ParametricCurve PandaNode TypedWritable Namable BoundedObject ReferenceCount TypedObject ClassicNurbsCurve HermiteCurve List of all members.

Public Member Functions

virtual bool is_valid () const
virtual float get_max_t () const
virtual bool get_point (float t, LVecBase3f &point) const
virtual bool get_tangent (float t, LVecBase3f &tangent) const
virtual bool get_pt (float t, LVecBase3f &point, LVecBase3f &tangent) const
virtual bool get_2ndtangent (float t, LVecBase3f &tangent2) const
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)
int get_num_segs () const
ParametricCurveget_curveseg (int ti)
bool insert_curveseg (int ti, ParametricCurve *seg, float tlength)
bool remove_curveseg (int ti)
void remove_all_curvesegs ()
float get_tlength (int ti) const
float get_tstart (int ti) const
float get_tend (int ti) const
bool set_tlength (int ti, float tlength)
void make_nurbs (int order, int num_cvs, const float knots[], const LVecBase4f cvs[])
virtual bool get_bezier_segs (BezierSegs &bz_segs) const
virtual bool rebuild_curveseg (int rtype0, float t0, const LVecBase4f &v0, int rtype1, float t1, const LVecBase4f &v1, int rtype2, float t2, const LVecBase4f &v2, int rtype3, float t3, const LVecBase4f &v3)
virtual TypeHandle get_type () const
virtual TypeHandle force_init_type ()

Static Public Member Functions

TypeHandle get_class_type ()
void init_type ()

Protected Member Functions

bool find_curve (const ParametricCurve *&curve, float &t) const
float current_seg_range (float t) const
virtual void write_datagram (BamWriter *manager, Datagram &me)
void fillin (DatagramIterator &scan, BamReader *manager)
virtual int complete_pointers (TypedWritable **plist, BamReader *manager)

Protected Attributes

pvector< Curveseg_segs
int _last_ti

Private Member Functions

 ~PiecewiseCurve ()

Private Attributes

PUBLISHED __pad0__: PiecewiseCurve()

Static Private Attributes

TypeHandle _type_handle

Constructor & Destructor Documentation

PiecewiseCurve::~PiecewiseCurve  )  [private]
 

Definition at line 46 of file piecewiseCurve.cxx.

References remove_all_curvesegs().


Member Function Documentation

bool PiecewiseCurve::adjust_point float  t,
float  px,
float  py,
float  pz
[virtual]
 

Reimplemented from ParametricCurve.

Definition at line 134 of file piecewiseCurve.cxx.

References find_curve(), rebuild_curveseg(), RT_CV, RT_KEEP_ORIG, RT_POINT, RT_TANGENT, and t.

bool PiecewiseCurve::adjust_pt float  t,
float  px,
float  py,
float  pz,
float  tx,
float  ty,
float  tz
[virtual]
 

Reimplemented from ParametricCurve.

Definition at line 189 of file piecewiseCurve.cxx.

References find_curve(), rebuild_curveseg(), RT_CV, RT_KEEP_ORIG, RT_POINT, RT_TANGENT, t, ty, and tz.

bool PiecewiseCurve::adjust_tangent float  t,
float  tx,
float  ty,
float  tz
[virtual]
 

Reimplemented from ParametricCurve.

Definition at line 165 of file piecewiseCurve.cxx.

References find_curve(), rebuild_curveseg(), RT_CV, RT_KEEP_ORIG, RT_POINT, RT_TANGENT, t, ty, and tz.

int PiecewiseCurve::complete_pointers TypedWritable **  plist,
BamReader manager
[protected, virtual]
 

Reimplemented from TypedWritable.

Definition at line 628 of file piecewiseCurve.cxx.

References _segs, TypedWritable::complete_pointers(), and DCAST.

float PiecewiseCurve::current_seg_range float  t  )  const [protected]
 

Definition at line 560 of file piecewiseCurve.cxx.

References _last_ti, _segs, and t.

void PiecewiseCurve::fillin DatagramIterator scan,
BamReader manager
[protected]
 

Reimplemented from ParametricCurve.

Reimplemented in ClassicNurbsCurve, and HermiteCurve.

Definition at line 605 of file piecewiseCurve.cxx.

References _segs, PiecewiseCurve::Curveseg::_tend, ParametricCurve::fillin(), DatagramIterator::get_float64(), DatagramIterator::get_uint32(), NULL, and BamReader::read_pointer().

Referenced by HermiteCurve::fillin(), and ClassicNurbsCurve::fillin().

bool PiecewiseCurve::find_curve const ParametricCurve *&  curve,
float &  t
const [protected]
 

Definition at line 465 of file piecewiseCurve.cxx.

References _last_ti, _segs, NULL, and t.

Referenced by adjust_point(), adjust_pt(), adjust_tangent(), get_2ndtangent(), get_point(), get_pt(), and get_tangent().

virtual TypeHandle PiecewiseCurve::force_init_type void   )  [inline, virtual]
 

Reimplemented from ParametricCurve.

Reimplemented in ClassicNurbsCurve, and HermiteCurve.

Definition at line 117 of file piecewiseCurve.h.

References ParametricCurve::get_class_type(), and ParametricCurve::init_type().

bool PiecewiseCurve::get_2ndtangent float  t,
LVecBase3f &  tangent2
const [virtual]
 

Implements ParametricCurve.

Definition at line 118 of file piecewiseCurve.cxx.

References find_curve(), ParametricCurve::get_2ndtangent(), and t.

bool PiecewiseCurve::get_bezier_segs BezierSegs bz_segs  )  const [virtual]
 

Definition at line 419 of file piecewiseCurve.cxx.

References _segs.

TypeHandle PiecewiseCurve::get_class_type void   )  [inline, static]
 

Reimplemented from ParametricCurve.

Reimplemented in ClassicNurbsCurve, and HermiteCurve.

Definition at line 106 of file piecewiseCurve.h.

Referenced by ClassicNurbsCurve::init_type().

ParametricCurve * PiecewiseCurve::get_curveseg int  ti  ) 
 

Reimplemented in ClassicNurbsCurve, and HermiteCurve.

Definition at line 242 of file piecewiseCurve.cxx.

References _segs.

Referenced by HermiteCurve::get_curveseg().

float PiecewiseCurve::get_max_t  )  const [virtual]
 

Reimplemented from ParametricCurve.

Definition at line 71 of file piecewiseCurve.cxx.

References _segs.

Referenced by HermiteCurve::get_cv_tstart(), insert_curveseg(), HermiteCurve::insert_cv(), and HermiteCurve::invalidate_cv().

int PiecewiseCurve::get_num_segs  )  const
 

Definition at line 231 of file piecewiseCurve.cxx.

References _segs.

Referenced by make_nurbs().

bool PiecewiseCurve::get_point float  t,
LVecBase3f &  point
const [virtual]
 

Implements ParametricCurve.

Definition at line 86 of file piecewiseCurve.cxx.

References find_curve(), ParametricCurve::get_point(), and t.

bool PiecewiseCurve::get_pt float  t,
LVecBase3f &  point,
LVecBase3f &  tangent
const [virtual]
 

Implements ParametricCurve.

Definition at line 215 of file piecewiseCurve.cxx.

References find_curve(), ParametricCurve::get_pt(), and t.

Referenced by HermiteCurve::insert_cv().

bool PiecewiseCurve::get_tangent float  t,
LVecBase3f &  tangent
const [virtual]
 

Implements ParametricCurve.

Definition at line 102 of file piecewiseCurve.cxx.

References find_curve(), ParametricCurve::get_tangent(), and t.

float PiecewiseCurve::get_tend int  ti  )  const
 

Definition at line 352 of file piecewiseCurve.cxx.

References _segs.

float PiecewiseCurve::get_tlength int  ti  )  const
 

Definition at line 328 of file piecewiseCurve.cxx.

References _segs.

Referenced by HermiteCurve::format_egg(), HermiteCurve::invalidate_cv(), HermiteCurve::recompute_basis(), remove_curveseg(), and set_tlength().

float PiecewiseCurve::get_tstart int  ti  )  const
 

Definition at line 340 of file piecewiseCurve.cxx.

References _segs.

Referenced by HermiteCurve::get_cv_tstart(), and HermiteCurve::set_cv_tstart().

virtual TypeHandle PiecewiseCurve::get_type void   )  const [inline, virtual]
 

Reimplemented from ParametricCurve.

Reimplemented in ClassicNurbsCurve, and HermiteCurve.

Definition at line 114 of file piecewiseCurve.h.

References ParametricCurve::get_class_type().

void PiecewiseCurve::init_type void   )  [inline, static]
 

Reimplemented from ParametricCurve.

Reimplemented in ClassicNurbsCurve, and HermiteCurve.

Definition at line 109 of file piecewiseCurve.h.

References ParametricCurve::get_class_type(), ParametricCurve::init_type(), and register_type().

Referenced by ConfigureFn(), and ClassicNurbsCurve::init_type().

bool PiecewiseCurve::insert_curveseg int  ti,
ParametricCurve seg,
float  tlength
 

Definition at line 262 of file piecewiseCurve.cxx.

References _segs, and get_max_t().

Referenced by HermiteCurve::append_cv(), HermiteCurve::insert_cv(), make_nurbs(), and ClassicNurbsCurve::recompute().

bool PiecewiseCurve::is_valid  )  const [virtual]
 

Definition at line 59 of file piecewiseCurve.cxx.

References _segs.

Referenced by HermiteCurve::find_cv(), HermiteCurve::insert_cv(), and HermiteCurve::invalidate_cv().

void PiecewiseCurve::make_nurbs int  order,
int  num_cvs,
const float  knots[],
const LVecBase4f  cvs[]
 

Definition at line 393 of file piecewiseCurve.cxx.

References get_num_segs(), insert_curveseg(), and remove_all_curvesegs().

bool PiecewiseCurve::rebuild_curveseg int  rtype0,
float  t0,
const LVecBase4f &  v0,
int  rtype1,
float  t1,
const LVecBase4f &  v1,
int  rtype2,
float  t2,
const LVecBase4f &  v2,
int  rtype3,
float  t3,
const LVecBase4f &  v3
[virtual]
 

Reimplemented in ClassicNurbsCurve, and HermiteCurve.

Definition at line 444 of file piecewiseCurve.cxx.

Referenced by adjust_point(), adjust_pt(), and adjust_tangent().

void PiecewiseCurve::remove_all_curvesegs  ) 
 

Definition at line 316 of file piecewiseCurve.cxx.

References _last_ti, and _segs.

Referenced by make_nurbs(), HermiteCurve::remove_all_cvs(), and ~PiecewiseCurve().

bool PiecewiseCurve::remove_curveseg int  ti  ) 
 

Definition at line 291 of file piecewiseCurve.cxx.

References _last_ti, _segs, and get_tlength().

Referenced by HermiteCurve::remove_cv().

bool PiecewiseCurve::set_tlength int  ti,
float  tlength
 

Definition at line 367 of file piecewiseCurve.cxx.

References _segs, and get_tlength().

Referenced by HermiteCurve::set_cv_tstart().

void PiecewiseCurve::write_datagram BamWriter manager,
Datagram me
[protected, virtual]
 

Reimplemented from ParametricCurve.

Reimplemented in ClassicNurbsCurve, and HermiteCurve.

Definition at line 582 of file piecewiseCurve.cxx.

References _last_ti, _segs, PiecewiseCurve::Curveseg::_tend, Datagram::add_float64(), Datagram::add_uint32(), ParametricCurve::write_datagram(), and BamWriter::write_pointer().

Referenced by HermiteCurve::write_datagram(), and ClassicNurbsCurve::write_datagram().


Member Data Documentation

PUBLISHED PiecewiseCurve::__pad0__ [private]
 

Reimplemented from ParametricCurve.

Reimplemented in ClassicNurbsCurve, and HermiteCurve.

Definition at line 36 of file piecewiseCurve.h.

int PiecewiseCurve::_last_ti [protected]
 

Definition at line 95 of file piecewiseCurve.h.

Referenced by current_seg_range(), find_curve(), ClassicNurbsCurve::rebuild_curveseg(), remove_all_curvesegs(), remove_curveseg(), and write_datagram().

pvector<Curveseg> PiecewiseCurve::_segs [protected]
 

Definition at line 94 of file piecewiseCurve.h.

Referenced by HermiteCurve::append_cv(), complete_pointers(), current_seg_range(), fillin(), find_curve(), HermiteCurve::find_cv(), HermiteCurve::format_egg(), get_bezier_segs(), get_curveseg(), get_max_t(), get_num_segs(), get_tend(), get_tlength(), get_tstart(), insert_curveseg(), is_valid(), ClassicNurbsCurve::recompute(), HermiteCurve::recompute_basis(), remove_all_curvesegs(), remove_curveseg(), HermiteCurve::remove_cv(), set_tlength(), and write_datagram().

TypeHandle PiecewiseCurve::_type_handle [static, private]
 

Reimplemented from ParametricCurve.

Reimplemented in ClassicNurbsCurve, and HermiteCurve.

Definition at line 28 of file piecewiseCurve.cxx.


The documentation for this class was generated from the following files:
Generated on Fri Apr 18 00:13:09 2003 for Panda by doxygen1.3