|
||||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | |||||||||
java.lang.Objectjmri.jmrit.display.LayoutTurnout
public class LayoutTurnout
A LayoutTurnout corresponds to a turnout on the layout. A LayoutTurnout is an extension of the standard Turnout object with drawing and connectivity information added.
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.
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, Set Signals at Turnout, and Set Signals at Double Crossover.
| Field Summary | |
|---|---|
String |
blockBName
|
String |
blockCName
|
String |
blockDName
|
String |
blockName
|
Point2D |
center
|
Object |
connectA
|
String |
connectAName
|
Object |
connectB
|
String |
connectBName
|
Object |
connectC
|
String |
connectCName
|
Object |
connectD
|
String |
connectDName
|
int |
continuingSense
|
boolean |
disabled
|
Point2D |
dispB
|
Point2D |
dispC
|
static int |
DOUBLE_XOVER
|
String |
ident
|
static int |
LH_TURNOUT
|
static int |
LH_XOVER
|
static int |
RH_TURNOUT
|
static int |
RH_XOVER
|
String |
signalA1Name
|
String |
signalA2Name
|
String |
signalB1Name
|
String |
signalB2Name
|
String |
signalC1Name
|
String |
signalC2Name
|
String |
signalD1Name
|
String |
signalD2Name
|
String |
tBlockBName
|
String |
tBlockCName
|
String |
tBlockDName
|
String |
tBlockName
|
String |
tTurnoutName
|
String |
turnoutName
|
int |
type
|
static int |
WYE_TURNOUT
|
| Constructor Summary | |
|---|---|
LayoutTurnout(String id,
int t,
Point2D c,
double rot,
double xFactor,
double yFactor,
LayoutEditor myPanel)
constructor method |
|
| Method Summary | |
|---|---|
protected void |
editLayoutTurnout()
Edit a Layout Turnout |
String |
getBlockBName()
|
String |
getBlockCName()
|
String |
getBlockDName()
|
String |
getBlockName()
|
Object |
getConnectA()
|
Object |
getConnectB()
|
Object |
getConnectC()
|
Object |
getConnectD()
|
int |
getContinuingSense()
|
Point2D |
getCoordsA()
|
Point2D |
getCoordsB()
|
Point2D |
getCoordsC()
|
Point2D |
getCoordsCenter()
|
Point2D |
getCoordsD()
|
LayoutBlock |
getLayoutBlock()
|
LayoutBlock |
getLayoutBlockB()
|
LayoutBlock |
getLayoutBlockC()
|
LayoutBlock |
getLayoutBlockD()
|
String |
getName()
Accessor methods |
String |
getSignalA1Name()
|
String |
getSignalA2Name()
|
String |
getSignalB1Name()
|
String |
getSignalB2Name()
|
String |
getSignalC1Name()
|
String |
getSignalC2Name()
|
String |
getSignalD1Name()
|
String |
getSignalD2Name()
|
Turnout |
getTurnout()
|
String |
getTurnoutName()
|
int |
getTurnoutType()
|
boolean |
isActive()
"active" means that the object is still displayed, and should be stored. |
boolean |
isDisabled()
|
boolean |
isMainlineA()
Methods to test if turnout legs are mainline track or not Returns true if connecting track segment is mainline Defaults to not mainline if connecting track segment is missing |
boolean |
isMainlineB()
|
boolean |
isMainlineC()
|
boolean |
isMainlineD()
|
void |
scaleCoords(float xFactor,
float yFactor)
|
void |
setConnectA(Object o,
int type)
|
void |
setConnectB(Object o,
int type)
|
void |
setConnectC(Object o,
int type)
|
void |
setConnectD(Object o,
int type)
|
void |
setContinuingSense(int sense)
|
void |
setCoordsA(Point2D p)
|
void |
setCoordsB(Point2D p)
|
void |
setCoordsC(Point2D p)
|
void |
setCoordsCenter(Point2D p)
Modify coordinates methods |
void |
setCoordsD(Point2D p)
|
void |
setDisabled(boolean state)
|
void |
setLayoutBlock(LayoutBlock b)
Set Up a Layout Block(s) for this Turnout |
void |
setLayoutBlockB(LayoutBlock b)
|
void |
setLayoutBlockBByName(String name)
|
void |
setLayoutBlockByName(String name)
|
void |
setLayoutBlockC(LayoutBlock b)
|
void |
setLayoutBlockCByName(String name)
|
void |
setLayoutBlockD(LayoutBlock b)
|
void |
setLayoutBlockDByName(String name)
|
void |
setObjects(LayoutEditor p)
Initialization method The above variables are initialized by PositionablePointXml, then the following method is called after the entire LayoutEditor is loaded to set the specific TrackSegment objects. |
void |
setSignalA1Name(String signalName)
|
void |
setSignalA2Name(String signalName)
|
void |
setSignalB1Name(String signalName)
|
void |
setSignalB2Name(String signalName)
|
void |
setSignalC1Name(String signalName)
|
void |
setSignalC2Name(String signalName)
|
void |
setSignalD1Name(String signalName)
|
void |
setSignalD2Name(String signalName)
|
void |
setTurnout(String tName)
|
protected void |
showPopUp(MouseEvent e)
Display popup menu for information and editing |
void |
toggleTurnout()
Toggle turnout if clicked on, physical turnout exists, and not disabled |
| Methods inherited from class java.lang.Object |
|---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
| Field Detail |
|---|
public static final int RH_TURNOUT
public static final int LH_TURNOUT
public static final int WYE_TURNOUT
public static final int DOUBLE_XOVER
public static final int RH_XOVER
public static final int LH_XOVER
public String ident
public String turnoutName
public String blockName
public String blockBName
public String blockCName
public String blockDName
public String signalA1Name
public String signalA2Name
public String signalB1Name
public String signalB2Name
public String signalC1Name
public String signalC2Name
public String signalD1Name
public String signalD2Name
public int type
public Object connectA
public Object connectB
public Object connectC
public Object connectD
public int continuingSense
public boolean disabled
public Point2D center
public Point2D dispB
public Point2D dispC
public String connectAName
public String connectBName
public String connectCName
public String connectDName
public String tBlockName
public String tBlockBName
public String tBlockCName
public String tBlockDName
public String tTurnoutName
| Constructor Detail |
|---|
public LayoutTurnout(String id,
int t,
Point2D c,
double rot,
double xFactor,
double yFactor,
LayoutEditor myPanel)
| Method Detail |
|---|
public String getName()
public String getTurnoutName()
public String getBlockName()
public String getBlockBName()
public String getBlockCName()
public String getBlockDName()
public String getSignalA1Name()
public void setSignalA1Name(String signalName)
public String getSignalA2Name()
public void setSignalA2Name(String signalName)
public String getSignalB1Name()
public void setSignalB1Name(String signalName)
public String getSignalB2Name()
public void setSignalB2Name(String signalName)
public String getSignalC1Name()
public void setSignalC1Name(String signalName)
public String getSignalC2Name()
public void setSignalC2Name(String signalName)
public String getSignalD1Name()
public void setSignalD1Name(String signalName)
public String getSignalD2Name()
public void setSignalD2Name(String signalName)
public int getTurnoutType()
public Object getConnectA()
public Object getConnectB()
public Object getConnectC()
public Object getConnectD()
public Turnout getTurnout()
public int getContinuingSense()
public void setTurnout(String tName)
public void setContinuingSense(int sense)
public void setDisabled(boolean state)
public boolean isDisabled()
public void setConnectA(Object o,
int type)
public void setConnectB(Object o,
int type)
public void setConnectC(Object o,
int type)
public void setConnectD(Object o,
int type)
public LayoutBlock getLayoutBlock()
public LayoutBlock getLayoutBlockB()
public LayoutBlock getLayoutBlockC()
public LayoutBlock getLayoutBlockD()
public Point2D getCoordsCenter()
public Point2D getCoordsA()
public Point2D getCoordsB()
public Point2D getCoordsC()
public Point2D getCoordsD()
public void setLayoutBlock(LayoutBlock b)
public void setLayoutBlockB(LayoutBlock b)
public void setLayoutBlockC(LayoutBlock b)
public void setLayoutBlockD(LayoutBlock b)
public void setLayoutBlockByName(String name)
public void setLayoutBlockBByName(String name)
public void setLayoutBlockCByName(String name)
public void setLayoutBlockDByName(String name)
public boolean isMainlineA()
public boolean isMainlineB()
public boolean isMainlineC()
public boolean isMainlineD()
public void setCoordsCenter(Point2D p)
public void setCoordsA(Point2D p)
public void setCoordsB(Point2D p)
public void setCoordsC(Point2D p)
public void setCoordsD(Point2D p)
public void scaleCoords(float xFactor,
float yFactor)
public void toggleTurnout()
public void setObjects(LayoutEditor p)
protected void showPopUp(MouseEvent e)
protected void editLayoutTurnout()
public boolean isActive()
|
||||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | |||||||||