# Struct Plane

Infinite plane

``` struct Plane ; ```

## Methods

NameDescription
`distance` (p) Get the distance from the center of the plane to the given point. This is useful for determining which side of the plane the point is on.
`intersectsLine` (p0, p1, t) Calculate the intersection between this plane and a line If the plane and the line are parallel, false is returned
`opCall` () Return a Plane with all values at zero
`opCall` (n, d) Return a Plane with the Vec3f component of n and distance of d
`opCall` (x, y, z, d) Return a Plane with a Vec3f component of x, y, z and distance of d

## Example

``````Plane plane = Plane(Vector3f(0, 1, 0), 0.0f);
assert(isConsiderZero(plane.distance(Vector3f(0, -1, 0)) + 1.0f));
float d = plane.dot(Vector3f(1, 0, 0));
assert(isConsiderZero(d));
assert(isAlmostZero(plane.position));
assert(plane.isOnPlane(Vector3f(0, 0, 0)));
float t;
assert(plane.intersectsLine(Vector3f(0, -1, 0), Vector3f(0, 1, 0), t));
assert(isConsiderZero(t - 0.5f));
Vector3f ip;
assert(plane.intersectsLineSegment(Vector3f(0, -1, 0), Vector3f(0, 1, 0), ip));
``````