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 yz point and parallel to the X axis.

static Plane 
constructNormalizedXPlane(Vector... planePoints)
Construct the most accurate normalized plane through an yz point and including the X axis.

static Plane 
constructNormalizedYPlane(double x,
double z,
double DValue)
Construct a normalized plane through an xz point and parallel to the Y axis.

static Plane 
constructNormalizedYPlane(Vector... planePoints)
Construct the most accurate normalized plane through an xz point and including the Y axis.

static Plane 
constructNormalizedZPlane(double x,
double y)
Construct a normalized plane through an xy point and including the Z axis.

static Plane 
constructNormalizedZPlane(Vector... planePoints)
Construct the most accurate normalized plane through an xy 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 © 20002019 Apache Software Foundation. All Rights Reserved.