com.bbn.openmap.omGraphics.util
Class ArcCalc

java.lang.Object
  extended by com.bbn.openmap.omGraphics.util.ArcCalc
All Implemented Interfaces:
java.io.Serializable

public class ArcCalc
extends java.lang.Object
implements java.io.Serializable

A class that calculates an arc between two points, given the point coordinates, and an arc measurement that represents, in radians, the length of the part of the circle that should be represented by the arc.

See Also:
Serialized Form

Field Summary
protected  double arcAngle
          This setting is the amount of an angle, limited to a semi-circle (PI) that the curve will represent.
protected  OMGraphicList arcGraphics
          Debugging list showing algorithm points.
protected  boolean arcUp
          For x-y and offset lines that have an arc drawn between them, tell which way the arc should be drawn, toward the Equator, or away from it, generally.
protected  boolean reversed
          Set to true if the points for the arc line up from x2, y2 to x1, y1
protected  float[] xpoints
           
protected  float[] ypoints
           
 
Constructor Summary
ArcCalc(double aa, boolean putArcUp)
          Set the arc that is drawn between the points of a x-y or offset line.
 
Method Summary
 void generate(int x1, int y1, int x2, int y2)
          Generate the points that will generate the curved line between two points.
 void generate(Projection proj)
           
 double getArcAngle()
          Return the arc angle set for this line.
 OMGraphicList getArcGraphics()
           
protected  double getRealAngle(float x1, float y1, float x2, float y2)
          Given the straight line between two points, figure out the angle, in radians, of that line in relation to the coordinate system on the screen.
 boolean getReversed()
           
 float[] getXPoints()
           
 float[] getYPoints()
           
 boolean isArcUp()
          Returns true if the arc direction setting is upward, meaning that the peak of the arc is above (or more so) the line that goes between the two points.
 void render(java.awt.Graphics g)
           
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

arcGraphics

protected transient OMGraphicList arcGraphics
Debugging list showing algorithm points.


xpoints

protected transient float[] xpoints

ypoints

protected transient float[] ypoints

arcAngle

protected double arcAngle
This setting is the amount of an angle, limited to a semi-circle (PI) that the curve will represent. In other words, the arc between the two end points is going to look like a 0 degrees of a circle (straight line, which is the default), or 180 degrees of a circle (full semi-circle). Given in radians, though, not degrees. OK?


arcUp

protected boolean arcUp
For x-y and offset lines that have an arc drawn between them, tell which way the arc should be drawn, toward the Equator, or away from it, generally. Default is true, to make it look like great circle line for northern hemisphere lines.


reversed

protected boolean reversed
Set to true if the points for the arc line up from x2, y2 to x1, y1

Constructor Detail

ArcCalc

public ArcCalc(double aa,
               boolean putArcUp)
Set the arc that is drawn between the points of a x-y or offset line. If the arc amount is negative, the arc will be flipped over.

Parameters:
aa - arcAngle, in radians, between 0-PI.
putArcUp - arc peak above points.
Method Detail

getArcAngle

public double getArcAngle()
Return the arc angle set for this line. Will only be set if it was set externally.

Returns:
arc angle in radians.

isArcUp

public boolean isArcUp()
Returns true if the arc direction setting is upward, meaning that the peak of the arc is above (or more so) the line that goes between the two points.


generate

public void generate(int x1,
                     int y1,
                     int x2,
                     int y2)
Generate the points that will generate the curved line between two points. The arcAngle is the number of radians of a circle that the arc should represent. Math.PI is the Max. The setArcAngle should be called before this method is called, so that the method knows what to create.


getRealAngle

protected double getRealAngle(float x1,
                              float y1,
                              float x2,
                              float y2)
Given the straight line between two points, figure out the angle, in radians, of that line in relation to the coordinate system on the screen. Always returns a positive value, and the angle is from point 1 to point 2.


getXPoints

public float[] getXPoints()

getYPoints

public float[] getYPoints()

generate

public void generate(Projection proj)

render

public void render(java.awt.Graphics g)

getArcGraphics

public OMGraphicList getArcGraphics()

getReversed

public boolean getReversed()


Copyright (C) BBNT Solutions LLC; See http://openmap.bbn.com/ for details