Package geomss.geom
Class Point
- java.lang.Object
-
- geomss.geom.AbstractGeomElement<GeomPoint>
-
- geomss.geom.GeomPoint
-
- geomss.geom.Point
-
- All Implemented Interfaces:
GeomElement<GeomPoint>,PointGeometry<GeomPoint>,Transformable<GeomPoint>,XYPoint,java.io.Serializable,java.lang.Cloneable,java.lang.Comparable,javolution.lang.Immutable,javolution.lang.Reusable,javolution.lang.ValueType,javolution.xml.XMLSerializable
public final class Point extends GeomPoint implements javolution.lang.ValueType
A container that holds the coordinates of a point in n-dimensional space.Modified by: Joseph A. Huwaldt
- Version:
- February 17, 2025
- Author:
- Joseph A. Huwaldt, Date: December 11, 1999
- See Also:
- Serialized Form
-
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description static Point[]allocateArray(int size)Allocate a recyclable array that can contain Point objects using factory methods.Pointcopy()Returns a copy of this Point instanceallocatedby the calling thread (possibly on the stack).PointcopyToReal()Return a copy of this object with any transformations or subranges removed (applied).booleanequals(java.lang.Object obj)Compares this Point against the specified object for strict equality (same values and same units).intgetPhyDimension()Returns the number of physical dimensions of the geometry element.javax.measure.unit.Unit<javax.measure.quantity.Length>getUnit()Returns the unit in which thevaluesin this point are stated in.doublegetValue(int i)Returns the value of a coordinate in this point as adouble, stated in this point'sunit.doublegetValue(int i, javax.measure.unit.Unit<javax.measure.quantity.Length> unit)Returns the value of a coordinate in this point as adouble, stated in the specified unit.inthashCode()Returns the hash code for this parameter.Pointimmutable()Return an immutable version of this point.static voidmain(java.lang.String[] args)Tests the methods in this class.Pointminus(GeomPoint that)Returns the difference between this point and the one specified.Pointminus(Parameter<javax.measure.quantity.Length> that)Subtracts the specified parameter from each component of this point.MutablePointmutable()Return a mutable copy of this point.static PointnewInstance(int dim)Returns aPointinstance of the specified dimension with zero meters for each coordinate value.static PointnewInstance(int dim, javax.measure.unit.Unit<javax.measure.quantity.Length> unit)Returns aPointinstance of the specified dimension and units with zero for each coordinate value.doublenormSqValue()Returns the square of the Euclidean norm, magnitude, or length value of the vector from the origin to this point (the dot product of the origin-to-this-point vector and itself).Pointopposite()Returns the negation of this point (all the values of each dimension negated).Pointplus(GeomPoint that)Returns the sum of this point with the one specified.Pointplus(Parameter<javax.measure.quantity.Length> that)Adds the specified parameter to each component of this point.static voidrecycleArray(Point[] arr)Recycle an array of Point objects that was created by Point.allocateArray().Pointtimes(double k)Returns the product of this point with the specified coefficient.Pointto(javax.measure.unit.Unit<javax.measure.quantity.Length> unit)Returns the equivalent to this point but stated in the specified unit.PointtoDimension(int newDim)Return the equivalent of this point converted to the specified number of physical dimensions.Float64VectortoFloat64Vector()Returns the values stored in this point, stated in this point'sunit, as a Float64Vector.static PointvalueOf(double... x)Returns aPointinstance holding the specifieddoublevalue or values stated in meters.static PointvalueOf(double x, double y, double z, javax.measure.unit.Unit<javax.measure.quantity.Length> unit)Returns a 3DPointinstance holding the specifieddoublevalues stated in the specified units.static PointvalueOf(double x, double y, javax.measure.unit.Unit<javax.measure.quantity.Length> unit)Returns a 2DPointinstance holding the specifieddoublevalue stated in the specified units.static PointvalueOf(double x, javax.measure.unit.Unit<javax.measure.quantity.Length> unit)Returns a 1DPointinstance holding the specifieddoublevalues stated in the specified units.static PointvalueOf(GeomPoint point)Returns aPointinstance containing the specified GeomPoint's data.static PointvalueOf(GeomVector<?> vector)Returns aPointinstance that represents the direction elements of the specified GeomVector given in length or dimensionless units.static PointvalueOf(Point point)Returns aPointinstance containing the specified Point's data.static PointvalueOf(Coordinate3D<javax.measure.quantity.Length> coord)Returns aPointinstance holding the specified@link jahuwaldt.js.param.Coordinate3D Coordinate3Dvalues.static PointvalueOf(Parameter<javax.measure.quantity.Length>... values)Returns aPointinstance holding the specifiedParametervalues.static PointvalueOf(java.util.List<Parameter<javax.measure.quantity.Length>> values)Returns aPointinstance holding the specifiedParametervalues.static PointvalueOf(javax.measure.unit.Unit<javax.measure.quantity.Length> unit, double... values)Returns aPointinstance holding the specifieddoublevalues stated in the specified units.static <Q extends javax.measure.quantity.Quantity>
PointvalueOf(Vector<Parameter<Q>> vector)Returns aPointinstance containing the specified vector of Parameter values with length units.static PointvalueOf(Vector<Float64> vector, javax.measure.unit.Unit<javax.measure.quantity.Length> unit)Returns aPointinstance containing the specified vector of Float64 values stated in the specified units.-
Methods inherited from class geomss.geom.GeomPoint
distance, distanceSq, distanceSqValue, distanceValue, divide, divide, get, getBoundsMax, getBoundsMin, getLimitPoint, getNumberOfPoints, getParDimension, getTransformed, getX, getY, getZ, isApproxEqual, isApproxEqual, isValid, max, min, norm, normSq, normValue, size, times, toArray, toArray, toGeomVector, toParameterVector, toText, toVector3D
-
Methods inherited from class geomss.geom.AbstractGeomElement
addChangeListener, clone, compareTo, getAllUserData, getID, getName, getUserData, putAllUserData, putUserData, removeChangeListener, removeUserData, reset, setName, toString
-
Methods inherited from interface geomss.geom.GeomElement
addChangeListener, getAllUserData, getID, getName, getUserData, putAllUserData, putUserData, removeChangeListener, removeUserData, setName
-
-
-
-
Method Detail
-
newInstance
public static Point newInstance(int dim)
Returns aPointinstance of the specified dimension with zero meters for each coordinate value.- Parameters:
dim- the physical dimension of the point to create.- Returns:
- the point having the specified dimension and zero meters for values.
-
newInstance
public static Point newInstance(int dim, javax.measure.unit.Unit<javax.measure.quantity.Length> unit)
Returns aPointinstance of the specified dimension and units with zero for each coordinate value.- Parameters:
dim- the physical dimension of the point to create.unit- The unit for the point to create. May not be null.- Returns:
- the point having the specified dimension & units and zero for values.
-
valueOf
public static Point valueOf(double... x)
Returns aPointinstance holding the specifieddoublevalue or values stated in meters.- Parameters:
x- the coordinate values stated in meters. May not be null.- Returns:
- the point having the specified value.
-
valueOf
public static Point valueOf(double x, javax.measure.unit.Unit<javax.measure.quantity.Length> unit)
Returns a 1DPointinstance holding the specifieddoublevalues stated in the specified units.- Parameters:
x- the x value stated in the specified unit.unit- the unit in which the coordinates are stated. May not be null.- Returns:
- the point having the specified value.
-
valueOf
public static Point valueOf(double x, double y, javax.measure.unit.Unit<javax.measure.quantity.Length> unit)
Returns a 2DPointinstance holding the specifieddoublevalue stated in the specified units.- Parameters:
x- the x value stated in the specified unit.y- the y value stated in the specified unit.unit- the unit in which the coordinates are stated. May not be null.- Returns:
- the point having the specified values.
-
valueOf
public static Point valueOf(double x, double y, double z, javax.measure.unit.Unit<javax.measure.quantity.Length> unit)
Returns a 3DPointinstance holding the specifieddoublevalues stated in the specified units.- Parameters:
x- the x value stated in the specified unit.y- the y value stated in the specified unit.z- the z value stated in the specified unit.unit- the unit in which the coordinates are stated. May not be null.- Returns:
- the point having the specified values.
-
valueOf
public static Point valueOf(javax.measure.unit.Unit<javax.measure.quantity.Length> unit, double... values)
Returns aPointinstance holding the specifieddoublevalues stated in the specified units.- Parameters:
unit- the length unit in which the coordinates are stated. May not be null.values- the list of values stated in the specified unit. May not be null.- Returns:
- the point having the specified values.
-
valueOf
public static Point valueOf(Parameter<javax.measure.quantity.Length>... values)
Returns aPointinstance holding the specifiedParametervalues. All the values are converted to the same units as the 1st value.- Parameters:
values- The list of values to be stored. May not be null.- Returns:
- the point having the specified values in the units of the 1st value.
-
valueOf
public static Point valueOf(java.util.List<Parameter<javax.measure.quantity.Length>> values)
Returns aPointinstance holding the specifiedParametervalues. All the values are converted to the same units as the 1st value.- Parameters:
values- The list of values to be stored. May not be null and must have at least one element..- Returns:
- the point having the specified values in the units of the 1st value.
-
valueOf
public static Point valueOf(Coordinate3D<javax.measure.quantity.Length> coord)
Returns aPointinstance holding the specified@link jahuwaldt.js.param.Coordinate3D Coordinate3Dvalues.- Parameters:
coord- TheCoordinate3Dto be stored. May not be null.- Returns:
- the point having the specified values.
-
valueOf
public static Point valueOf(Vector<Float64> vector, javax.measure.unit.Unit<javax.measure.quantity.Length> unit)
Returns aPointinstance containing the specified vector of Float64 values stated in the specified units.- Parameters:
vector- the vector of Float64 values stated in the specified unit. May not be null.unit- the unit in which the values are stated. May not be null.- Returns:
- the point having the specified values.
-
valueOf
public static <Q extends javax.measure.quantity.Quantity> Point valueOf(Vector<Parameter<Q>> vector)
Returns aPointinstance containing the specified vector of Parameter values with length units. All the values are converted to the same units as the 1st value.- Type Parameters:
Q- The Quantity (type of unit) for this Point data. Must be "Length" or "Dimensionless".- Parameters:
vector- The vector of Parameter values stated in length or dimensionless units. If in dimensionless units, the values are interpreted as being in meters. May not be null.- Returns:
- the point having the specified values.
- Throws:
javax.measure.converter.ConversionException- if the input vector is not in Length (or Dimensionless) units.
-
valueOf
public static Point valueOf(GeomVector<?> vector)
Returns aPointinstance that represents the direction elements of the specified GeomVector given in length or dimensionless units. If the user wishes for the point to represent the end or tip of the vehicle they should use the following:Point p = Point.valueOf(vector).plus(vector.getOrigin());- Parameters:
vector- the GeomVector stated in length or dimensionless units. If in dimensionless units, the values are interpreted as being in meters. May not be null.- Returns:
- the point having the elements of the vector.
- Throws:
javax.measure.converter.ConversionException- if the input vector is not in length (or Dimensionless) units.
-
valueOf
public static Point valueOf(GeomPoint point)
Returns aPointinstance containing the specified GeomPoint's data.- Parameters:
point- the GeomPoint to be copied into a new Point. May not be null.- Returns:
- the point having the specified values.
-
valueOf
public static Point valueOf(Point point)
Returns aPointinstance containing the specified Point's data.- Parameters:
point- the Point to be copied into a new Point. May not be null.- Returns:
- the point having the specified values.
-
immutable
public Point immutable()
Return an immutable version of this point. This implementation simply returns this Point instance.
-
mutable
public MutablePoint mutable()
Return a mutable copy of this point.- Returns:
- A mutable copy of this Point object.
-
getPhyDimension
public int getPhyDimension()
Returns the number of physical dimensions of the geometry element.- Specified by:
getPhyDimensionin interfaceGeomElement<GeomPoint>- Returns:
- The number of physical dimensions of the geometry element.
-
getValue
public double getValue(int i)
Returns the value of a coordinate in this point as adouble, stated in this point'sunit.
-
getValue
public double getValue(int i, javax.measure.unit.Unit<javax.measure.quantity.Length> unit)
Returns the value of a coordinate in this point as adouble, stated in the specified unit.
-
normSqValue
public double normSqValue()
Returns the square of the Euclidean norm, magnitude, or length value of the vector from the origin to this point (the dot product of the origin-to-this-point vector and itself). This is slightly faster than callingnormValueif the squared value is all that is needed.- Specified by:
normSqValuein classGeomPoint- Returns:
this.normSq().getValue().- See Also:
GeomPoint.normValue()
-
plus
public Point plus(GeomPoint that)
Returns the sum of this point with the one specified. The unit of the output point will be the units of this point.- Specified by:
plusin classGeomPoint- Parameters:
that- the point to be added. May not be null.- Returns:
this + that.- Throws:
DimensionException- if point dimensions are different.
-
plus
public Point plus(Parameter<javax.measure.quantity.Length> that)
Adds the specified parameter to each component of this point. The unit of the output point will be the units of this point.
-
minus
public Point minus(GeomPoint that)
Returns the difference between this point and the one specified. The unit of the output point will be the units of this point.- Specified by:
minusin classGeomPoint- Parameters:
that- the point to be subtracted from this point. May not be null.- Returns:
this - that.- Throws:
DimensionException- if point dimensions are different.
-
minus
public Point minus(Parameter<javax.measure.quantity.Length> that)
Subtracts the specified parameter from each component of this point. The unit of the output point will be the units of this point.
-
opposite
public Point opposite()
Returns the negation of this point (all the values of each dimension negated).
-
times
public Point times(double k)
Returns the product of this point with the specified coefficient.
-
copy
public Point copy()
Returns a copy of this Point instanceallocatedby the calling thread (possibly on the stack).- Specified by:
copyin interfaceGeomElement<GeomPoint>- Specified by:
copyin interfacejavolution.lang.ValueType- Specified by:
copyin classGeomPoint- Returns:
- an identical and independent copy of this point.
-
copyToReal
public Point copyToReal()
Return a copy of this object with any transformations or subranges removed (applied).- Specified by:
copyToRealin interfaceGeomElement<GeomPoint>- Specified by:
copyToRealin classGeomPoint- Returns:
- A copy of this object with any transformations or subranges removed.
-
getUnit
public final javax.measure.unit.Unit<javax.measure.quantity.Length> getUnit()
Returns the unit in which thevaluesin this point are stated in.- Specified by:
getUnitin interfaceGeomElement<GeomPoint>- Returns:
- The unit in which this Point is stated.
-
to
public Point to(javax.measure.unit.Unit<javax.measure.quantity.Length> unit) throws javax.measure.converter.ConversionException
Returns the equivalent to this point but stated in the specified unit.- Specified by:
toin interfaceGeomElement<GeomPoint>- Specified by:
toin interfacePointGeometry<GeomPoint>- Parameters:
unit- the length unit of the point to be returned. May not be null.- Returns:
- an equivalent of this point but stated in the specified unit.
- Throws:
javax.measure.converter.ConversionException- if the the input unit is not a length unit.
-
toDimension
public Point toDimension(int newDim)
Return the equivalent of this point converted to the specified number of physical dimensions. If the number of dimensions is greater than this element, then zeros are added to the additional dimensions. If the number of dimensions is less than this element, then the extra dimensions are simply dropped (truncated). If the new dimensions are the same as the dimension of this element, then this element is simply returned.- Specified by:
toDimensionin interfaceGeomElement<GeomPoint>- Parameters:
newDim- The dimension of the point to return.- Returns:
- A copy of this point converted to the new dimensions.
-
toFloat64Vector
public final Float64Vector toFloat64Vector()
Returns the values stored in this point, stated in this point'sunit, as a Float64Vector.- Specified by:
toFloat64Vectorin classGeomPoint- Returns:
- A Float64Vector containing the values stored in this Point in the current units.
-
equals
public boolean equals(java.lang.Object obj)
Compares this Point against the specified object for strict equality (same values and same units).- Overrides:
equalsin classAbstractGeomElement<GeomPoint>- Parameters:
obj- the object to compare with.- Returns:
trueif this point is identical to that point;falseotherwise.
-
hashCode
public int hashCode()
Returns the hash code for this parameter.- Overrides:
hashCodein classAbstractGeomElement<GeomPoint>- Returns:
- the hash code value.
-
allocateArray
public static Point[] allocateArray(int size)
Allocate a recyclable array that can contain Point objects using factory methods.WARNING: The array returned may not be zeroed. Any object references in the returned array must be assumed to be invalid. Also, the returned array may be larger than the requested size! The array returned by this method can be recycled by recycleArray().
- Parameters:
size- The minimum number of elements for the returned array to contain.- Returns:
- An array that can contain Point objects allocated using factory methods.
- See Also:
recycleArray(geomss.geom.Point[])
-
recycleArray
public static void recycleArray(Point[] arr)
Recycle an array of Point objects that was created by Point.allocateArray().- Parameters:
arr- The array to be recycled. The array must have been created by this the allocateArray() method!- See Also:
allocateArray(int)
-
main
public static void main(java.lang.String[] args)
Tests the methods in this class.- Parameters:
args- Command-line arguments (not used).
-
-