Class Road
java.lang.Object
|
+--Road
- All Implemented Interfaces:
- XMLSerializable
- public class Road
- extends java.lang.Object
- implements XMLSerializable
The Road class represents a Graphical Road Object. It is composed of Lanes.
Constructor Summary |
Road(int iD)
Creates a new Road instance. |
Method Summary |
void |
appendToEndOfRoad(int x,
int y)
|
void |
appendToStartOfRoad(int x,
int y)
|
java.awt.geom.GeneralPath |
calculateBoundaryPath(boolean wantleft)
|
void |
calculateLeftSide()
|
void |
calculateRightSide()
|
void |
calculateShape()
|
boolean |
checkappendLimits(int x,
int y)
Checks whether its valid to append to the start of this road given the
angle that the road would be created at. |
void |
checkBoundsWith(java.awt.geom.Line2D l1,
java.awt.geom.Line2D l2,
java.awt.geom.Line2D l3,
java.awt.geom.Line2D l4,
java.awt.geom.Rectangle2D boundingBox)
|
boolean |
checkextendLimits(int x,
int y)
Checks whether its valid to extend the end of this road given the
angle that the road would be created at. |
void |
cutOffAt(double x,
double y)
|
void |
cutOffAt(int index)
|
Road |
deepClone()
|
Road |
deepClone(int newID)
|
void |
drawDirectedMidPoints(java.awt.Graphics2D g2d)
|
void |
drawHandles(java.awt.Graphics2D g2d)
|
void |
drawRoad(java.awt.Graphics2D g2d)
Draws all the paths in "pathArray" (a GeneralPath[]) |
java.awt.geom.Point2D |
getEndHandle()
|
double |
getFirstLineAngle()
|
java.awt.geom.Point2D |
getHandle(java.awt.geom.Point2D point)
|
int |
getID()
|
java.awt.geom.GeneralPath |
getLane(int index)
|
java.awt.geom.Point2D |
getLaneEndPoint(int index)
|
java.awt.geom.GeneralPath[] |
getLanes()
|
java.awt.geom.Point2D |
getLaneStartPoint(int index)
|
double |
getLastLineAngle()
|
java.awt.geom.Line2D |
getLine(int index)
|
java.awt.geom.Point2D |
getMidPoint(java.awt.geom.Point2D point)
|
java.awt.geom.Point2D |
getMidPointInLane(java.awt.geom.GeneralPath lane,
java.awt.geom.Point2D point)
returns the mid-point arrow on "lane" that matched "point". |
java.awt.geom.Line2D |
getNearestLine(java.awt.geom.Point2D point)
|
int |
getNumArrayElements()
returns the number of initilized elements of a GeneralPath[] |
int |
getNumberOfSections()
|
int |
getNumLanes()
|
int |
getNumLeftLanes()
|
int |
getNumRightLanes()
|
java.awt.Shape |
getRoadLeftSide()
|
int |
getRoadLeftWidth()
|
java.awt.Shape |
getRoadRightSide()
|
int |
getRoadRightWidth()
|
java.awt.Shape |
getRoadSide(boolean wantLeft)
|
java.awt.Shape |
getRoadSide(int X,
int Y)
|
int |
getRoadWidth()
|
Road |
getSectionFrom(int newID,
double x,
double y)
|
Road |
getSectionFrom(int newID,
int index)
|
java.awt.Shape |
getShape()
|
java.awt.geom.Point2D |
getStartHandle()
|
java.lang.String |
getXMLName()
|
boolean |
isEmpty()
|
boolean |
isEndHandle(java.awt.geom.Point2D point)
|
boolean |
isInCenterLane(java.awt.geom.Point2D point)
|
boolean |
isSameLaneArrangement(Road tempRoad)
|
boolean |
isSingleLane()
|
boolean |
isStartHandle(java.awt.geom.Point2D point)
|
boolean |
isSymetrical()
|
void |
loadChilds(XMLLoader loader)
|
void |
loadSelf(XMLElement element)
|
void |
mergeRoad(Road roadToMerge)
|
void |
modifyRoadHandle(boolean isStartPoint,
java.awt.geom.Point2D newP)
|
void |
modifyRoadHandle(java.awt.geom.Point2D pToChange,
java.awt.geom.Point2D newP)
|
void |
removeRoadPoint(java.awt.geom.Point2D pointToKill)
|
void |
reverseDirection()
|
void |
saveChilds(XMLSaver saver)
|
XMLElement |
saveSelf()
|
void |
setCenterPath(java.awt.geom.GeneralPath l0)
|
void |
setLanes(java.awt.geom.GeneralPath[] lanes)
|
void |
setMultipleLanes(int numLanes)
|
void |
setMultipleLeftLanes(int multipleNum)
|
void |
setMultipleRightLanes(int multipleNum)
|
void |
setRoadShapeVariables()
|
void |
setSingleLane(boolean singleLane)
|
void |
setStart(int x,
int y)
|
void |
snapEndToGrid()
|
void |
snapStartToGrid()
|
Road |
splitRoad(double x,
double y,
int newIndex)
|
Methods inherited from class java.lang.Object |
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
laneWidth
public static final int laneWidth
maxLaneNum
public static final int maxLaneNum
halfPI
public static final double halfPI
laneSurface
public static final java.awt.BasicStroke laneSurface
centerLine
public static final java.awt.BasicStroke centerLine
normal
public static final java.awt.BasicStroke normal
laneBackGround
public static final java.awt.BasicStroke laneBackGround
busyness
public int busyness
Road
public Road(int iD)
- Creates a new
Road
instance.
The Road has "maxLaneNum" lanes. Lanes are stored in an array.
The direction of a lane can be determined from its center-path (index 0).
left lanes are have odd number array indices.
-> 7 | | 8 ->
-> 5 | | 6 ->
-> 3 | | 4 ->
-> 1 | | 2 ->
-> 0 | | 0 <-
<- 2 | | 1 <-
<- 4 | | 3 <-
<- 6 | | 5 <-
<- 8 | | 7 <-
- Parameters:
index
- The ID number of the Road
drawRoad
public void drawRoad(java.awt.Graphics2D g2d)
- Draws all the paths in "pathArray" (a GeneralPath[])
drawHandles
public void drawHandles(java.awt.Graphics2D g2d)
drawDirectedMidPoints
public void drawDirectedMidPoints(java.awt.Graphics2D g2d)
getStartHandle
public java.awt.geom.Point2D getStartHandle()
getEndHandle
public java.awt.geom.Point2D getEndHandle()
getHandle
public java.awt.geom.Point2D getHandle(java.awt.geom.Point2D point)
getMidPoint
public java.awt.geom.Point2D getMidPoint(java.awt.geom.Point2D point)
getMidPointInLane
public java.awt.geom.Point2D getMidPointInLane(java.awt.geom.GeneralPath lane,
java.awt.geom.Point2D point)
- returns the mid-point arrow on "lane" that matched "point".
getNearestLine
public java.awt.geom.Line2D getNearestLine(java.awt.geom.Point2D point)
getLine
public java.awt.geom.Line2D getLine(int index)
getShape
public java.awt.Shape getShape()
getRoadSide
public java.awt.Shape getRoadSide(int X,
int Y)
getRoadSide
public java.awt.Shape getRoadSide(boolean wantLeft)
getRoadLeftSide
public java.awt.Shape getRoadLeftSide()
getRoadRightSide
public java.awt.Shape getRoadRightSide()
getID
public int getID()
getLane
public java.awt.geom.GeneralPath getLane(int index)
getLaneStartPoint
public java.awt.geom.Point2D getLaneStartPoint(int index)
getLaneEndPoint
public java.awt.geom.Point2D getLaneEndPoint(int index)
getLanes
public java.awt.geom.GeneralPath[] getLanes()
getNumLanes
public int getNumLanes()
getLastLineAngle
public double getLastLineAngle()
getFirstLineAngle
public double getFirstLineAngle()
getNumberOfSections
public int getNumberOfSections()
getRoadWidth
public int getRoadWidth()
getNumLeftLanes
public int getNumLeftLanes()
getNumRightLanes
public int getNumRightLanes()
getRoadLeftWidth
public int getRoadLeftWidth()
getRoadRightWidth
public int getRoadRightWidth()
setStart
public void setStart(int x,
int y)
setSingleLane
public void setSingleLane(boolean singleLane)
setLanes
public void setLanes(java.awt.geom.GeneralPath[] lanes)
setCenterPath
public void setCenterPath(java.awt.geom.GeneralPath l0)
setRoadShapeVariables
public void setRoadShapeVariables()
calculateShape
public void calculateShape()
calculateLeftSide
public void calculateLeftSide()
calculateRightSide
public void calculateRightSide()
calculateBoundaryPath
public java.awt.geom.GeneralPath calculateBoundaryPath(boolean wantleft)
isEmpty
public boolean isEmpty()
isEndHandle
public boolean isEndHandle(java.awt.geom.Point2D point)
isSingleLane
public boolean isSingleLane()
isSymetrical
public boolean isSymetrical()
isStartHandle
public boolean isStartHandle(java.awt.geom.Point2D point)
isInCenterLane
public boolean isInCenterLane(java.awt.geom.Point2D point)
isSameLaneArrangement
public boolean isSameLaneArrangement(Road tempRoad)
checkBoundsWith
public void checkBoundsWith(java.awt.geom.Line2D l1,
java.awt.geom.Line2D l2,
java.awt.geom.Line2D l3,
java.awt.geom.Line2D l4,
java.awt.geom.Rectangle2D boundingBox)
appendToStartOfRoad
public void appendToStartOfRoad(int x,
int y)
appendToEndOfRoad
public void appendToEndOfRoad(int x,
int y)
checkappendLimits
public boolean checkappendLimits(int x,
int y)
- Checks whether its valid to append to the start of this road given the
angle that the road would be created at.
checkextendLimits
public boolean checkextendLimits(int x,
int y)
- Checks whether its valid to extend the end of this road given the
angle that the road would be created at.
reverseDirection
public void reverseDirection()
modifyRoadHandle
public void modifyRoadHandle(java.awt.geom.Point2D pToChange,
java.awt.geom.Point2D newP)
modifyRoadHandle
public void modifyRoadHandle(boolean isStartPoint,
java.awt.geom.Point2D newP)
removeRoadPoint
public void removeRoadPoint(java.awt.geom.Point2D pointToKill)
mergeRoad
public void mergeRoad(Road roadToMerge)
setMultipleLeftLanes
public void setMultipleLeftLanes(int multipleNum)
setMultipleRightLanes
public void setMultipleRightLanes(int multipleNum)
setMultipleLanes
public void setMultipleLanes(int numLanes)
getSectionFrom
public Road getSectionFrom(int newID,
int index)
getSectionFrom
public Road getSectionFrom(int newID,
double x,
double y)
cutOffAt
public void cutOffAt(int index)
cutOffAt
public void cutOffAt(double x,
double y)
splitRoad
public Road splitRoad(double x,
double y,
int newIndex)
snapStartToGrid
public void snapStartToGrid()
snapEndToGrid
public void snapEndToGrid()
deepClone
public Road deepClone(int newID)
deepClone
public Road deepClone()
getNumArrayElements
public int getNumArrayElements()
- returns the number of initilized elements of a GeneralPath[]
getXMLName
public java.lang.String getXMLName()
- Specified by:
getXMLName
in interface XMLSerializable
saveSelf
public XMLElement saveSelf()
- Specified by:
saveSelf
in interface XMLSerializable
saveChilds
public void saveChilds(XMLSaver saver)
- Specified by:
saveChilds
in interface XMLSerializable
loadSelf
public void loadSelf(XMLElement element)
- Specified by:
loadSelf
in interface XMLSerializable
loadChilds
public void loadChilds(XMLLoader loader)
- Specified by:
loadChilds
in interface XMLSerializable