30#include "TrainComponent.h"
40 struct SimulatorTrain;
48 static dclspc std::shared_ptr<RollingStock>
Make() noexcept;
Namespace of all the trax track libraries classes and methods.
Definition Collection.h:17
A Bogie is a RailRunner that can be attached to another Bogie by a swivel and can be coupled to anoth...
Definition Bogie.h:67
A jack a plug can get connected with.
Definition Jack.h:83
EndType
Types of the RailRunner's end's.
Definition RailRunner.h:351
A RollingStock is a RailRunner that manages one or more connected Bogies.
Definition RollingStock.h:45
virtual std::pair< std::shared_ptr< RollingStock >, EndType > GetCoupledRollingStock(EndType end) const noexcept=0
Get the coupled RollingStock.
virtual bool Attach(Bogie &bogie) noexcept=0
Attaches a configured Bogie arrangement to the RollingStock.
static dclspc std::shared_ptr< RollingStock > Make() noexcept
Makes a RollingStock object.
virtual int GetNumberOfTopmostParents() const noexcept=0
virtual Bogie & GetBogie(int idx) const =0
Gets the Bogie with index number idx.
virtual Bogie & GetTopmostParent(int idx=0) const =0
Gets the topmost parent Bogie.
virtual int GetNumberOfBogies() const noexcept=0
virtual WheelFrame & GetWheelFrame(int idx) const =0
Gets the WheelFrame at index, counting from north to south.
virtual int GetNumberOfWheelFrames() const noexcept=0
virtual Jack & JackOnHoot() noexcept=0
Gets a Jack that pulses its Plug if the RailRunner's Hoot() member is called.
virtual std::shared_ptr< RollingStock > ThisRollingStock() const noexcept=0
Gets a shared pointer to this.
virtual Jack & JackOnSteam() noexcept=0
Gets a Jack that pulses its Plug if the RailRunner's Steam() member is called.
Interface for the physics simulator.
Definition Simulator.h:59
A TrainComponent is a part of a Train.
Definition TrainComponent.h:40
A Train is a collection of TrainComponents that are coupled in a row.
Definition Train.h:43
A WheelFrame is a Bogie that hosts Wheelsets and a TrackJoint and therefore can directly get attached...
Definition WheelFrame.h:45