public class Plane extends Vector
Modifier and Type | Field and Description |
---|---|
double |
D
Ax + By + Cz + D = 0
|
static Membership[] |
NO_BOUNDS
An array with no bounds in it
|
static GeoPoint[] |
NO_POINTS
An array with no points in it
|
static Plane |
normalXPlane
A vertical plane normal to the X axis
|
static Plane |
normalYPlane
A vertical plane normal to the Y axis
|
static Plane |
normalZPlane
A vertical plane normal to the Z axis
|
MINIMUM_ANGULAR_RESOLUTION, MINIMUM_RESOLUTION, MINIMUM_RESOLUTION_CUBED, MINIMUM_RESOLUTION_SQUARED, x, y, z
Constructor and Description |
---|
Plane(double x,
double y)
Construct a vertical plane through a specified
x, y and origin.
|
Plane(double A,
double B,
double C,
double D)
Construct a plane with all four coefficients defined.
|
Plane(Plane basePlane,
boolean above)
Construct a plane that is parallel to the one provided, but which is just barely numerically
distinguishable from it, in the direction desired.
|
Plane(PlanetModel planetModel,
double sinLat)
Construct a horizontal plane at a specified Z.
|
Plane(Vector v,
double D)
Construct a plane with a specific vector, and D offset
from origin.
|
Plane(Vector A,
double BX,
double BY,
double BZ)
Construct a plane through two points and origin.
|
Plane(Vector A,
Vector B)
Construct a plane through two points and origin.
|
Modifier and Type | Method and Description |
---|---|
double |
arcDistance(PlanetModel planetModel,
double x,
double y,
double z,
Membership... bounds)
Compute arc distance from plane to a vector.
|
double |
arcDistance(PlanetModel planetModel,
GeoPoint v,
Membership... bounds)
Compute arc distance from plane to a vector expressed with a
GeoPoint . |
static boolean |
arePointsCoplanar(GeoPoint A,
GeoPoint B,
GeoPoint C)
Checks if three points are coplanar in any of the three planes they can describe.
|
static Plane |
constructNormalizedXPlane(double y,
double z,
double DValue)
Construct a normalized plane through a y-z point and parallel to the X axis.
|
static Plane |
constructNormalizedXPlane(Vector... planePoints)
Construct the most accurate normalized plane through an y-z point and including the X axis.
|
static Plane |
constructNormalizedYPlane(double x,
double z,
double DValue)
Construct a normalized plane through an x-z point and parallel to the Y axis.
|
static Plane |
constructNormalizedYPlane(Vector... planePoints)
Construct the most accurate normalized plane through an x-z point and including the Y axis.
|
static Plane |
constructNormalizedZPlane(double x,
double y)
Construct a normalized plane through an x-y point and including the Z axis.
|
static Plane |
constructNormalizedZPlane(Vector... planePoints)
Construct the most accurate normalized plane through an x-y point and including the Z axis.
|
boolean |
crosses(PlanetModel planetModel,
Plane q,
GeoPoint[] notablePoints,
GeoPoint[] moreNotablePoints,
Membership[] bounds,
Membership... moreBounds)
Determine whether the plane crosses another plane within the
bounds provided.
|
boolean |
equals(Object o) |
double |
evaluate(double x,
double y,
double z)
Evaluate the plane equation for a given point, as represented
by a vector.
|
double |
evaluate(Vector v)
Evaluate the plane equation for a given point, as represented
by a vector.
|
boolean |
evaluateIsZero(double x,
double y,
double z)
Evaluate the plane equation for a given point, as represented
by a vector.
|
boolean |
evaluateIsZero(Vector v)
Evaluate the plane equation for a given point, as represented
by a vector.
|
GeoPoint[] |
findArcDistancePoints(PlanetModel planetModel,
double arcDistanceValue,
GeoPoint startPoint,
Membership... bounds)
Locate a point that is within the specified bounds and on the specified plane, that has an arcDistance as
specified from the startPoint.
|
GeoPoint[] |
findCrossings(PlanetModel planetModel,
Plane q,
Membership... bounds)
Find the points between two planes, where one plane crosses the other, given a set of bounds.
|
protected GeoPoint[] |
findCrossings(PlanetModel planetModel,
Plane q,
Membership[] bounds,
Membership[] moreBounds)
Find the points between two planes, where one plane crosses the other, given a set of bounds.
|
protected void |
findIntersectionBounds(PlanetModel planetModel,
Bounds boundsInfo,
Plane q,
Membership... bounds)
Record intersection points for planes with error bounds.
|
GeoPoint[] |
findIntersections(PlanetModel planetModel,
Plane q,
Membership... bounds)
Find the intersection points between two planes, given a set of bounds.
|
protected GeoPoint[] |
findIntersections(PlanetModel planetModel,
Plane q,
Membership[] bounds,
Membership[] moreBounds)
Find the intersection points between two planes, given a set of bounds.
|
GeoPoint |
getSampleIntersectionPoint(PlanetModel planetModel,
Plane q)
Find a sample point on the intersection between two planes and the world.
|
int |
hashCode() |
GeoPoint[] |
interpolate(PlanetModel planetModel,
GeoPoint start,
GeoPoint end,
double[] proportions)
Find points on the boundary of the intersection of a plane and the unit sphere,
given a starting point, and ending point, and a list of proportions of the arc (e.g.
|
boolean |
intersects(PlanetModel planetModel,
Plane q,
GeoPoint[] notablePoints,
GeoPoint[] moreNotablePoints,
Membership[] bounds,
Membership... moreBounds)
Determine whether the plane intersects another plane within the
bounds provided.
|
boolean |
isFunctionallyIdentical(Plane p)
Returns true if this plane and the other plane are functionally identical within the margin of error.
|
boolean |
isNumericallyIdentical(Plane p)
Returns true if this plane and the other plane are identical within the margin of error.
|
double |
linearDistance(PlanetModel planetModel,
double x,
double y,
double z,
Membership... bounds)
Compute linear distance from plane to a vector.
|
double |
linearDistance(PlanetModel planetModel,
GeoPoint v,
Membership... bounds)
Compute linear distance from plane to a vector.
|
double |
linearDistanceSquared(PlanetModel planetModel,
double x,
double y,
double z,
Membership... bounds)
Compute linear distance squared from plane to a vector.
|
double |
linearDistanceSquared(PlanetModel planetModel,
GeoPoint v,
Membership... bounds)
Compute linear distance squared from plane to a vector.
|
protected static Vector |
modify(GeoPoint start,
double transX,
double transY,
double transZ,
double sinRA,
double cosRA,
double sinHA,
double cosHA)
Modify a point to produce a vector in translated/rotated space.
|
double |
normalDistance(double x,
double y,
double z,
Membership... bounds)
Compute normal distance from plane to a vector.
|
double |
normalDistance(Vector v,
Membership... bounds)
Compute normal distance from plane to a vector.
|
double |
normalDistanceSquared(double x,
double y,
double z,
Membership... bounds)
Compute normal distance squared from plane to a vector.
|
double |
normalDistanceSquared(Vector v,
Membership... bounds)
Compute normal distance squared from plane to a vector.
|
Plane |
normalize()
Build a normalized plane, so that the vector is normalized.
|
void |
recordBounds(PlanetModel planetModel,
LatLonBounds boundsInfo,
Membership... bounds)
Accumulate bounds information for this plane, intersected with the unit sphere.
|
void |
recordBounds(PlanetModel planetModel,
LatLonBounds boundsInfo,
Plane p,
Membership... bounds)
Accumulate bounds information for this plane, intersected with another plane
and the world.
|
void |
recordBounds(PlanetModel planetModel,
XYZBounds boundsInfo,
Membership... bounds)
Accumulate (x,y,z) bounds information for this plane, intersected with the unit sphere.
|
void |
recordBounds(PlanetModel planetModel,
XYZBounds boundsInfo,
Plane p,
Membership... bounds)
Accumulate (x,y,z) bounds information for this plane, intersected with another and the
world.
|
protected static GeoPoint |
reverseModify(PlanetModel planetModel,
Vector point,
double transX,
double transY,
double transZ,
double sinRA,
double cosRA,
double sinHA,
double cosHA)
Reverse modify a point to produce a GeoPoint in normal space.
|
String |
toString() |
crossProductEvaluateIsZero, dotProduct, dotProduct, isNumericallyIdentical, isNumericallyIdentical, isParallel, isParallel, isWithin, linearDistance, linearDistance, linearDistanceSquared, linearDistanceSquared, magnitude, magnitude, normalDistance, normalDistance, normalDistanceSquared, normalDistanceSquared, rotateXY, rotateXY, rotateXZ, rotateXZ, rotateZY, rotateZY, translate
public static final GeoPoint[] NO_POINTS
public static final Membership[] NO_BOUNDS
public static final Plane normalYPlane
public static final Plane normalXPlane
public static final Plane normalZPlane
public final double D
public Plane(double A, double B, double C, double D)
A
- is AB
- is BC
- is CD
- is Dpublic Plane(Vector A, double BX, double BY, double BZ)
A
- is the first point (origin based).BX
- is the second point X (origin based).BY
- is the second point Y (origin based).BZ
- is the second point Z (origin based).public Plane(Vector A, Vector B)
A
- is the first point (origin based).B
- is the second point (origin based).public Plane(PlanetModel planetModel, double sinLat)
planetModel
- is the planet model.sinLat
- is the sin(latitude).public Plane(double x, double y)
x
- is the specified x value.y
- is the specified y value.public Plane(Vector v, double D)
v
- is the normal vector.D
- is the D offset from the origin.public Plane(Plane basePlane, boolean above)
basePlane
- is the starting plane.above
- is set to true if the desired plane is in the positive direction from the base plane,
or false in the negative direction.public static Plane constructNormalizedZPlane(Vector... planePoints)
planePoints
- is a set of points to choose from. The best one for constructing the most precise plane is picked.public static Plane constructNormalizedYPlane(Vector... planePoints)
planePoints
- is a set of points to choose from. The best one for constructing the most precise plane is picked.public static Plane constructNormalizedXPlane(Vector... planePoints)
planePoints
- is a set of points to choose from. The best one for constructing the most precise plane is picked.public static Plane constructNormalizedZPlane(double x, double y)
x
- is the x value.y
- is the y value.public static Plane constructNormalizedYPlane(double x, double z, double DValue)
x
- is the x value.z
- is the z value.DValue
- is the offset from the origin for the plane.public static Plane constructNormalizedXPlane(double y, double z, double DValue)
y
- is the y value.z
- is the z value.DValue
- is the offset from the origin for the plane.public double evaluate(Vector v)
v
- is the vector.public double evaluate(double x, double y, double z)
x
- is the x value.y
- is the y value.z
- is the z value.public boolean evaluateIsZero(Vector v)
v
- is the vector.public boolean evaluateIsZero(double x, double y, double z)
x
- is the x value.y
- is the y value.z
- is the z value.public Plane normalize()
public double arcDistance(PlanetModel planetModel, GeoPoint v, Membership... bounds)
GeoPoint
.public double arcDistance(PlanetModel planetModel, double x, double y, double z, Membership... bounds)
planetModel
- is the planet model.x
- is the x vector value.y
- is the y vector value.z
- is the z vector value.bounds
- are the bounds which constrain the intersection point.public double normalDistance(Vector v, Membership... bounds)
v
- is the vector.bounds
- are the bounds which constrain the intersection point.public double normalDistance(double x, double y, double z, Membership... bounds)
x
- is the vector x.y
- is the vector y.z
- is the vector z.bounds
- are the bounds which constrain the intersection point.public double normalDistanceSquared(Vector v, Membership... bounds)
v
- is the vector.bounds
- are the bounds which constrain the intersection point.public double normalDistanceSquared(double x, double y, double z, Membership... bounds)
x
- is the vector x.y
- is the vector y.z
- is the vector z.bounds
- are the bounds which constrain the intersection point.public double linearDistance(PlanetModel planetModel, GeoPoint v, Membership... bounds)
planetModel
- is the planet model.v
- is the point.bounds
- are the bounds which constrain the intersection point.public double linearDistance(PlanetModel planetModel, double x, double y, double z, Membership... bounds)
planetModel
- is the planet model.x
- is the vector x.y
- is the vector y.z
- is the vector z.bounds
- are the bounds which constrain the intersection point.public double linearDistanceSquared(PlanetModel planetModel, GeoPoint v, Membership... bounds)
planetModel
- is the planet model.v
- is the point.bounds
- are the bounds which constrain the intersection point.public double linearDistanceSquared(PlanetModel planetModel, double x, double y, double z, Membership... bounds)
planetModel
- is the planet model.x
- is the vector x.y
- is the vector y.z
- is the vector z.bounds
- are the bounds which constrain the intersection point.public GeoPoint[] interpolate(PlanetModel planetModel, GeoPoint start, GeoPoint end, double[] proportions)
planetModel
- is the planet model.start
- is the start point.end
- is the end point.proportions
- is an array of fractional proportions measured between start and end.protected static Vector modify(GeoPoint start, double transX, double transY, double transZ, double sinRA, double cosRA, double sinHA, double cosHA)
start
- is the start point.transX
- is the translation x value.transY
- is the translation y value.transZ
- is the translation z value.sinRA
- is the sine of the ascension angle.cosRA
- is the cosine of the ascension angle.sinHA
- is the sine of the height angle.cosHA
- is the cosine of the height angle.protected static GeoPoint reverseModify(PlanetModel planetModel, Vector point, double transX, double transY, double transZ, double sinRA, double cosRA, double sinHA, double cosHA)
planetModel
- is the planet model.point
- is the translated point.transX
- is the translation x value.transY
- is the translation y value.transZ
- is the translation z value.sinRA
- is the sine of the ascension angle.cosRA
- is the cosine of the ascension angle.sinHA
- is the sine of the height angle.cosHA
- is the cosine of the height angle.public GeoPoint[] findIntersections(PlanetModel planetModel, Plane q, Membership... bounds)
planetModel
- is the planet model.q
- is the plane to intersect with.bounds
- are the bounds to consider to determine legal intersection points.public GeoPoint[] findCrossings(PlanetModel planetModel, Plane q, Membership... bounds)
planetModel
- is the planet model.q
- is the plane to intersect with.bounds
- are the bounds to consider to determine legal intersection points.public static boolean arePointsCoplanar(GeoPoint A, GeoPoint B, GeoPoint C)
A
- The first point.B
- The second point.C
- The third pointprotected GeoPoint[] findIntersections(PlanetModel planetModel, Plane q, Membership[] bounds, Membership[] moreBounds)
planetModel
- is the planet model to use in finding points.q
- is the plane to intersect with.bounds
- is the set of bounds.moreBounds
- is another set of bounds.protected GeoPoint[] findCrossings(PlanetModel planetModel, Plane q, Membership[] bounds, Membership[] moreBounds)
planetModel
- is the planet model to use in finding points.q
- is the plane to intersect with.bounds
- is the set of bounds.moreBounds
- is another set of bounds.protected void findIntersectionBounds(PlanetModel planetModel, Bounds boundsInfo, Plane q, Membership... bounds)
public void recordBounds(PlanetModel planetModel, XYZBounds boundsInfo, Plane p, Membership... bounds)
planetModel
- is the planet model to use in determining bounds.boundsInfo
- is the xyz info to update with additional bounding information.p
- is the other plane.bounds
- are the surfaces delineating what's inside the shape.public void recordBounds(PlanetModel planetModel, XYZBounds boundsInfo, Membership... bounds)
planetModel
- is the planet model to use in determining bounds.boundsInfo
- is the xyz info to update with additional bounding information.bounds
- are the surfaces delineating what's inside the shape.public void recordBounds(PlanetModel planetModel, LatLonBounds boundsInfo, Plane p, Membership... bounds)
planetModel
- is the planet model to use in determining bounds.boundsInfo
- is the lat/lon info to update with additional bounding information.p
- is the other plane.bounds
- are the surfaces delineating what's inside the shape.public void recordBounds(PlanetModel planetModel, LatLonBounds boundsInfo, Membership... bounds)
planetModel
- is the planet model to use in determining bounds.boundsInfo
- is the lat/lon info to update with additional bounding information.bounds
- are the surfaces delineating what's inside the shape.public boolean intersects(PlanetModel planetModel, Plane q, GeoPoint[] notablePoints, GeoPoint[] moreNotablePoints, Membership[] bounds, Membership... moreBounds)
planetModel
- is the planet model to use in determining intersection.q
- is the other plane.notablePoints
- are points to look at to disambiguate cases when the two planes are identical.moreNotablePoints
- are additional points to look at to disambiguate cases when the two planes are identical.bounds
- is one part of the bounds.moreBounds
- are more bounds.public boolean crosses(PlanetModel planetModel, Plane q, GeoPoint[] notablePoints, GeoPoint[] moreNotablePoints, Membership[] bounds, Membership... moreBounds)
planetModel
- is the planet model to use in determining intersection.q
- is the other plane.notablePoints
- are points to look at to disambiguate cases when the two planes are identical.moreNotablePoints
- are additional points to look at to disambiguate cases when the two planes are identical.bounds
- is one part of the bounds.moreBounds
- are more bounds.public boolean isFunctionallyIdentical(Plane p)
p
- is the plane to compare against.public boolean isNumericallyIdentical(Plane p)
p
- is the plane to compare against.public GeoPoint[] findArcDistancePoints(PlanetModel planetModel, double arcDistanceValue, GeoPoint startPoint, Membership... bounds)
planetModel
- is the planet model.arcDistanceValue
- is the arc distance.startPoint
- is the starting point.bounds
- are the bounds.public GeoPoint getSampleIntersectionPoint(PlanetModel planetModel, Plane q)
planetModel
- is the planet model.q
- is the second plane to consider.Copyright © 2000-2021 Apache Software Foundation. All Rights Reserved.