public abstract class GeomPoint extends AbstractGeomElement<GeomPoint> implements PointGeometry<GeomPoint>, Transformable<GeomPoint>
* Modified by: Joseph A. Huwaldt
Modifier and Type | Field and Description |
---|---|
static int |
W
Constant used to identify the W or 4th coordinate.
|
static int |
X
Constant used to identify the X or 1st coordinate.
|
static int |
Y
Constant used to identify the Y or 2nd coordinate.
|
static int |
Z
Constant used to identify the Z or 3rd coordinate.
|
RESOURCES
Constructor and Description |
---|
GeomPoint() |
Modifier and Type | Method and Description |
---|---|
abstract GeomPoint |
copy()
Returns a copy of this
GeomPoint instance
allocated by the calling thread
(possibly on the stack). |
abstract Point |
copyToReal()
Return a copy of this object with any transformations or subranges removed
(applied).
|
Parameter<Length> |
distance(GeomPoint that)
Return the Euclidian distance between this point and the one specified.
|
Parameter<Area> |
distanceSq(GeomPoint that)
Return the square of the Euclidian distance between this point and the one
specified.
|
double |
distanceSqValue(GeomPoint that)
Return the Euclidian distance squared between this point and the one specified as a
double . |
double |
distanceValue(GeomPoint that)
Return the Euclidian distance between this point and the one specified as a
double . |
Point |
divide(double divisor)
Returns this point with each element divided by the specified divisor.
|
Point |
divide(Parameter<Dimensionless> divisor)
Returns this point with each element divided by the specified dimensionless
Parameter.
|
Parameter<Length> |
get(int i)
Returns the value of a Parameter from this point.
|
Point |
getBoundsMax()
Return the coordinate point representing the maximum bounding box corner (e.g.: max
X, max Y, max Z).
|
Point |
getBoundsMin()
Return the coordinate point representing the minimum bounding box corner (e.g.: min
X, min Y, min Z).
|
GeomPoint |
getLimitPoint(int dim,
boolean max,
double tol)
Returns the most extreme point, either minimum or maximum, in the specified
coordinate direction on this geometry element.
|
int |
getNumberOfPoints()
Return the total number of points in this geometry element.
|
int |
getParDimension()
Returns the number of parametric dimensions of the geometry element.
|
GeomPointTrans |
getTransformed(GTransform transform)
Returns transformed version of this element.
|
abstract double |
getValue(int i)
Returns the value of a coordinate in this point as a
double , stated in
this point's unit . |
abstract double |
getValue(int i,
Unit<Length> unit)
Returns the value of a coordinate in this point as a
double , stated in
the specified unit. |
abstract Point |
immutable()
Return an immutable version of this point.
|
boolean |
isApproxEqual(GeomPoint obj)
Compares this point against the specified point for approximate equality
(coordinate values approximately equal to this one to within the numerical roundoff
tolerance).
|
boolean |
isApproxEqual(GeomPoint obj,
Parameter<Length> tol)
Compares this point against the specified point for approximate equality
(coordinate values approximately equal to this one to within the numerical roundoff
tolerance).
|
boolean |
isValid()
Return
true if this point contains valid and finite numerical
components. |
Point |
max(GeomPoint that)
Returns a point consisting of the maximum value in each dimension between this
point and the input point.
|
Point |
min(GeomPoint that)
Returns a point consisting of the minimum value in each dimension between this
point and the input point.
|
abstract Point |
minus(GeomPoint that)
Returns the difference between this point and the one specified.
|
abstract Point |
minus(Parameter<Length> that)
Subtracts the specified parameter from each component of this point.
|
Parameter<Length> |
norm()
Returns the Euclidian norm, magnitude, or length of the vector from the origin to
this point (square root of the dot product of the origin-to-this-point vector and
itself).
|
Parameter<Area> |
normSq()
Returns the square of the Euclidean norm, magnitude, or length of the vector from
the origin to this point (the dot product of the origin-to-this-point vector and
itself).
|
abstract 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).
|
double |
normValue()
Returns the
norm() , magnitude, or length value of the vector from the origin
to this point (square root of the dot product of the origin-to-this-point vector
and itself). |
abstract Point |
opposite()
Returns the negation of this point (all the values of each dimension negated).
|
abstract Point |
plus(GeomPoint that)
Returns the sum of this point with the one specified.
|
abstract Point |
plus(Parameter<Length> that)
Adds the specified parameter to each component of this point.
|
int |
size()
Returns the number of child-elements that make up this geometry element.
|
abstract Point |
times(double k)
Returns the product of this point with the specified coefficient.
|
Point |
times(Parameter<Dimensionless> k)
Returns the product of this point with the specified dimensionless Parameter.
|
double[] |
toArray()
Returns the values stored in this point as a Java array, stated in the
current
units . |
double[] |
toArray(double[] array)
Returns the values stored in this point, stated in the current
units stored in the input Java array. |
abstract Float64Vector |
toFloat64Vector()
Returns the values stored in this point, stated in the current
units , as a Float64Vector. |
Vector<Length> |
toGeomVector()
Returns a
GeomVector representation of this point. |
ParameterVector<Length> |
toParameterVector()
Returns a ParameterVector representation of this point.
|
javolution.text.Text |
toText()
Returns the text representation of this geometry element that consists of the name
followed by the coordinate values.
|
Vector3D<Length> |
toVector3D()
Returns a Vector3D representation of this point if possible.
|
addChangeListener, clone, compareTo, equals, getAllUserData, getID, getName, getUserData, hashCode, putAllUserData, putUserData, removeChangeListener, removeUserData, reset, setName, toString
to
addChangeListener, getAllUserData, getID, getName, getPhyDimension, getUnit, getUserData, putAllUserData, putUserData, removeChangeListener, removeUserData, setName, toDimension
public static final int X
public static final int Y
public static final int Z
public static final int W
public GeomPoint()
public abstract Point immutable()
public int size()
size
in interface GeomElement<GeomPoint>
public int getParDimension()
getParDimension
in interface GeomElement<GeomPoint>
public Parameter<Length> get(int i)
i
- the dimension index.i
.java.lang.IndexOutOfBoundsException
- (i < 0) || (i ≥ getPhyDimension())
public abstract double getValue(int i)
double
, stated in
this point's unit
.i
- the dimension index.i
.java.lang.IndexOutOfBoundsException
- (i < 0) || (i ≥ getPhyDimension())
public abstract double getValue(int i, Unit<Length> unit)
double
, stated in
the specified unit.i
- the dimension index.unit
- the unit to return the value in. May not be null.i
in the specified unit.java.lang.IndexOutOfBoundsException
- (i < 0) || (i ≥ dimension())
public abstract double normSqValue()
normValue
if the
squared value is all that is needed.this.normSq().getValue()
.normValue()
public Parameter<Area> normSq()
normValue
if the
squared value is all that is needed.this · this
.norm()
public double normValue()
norm()
, magnitude, or length value of the vector from the origin
to this point (square root of the dot product of the origin-to-this-point vector
and itself).this.norm().doubleValue()
.normSqValue()
public Parameter<Length> norm()
sqrt(this · this)
.normValue()
public abstract Point plus(GeomPoint that)
that
- the point to be added. May not be null.this + that
.DimensionException
- if point dimensions are different.public abstract Point plus(Parameter<Length> that)
that
- the parameter to be added to each component of this point. May not be
null.this + that
.public abstract Point minus(GeomPoint that)
that
- the point to be subtracted from this point. May not be null.this - that
.DimensionException
- if point dimensions are different.public abstract Point minus(Parameter<Length> that)
that
- the parameter to be subtracted from each component of this point. May
not be null.this - that
.public abstract Point opposite()
-this
public abstract Point times(double k)
k
- the coefficient multiplier.this · k
public Point times(Parameter<Dimensionless> k)
k
- the dimensionless Parameter multiplier. May not be null.this · k
public Point divide(double divisor)
divisor
- the divisor.this / divisor
.public Point divide(Parameter<Dimensionless> divisor)
divisor
- the dimensionless Parameter divisor. May not be null.this / divisor
.public Parameter<Area> distanceSq(GeomPoint that)
distance
if the
squared value is all that you need.that
- The point to determine the distance squared from this point to. May not
be null.distance(geomss.geom.GeomPoint)
public double distanceSqValue(GeomPoint that)
double
. This is slightly faster than calling distance
if
the squared value is all that you need.that
- The point to determine the distance squared from this point to. May not
be null.distanceValue(geomss.geom.GeomPoint)
public Parameter<Length> distance(GeomPoint that)
that
- The point to determine the distance from this point to. May not be null.distanceSq(geomss.geom.GeomPoint)
public double distanceValue(GeomPoint that)
double
.that
- The point to determine the distance from this point to. May not be null.distanceSqValue(geomss.geom.GeomPoint)
public Point min(GeomPoint that)
that
- The point being compared with this one for minimum values in each
dimension. May not be null.public Point max(GeomPoint that)
that
- The point being compared with this one for maximum values in each
dimension. May not be null.public Point getBoundsMin()
getBoundsMin
in interface GeomElement<GeomPoint>
public Point getBoundsMax()
getBoundsMax
in interface GeomElement<GeomPoint>
public GeomPoint getLimitPoint(int dim, boolean max, double tol)
getLimitPoint
in interface GeomElement<GeomPoint>
dim
- An index indicating the dimension to find the min/max point for (0=X,
1=Y, 2=Z, etc).max
- Set to true
to return the maximum value, false
to return the minimum.tol
- Fractional tolerance to refine the min/max point position to if
necessary.getBoundsMin()
,
getBoundsMax()
public int getNumberOfPoints()
getNumberOfPoints
in interface PointGeometry<GeomPoint>
public boolean isValid()
true
if this point contains valid and finite numerical
components. A value of false
will be returned if any of the coordinate
values are NaN or Inf.isValid
in interface GeomElement<GeomPoint>
public abstract Point copyToReal()
copyToReal
in interface GeomElement<GeomPoint>
public abstract GeomPoint copy()
GeomPoint
instance
allocated
by the calling thread
(possibly on the stack).copy
in interface GeomElement<GeomPoint>
public Vector3D<Length> toVector3D()
DimensionException
- if this point has any number of dimensions other than 3.public ParameterVector<Length> toParameterVector()
public Vector<Length> toGeomVector()
GeomVector
representation of this point.public abstract Float64Vector toFloat64Vector()
units
, as a Float64Vector.public double[] toArray()
units
.public double[] toArray(double[] array)
units
stored in the input Java array.array
- An existing array that has at least as many elements as the physical
dimension of this point.GeomElement.getPhyDimension()
public GeomPointTrans getTransformed(GTransform transform)
GeomTransform
and contains this element as a child.getTransformed
in interface Transformable<GeomPoint>
transform
- The transformation to apply to this geometry. May not be null.DimensionException
- if this point is not 3D.public javolution.text.Text toText()
{aPoint = {10 ft, -3 ft, 4.56 ft}}If there is no name, then the output looks like this:
{10 ft, -3 ft, 4.56 ft}
toText
in interface GeomElement<GeomPoint>
toText
in class AbstractGeomElement<GeomPoint>
public boolean isApproxEqual(GeomPoint obj)
obj
- The GeomPoint object to compare with.true
if this point is approximately identical to that point;
false
otherwise.public boolean isApproxEqual(GeomPoint obj, Parameter<Length> tol)
obj
- The GeomPoint object to compare with.tol
- The amount use to define approximate equality. If null
is
passed, exact numerical equality will be required.true
if this point is approximately identical to that point;
false
otherwise.