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, translatepublic 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-2024 Apache Software Foundation. All Rights Reserved.