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
ConstructorsConstructorDescriptionConstructs 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 ILcd3DEditableBoundsCreates an uninitializedILcd3DEditableBoundsobject of a type compatible with the concrete implementation of this class.protected ILcd3DEditablePointCreates an uninitializedILcd3DEditablePointpoint 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, translate3DPointMethods inherited from class com.luciad.shape.shape3D.ALcd3DEditableShape
move3DMethods inherited from class com.luciad.shape.shape2D.ALcd2DEditableShape
move2DMethods inherited from class com.luciad.shape.ALcdShape
contains2D, contains3D, fromDomainObjectMethods inherited from class java.lang.Object
finalize, getClass, notify, notifyAll, toString, wait, wait, waitMethods inherited from interface com.luciad.shape.shape2D.ILcd2DEditablePointList
append2DPoint, insert2DPoint, move2DPoint, translate2D, translate2DPointMethods inherited from interface com.luciad.shape.shape2D.ILcd2DEditableShape
move2D, move2D, translate2DMethods inherited from interface com.luciad.shape.shape3D.ILcd3DEditablePointList
insert3DPoint, move3DPoint, removePointAt, translate3D, translate3DPointMethods inherited from interface com.luciad.shape.shape3D.ILcd3DEditableShape
move3D, move3D, translate3DMethods inherited from interface com.luciad.shape.ILcdBounded
getBoundsMethods inherited from interface com.luciad.shape.ILcdPointList
getPoint, getPointCount, getPointSFCT, getX, getY, getZMethods 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:ALcdShapeCreates 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:
clonein interfaceILcdCloneable- Overrides:
clonein classALcd3DEditableFloatPolypoint- See Also:
-
createPoint
Description copied from class:ALcd3DEditableFloatPolypointCreates an uninitializedILcd3DEditablePointpoint 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:
createPointin classALcd3DEditableFloatPolypoint
-
createBounds
Description copied from class:ALcd3DEditableFloatPolypointCreates an uninitializedILcd3DEditableBoundsobject 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:
createBoundsin classALcd3DEditableFloatPolypoint
-