|
|
virtual const spat::Frame< Length, One > & | GetFrame () const noexcept=0 |
| | Gets the pose of the track relative to its parent TrackCollection.
|
| virtual const spat::Frame< Length, One > & | GetAbsoluteFrame () const noexcept=0 |
| | Gets the frame relative to the Module, this track is attached to. I.e. the TrackCollection's transformation.
|
| virtual void | Couple (std::pair< std::shared_ptr< TrackBuilder >, Track::EndType > thisEnd, std::pair< std::shared_ptr< TrackBuilder >, Track::EndType > othersEnd)=0 |
| | Couple this track at thisend with pOtherTrack at othersend.
|
| virtual void | DeCouple (EndType thisEnd=EndType::any, bool oneSided=false)=0 |
| | Remove coupling from this end.
|
| virtual void | Flip (bool flipAttached=false)=0 |
| | Exchanges start and end of the track, but keeps geometry.
|
| virtual void | CreateEndTransitionSignal (EndType atend)=0 |
| | Creates an internal Signal at the end of the track, so that a SignalTarget receives a message if it enters the track.
|
| virtual void | DestroyEndTransitionSignal (EndType atend)=0 |
| | Destroys the internal transition Signal.
|
Sets the Frame the geometry is transformed with.
This frame can be used to move a track in space without changing its Curve geometry. It defines its position and orientation relative to the parent TrackCollection.
|
|
virtual void | SetFrame (const spat::Frame< Length, One > &frame) noexcept=0 |
| | Sets the frame directly.
|
| virtual void | SetFrame (const spat::Frame< Length, One > &start, Length s, bool bAllowTwistOffset=true)=0 |
| | Sets the frame so that Transition(s,start) will give start.
|
Sets the Curve object used by this track to define the geometry of the track.
If the curve provides a maximum length, the track's length will get truncated to it. - Parameters
-
| pCurve | Pointer to the Curve object to use. |
| curveSegment | parameter range of the curve to use from s==0 at curveSegment.Near() |
| curve | A piece of curve to attach. up to s == Length() at curveSegment.Far(). The curve must support this parameter range, otherwise the range gets truncated. |
- Exceptions
-
| std::invalid_argument | if curve is not valid or range.Near() is infinite length. |
|
| virtual void | Attach (std::shared_ptr< const Curve > pCurve, common::Interval< Length > curveSegment={0_m,+infinite__length})=0 |
| | Attaches a Curve to the track.
|
| virtual void | Attach (std::pair< std::shared_ptr< const Curve >, common::Interval< Length > > curve)=0 |
| | Attaches a Curve to the track.
|
| virtual void | Attach (std::pair< std::unique_ptr< const Curve >, common::Interval< Length > > &curve)=0 |
| | Attaches a Curve to the track.
|
| virtual std::pair< std::shared_ptr< const Curve >, common::Interval< Length > > | DetachCurve () noexcept=0 |
| | Detaches the Curve from the track.
|
| virtual std::pair< std::shared_ptr< const Curve >, common::Interval< Length > > | GetCurve () const noexcept=0 |
Sets the RoadwayTwist object used by this track to define the up orientation of a track. If no twist is set, the default constant zero twist will be used.
|
| virtual void | Attach (std::unique_ptr< RoadwayTwist > pTwist)=0 |
| virtual std::unique_ptr< RoadwayTwist > | DetachTwist ()=0 |
| | Detaches the current Twist from the track.
|
| virtual RoadwayTwist & | GetTwist () const noexcept=0 |
| virtual void | Attach (std::shared_ptr< Sensor > pSensor, const TrackLocation &tracklocation)=0 |
| | Attaches a Sensor at the specified location to this track. If already attached, the Sensor will be detached from its previous location.
|
|
virtual bool | Attached (const Sensor &sensor, TrackLocation *pTrackLocation=nullptr) const =0 |
| | Gets information about an attached Sensor.
|
|
virtual void | Detach (const Sensor &sensor) noexcept=0 |
| | Detaches a Sensor from the track.
|
| virtual std::shared_ptr< Sensor > | GetSensor (int idx) const noexcept=0 |
| virtual int | CountSensors () const =0 |
Attaches a Signal to the specified range to this track.
A Signal is influencing a train while in a certain range on the track if its MovingDirection() is in start-end orientation of the TrackRange. If the TrackRange goes over the ends of this track, the signal will also get registered with the adjacent tracks, respecting the switch settings. - Parameters
-
| pSignal | Pointer to Signal to be attached. |
| trackRange | Range the Signal should influence trains in. |
| TrackLocation | location of a Signal with a zero length track range. |
- Exceptions
-
| std::invalid_argument | if an invalid Signal was provided. touching this track. |
|
| virtual void | Attach (std::shared_ptr< Signal > pSignal, const common::Interval< Length > &trackRange)=0 |
| | Attaches a Signal to the specified range to this track.
|
| virtual void | Attach (std::shared_ptr< Signal > pSignal, const TrackLocation &location)=0 |
| | Attaches a Signal to the specified location to this track.
|
|
virtual bool | Attached (const Signal &signal, TrackRange *pTrackRange=nullptr) const =0 |
| | Gets information about an attached Signal.
|
| virtual void | Detach (const Signal &signal)=0 |
| | Detaches a Signal from the track and all adjacent tracks.
|
| virtual const char * | TypeName () const noexcept=0 |
|
virtual TrackType | GetTrackType () const noexcept=0 |
| virtual std::shared_ptr< const Body > | GetBody () const noexcept=0 |
| virtual bool | IsValid () const noexcept=0 |
| virtual Length | GetLength () const noexcept=0 |
| virtual common::Interval< Length > | Range () const noexcept=0 |
| virtual bool | IsCoupled (EndType atend=EndType::any) const noexcept=0 |
| virtual AnglePerLength | Curvature (Length s) const =0 |
| virtual AnglePerLength | Torsion (Length s) const =0 |
| virtual Angle | GetTwistValue (Length s) const =0 |
| virtual AnglePerLength | GetTwistD1 (Length s) const =0 |
| virtual bool | IsFlat () const noexcept=0 |
| virtual spat::Vector< One > | LocalUp () const =0 |
| | Gives the Curve's idiosyncratic up direction transformed by the track's frame. 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. Cubic).
|
| virtual void | TNBFrame (Length s, spat::Frame< Length, One > &frame) const =0 |
| | Receives the TNB - Frame of the curve at the location.
|
| virtual TrackEnd | TransitionEnd (EndType thisEnd) const noexcept=0 |
| | Gives the Track coupled to this at the specified end.
|
| virtual void | DoTrigger (const common::Interval< Length > &range, const Event &_event) const =0 |
| virtual bool | DoSignal (const common::Interval< Length > &range, Orientation orientation, SignalTarget &signalTarget) const =0 |
| virtual Signal * | GetSignal (const TrackLocation &loc) const noexcept=0 |
| | Gets the first Signal in the direction given by loc.
|
| virtual Connector * | GetConnector (EndType atend) const noexcept=0 |
| | retreives a connector (e.g. a Switch) at the respective track end.
|
| virtual Connector * | GetConnector (const Orientation &inDirection) const noexcept=0 |
| | retrieves the next connector (e.g. a Switch) that can be found in the given direction.
|
| virtual void | UserData (TrackUserData *pData) noexcept=0 |
| | Sets a pointer to user provided data.
|
| virtual TrackUserData * | UserData () const noexcept=0 |
| virtual std::shared_ptr< const TrackBuilder > | This () const noexcept=0 |
| | Gets a shared pointer to this.
|
| virtual std::shared_ptr< TrackBuilder > | This () noexcept=0 |
| virtual std::shared_ptr< const MovableTrack > | GetMovableTrack () const noexcept=0 |
| virtual std::shared_ptr< MovableTrack > | GetMovableTrack () noexcept=0 |
| virtual std::shared_ptr< const ParallelizableTrack > | GetParallelizableTrack () const noexcept=0 |
| virtual std::shared_ptr< ParallelizableTrack > | GetParallelizableTrack () noexcept=0 |
|
virtual void | Transition (Length s, spat::Position< Length > &pos) const =0 |
| | Gives information about the pose on the track at the specified parameter value.
|
|
virtual void | Transition (Length s, spat::Vector< One > &tan) const =0 |
| | Gives information about the pose on the track at the specified parameter value.
|
|
virtual void | Transition (Length s, spat::VectorBundle< Length, One > &bundle) const =0 |
| | Gives information about the pose on the track at the specified parameter value.
|
|
virtual void | Transition (Length s, spat::VectorBundle2< Length, One > &bundle) const =0 |
| | Gives information about the pose on the track at the specified parameter value.
|
|
virtual void | Transition (Length s, spat::Frame< Length, One > &frame) const =0 |
| | Gives information about the pose on the track at the specified parameter value.
|
|
virtual void | Transition (Length s, TrackData< Real > &td, Real engine_meters_per_unit) const =0 |
| | Gives information about the pose on the track at the specified parameter value.
|
| virtual void | Reserve (common::Interval< Length > range, IDType forID)=0 |
| | Reserves a parameter range on the track for a specified id.
|
| virtual ReservationIterator | BeginReservations () const noexcept=0 |
| virtual ReservationIterator | EndReservations () const noexcept=0 |
| virtual void | DeleteReservation (common::Interval< Length > inRange, IDType forID=anyID) noexcept=0 |
| | Deletes a reservation with specified ID, if it overlaps with the specified range.
|
|
virtual bool | IsReserved (common::Interval< Length > inRange, IDType forID=anyID) const noexcept=0 |
| | Is here a reservation for the specified ID inside the range on the track?
|
| virtual std::vector< Overlap > | Overlaps (IDType forID) const =0 |
| | Finds overlapping areas for reservations.
|
| virtual const std::string & | Reference (const std::string &name) const=0 |
| | Gets a reference that was set for this object by name.
|
|
virtual const std::vector< char const * > & | ReferenceNames (const std::string &namePart) const=0 |
| | Searches for all reference names that countain namePart as substring in the name.
|
| virtual IDType | ID () const noexcept=0 |
|
| Identified (const Identified &)=delete |
|
Identified & | operator= (const Identified &)=delete |
Interface for making and shaping tracks.