com.bbn.openmap.proj
Class Orthographic

java.lang.Object
  |
  +--com.bbn.openmap.proj.Proj
        |
        +--com.bbn.openmap.proj.Azimuth
              |
              +--com.bbn.openmap.proj.Orthographic
All Implemented Interfaces:
java.lang.Cloneable, Projection, java.io.Serializable
Direct Known Subclasses:
OrthographicView

public class Orthographic
extends Azimuth

Implements the Orthographic projection.

See Also:
Serialized Form

Nested Class Summary
 
Nested classes inherited from class com.bbn.openmap.proj.Azimuth
Azimuth.AzimuthVar
 
Field Summary
protected  float cosCtrLat
           
static float epsilon
           
protected  int hy
           
protected static float NORTH_BOUNDARY
           
static java.lang.String OrthographicName
          The Orthographic name.
static int OrthographicType
          The Orthographic type of projection.
protected  float sinCtrLat
           
protected static float SOUTH_BOUNDARY
           
protected  int wx
           
 
Fields inherited from class com.bbn.openmap.proj.Azimuth
clockwise, spaceColor, world
 
Fields inherited from class com.bbn.openmap.proj.Proj
ctrLat, ctrLon, DATELINE, height, maxscale, mercator, MIN_HEIGHT, MIN_WIDTH, minscale, NORTH_POLE, NUM_DEFAULT_CIRCLE_VERTS, NUM_DEFAULT_GREAT_SEGS, pixelsPerMeter, planetPixelCircumference, planetPixelRadius, planetRadius, projID, scale, scaled_radius, SOUTH_POLE, type, width, XSCALE_THRESHOLD, XTHRESHOLD
 
Constructor Summary
Orthographic(LatLonPoint center, float scale, int width, int height)
          Construct an Orthographic projection.
Orthographic(LatLonPoint center, float scale, int width, int height, int type)
          Construct an Orthographic projection.
 
Method Summary
protected  java.awt.Point _forward(float phi, float lambda, java.awt.Point p, Azimuth.AzimuthVar azVar)
          Forward project a point.
protected  void computeParameters()
          Called when some fundamental parameters change.
 LatLonPoint getLowerRight()
          Get the lower right (southeast) point of the projection.
 java.lang.String getName()
          Get the name string of the projection.
 LatLonPoint getUpperLeft()
          Get the upper left (northernmost and westernmost) point of the projection.
static boolean hemisphere_clip(float phi1, float lambda0, float phi, float lambda)
          Check if a given lat/lon is within the visible hemisphere.
 LatLonPoint inverse(int x, int y, LatLonPoint llp)
          Inverse project x,y coordinates into a LatLonPoint.
 LatLonPoint inverse(java.awt.Point pt, LatLonPoint llp)
          Inverse project a Point.
 boolean isPlotable(float lat, float lon)
          Checks if a LatLonPoint is plot-able.
 float normalize_latitude(float lat)
          Sets radian latitude to something sane.
 java.lang.String toString()
          Return stringified description of this projection.
 
Methods inherited from class com.bbn.openmap.proj.Azimuth
_forwardPoly, _panE, _panN, _panNE, _panNW, _panS, _panSE, _panSW, _panW, drawBackground, drawBackground, forward, forward, forward, forwardRaw, isClockwiseTraversal, overNorthPole, overPoint, overSouthPole, pan, setClockwiseTraversal
 
Methods inherited from class com.bbn.openmap.proj.Proj
clone, doPolyDispatch, equals, forward, forward, forwardArc, forwardArc, forwardArc, forwardCircle, forwardCircle, forwardCircle, forwardGreatPoly, forwardLine, forwardLine, forwardPoly, forwardPoly, forwardRaster, forwardRect, forwardRect, forwardRect, forwardRhumbPoly, getCenter, getHeight, getMaxScale, getMinScale, getPlanetPixelCircumference, getPlanetPixelRadius, getPlanetRadius, getPPM, getProjectionID, getProjectionType, getScale, getScale, getWidth, hashCode, inverse, inverse, isComplicatedLineType, isPlotable, makeClone, pan, panE, panE, panN, panN, panNE, panNE, panNW, panNW, panS, panS, panSE, panSE, panSW, panSW, panW, panW, setCenter, setCenter, setHeight, setMaxScale, setMinScale, setParms, setPlanetRadius, setPPM, setProjectionID, setScale, setWidth, wrap_longitude
 
Methods inherited from class java.lang.Object
finalize, getClass, notify, notifyAll, wait, wait, wait
 

Field Detail

OrthographicName

public static final transient java.lang.String OrthographicName
The Orthographic name.

See Also:
Constant Field Values

OrthographicType

public static final transient int OrthographicType
The Orthographic type of projection.

See Also:
Constant Field Values

hy

protected int hy

wx

protected int wx

cosCtrLat

protected float cosCtrLat

sinCtrLat

protected float sinCtrLat

epsilon

public static final transient float epsilon
See Also:
Constant Field Values

NORTH_BOUNDARY

protected static final transient float NORTH_BOUNDARY
See Also:
Constant Field Values

SOUTH_BOUNDARY

protected static final transient float SOUTH_BOUNDARY
See Also:
Constant Field Values
Constructor Detail

Orthographic

public Orthographic(LatLonPoint center,
                    float scale,
                    int width,
                    int height)
Construct an Orthographic projection.

Parameters:
center - LatLonPoint center of projection
scale - float scale of projection
width - width of screen
height - height of screen

Orthographic

public Orthographic(LatLonPoint center,
                    float scale,
                    int width,
                    int height,
                    int type)
Construct an Orthographic projection.

Parameters:
center - LatLonPoint center of projection
scale - float scale of projection
width - width of screen
height - height of screen
type - subclass's type
Method Detail

toString

public java.lang.String toString()
Return stringified description of this projection.

Overrides:
toString in class Azimuth
Returns:
String
See Also:
Projection.getProjectionID()

computeParameters

protected void computeParameters()
Called when some fundamental parameters change.

Each projection will decide how to respond to this change. For instance, they may need to recalculate "constant" paramters used in the forward() and inverse() calls.

Overrides:
computeParameters in class Azimuth

normalize_latitude

public float normalize_latitude(float lat)
Sets radian latitude to something sane. This is an abstract function since some projections don't deal well with extreme latitudes.

Specified by:
normalize_latitude in class Proj
Parameters:
lat - float latitude in radians
Returns:
float latitude (-PI/2 <= y <= PI/2)
See Also:
LatLonPoint.normalize_latitude(float)

hemisphere_clip

public static final boolean hemisphere_clip(float phi1,
                                            float lambda0,
                                            float phi,
                                            float lambda)
Check if a given lat/lon is within the visible hemisphere.

Parameters:
phi1 - latitude
lambda0 - longitude
phi - latitude
lambda - longitude
Returns:
boolean true if within the visible hemisphere, false if not

isPlotable

public boolean isPlotable(float lat,
                          float lon)
Checks if a LatLonPoint is plot-able.

A point is plot-able if it is within the visible hemisphere.

Parameters:
lat - float latitude in decimal degrees
lon - float longitude in decimal degrees
Returns:
boolean

_forward

protected java.awt.Point _forward(float phi,
                                  float lambda,
                                  java.awt.Point p,
                                  Azimuth.AzimuthVar azVar)
Forward project a point. If the point is not within the viewable hemisphere, return flags in AzimuthVar variable if specified.

Specified by:
_forward in class Azimuth
Parameters:
phi - float latitude in radians
lambda - float longitude in radians
p - Point
azVar - AzimuthVar or null
Returns:
Point pt

inverse

public LatLonPoint inverse(int x,
                           int y,
                           LatLonPoint llp)
Inverse project x,y coordinates into a LatLonPoint.

Parameters:
x - integer x coordinate
y - integer y coordinate
llp - LatLonPoint
Returns:
LatLonPoint llp
See Also:
Proj.inverse(Point)

inverse

public LatLonPoint inverse(java.awt.Point pt,
                           LatLonPoint llp)
Inverse project a Point.

Parameters:
pt - x,y Point
llp - resulting LatLonPoint
Returns:
LatLonPoint llp

getUpperLeft

public LatLonPoint getUpperLeft()
Get the upper left (northernmost and westernmost) point of the projection.

Returns the upper left point (or closest equivalent) of the projection based on the center point and height and width of screen.

Returns:
LatLonPoint

getLowerRight

public LatLonPoint getLowerRight()
Get the lower right (southeast) point of the projection.

Returns the lower right point (or closest equivalent) of the projection based on the center point and height and width of screen.

This is trivial for most cylindrical projections, but much more complicated for azimuthal projections.

Returns:
LatLonPoint

getName

public java.lang.String getName()
Get the name string of the projection.

Specified by:
getName in interface Projection
Overrides:
getName in class Azimuth


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