![]() |
Trax3 3.1.0
trax track library
|
A straight line with owned parameters. More...
#include <C:/Trend/Development/Trax3/Code/trax/Curve.h>

Classes | |
| struct | Data |
| Data definig the curve. More... | |
Public Member Functions | |||||||||||
| virtual const Data & | GetData () const noexcept=0 | ||||||||||
| Retrieves the data to construct this curve type. A roundtrip is guaranteed to be invariant. | |||||||||||
Creation | |||||||||||
Creates a straight line.
| |||||||||||
| virtual common::Interval< Length > | Create (const spat::Position< Length > &start, const spat::Position< Length > &end, const spat::Vector< One > &up=Up)=0 | ||||||||||
| Creates a straight line. | |||||||||||
| virtual void | Create (const spat::VectorBundle< Length, One > &start, const spat::Vector< One > &up=Up)=0 | ||||||||||
| virtual void | Create (const spat::VectorBundle2< Length, One > &start)=0 | ||||||||||
| Creates a straight line. | |||||||||||
| virtual void | Create (const spat::Frame< Length, One > &start)=0 | ||||||||||
| Creates a straight line. | |||||||||||
| virtual void | Create (const spat::Position< Length > &start, const spat::Vector< One > &tan, const spat::Vector< One > &up=Up)=0 | ||||||||||
| virtual common::Interval< Length > | Create (const Data &data)=0 | ||||||||||
| Creates a straight line. | |||||||||||
| Public Member Functions inherited from trax::Curve | |||||||||||
| virtual const char * | TypeName () const noexcept=0 | ||||||||||
| virtual CurveType | GetCurveType () const noexcept=0 | ||||||||||
| virtual bool | IsValid () const noexcept=0 | ||||||||||
| virtual AnglePerLength | Curvature (Length s) const =0 | ||||||||||
| virtual AnglePerLength | Torsion (Length s) const =0 | ||||||||||
| virtual bool | IsFlat () const noexcept=0 | ||||||||||
| virtual void | Transition (Length s, spat::Position< Length > &pos) const =0 | ||||||||||
| Copies the 3D Position at the specified location to pos. | |||||||||||
| virtual void | Transition (Length s, spat::Vector< One > &tan) const =0 | ||||||||||
| Copies the 3D tangential vector at the specified location to tan. | |||||||||||
| virtual void | Transition (Length s, spat::VectorBundle< Length, One > &bundle) const =0 | ||||||||||
| Copies the 3D Position and tangential vector at the specified location to bundle. | |||||||||||
| virtual void | Transition (Length s, spat::VectorBundle2< Length, One > &bundle) const =0 | ||||||||||
| Copies the 3D Position and tangential and normal vectors at the specified location to bundle. | |||||||||||
| virtual void | Transition (Length s, spat::Frame< Length, One > &frame) const =0 | ||||||||||
| Copies the 3D TBN-Frame at the specified location to frame. | |||||||||||
| virtual std::vector< Length > | ZeroSet () const =0 | ||||||||||
| Returns a list of parameters at which the normal vector flips from one side to the other. | |||||||||||
| virtual common::Interval< Length > | Range () const =0 | ||||||||||
| virtual spat::Vector< One > | LocalUp () const =0 | ||||||||||
| Gives the Curve's idiosyncratic up direction. Some curves maintain some idea about where they have their upside, either because of their form (e.g Helix) or because it is extra defined (e.g. for Line). Some curves maintain no such notion (e.g. many Cubics). | |||||||||||
| virtual spat::Frame< Length, One > | GetCurveLocalTransformation () const =0 | ||||||||||
| virtual std::unique_ptr< Curve > | Clone () const =0 | ||||||||||
| make an exact copy of this curve. | |||||||||||
| virtual bool | Mirror (const spat::VectorBundle< Length, One > &mirrorPlane)=0 | ||||||||||
| Make a Curve with mirrored geometry (but of course one thet returns right handed frames). | |||||||||||
| virtual bool | Equals (const Curve &toCurve, common::Interval< Length > range, Length epsilon_length=epsilon__length, Angle epsilon_angle=epsilon__angle) const =0 | ||||||||||
| Comparison. | |||||||||||
| Curve (Curve &&)=delete | |||||||||||
| Curve & | operator= (const Curve &)=delete | ||||||||||
| Curve & | operator= (Curve &&)=delete | ||||||||||
Static Public Member Functions | |
| static dclspc std::unique_ptr< LineP > | Make () noexcept |
| Makes a LineP object. | |
Additional Inherited Members | |
| Public Types inherited from trax::Curve | |
| enum class | CurveType { none = 0 , Line , Arc , Helix , LineP , ArcP , HelixP , Clothoid , Cubic , Spline , Rotator , RotatorWithOffset , RotatorChain , PolygonalChain , SampledCurve , Parallel , EEPCurve , EEPResidual , EEPAlternative , Unknown , UserDefined } |
| Curve type identification values. More... | |
| Protected Member Functions inherited from trax::Curve | |
| Curve (const Curve &)=default | |
A straight line with owned parameters.
Try to use 'Line' instead. Only use this curve with redundant parameters if you really need it; for example to position a curve independently from the track's frame, or you want to use the create methods on a curve directly.
|
pure virtual |
| start | Defines the starting point. |
| tan | Defines the direction of the line. |
| up | Up direction. |
|
pure virtual |
| start | Defines the starting point in start.P and the direction in start.T. |
| up | Up direction. |