com.bbn.openmap.omGraphics
Class OMCircle

java.lang.Object
  |
  +--com.bbn.openmap.omGraphics.geom.BasicGeometry
        |
        +--com.bbn.openmap.omGraphics.OMGraphic
              |
              +--com.bbn.openmap.omGraphics.OMArc
                    |
                    +--com.bbn.openmap.omGraphics.OMCircle
All Implemented Interfaces:
java.lang.Cloneable, OMGeometry, OMGraphicConstants, java.io.Serializable
Direct Known Subclasses:
OMEllipse, OMRangeRings

public class OMCircle
extends OMArc
implements java.io.Serializable

Graphic object that represents a circle or an ellipse.

NOTE:

See the RESTRICTIONS on Lat/Lon polygons/polylines which apply to circles as well. Not following the guidelines listed may result in ambiguous/undefined shapes! Similar assumptions apply to the other vector graphics that we define: polys, rects, lines.

We currently do not allow LatLon ellipses, only XY.

These assumptions are virtually the same as those on the more generic OMPoly graphic type.

See Also:
OMPoly, Serialized Form

Field Summary
 
Fields inherited from class com.bbn.openmap.omGraphics.OMArc
arcType, center, extent, height, nverts, off_x, off_y, radius, rotationAngle, start, width, x1, y1
 
Fields inherited from class com.bbn.openmap.omGraphics.OMGraphic
declutterType, displayPaint, edgeMatchesFill, fillPaint, hasLabel, linePaint, matted, mattingPaint, renderType, selected, selectPaint, showEditablePalette, stroke, textureMask
 
Fields inherited from class com.bbn.openmap.omGraphics.geom.BasicGeometry
APP_OBJECT_KEY, appObject, ATT_MAP_KEY, lineType, needToRegenerate, shape, visible
 
Fields inherited from interface com.bbn.openmap.omGraphics.OMGraphicConstants
ADD_GRAPHIC_MASK, BASIC_STROKE, clear, DECIMAL_DEGREES, DECLUTTERTYPE_LINE, DECLUTTERTYPE_MOVE, DECLUTTERTYPE_NONE, DECLUTTERTYPE_SPACE, DEFAULT_ROTATIONANGLE, DELETE_GRAPHIC_MASK, DESELECT_GRAPHIC_MASK, DESELECTALL_GRAPHIC_MASK, GRAPHICTYPE_ARC, GRAPHICTYPE_BITMAP, GRAPHICTYPE_CIRCLE, GRAPHICTYPE_GRAPHIC, GRAPHICTYPE_GRID, GRAPHICTYPE_LINE, GRAPHICTYPE_POINT, GRAPHICTYPE_POLY, GRAPHICTYPE_RASTER, GRAPHICTYPE_RECTANGLE, GRAPHICTYPE_TEXT, INFOLINE, LABEL, LINETYPE_GREATCIRCLE, LINETYPE_RHUMB, LINETYPE_STRAIGHT, LINETYPE_UNKNOWN, LOWER_GRAPHIC_MASK, LOWER_TO_BOTTOM_GRAPHIC_MASK, RADIANS, RAISE_GRAPHIC_MASK, RAISE_TO_TOP_GRAPHIC_MASK, RENDERTYPE_LATLON, RENDERTYPE_OFFSET, RENDERTYPE_UNKNOWN, RENDERTYPE_XY, SELECT_GRAPHIC_MASK, SORT_GRAPHICS_MASK, TOOLTIP, UPDATE_GRAPHIC_MASK
 
Constructor Summary
OMCircle()
          The simplest constructor for an OMCircle, and it expects that all fields will be filled in later.
OMCircle(float latPoint, float lonPoint, float radius)
          Creates an OMCircle with a Lat-lon center and a lat-lon axis.
OMCircle(float latPoint, float lonPoint, float radius, Length units)
          Create an OMCircle with a lat/lon center and a physical distance radius.
OMCircle(float latPoint, float lonPoint, float radius, Length units, int nverts)
          Create an OMCircle with a lat/lon center and a physical distance radius.
OMCircle(float latPoint, float lonPoint, int w, int h)
          Create a OMCircle, positioned with a lat-lon center and x-y axis.
OMCircle(float latPoint, float lonPoint, int offset_x1, int offset_y1, int w, int h)
          Create a OMCircle, positioned at a Lat-lon location, x-y offset, x-y axis.
OMCircle(int x1, int y1, int w, int h)
          Create a OMCircle, positioned with a x-y center with x-y axis.
OMCircle(LatLonPoint center, float radius, Length units, int nverts)
          Create an OMCircle with a lat/lon center and a physical distance radius.
 
Method Summary
protected  java.awt.Shape createArcShape(float x, float y, float fwidth, float fheight)
          An internal method designed to fetch the Shape to be used for an XY or OFFSET OMCircles.
protected  java.util.ArrayList getCoordLists(Projection proj, LatLonPoint center, float radius, int nverts)
          An internal method designed to fetch the ArrayList for LATLON OMCircles.
protected  boolean hasLineTypeChoice()
          Used by the GraphicAttributes object to provide a choice on whether the line type choice can be changed.
protected  boolean shouldCenterBeInShape()
          Helper function that helps the generate method figure out if the center point should be in the generate shape - if it's not, the code knows that there is a problem with the poles, and the polar correction code needs to be run.
 
Methods inherited from class com.bbn.openmap.omGraphics.OMArc
generate, getArcType, getCenter, getExtentAngle, getHeight, getLatLon, getNumVerts, getOffX, getOffY, getPolarCorrection, getPolarShapeLine, getRadius, getRotationAngle, getStartAngle, getWidth, getX, getY, render, setArcType, setCenter, setExtent, setHeight, setLatLon, setNeedToRegenerate, setNumVerts, setOffX, setOffY, setPolarCorrection, setRadius, setRadius, setRotationAngle, setStart, setWidth, setX, setY
 
Methods inherited from class com.bbn.openmap.omGraphics.OMGraphic
clone, deselect, distance, getDeclutterType, getDescription, getDescription, getDisplayColor, getDisplayPaint, getEdgeMatchesFill, getFillColor, getFillPaint, getHasLabel, getLineColor, getLinePaint, getMattingPaint, getRenderType, getSelectColor, getSelectPaint, getShowEditablePalette, getStroke, getTextureMask, initLabelingDuringGenerate, isClear, isMatted, isSelected, normalizeDistanceForLineWidth, regenerate, renderLabel, select, setDeclutterType, setEdgeMatchesFill, setFillColor, setFillPaint, setGraphicsColor, setGraphicsForEdge, setGraphicsForFill, setHasLabel, setLabelLocation, setLabelLocation, setLabelLocation, setLineColor, setLinePaint, setMatted, setMattingPaint, setRenderType, setSelectColor, setSelected, setSelectPaint, setShape, setShowEditablePalette, setStroke, setTextureMask, shouldRenderEdge, shouldRenderFill
 
Methods inherited from class com.bbn.openmap.omGraphics.geom.BasicGeometry
_distance, appendShapeEdge, appendShapeEdge, appendShapeEdge, appendShapeEdge, checkAttributeMap, checkAttributeMap, clearAttributes, contains, createAttributeMap, createBoxShape, createShape, createShape, describeShapeDetail, describeShapeDetail, distanceToEdge, draw, fill, getAppObject, getAppObject, getAttribute, getAttributeMap, getAttributes, getLineType, getNeedToRegenerate, getShape, isRenderable, isVisible, putAttribute, removeAttribute, replaceAppObjectWithAttributeMap, setAppObject, setAppObject, setAttributes, setLineType, setVisible
 
Methods inherited from class java.lang.Object
equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 
Methods inherited from interface com.bbn.openmap.omGraphics.OMGeometry
clearAttributes, contains, draw, fill, getAppObject, getAttribute, getAttributes, getLineType, getNeedToRegenerate, getShape, isRenderable, isVisible, putAttribute, removeAttribute, setAppObject, setAttributes, setLineType, setVisible
 

Constructor Detail

OMCircle

public OMCircle()
The simplest constructor for an OMCircle, and it expects that all fields will be filled in later. Rendertype is RENDERTYPE_UNKNOWN.


OMCircle

public OMCircle(float latPoint,
                float lonPoint,
                int w,
                int h)
Create a OMCircle, positioned with a lat-lon center and x-y axis. Rendertype is RENDERTYPE_OFFSET.

Parameters:
latPoint - latitude of center point, decimal degrees
lonPoint - longitude of center point, decimal degrees
w - horizontal diameter of circle/ellipse, pixels
h - vertical diameter of circle/ellipse, pixels

OMCircle

public OMCircle(int x1,
                int y1,
                int w,
                int h)
Create a OMCircle, positioned with a x-y center with x-y axis. Rendertype is RENDERTYPE_XY.

Parameters:
x1 - window position of center point from left of window, in pixels
y1 - window position of center point from top of window, in pixels
w - horizontal diameter of circle/ellipse, pixels
h - vertical diameter of circle/ellipse, pixels

OMCircle

public OMCircle(float latPoint,
                float lonPoint,
                int offset_x1,
                int offset_y1,
                int w,
                int h)
Create a OMCircle, positioned at a Lat-lon location, x-y offset, x-y axis. Rendertype is RENDERTYPE_OFFSET.

Parameters:
latPoint - latitude of center of circle/ellipse.
lonPoint - longitude of center of circle/ellipse.
offset_x1 - # pixels to the right the center will be moved from lonPoint.
offset_y1 - # pixels down that the center will be moved from latPoint.
w - horizontal diameter of circle/ellipse, pixels.
h - vertical diameter of circle/ellipse, pixels.

OMCircle

public OMCircle(float latPoint,
                float lonPoint,
                float radius)
Creates an OMCircle with a Lat-lon center and a lat-lon axis. Rendertype is RENDERTYPE_LATLON.

Parameters:
latPoint - latitude of center point, decimal degrees
lonPoint - longitude of center point, decimal degrees
radius - distance in decimal degrees (converted to radians internally).

OMCircle

public OMCircle(float latPoint,
                float lonPoint,
                float radius,
                Length units)
Create an OMCircle with a lat/lon center and a physical distance radius. Rendertype is RENDERTYPE_LATLON.

Parameters:
latPoint - latitude of center of circle in decimal degrees
lonPoint - longitude of center of circle in decimal degrees
radius - distance
units - com.bbn.openmap.proj.Length object.

OMCircle

public OMCircle(float latPoint,
                float lonPoint,
                float radius,
                Length units,
                int nverts)
Create an OMCircle with a lat/lon center and a physical distance radius. Rendertype is RENDERTYPE_LATLON.

Parameters:
latPoint - latitude of center of circle in decimal degrees
lonPoint - longitude of center of circle in decimal degrees
radius - distance
units - com.bbn.openmap.proj.Length object specifying units.
nverts - number of vertices for the poly-circle (if < 3, value is generated internally)

OMCircle

public OMCircle(LatLonPoint center,
                float radius,
                Length units,
                int nverts)
Create an OMCircle with a lat/lon center and a physical distance radius. Rendertype is RENDERTYPE_LATLON.

Parameters:
center - LatLon center of circle
radius - distance
units - com.bbn.openmap.proj.Length object specifying units for distance.
nverts - number of vertices for the poly-circle(if < 3, value is generated internally)
Method Detail

shouldCenterBeInShape

protected boolean shouldCenterBeInShape()
Helper function that helps the generate method figure out if the center point should be in the generate shape - if it's not, the code knows that there is a problem with the poles, and the polar correction code needs to be run.

Overrides:
shouldCenterBeInShape in class OMArc

createArcShape

protected java.awt.Shape createArcShape(float x,
                                        float y,
                                        float fwidth,
                                        float fheight)
An internal method designed to fetch the Shape to be used for an XY or OFFSET OMCircles. This method is smart enough to take the calculated position information and make a call to Ellipse2D.Float.

Overrides:
createArcShape in class OMArc

getCoordLists

protected java.util.ArrayList getCoordLists(Projection proj,
                                            LatLonPoint center,
                                            float radius,
                                            int nverts)
An internal method designed to fetch the ArrayList for LATLON OMCircles. This method is smart enough to take the calculated position information and make a call to Projection.forwardCircle.

Overrides:
getCoordLists in class OMArc

hasLineTypeChoice

protected boolean hasLineTypeChoice()
Description copied from class: OMGraphic
Used by the GraphicAttributes object to provide a choice on whether the line type choice can be changed.

Overrides:
hasLineTypeChoice in class OMGraphic


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