Package com.luciad.shape.shape3D
Class TLcdXYZFloatPolypoint
java.lang.Object
com.luciad.shape.ALcdShape
com.luciad.shape.shape2D.ALcd2DEditableShape
com.luciad.shape.shape3D.ALcd3DEditableShape
com.luciad.shape.shape3D.ALcd3DEditableFloatPolypoint
com.luciad.shape.shape3D.TLcdXYZFloatPolypoint
- All Implemented Interfaces:
ILcdBounded
,ILcdPointList
,ILcdPolypoint
,ILcdShape
,ILcd2DEditablePointList
,ILcd2DEditablePolypoint
,ILcd2DEditableShape
,ILcd3DEditablePointList
,ILcd3DEditablePolypoint
,ILcd3DEditableShape
,ILcdCloneable
,Serializable
,Cloneable
public class TLcdXYZFloatPolypoint
extends ALcd3DEditableFloatPolypoint
implements ILcd3DEditablePolypoint
This class provides an implementation of
ILcd3DEditablePolypoint
in
the cartesian space with a reduced memory footprint.
It uses an array of floats instead of a TLcd3DEditablePointList
of ILcd3DEditablePoint
objects. A single array of floats
stores the 3D coordinates. The points are stored as (x,y,z) triplets.
The array can also contain the bounds of the polypoint in the last 6 places. Whether or not this is the case is controlled by a boolean passed at construction time. These bounds are then stored as (x,y,z)(width,height,depth).
This class is thread-hostile, even for read-only access, since point instances are being reused from an internal pool.
- See Also:
-
Constructor Summary
ConstructorDescriptionConstructs an empty polypoint, containing zero points.TLcdXYZFloatPolypoint
(float[] aCoordinates, boolean aHasBounds, boolean aBoundsInitialized, boolean aClone) Constructs an XYZ polypoint with the points as given in the array.TLcdXYZFloatPolypoint
(TLcdXYZFloatPolypoint aXYZFloatPolypoint) Clones the array of the polypoint passed and interprets the its values alike (containing bounds or not). -
Method Summary
Modifier and TypeMethodDescriptionclone()
Creates and returns a copy of this object, by delegating toObject.clone()
.protected ILcd3DEditableBounds
Creates an uninitializedILcd3DEditableBounds
object of a type compatible with the concrete implementation of this class.protected ILcd3DEditablePoint
Creates an uninitializedILcd3DEditablePoint
point of a type compatible with the concrete implementation of this class (geodesic/cartesian).Methods inherited from class com.luciad.shape.shape3D.ALcd3DEditableFloatPolypoint
calculateBounds, calculateFocusPoint, contains2D, contains3D, equals, getBounds, getFocusPoint, getPoint, getPointCount, hashCode, insert2DPoint, insert3DPoint, invalidate, move2D, move2DPoint, move3D, move3DPoint, removePointAt, translate2D, translate2DPoint, translate3D, translate3DPoint
Methods inherited from class com.luciad.shape.shape3D.ALcd3DEditableShape
move3D
Methods inherited from class com.luciad.shape.shape2D.ALcd2DEditableShape
move2D
Methods inherited from class com.luciad.shape.ALcdShape
contains2D, contains3D, fromDomainObject
Methods inherited from class java.lang.Object
finalize, getClass, notify, notifyAll, toString, wait, wait, wait
Methods inherited from interface com.luciad.shape.shape2D.ILcd2DEditablePointList
append2DPoint, insert2DPoint, move2DPoint, translate2D, translate2DPoint
Methods inherited from interface com.luciad.shape.shape2D.ILcd2DEditableShape
move2D, move2D, translate2D
Methods inherited from interface com.luciad.shape.shape3D.ILcd3DEditablePointList
insert3DPoint, move3DPoint, removePointAt, translate3D, translate3DPoint
Methods inherited from interface com.luciad.shape.shape3D.ILcd3DEditableShape
move3D, move3D, translate3D
Methods inherited from interface com.luciad.shape.ILcdBounded
getBounds
Methods inherited from interface com.luciad.shape.ILcdPointList
getPoint, getPointCount, getPointSFCT, getX, getY, getZ
Methods inherited from interface com.luciad.shape.ILcdShape
contains2D, contains2D, contains3D, contains3D, getFocusPoint
-
Constructor Details
-
TLcdXYZFloatPolypoint
public TLcdXYZFloatPolypoint()Constructs an empty polypoint, containing zero points. No space is reserved to store the bounds of the polypoint. -
TLcdXYZFloatPolypoint
public TLcdXYZFloatPolypoint(float[] aCoordinates, boolean aHasBounds, boolean aBoundsInitialized, boolean aClone) Constructs an XYZ polypoint with the points as given in the array. If aHasBounds is true, the last 6 entries of the array will be used to store the bounds of the polypoint.- Parameters:
aCoordinates
- an array containing the coordinates of the points and possibly the bounds of the polypoint.aHasBounds
- whether to reserve the last 6 entries of the array for the bounds of the polypoint or not.aBoundsInitialized
- whether the last 6 entries of the array passed represent the calculated values of the bounds of the polypoint or not. This is only of importance when aHasBounds is true.aClone
- whether the array containing the coordinates (and possibly the bounds) should be cloned.
-
TLcdXYZFloatPolypoint
Clones the array of the polypoint passed and interprets the its values alike (containing bounds or not).- Parameters:
aXYZFloatPolypoint
- the polypoint to assume all values from.
-
-
Method Details
-
clone
Description copied from class:ALcdShape
Creates and returns a copy of this object, by delegating toObject.clone()
. Extensions should delegate to this implementation withsuper.clone()
, in order to create an object instance of the right type, with all fields copied. They then should explicitly clone any non-primitive fields for which a deeper clone is required.- Specified by:
clone
in interfaceILcdCloneable
- Overrides:
clone
in classALcd3DEditableFloatPolypoint
- See Also:
-
createPoint
Description copied from class:ALcd3DEditableFloatPolypoint
Creates an uninitializedILcd3DEditablePoint
point of a type compatible with the concrete implementation of this class (geodesic/cartesian). The created point will be updated and returned by theALcd3DEditableFloatPolypoint.getPoint(int)
andALcd3DEditableFloatPolypoint.getFocusPoint()
methods.- Specified by:
createPoint
in classALcd3DEditableFloatPolypoint
-
createBounds
Description copied from class:ALcd3DEditableFloatPolypoint
Creates an uninitializedILcd3DEditableBounds
object of a type compatible with the concrete implementation of this class. This bounds object will be updated and returned by theALcd3DEditableFloatPolypoint.getBounds()
method.- Specified by:
createBounds
in classALcd3DEditableFloatPolypoint
-