Trax3 3.1.0
trax track library
Loading...
Searching...
No Matches
trax::ConstantTwist Struct Referenceabstract

A twist that stays constant over the whole track range. More...

#include <C:/Trend/Development/Trax3/Code/trax/RoadwayTwist.h>

Inheritance diagram for trax::ConstantTwist:

Public Types

using Data = Angle
Public Types inherited from trax::RoadwayTwist
enum class  TwistType : char {
  Unknown = -2 , None = -1 , Zero = 0 , Constant ,
  Linear , Piecewise , PiecewiseLinear , PiecewiseCircular ,
  PiecewiseDirectional , Directional , Positional , Combined ,
  Parallel
}

Public Member Functions

virtual void TwistValue (Angle twist) noexcept=0
 Set twist value.
virtual Angle TwistValue () const noexcept=0
 Get twist value.
virtual const Data & GetData () const noexcept=0
virtual void Create (const Data &data) noexcept=0
Public Member Functions inherited from trax::RoadwayTwist
virtual const char * TypeName () const noexcept=0
 Name for the object type that implements this interface.
virtual TwistType GetTwistType () const noexcept=0
virtual std::unique_ptr< RoadwayTwist > Clone () const =0
 Make a clone from this object.
virtual bool IsValid () const noexcept=0
virtual Angle Twist (Length s) const =0
virtual AnglePerLength D1 (Length s) const =0
virtual bool ZeroFlip (bool bActive) noexcept=0
virtual void Flip () noexcept=0
 Flips the effect of the twist along the track. After calling this function, the Twist() and D1() methods will give pi - Twist(Track::GetLength() - s) and -D1(Track::GetLength() - s). Calling Flip() a second time will nullify the effect.
virtual void Mirror () noexcept=0
 Multiplies all twist angle by -1.
virtual bool Offset (Angle offset) noexcept=0
 Adds a global offset angle to the Twist.
virtual bool IsDynamic () const noexcept=0
 A twist is dynamic if it relates to geometry global to the track.
virtual bool IsDirectionalConstant () const noexcept=0
 Find wether the twist is directional only offsetted by a constant.
virtual bool IsConstant () const noexcept=0
virtual void Freeze (bool bFreeze=true) noexcept=0
 Freezes the twist, so that dynamic twists like DirectionalTwist don't update anymore.
virtual bool IsFrozen () const noexcept=0
virtual bool IsNull () const noexcept=0
virtual bool Equals (const RoadwayTwist &toTwist, Angle epsilon_angle=epsilon__angle) const noexcept=0
 Comparison.
virtual void OnAttach (const TrackBuilder &track) noexcept=0
 Called on attachment to a track.
virtual void OnDetach () noexcept=0
 Called on detachment from a track.
virtual Angle DoTwist (Length) const =0
virtual AnglePerLength DoD1 (Length) const =0
 RoadwayTwist (RoadwayTwist &&)=delete
RoadwayTwist & operator= (const RoadwayTwist &)=delete
RoadwayTwist & operator= (RoadwayTwist &&)=delete

Static Public Member Functions

static dclspc std::unique_ptr< ConstantTwistMake () noexcept
 Makes a ConstantTwist object.
static dclspc std::unique_ptr< ConstantTwistMake (const RoadwayTwist &fromTwist) noexcept
 Makes a ConstantTwist object from another twist.
Static Public Member Functions inherited from trax::RoadwayTwist
static dclspc std::unique_ptr< RoadwayTwist > Make (TwistType type) noexcept
 Makes a RoadwayTwist object.
static dclspc std::unique_ptr< RoadwayTwist > Make (TwistType type, const RoadwayTwist &fromTwist) noexcept
 Makes a RoadwayTwist object from another twist.

Additional Inherited Members

Protected Member Functions inherited from trax::RoadwayTwist
 RoadwayTwist (const RoadwayTwist &)=default

Detailed Description

A twist that stays constant over the whole track range.


The documentation for this struct was generated from the following file: