Static Public Member Functions  
static double  calculateDistancePointToStreet (Street street, int x, int y, boolean sqrt, int[] result) 
static boolean  findNearestPointOnStreet (Street street, int x, int y, int[] result) 
static Street  findNearestStreet (int x, int y, int maxDistance, double[] distance, int[] nearestPoint) 
static Vehicle  findNearestVehicle (int x, int y, int maxDistance, long[] distance) 
static Node  findNearestNode (int x, int y, int maxDistance, long[] distance) 
static boolean  findSegmentIntersection (int x1, int y1, int x2, int y2, int x3, int y3, int x4, int y4, double[] result) 
static int  findLineCircleIntersections (int circleX, int circleY, int circleRadius, int x1, int y1, int x2, int y2, boolean onlyOnSegment, int[] result) 
static boolean  getXYParallelRight (int x1, int y1, int x2, int y2, int distance, double[] result) 
static void  calculateBridges (Street bridgeStreet, Street otherStreet) 
static void  calculateResizedLine (int[] startPoint, int[] endPoint, double correction, boolean correctStart, boolean correctEnd) 
This class holds some geometric functions needed for various calculations on the map. It's just a helper class to make the map class smaller and as this class has no variables, all functions are declared static.

inlinestatic 
Checks for intersections on the maps and creates bridges if necessary (only for display purposes). The bridge is added to the lowerspeedStreet
. This function takes quite a long time to process if the map is large.
bridgeStreet  the street which will be above otherStreet if both intersect 
otherStreet  the other street 

inlinestatic 
Calculate the distance between a point and a street.
street  the street given 
x  x coordinate of the point 
y  y coordinate of the point 
sqrt  if set to true , the correct distance is returned; if set to false the square of the distance is returned (little bit faster as it saves a call to Math.sqrt() ; however, use only if you can handle this!) 
result  an array holding the point on the street so that it can be returned. result[0] holds the x coordinate, result[1] the y coordinate. Make sure the array has the correct size (2 elements)! 
double
. If nothing was found, Double.MAX_VALUE
is returned.

inlinestatic 
Recalculates start and end points of a line so that the line is shorter or longer than before.
startPoint  the start point. x coordinate is expected in startPoint[0] , y in startPoint[1] . Will be used to return the result. 
endPoint  the end point. x coordinate is expected in endPoint[0] , y in endPoint[1] . Will be used to return the result. 
correction  the amount of length correction. Use a positive value to makes the line shorter, a negative to make it longer. If correctStart and correctEnd are both true , the total correction is double of this value, if both are false no correction is done. 
correctStart  if the startPoint shall be corrected. 
correctEnd  if the endPoint shall be corrected. 

inlinestatic 
Finds an intersection between a line and a circle. Code basically from VB Helper: Find the points where a line intersects a circle in Visual Basic .NET (link last visited: 31.10.2008).
circleX  The x coordinate of the middle of the circle 
circleY  The y coordinate of the middle of the circle 
circleRadius  The radius of the circle 
x1  The x coordinate of the start point of the line 
y1  The y coordinate of the start point of the line 
x2  The x coordinate of the end point of the line 
y2  The y coordinate of the end point of the line 
onlyOnSegment  If true , only intersection points are found which are on the line segment, else intersections on the extension of the line segment are also found! 
result  An array to return the result. Should be an int[4]. The x coordinate of the first point will be in result[0] , the y coordinate in result[1] . The x coordinate of the second point will be in result[2] , the y coordinate in result[3] . 

inlinestatic 
Returns the nearest node to a given point. First all regions are calculated which are within maxDistance
. Then, ALL nodes in these regions are checked if they are within this maxDistance
and the best one is returned (if any exists).
x  the x coordinate of the given point 
y  the x coordinate of the given point 
maxDistance  the maximum distance; use Integer.MAX_VALUE if you just want to get any nearest vehicle but note that this costs a lot of performance because ALL regions and ALL nodes are checked! 
distance  an array used to return the distance between the nearest point and the point given. This should be a long[1] array! 
null
if none was found or an error occured

inlinestatic 
Calculates the point ON a street which is nearest to a given point (for snapping or such things). This code was inspired by Paul Bourke's homepage, especially the Delphi sourcecode (link last visited on 15.08.2008). See there for the mathematical background of this calculation!
street  the street 
x  the x coordinate of the point 
y  the y coordinate of the point 
result  an array for the result. result[0] holds the x coordinate, result[1] the y coordinate. Make sure the array has the correct size (2 elements), otherwise you will not get a result! 
true
if calculation was successful, else false

inlinestatic 
Returns the nearest street to a given point. First all regions are calculated which are within maxDistance
. Then, ALL streets in these regions are checked if they are within this maxDistance
and the best one is returned (if any exists).
x  the x coordinate of the given point 
y  the x coordinate of the given point 
maxDistance  the maximum distance; use Integer.MAX_VALUE if you just want to get any nearest street but note that this costs a lot of performance because ALL regions and ALL streets are checked! 
distance  an array used to return the distance between the nearest point and the point given. This should be a double[1] array! 
nearestPoint  an array used to return the xcoordinate (nearestpoint[0] ) and ycoordinate (nearestpoint[1] ) on the street. 
null
if none was found or an error occured

inlinestatic 
Returns the nearest vehicle to a given point. First all regions are calculated which are within maxDistance
. Then, ALL vehicles in these regions are checked if they are within this maxDistance
and the best one is returned (if any exists). Note that only vehicles which are currently active will be returned!
x  the x coordinate of the given point 
y  the x coordinate of the given point 
maxDistance  the maximum distance; use Integer.MAX_VALUE if you just want to get any nearest vehicle but note that this costs a lot of performance because ALL regions and ALL vehicles are checked! 
distance  an array used to return the distance between the nearest point and the point given. This should be a long[1] array! 
null
if none was found or an error occured

inlinestatic 
Finds an intersection between two segments.
Code basically from CODE & FORM blog from Marius Watz (link last visited: 23.09.2008).
x1  the x coordinate of the first point of the first segment 
y1  the y coordinate of the first point of the first segment 
x2  the x coordinate of the second point of the first segment 
y2  the y coordinate of the second point of the first segment 
x3  the x coordinate of the first point of the second segment 
y3  the y coordinate of the first point of the second segment 
x4  the x coordinate of the second point of the second segment 
y4  the y coordinate of the second point of the second segment 
result  an array to return the intersection point. The x coordinate will be in result[0] , the y coordinate in result[1] . 
true
if lines intersect, false
if lines don't intersect or if you didn't supply a valid result
array.

inlinestatic 
Gets the x and y coordinate difference of a parallel line on the right side (seen from first point to second point).
x1  the x coordinate of the first point 
y1  the y coordinate of the first point 
x2  the x coordinate of the second point 
y2  the y coordinate of the second point 
distance  the distance 
result  an array to return the coordinate differences of the parallel. The x coordinate difference will be in result[0] , the y coordinate difference in result[1] . 
true
if calculation was successful, else false