Class LayoutLHXOver
Six types are supported: right-hand, left-hand, wye, double crossover, right-handed single crossover, and left-handed single crossover. Note that double-slip turnouts can be handled as two turnouts, throat to throat, and three-way turnouts can be handles as two turnouts, left-hand and right-hand, arranged throat to continuing route.
A LayoutTurnout has three or four connection points, designated A, B, C, and
D. For right-handed or left-handed turnouts, A corresponds to the throat. At
the crossing, A-B (and C-D for crossovers) is a straight segment (continuing
route). A-C (and B-D for crossovers) is the diverging route. B-C (and A-D for
crossovers) is an illegal condition.
Turnouts
Right-hand Left-hand
C
//
A ==**== B A ==**== B
\\
C
Wye Three-way
B D
// //
A ==** A ==**== B
\\ \\
C C
Crossovers
Right-hand left-hand
A ==**===== B A ====**== B
\\ //
\\ //
D ====**== C D ==**===== C
Double
A ==**==**== B
\\//
XX
//\\
D ==**==**== C
A LayoutTurnout carries Block information. For right-handed, left-handed, and wye turnouts, the entire turnout is in one block, however, a block border may occur at any connection (A,B,C,D). For a double crossover turnout, up to four blocks may be assigned, one for each connection point, but if only one block is assigned, that block applies to the entire turnout.
For drawing purposes, each LayoutTurnout carries a center point and displacements for B and C. For right-handed or left-handed turnouts, the displacement for A = - the displacement for B, and the center point is at the junction of the diverging route and the straight through continuing route. For double crossovers, the center point is at the center of the turnout, and the displacement for A = - the displacement for C and the displacement for D = - the displacement for B. The center point and these displacements may be adjusted by the user when in edit mode. For double crossovers, AB and BC are constrained to remain perpendicular. For single crossovers, AB and CD are constrained to remain parallel, and AC and BD are constrained to remain parallel.
When LayoutTurnouts are first created, a rotation (degrees) is provided. For 0.0 rotation, the turnout lies on the east-west line with A facing east. Rotations are performed in a clockwise direction.
When LayoutTurnouts are first created, there are no connections. Block information and connections may be added when available.
When a LayoutTurnout is first created, it is enabled for control of an assigned actual turnout. Clicking on the turnout center point will toggle the turnout. This can be disabled via the popup menu.
Signal Head names are saved here to keep track of where signals are. LayoutTurnout only serves as a storage place for signal head names. The names are placed here by tools, e.g., Set Signals at Turnout, and Set Signals at Double Crossover. Each connection point can have up to three SignalHeads and one SignalMast.
A LayoutTurnout may be linked to another LayoutTurnout to form a turnout pair. Throat-To-Throat Turnouts - Two turnouts connected closely at their throats, so closely that signals are not appropriate at the their throats. This is the situation when two RH, LH, or WYE turnouts are used to model a double slip. 3-Way Turnout - Two turnouts modeling a 3-way turnout, where the throat of the second turnout is closely connected to the continuing track of the first turnout. The throat will have three heads, or one head. A link is required to be able to correctly interpret the use of signal heads.
-
Nested Class Summary
Nested classes/interfaces inherited from class jmri.jmrit.display.layoutEditor.LayoutTurnout
LayoutTurnout.Geometry, LayoutTurnout.LinkType, LayoutTurnout.TurnoutType -
Field Summary
Fields inherited from class jmri.jmrit.display.layoutEditor.LayoutTurnout
active, connectA, connectAName, connectB, connectBName, connectC, connectCName, connectD, connectDName, continuingSense, disabled, disableWhenOccupied, INCONSISTENT, linkedTurnoutName, linkType, namedLayoutBlockA, namedLayoutBlockB, namedLayoutBlockC, namedLayoutBlockD, namedTurnout, secondNamedTurnout, sensorANamed, sensorBNamed, sensorCNamed, sensorDNamed, signalA1HeadNamed, signalA2HeadNamed, signalA3HeadNamed, signalAMastNamed, signalB1HeadNamed, signalB2HeadNamed, signalBMastNamed, signalC1HeadNamed, signalC2HeadNamed, signalCMastNamed, signalD1HeadNamed, signalD2HeadNamed, signalDMastNamed, STATE_AC, STATE_AD, STATE_BC, STATE_BD, tBlockAName, tBlockBName, tBlockCName, tBlockDName, turnoutBXDefault, turnoutCXDefault, turnoutWidDefault, type, UNKNOWN, xOverHWidDefault, xOverLongDefault, xOverShortDefaultFields inherited from class jmri.jmrit.display.layoutEditor.LayoutTrack
models -
Constructor Summary
ConstructorsConstructorDescriptionLayoutLHXOver(String id, LayoutEditor layoutEditor) LayoutLHXOver(String id, LayoutEditor layoutEditor, int v) Main constructor method. -
Method Summary
Methods inherited from class jmri.jmrit.display.layoutEditor.LayoutTurnout
canRemove, checkForFreeConnections, checkForNonContiguousBlocks, checkForUnAssignedBlocks, collectContiguousTracksNamesInBlockNamed, getBeanReferences, getBlockBName, getBlockBoundaries, getBlockCName, getBlockDName, getBlockName, getConnectA, getConnectB, getConnectC, getConnectD, getConnection, getConnectivityStateForLayoutBlocks, getContinuingSense, getLayoutBlock, getLayoutBlockB, getLayoutBlockC, getLayoutBlockD, getLayoutConnectivity, getLinkedTurnoutName, getLinkType, getNameString, getProtectedBlocks, getSecondTurnout, getSecondTurnoutName, getSensorA, getSensorAName, getSensorB, getSensorBName, getSensorC, getSensorCName, getSensorD, getSensorDName, getSignalA1, getSignalA1Name, getSignalA2, getSignalA2Name, getSignalA3, getSignalA3Name, getSignalAMast, getSignalAMastName, getSignalB1, getSignalB1Name, getSignalB2, getSignalB2Name, getSignalBMast, getSignalBMastName, getSignalC1, getSignalC1Name, getSignalC2, getSignalC2Name, getSignalCMast, getSignalCMastName, getSignalD1, getSignalD1Name, getSignalD2, getSignalD2Name, getSignalDMast, getSignalDMastName, getSignalHead, getState, getToolTip, getTurnout, getTurnoutName, getTurnoutType, getTypeName, getVersion, hasEnteringDoubleTrack, hasEnteringDoubleTrack, hasEnteringSingleTrack, hasEnteringSingleTrack, isActive, isDisabled, isDisabledWhenOccupied, isInContinuingSenseState, isMainline, isMainlineA, isMainlineB, isMainlineC, isMainlineD, isOccupied, isSecondTurnoutInverted, isTurnoutTypeSlip, isTurnoutTypeSlip, isTurnoutTypeTurnout, isTurnoutTypeTurnout, isTurnoutTypeXover, isTurnoutTypeXover, reCheckBlockBoundary, remove, removeBeanReference, removeSML, setAllLayoutBlocks, setConnectA, setConnectB, setConnectC, setConnectD, setConnection, setContinuingSense, setDisabled, setDisableWhenOccupied, setLayoutBlock, setLayoutBlockB, setLayoutBlockBByName, setLayoutBlockByName, setLayoutBlockC, setLayoutBlockCByName, setLayoutBlockD, setLayoutBlockDByName, setLinkedTurnoutName, setLinkType, setObjects, setSecondTurnout, setSecondTurnoutInverted, setSensorA, setSensorB, setSensorC, setSensorD, setShowToolTip, setSignalA1Name, setSignalA2Name, setSignalA3Name, setSignalAMast, setSignalB1Name, setSignalB2Name, setSignalBMast, setSignalC1Name, setSignalC2Name, setSignalCMast, setSignalD1Name, setSignalD2Name, setSignalDMast, setState, setToolTip, setTurnout, setVersion, showToolTip, toggleTurnout, toString, updateBlockInfo, useBlockSpeedMethods inherited from class jmri.jmrit.display.layoutEditor.LayoutTrack
getId, getName, getTurnoutStateString, isDisconnected, setIdent
-
Constructor Details
-
LayoutLHXOver
-
LayoutLHXOver
Main constructor method.- Parameters:
id- crossover ID string.layoutEditor- main layout editor.v- version, unused.
-