![]() |
Trax3 3.1.0
trax track library
|
A single slip switch is made from five tracks that form a crossing with the possibility to divert the route to connect the two narrow (incoming) tracks. There are two narrowing (incoming) tracks, two crossing tracks and one diverting track, connecting the two narrowing ones. The two narrow '\','/' and two straight tracks 'X' - the straight tracks are expected to cross each other - and a diverging track ')' (ignore the dots). More...
#include <C:/Trend/Development/Trax3/Code/trax/Switch.h>

Public Types | |
| enum | SlotNames { slot_none = -1 , slot_0 = 0 , slot_1 , slot_2 , slot_3 , slot_4 , slot_5 , slot_count } |
| enum class | Status { none = -1 , go , go1 = go , go2 , branch , count , toggle , change } |
| Status values of a switch. 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 | SetCenter (const spat::Frame< Length, One > ¢er)=0 |
| Sets the center of the switch. | |
| 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 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< SingleSlipSwitch > | Make () noexcept |
| Makes a standard SingleSlipSwitch object. | |
A single slip switch is made from five tracks that form a crossing with the possibility to divert the route to connect the two narrow (incoming) tracks. There are two narrowing (incoming) tracks, two crossing tracks and one diverting track, connecting the two narrowing ones. The two narrow '\','/' and two straight tracks 'X' - the straight tracks are expected to cross each other - and a diverging track ')' (ignore the dots).
/// /// in /// /// \. /// )X /// / /// /// out /// ///
|
strong |
Status values of a switch.
Note that there are actually only two states for the SingleSlipSwitch: go and branch. The others are redundant and play a role only in toggling and pulsing.
|
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.