![]() |
Trax3 3.1.0
trax track library
|
Common interface for switch types that maintain an incomming (narrow) track, an outgoing straight track and an arbitrary number of outgoing diverging tracks. More...
#include <C:/Trend/Development/Trax3/Code/trax/Switch.h>

Public Types | |
| enum | SlotNames : char { slot_none = -1 , slot_0 = 0 , slot_1 , slot_2 , slot_3 , slot_4 , slot_5 , slot_N = 125 , maxSlots } |
| enum class | Status : char { none = -1 , go , branch = 1 , branch1 = 1 , branch2 = 2 , branch3 = 3 , branch4 = 4 , bramch5 = 5 , branchN = 124 , maxBranches = 124 , toggle , change , empty } |
| Status. More... | |
Public Member Functions | |
| virtual Status | Set (Status to, bool pulse=true)=0 |
| Turns the switch to the specified setting. | |
| virtual Status | Get () const =0 |
| Gets the setting of the switch. | |
| virtual void | NarrowTrack (std::shared_ptr< TrackBuilder > pNarrowTrack, Track::EndType trackEnd)=0 |
| Occupies the slot for the narrow track. | |
| virtual std::pair< std::shared_ptr< TrackBuilder >, Track::EndType > | NarrowTrack () const =0 |
| virtual void | ClearNarrowTrack ()=0 |
| Clears the slot for the narrow track. | |
| virtual void | StraightTrack (std::shared_ptr< TrackBuilder > pStaightTrack, Track::EndType trackEnd)=0 |
| Occupies the slot for the straight track. | |
| virtual std::pair< std::shared_ptr< TrackBuilder >, Track::EndType > | StraightTrack () const =0 |
| virtual void | ClearStraightTrack ()=0 |
| Clears the slot for the straight track. | |
| virtual void | DivergedTrack (int divTrackID, std::shared_ptr< TrackBuilder > pDivergedTrack, Track::EndType trackEnd)=0 |
| Occupies the slot for the diverging track. | |
| virtual std::pair< std::shared_ptr< TrackBuilder >, Track::EndType > | DivergedTrack (int divTrackID) const =0 |
| virtual void | ClearDivergedTrack (int divTrackID)=0 |
| Clears the slot for the straight track. | |
| virtual int | CntDivergedTracks () const =0 |
| virtual Location | Bifurcation () const =0 |
| Gets a track Location object right at the bifurcation point of the switch with a foreward direction aiming towards the branching tracks. | |
| virtual Jack & | JackOnGo () noexcept=0 |
| Gets a Jack that pulses its Plug if the switch is set to go. | |
| virtual MultiPlug & | PlugToGo () noexcept=0 |
| Gets a Plug that sets the switch to go. | |
| virtual Jack & | JackOn (Status status)=0 |
| Gets a Jack that pulses its Plug if the specified Status is set. | |
| virtual MultiPlug & | PlugTo (Status status)=0 |
| Gets a Plug that switches to the specified Status. | |
| virtual Jack & | JackOnDivergedTrack (int divTrackID)=0 |
| Gets a Jack that pulses its Plug if the switch is set to the branching track. | |
| virtual MultiPlug & | PlugToDivergedTrack (int divTrackID)=0 |
| Gets a Plug that sets the switch to the outgoing track. | |
| virtual void | Set (const Track &trackA, Track::EndType trackendA, const Track &trackB, Track::EndType trackendB, bool pulse=true)=0 |
| Sets the Connector to the setting that connects the two track ends. | |
| Public Member Functions inherited from trax::Connector | |
| virtual ConnectorType | GetConnectorType () const noexcept=0 |
| virtual const char * | TypeName () const noexcept=0 |
| virtual bool | IsValid () const noexcept=0 |
| Checks whether the connector is valid. | |
| virtual void | Toggle (bool pulse=true)=0 |
| Sets the connector to the next setting. | |
| virtual void | Disconnect ()=0 |
| Disconnects all track ends from each other. | |
| virtual std::pair< std::shared_ptr< TrackBuilder >, Track::EndType > | Slot (int slot) const noexcept=0 |
| virtual int | Slot (const Track &track, Track::EndType trackend) const =0 |
| virtual int | CntSlots () const noexcept=0 |
| virtual void | SwapSlots (int slotA, int slotB)=0 |
| Exchanges the content of the two slots. | |
| virtual bool | IsComplete () const =0 |
| virtual bool | Check (std::ostream &os, Length e_distance=epsilon__length, Angle e_kink=epsilon__angle, Angle e_twist=epsilon__angle) const noexcept=0 |
| Checks the connector for consistency. | |
| virtual void | Clear (int slot)=0 |
| clears the slot with index slot. | |
| virtual void | Clear ()=0 |
| Releases all the tracks from the slots. | |
| virtual void | GetCenter (spat::Frame< Length, One > ¢er) const =0 |
| Gets the center of the tracks the connector is connecting. | |
| virtual MultiPlug & | PlugToToggle () noexcept=0 |
| virtual const MultiPlug & | PlugToToggle () const noexcept=0 |
| virtual Jack & | JackOnChange () noexcept=0 |
| virtual const Jack & | JackOnChange () const noexcept=0 |
| virtual void | RegisterSockets (SocketRegistry &modul)=0 |
| Registers all the Plugs with the module and supplies the Jacks with plug ids for connecting. | |
| virtual void | UnregisterSockets (SocketRegistry &modul)=0 |
| Removes all references to Plugs and Jacks from the module. | |
| virtual void | UserData (ConnectorUserData *pData) noexcept=0 |
| Sets a pointer to user provided data. | |
| virtual ConnectorUserData * | UserData () const noexcept=0 |
| virtual int | Slot (int slot, std::shared_ptr< TrackBuilder > pTrack, Track::EndType trackend, bool connectAnonymous=false)=0 |
| Populates a slot with a tracks end. | |
| virtual int | Slot (std::shared_ptr< TrackBuilder > pTrack, Track::EndType trackend, bool connectAnonymous=false)=0 |
| Populates the slot with the smallest ID that is still unpopulated. | |
| Public Member Functions inherited from trax::Identified< Connector > | |
| 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 |
Static Public Member Functions | |
| static dclspc std::unique_ptr< NarrowSwitch > | Make (unsigned char numBranches) noexcept |
| Makes a standard NarrowSwitch object. | |
Common interface for switch types that maintain an incomming (narrow) track, an outgoing straight track and an arbitrary number of outgoing diverging tracks.
| enum trax::NarrowSwitch::SlotNames : char |
|
strong |
| Enumerator | |
|---|---|
| go | go over straight track |
| branch | go over first diverging track |
| branch1 | go over first diverging track |
| branch2 | go over second diverging track |
| toggle | toggle the switch |
| empty | set to first empty from go over branch1 to CntDivergedTracks() |
|
pure virtual |
Clears the slot for the straight track.
Implemented in trax::Switch.
|
pure virtual |
|
pure virtual |
Implemented in trax::Switch.
|
pure virtual |
Occupies the slot for the diverging track.
The diverging track is the branching track of a switch.
| divTrackID | zero based id of the diverging track to set. |
| pDivergedTrack | Shared pointer to track. |
| trackEnd | End of track to connect. |
Implemented in trax::Switch.
|
pure virtual |
|
pure virtual |
Occupies the slot for the narrow track.
The narrow track is the incomming track of a switch.
| pNarrowTrack | Shared pointer to track. |
| trackEnd | End of track to connect. |
|
virtual |
Sets the Connector to the setting that connects the two track ends.
| std::invalid_argument | if one of the two track ends is not in a slot. |
| std::logic_error,if | the two ends can not get connected by the Connector. |
Implements trax::Connector.
Turns the switch to the specified setting.
|
pure virtual |
|
pure virtual |
Occupies the slot for the straight track.
The straight track is the go through track of a switch.
| pStaightTrack | Shared pointer to track. |
| trackEnd | End of track to connect. |