Package com.luciad.shape.shape2D
Class TLcdLonLatBounds
java.lang.Object
com.luciad.shape.ALcdShape
com.luciad.shape.ALcdBounds
com.luciad.shape.shape2D.ALcd2DEditableBounds
com.luciad.shape.shape2D.TLcdLonLatBounds
- All Implemented Interfaces:
ILcdBounded,ILcdBounds,ILcdShape,ILcd2DEditableBounds,ILcd2DEditableShape,ILcdCloneable,Serializable,Cloneable
This class provides an implementation of
ILcd2DEditableBounds in
the geodetic space.
All longitude/latitude coordinates are expressed in degrees.
This class is thread-safe for concurrent read-only access of its contents.
For read-write access, external locking must be used. Such locking is
typically done at the model level.- See Also:
-
Constructor Summary
ConstructorsConstructorDescriptionConstructs a new rectangle, initialized to location (0, 0) and size (0, 0).TLcdLonLatBounds(double aLon, double aLat, double aWidth, double aHeight) Constructs and initializes a rectangle with the specified parameters.TLcdLonLatBounds(ILcdBounds aBounds) Constructs a new rectangle, initialized to match the values of the specified rectangle.TLcdLonLatBounds(ILcdPoint aPoint) Constructs a rectangle at the given point with width and height zero.TLcdLonLatBounds(ILcdPoint aPoint, double aWidth, double aHeight) Constructs a rectangle and initializes it with the parameters. -
Method Summary
Modifier and TypeMethodDescriptionclone()Creates and returns a copy of this object.Returns a copy of thisILcdBoundsobject that is also anILcd2DEditableBounds.Returns a copy of thisILcdBoundsobject that is also anILcd3DEditableBounds.booleancontains2D(double aLon, double aLat) Checks whether thisALcdBoundsobject contains the given point in the cartesian plane.booleancontains2D(double aLon, double aLat, double aWidth, double aHeight) Checks whether thisALcdBoundsobject contains the given rectangle in the cartesian plane.final doubleReturns the height of the bounding box in degrees.final ILcdPointReturns the location of the bounding box (smallest x and y coordinates).doublegetMaxX()Returns the maximum X value (right boundary) of this bounds.doublegetMaxY()Returns the maximum Y value (upper boundary) of this bounds.doublegetMaxZ()Returns the maximum Z value (top boundary) of this bounds.doublegetMinX()Returns the minimum X value (left boundary) of this bounds.doublegetMinY()Returns the minimum Y value (lower boundary) of this bounds.doublegetMinZ()Returns the minimum Z value (bottom boundary) of this bounds.final doublegetWidth()Returns the width of the bounding box in degrees.booleaninteracts2D(double aLon, double aLat, double aWidth, double aHeight) Checks whether thisALcdBoundsobject interacts with the given rectangle in the cartesian plane.voidmove2D(double aLon, double aLat) Moves the bounds.voidsetHeight(double aHeight) Sets the height (in degrees) of this bounds so that it covers a valid area.voidsetTo2DIntersection(double aLon, double aLat, double aWidth, double aHeight) Calculates the 2D intersection of thisALcd2DEditableBoundsand a given rectangle in the cartesian plane.voidsetTo2DUnion(double aLon, double aLat, double aWidth, double aHeight) Calculates the 2D union of thisALcd2DEditableBoundsand a given rectangle in the cartesian plane.voidsetWidth(double aWidth) Sets the width of the bounds (the extent along the x-axis).Methods inherited from class com.luciad.shape.shape2D.ALcd2DEditableBounds
getDepth, isDefined, move2D, setDefined, setTo2DIntersection, setTo2DUnion, setToIncludePoint2D, setToIncludePoint2D, toString, translate2DMethods inherited from class com.luciad.shape.ALcdBounds
contains2D, contains3D, contains3D, contains3D, equals, fromDomainObject, getBounds, getFocusPoint, hashCode, interacts2D, interacts3D, interacts3D, isDefined, isDefinedMethods inherited from class com.luciad.shape.ALcdShape
contains2D, contains3DMethods inherited from class java.lang.Object
finalize, getClass, notify, notifyAll, wait, wait, waitMethods inherited from interface com.luciad.shape.shape2D.ILcd2DEditableBounds
move2D, setTo2DIntersection, setTo2DUnion, setToIncludePoint2D, setToIncludePoint2D, translate2DMethods inherited from interface com.luciad.shape.ILcdBounded
getBoundsMethods inherited from interface com.luciad.shape.ILcdBounds
contains2D, contains3D, contains3D, getCenter, getDepth, interacts2D, interacts3D, interacts3D, isDefinedMethods inherited from interface com.luciad.shape.ILcdShape
contains2D, contains3D, contains3D, getFocusPoint
-
Constructor Details
-
TLcdLonLatBounds
public TLcdLonLatBounds(double aLon, double aLat, double aWidth, double aHeight) Constructs and initializes a rectangle with the specified parameters.- Parameters:
aLon- the longitude coordinate of the most south-western point.aLat- the latitude coordinate of the most south-western point.aWidth- the longitude-width of the rectangle, in degrees, must be positive.aHeight- the latitude-height of the rectangle, in degrees, must be positive.
-
TLcdLonLatBounds
public TLcdLonLatBounds()Constructs a new rectangle, initialized to location (0, 0) and size (0, 0).The
definedstatus of the instance isfalse. -
TLcdLonLatBounds
Constructs a new rectangle, initialized to match the values of the specified rectangle.The
definedstatus of the instance is also copied from the specified bounds.- Parameters:
aBounds- a rectangle from which to copy initial values.
-
TLcdLonLatBounds
Constructs a rectangle and initializes it with the parameters.- Parameters:
aPoint- the most south-western point of the rectangle.aWidth- the longitude-width of the rectangle, in degrees, must be positive.aHeight- the latitude-height of the rectangle, in degrees, must be positive.
-
TLcdLonLatBounds
Constructs a rectangle at the given point with width and height zero.- Parameters:
aPoint- the point at which the rectangle is located.
-
-
Method Details
-
getLocation
Description copied from interface:ILcdBoundsReturns the location of the bounding box (smallest x and y coordinates).- Specified by:
getLocationin interfaceILcdBounds- Returns:
- the location of the bounding box.
-
getMinX
public double getMinX()Description copied from interface:ILcdBoundsReturns the minimum X value (left boundary) of this bounds. By default, this doesgetLocation.getX(), but can be overridden for performance.- Specified by:
getMinXin interfaceILcdBounds- Returns:
- the minimum X boundary
- See Also:
-
getMinY
public double getMinY()Description copied from interface:ILcdBoundsReturns the minimum Y value (lower boundary) of this bounds. By default, this doesgetLocation.getY(), but can be overridden for performance.- Specified by:
getMinYin interfaceILcdBounds- Returns:
- the minimum Y boundary
- See Also:
-
getMinZ
public double getMinZ()Description copied from interface:ILcdBoundsReturns the minimum Z value (bottom boundary) of this bounds. By default, this doesgetLocation.getZ(), but can be overridden for performance.- Specified by:
getMinZin interfaceILcdBounds- Returns:
- the minimum Z boundary
- See Also:
-
getMaxX
public double getMaxX()Description copied from interface:ILcdBoundsReturns the maximum X value (right boundary) of this bounds. By default, this doesgetLocation.getX() + getWidth(), but can be overridden for performance. Note that this is a derived property, the bounds are defined by their lower-left corner and width/height. Forgeodetic bounds, the returned value is not necessarily normalized to [-180, 180].- Specified by:
getMaxXin interfaceILcdBounds- Returns:
- the maximum X boundary
- See Also:
-
getMaxY
public double getMaxY()Description copied from interface:ILcdBoundsReturns the maximum Y value (upper boundary) of this bounds. By default, this doesgetLocation.getY() + getHeight(), but can be overridden for performance. Note that this is a derived property, the bounds are defined by their lower-left corner and width/height.- Specified by:
getMaxYin interfaceILcdBounds- Returns:
- the maximum Y boundary
- See Also:
-
getMaxZ
public double getMaxZ()Description copied from interface:ILcdBoundsReturns the maximum Z value (top boundary) of this bounds. By default, this doesgetLocation.getZ() + getDepth(), but can be overridden for performance. Note that this is a derived property, the bounds are defined by their lower-left corner and width/height.- Specified by:
getMaxZin interfaceILcdBounds- Returns:
- the maximum Z boundary
- See Also:
-
getWidth
public final double getWidth()Returns the width of the bounding box in degrees. The width is in range [0, 360].- Specified by:
getWidthin interfaceILcdBounds- Returns:
- the width of the bounding box, in degrees.
-
setWidth
public void setWidth(double aWidth) Sets the width of the bounds (the extent along the x-axis). The width must be in degrees. A negative width will translate the bounds to the left. A width larger than 360 will be set to 360.- Specified by:
setWidthin interfaceILcd2DEditableBounds- Parameters:
aWidth- the new width, in degrees.
-
getHeight
public final double getHeight()Returns the height of the bounding box in degrees. The width is in range [0, 180].- Specified by:
getHeightin interfaceILcdBounds- Returns:
- the height of the bounding box, in degrees.
-
setHeight
public void setHeight(double aHeight) Sets the height (in degrees) of this bounds so that it covers a valid area. When the height passed is so that the area covered with the bounds would have coordinates outside the valid latitude area, the height value is clipped to the largest value that would cover a valid longitude, latitude area. This implies that the result ofgetHeight()is not necessarily the same as the value passed here.- Specified by:
setHeightin interfaceILcd2DEditableBounds- Parameters:
aHeight- the proposed new height, in degrees, for this bounds object. This value may be clipped to ensure that the bounds covers a valid latitude interval.
-
move2D
public void move2D(double aLon, double aLat) Moves the bounds.- Specified by:
move2Din interfaceILcd2DEditableBounds- Specified by:
move2Din interfaceILcd2DEditableShape- Parameters:
aLon- the longitude coordinate of the new most south-western point.aLat- the latitude coordinate of the new most south-western point.
-
cloneAs2DEditableBounds
Description copied from interface:ILcdBoundsReturns a copy of thisILcdBoundsobject that is also anILcd2DEditableBounds. This makes sure that the first two dimensions of the copy are writable, even if the originalILcdBoundsobject may be read-only.- Specified by:
cloneAs2DEditableBoundsin interfaceILcdBounds- Returns:
- a copy of this
ILcdBoundsobject that is also anILcd2DEditableBounds. This makes sure that the first two dimensions of the copy are writable, even if the originalILcdBoundsobject may be read-only. - See Also:
-
cloneAs3DEditableBounds
Description copied from interface:ILcdBoundsReturns a copy of thisILcdBoundsobject that is also anILcd3DEditableBounds. This makes sure that all three dimensions of the copy are writable, even if the originalILcdBoundsobject may be read-only.- Specified by:
cloneAs3DEditableBoundsin interfaceILcdBounds- Returns:
- a copy of this
ILcdBoundsobject that is also anILcd3DEditableBounds. This makes sure that all three dimensions of the copy are writable, even if the originalILcdBoundsobject may be read-only. - See Also:
-
clone
Creates and returns a copy of this object. The contained editable point representing the most south-western point of the rectangle is cloned.- Specified by:
clonein interfaceILcdCloneable- Overrides:
clonein classALcdShape- See Also:
-
contains2D
public boolean contains2D(double aLon, double aLat) Description copied from class:ALcdBoundsChecks whether thisALcdBoundsobject contains the given point in the cartesian plane. Only the first two dimensions of theILcdBoundsare considered, that is, the x coordinate and y coordinate of its location, its width, and its height.- Specified by:
contains2Din interfaceILcdShape- Overrides:
contains2Din classALcdBounds- Parameters:
aLon- the x coordinate of the point.aLat- the y coordinate of the point.- Returns:
- the boolean result of the containment test.
-
interacts2D
public boolean interacts2D(double aLon, double aLat, double aWidth, double aHeight) Description copied from class:ALcdBoundsChecks whether thisALcdBoundsobject interacts with the given rectangle in the cartesian plane. Only the first two dimensions of theILcdBoundsobject are considered, that is, the x coordinate and y coordinate of its location, its width, and its height.- Specified by:
interacts2Din interfaceILcdBounds- Overrides:
interacts2Din classALcdBounds- Parameters:
aLon- the x coordinate of the rectangle.aLat- the y coordinate of the rectangle.aWidth- the width of the rectangle.aHeight- the height of the rectangle.- Returns:
trueif thisALcdBoundsobject touches or overlaps to any extent with the given rectangle,falseotherwise.
-
contains2D
public boolean contains2D(double aLon, double aLat, double aWidth, double aHeight) Description copied from class:ALcdBoundsChecks whether thisALcdBoundsobject contains the given rectangle in the cartesian plane. Only the first two dimensions of theILcdBoundsobject are considered, that is, the x coordinate and y coordinate of its location, its width, and its height.- Specified by:
contains2Din interfaceILcdBounds- Overrides:
contains2Din classALcdBounds- Parameters:
aLon- the x coordinate of the rectangle.aLat- the y coordinate of the rectangle.aWidth- the width of the rectangle.aHeight- the height of the rectangle.- Returns:
- the boolean result of the containment test.
-
setTo2DIntersection
public void setTo2DIntersection(double aLon, double aLat, double aWidth, double aHeight) Description copied from class:ALcd2DEditableBoundsCalculates the 2D intersection of thisALcd2DEditableBoundsand a given rectangle in the cartesian plane.- Specified by:
setTo2DIntersectionin interfaceILcd2DEditableBounds- Overrides:
setTo2DIntersectionin classALcd2DEditableBounds- Parameters:
aLon- the x coordinate of the rectangle.aLat- the y coordinate of the rectangle.aWidth- the width of the rectangle.aHeight- the height of the rectangle.
-
setTo2DUnion
public void setTo2DUnion(double aLon, double aLat, double aWidth, double aHeight) Description copied from class:ALcd2DEditableBoundsCalculates the 2D union of thisALcd2DEditableBoundsand a given rectangle in the cartesian plane.- Specified by:
setTo2DUnionin interfaceILcd2DEditableBounds- Overrides:
setTo2DUnionin classALcd2DEditableBounds- Parameters:
aLon- the x coordinate of the rectangle.aLat- the y coordinate of the rectangle.aWidth- the width of the rectangle.aHeight- the height of the rectangle.
-