gov.nasa.worldwind.geom

## Class Plane

• java.lang.Object
• gov.nasa.worldwind.geom.Plane

• ```public class Plane
extends java.lang.Object```
Represents a plane in Cartesian coordinates. The plane's X, Y and Z components indicate the plane's normal vector. The distance component indicates the plane's distance from the origin relative to its unit normal.
• ### Constructor Summary

Constructors
Constructor and Description
`Plane()`
Constructs a plane in the X-Y plane with its unit normal pointing along the Z axis.
```Plane(double x, double y, double z, double distance)```
Constructs a plane with specified normal vector components and distance from the origin.
`Plane(Plane plane)`
Constructs a plane with the normal vector and distance from a specified plane.
• ### Method Summary

All Methods
Modifier and Type Method and Description
`Vec3[]` ```clip(Vec3 pointA, Vec3 pointB)```
Clips a line segment to this plane, returning an two-point array indicating the clipped segment.
`double` `distanceToPoint(Vec3 point)`
Computes the distance between this plane and a point.
`double` `dot(Vec3 vector)`
Computes the dot product of this plane's components with a specified vector.
`boolean` `equals(java.lang.Object o)`
`int` `hashCode()`
`boolean` ```intersectsSegment(Vec3 endPoint1, Vec3 endPoint2)```
Determines whether a specified line segment intersects this plane.
`int` ```onSameSide(Vec3 pointA, Vec3 pointB)```
Determines whether two points are on the same side of this plane.
`Plane` ```set(double x, double y, double z, double distance)```
Sets this plane's specified normal vector and distance to specified values.
`Plane` `set(Plane plane)`
Sets this plane's normal vector and distance to that of a specified plane.
`java.lang.String` `toString()`
`Plane` `transformByMatrix(Matrix4 matrix)`
Transforms this plane by a specified matrix.
• ### Methods inherited from class java.lang.Object

`getClass, notify, notifyAll, wait, wait, wait`
• ### Constructor Detail

• #### Plane

`public Plane()`
Constructs a plane in the X-Y plane with its unit normal pointing along the Z axis.
• #### Plane

```public Plane(double x,
double y,
double z,
double distance)```
Constructs a plane with specified normal vector components and distance from the origin. This constructor normalizes the components, ensuring that the plane has a unit normal vector.
Parameters:
`x` - the X component of the plane's normal vector
`y` - the Y component of the plane's normal vector
`z` - the Z component of the plane's normal vector
`distance` - the plane's distance from the origin
• #### Plane

`public Plane(Plane plane)`
Constructs a plane with the normal vector and distance from a specified plane.
Parameters:
`plane` - the plane specifying the normal vector and distance
Throws:
`java.lang.IllegalArgumentException` - If the plane is null
• ### Method Detail

• #### equals

`public boolean equals(java.lang.Object o)`
Overrides:
`equals` in class `java.lang.Object`
• #### hashCode

`public int hashCode()`
Overrides:
`hashCode` in class `java.lang.Object`
• #### toString

`public java.lang.String toString()`
Overrides:
`toString` in class `java.lang.Object`
• #### distanceToPoint

`public double distanceToPoint(Vec3 point)`
Computes the distance between this plane and a point.
Parameters:
`point` - the point whose distance to compute
Returns:
the computed distance
Throws:
`java.lang.IllegalArgumentException` - If the vector is null
• #### set

```public Plane set(double x,
double y,
double z,
double distance)```
Sets this plane's specified normal vector and distance to specified values. This normalizes the components, ensuring that the plane has a unit normal vector.
Parameters:
`x` - the X component of the plane's normal vector
`y` - the Y component of the plane's normal vector
`z` - the Z component of the plane's normal vector
`distance` - the plane's distance from the origin
Returns:
this plane with its normal vector and distance set to specified values
• #### set

`public Plane set(Plane plane)`
Sets this plane's normal vector and distance to that of a specified plane.
Parameters:
`plane` - the plane specifying the normal vector and distance
Returns:
this plane with its normal vector and distance set to those of the specified plane
Throws:
`java.lang.IllegalArgumentException` - If the plane is null
• #### transformByMatrix

`public Plane transformByMatrix(Matrix4 matrix)`
Transforms this plane by a specified matrix.
Parameters:
`matrix` - the matrix to apply to this plane
Returns:
this plane transformed by the specified matrix
Throws:
`java.lang.IllegalArgumentException` - If the matrix is null
• #### dot

`public double dot(Vec3 vector)`
Computes the dot product of this plane's components with a specified vector. Since the plane was defined with a unit normal vector, this function returns the distance of the vector from the plane.
Parameters:
`vector` - the vector to dot with this plane's components
Returns:
the computed dot product
Throws:
`java.lang.IllegalArgumentException` - If the vector is null
• #### intersectsSegment

```public boolean intersectsSegment(Vec3 endPoint1,
Vec3 endPoint2)```
Determines whether a specified line segment intersects this plane.
Parameters:
`endPoint1` - the line segment's first end point
`endPoint2` - the line segment's second end point
Returns:
true if the line segment intersects this plane, otherwise false
• #### onSameSide

```public int onSameSide(Vec3 pointA,
Vec3 pointB)```
Determines whether two points are on the same side of this plane.
Parameters:
`pointA` - the first point
`pointB` - the second point
Returns:
-1 if both points are on the negative side of this plane, +1 if both points are on the positive side of this plane, 0 if the points are on opposite sides of this plane
Throws:
`java.lang.IllegalArgumentException` - If either point is null
• #### clip

```public Vec3[] clip(Vec3 pointA,
Vec3 pointB)```
Clips a line segment to this plane, returning an two-point array indicating the clipped segment. If the direction of the line formed by the two points is positive with respect to this plane's normal vector, the first point in the array will be the intersection point on the plane, and the second point will be the original segment end point. If the direction of the line is negative with respect to this plane's normal vector, the first point in the array will be the original segment's begin point, and the second point will be the intersection point on the plane. If the segment does not intersect the plane, null is returned. If the segment is coincident with the plane, the input points are returned, in their input order.
Parameters:
`pointA` - the first line segment endpoint
`pointB` - the second line segment endpoint
Returns:
an array of two points both on the positive side of the plane, or null if the segment does not intersect this plane
Throws:
`java.lang.IllegalArgumentException` - If either point is null