30#include "trax/Configuration.h"
31#include "trax/Identified.h"
32#include "trax/Units.h"
33#include "trax/SocketRegistry.h"
34#include "trax/collections/ObjectIDDecorator.h"
37#include "spat/Frame.h"
59 virtual SocketRegistry
62 static dclspc std::unique_ptr<Module>
Make(
bool bCreateCollections =
true ) noexcept;
66 virtual const
char*
TypeName() const noexcept = 0;
71 virtual
bool IsValid() const noexcept = 0;
Value< Dimension< 0, 0, 0 > > One
Dimensionless value.
Definition DimensionedValues.h:319
Value< Dimension< 1, 0, 0 > > Length
Length.
Definition DimensionedValues.h:324
The namespace provides classes and methods for spatial computations.
Definition Box.h:32
Namespace of all the trax track libraries classes and methods.
Definition Collection.h:17
Axis aligned box.
Definition Box.h:41
A Frame ("TNBFrame") describes a location in 3d space and an orientation using a right handed coordin...
Definition Frame.h:52
Collection to store cameras.
Definition Camera.h:324
Definition CargoCollection.h:39
A Fleet holds Trains and (topmost) Bogies via their common interface RailRunner.
Definition Fleet.h:48
Collection to hold a set of Indicator objects.
Definition IndicatorCollection.h:39
A module is a chunck of railroad stuff that is all located in one rectangular volume.
Definition Module.h:60
virtual std::shared_ptr< PulseCounterCollection > GetPulseCounterCollection() const noexcept=0
virtual std::shared_ptr< TrackSystem > GetTrackSystem() const noexcept=0
virtual void Attach(std::shared_ptr< TrackSystem > pTrackSystem) noexcept=0
Attaches a TrackSystem to this Module.
virtual const char * TypeName() const noexcept=0
virtual std::shared_ptr< SignalCollection > GetSignalCollection() const noexcept=0
virtual void SetVolume(const spat::Box< Length > &volume) noexcept=0
Gets the volume this module occupies.
virtual const spat::Box< Length > & GetVolume() const noexcept=0
Sets the volume this module occupies.
virtual std::shared_ptr< IndicatorCollection > GetIndicatorCollection() const noexcept=0
virtual std::shared_ptr< CameraCollection > GetCameraCollection() const noexcept=0
virtual bool IsValid() const noexcept=0
Checks whether the elements in this module are valid.
virtual const spat::Frame< Length, One > & GetFrame() const noexcept=0
Get frame of reference.
static dclspc std::unique_ptr< Module > Make(bool bCreateCollections=true) noexcept
Makes a standard Module object.
virtual void ClearCollections()=0
Clears all the attached collections.
virtual void Clear()=0
Clear the Module from all attached objects.
virtual std::shared_ptr< CargoCollection > GetCargoCollection() const noexcept=0
virtual void Take(Module &fromModule)=0
Moves all objects from all the collections to this module.
virtual std::shared_ptr< Fleet > GetFleet() const noexcept=0
virtual std::shared_ptr< TimerCollection > GetTimerCollection() const noexcept=0
virtual void SetFrame(const spat::Frame< Length, One > &frame) noexcept=0
Set frame of reference.
Definition PulseCounterCollection.h:36
Collection to hold a set of Signal objects.
Definition SignalCollection.h:36
Definition TimerCollection.h:35
A track system is the container for tracks.
Definition TrackSystem.h:56