## 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, init, 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