Struct collision::Plane [] [src]

pub struct Plane<S> {
    pub n: Vector3<S>,
    pub d: S,
}

A 3-dimensional plane formed from the equation: A*x + B*y + C*z - D = 0.

Fields

  • n: a unit vector representing the normal of the plane where:
    • n.x: corresponds to A in the plane equation
    • n.y: corresponds to B in the plane equation
    • n.z: corresponds to C in the plane equation
  • d: the distance value, corresponding to D in the plane equation

Notes

The A*x + B*y + C*z - D = 0 form is preferred over the other common alternative, A*x + B*y + C*z + D = 0, because it tends to avoid superfluous negations (see Real Time Collision Detection, p. 55).

Fields

Plane normal

Plane distance value

Methods

impl<S: BaseFloat> Plane<S>
[src]

[src]

Construct a plane from a normal vector and a scalar distance. The plane will be perpendicular to n, and d units offset from the origin.

[src]

Arguments

  • a: the x component of the normal
  • b: the y component of the normal
  • c: the z component of the normal
  • d: the plane's distance value

[src]

Construct a plane from the components of a four-dimensional vector

[src]

Construct a plane from the components of a four-dimensional vector Assuming alternative representation: A*x + B*y + C*z + D = 0

[src]

Constructs a plane that passes through the the three points a, b and c

[src]

Construct a plane from a point and a normal vector. The plane will contain the point p and be perpendicular to n.

[src]

Normalize a plane.

Trait Implementations

impl<S: Copy> Copy for Plane<S>
[src]

impl<S: Clone> Clone for Plane<S>
[src]

[src]

Returns a copy of the value. Read more

1.0.0
[src]

Performs copy-assignment from source. Read more

impl<S: PartialEq> PartialEq for Plane<S>
[src]

[src]

This method tests for self and other values to be equal, and is used by ==. Read more

[src]

This method tests for !=.

impl<S> ApproxEq for Plane<S> where
    S: BaseFloat
[src]

Used for specifying relative comparisons.

[src]

The default tolerance to use when testing values that are close together. Read more

[src]

The default relative tolerance for testing values that are far-apart. Read more

[src]

The default ULPs to tolerate when testing values that are far-apart. Read more

[src]

A test for equality that uses a relative comparison if the values are far apart.

[src]

A test for equality that uses units in the last place (ULP) if the values are far apart.

[src]

The inverse of ApproxEq::relative_eq.

[src]

The inverse of ApproxEq::ulps_eq.

impl<S: BaseFloat> Debug for Plane<S>
[src]

[src]

Formats the value using the given formatter. Read more

impl<S: BaseFloat> Continuous<Ray3<S>> for Plane<S>
[src]

Result returned by the intersection test

[src]

Intersection test

impl<S: BaseFloat> Discrete<Ray3<S>> for Plane<S>
[src]

[src]

Intersection test

impl<S: BaseFloat> Continuous<Plane<S>> for Plane<S>
[src]

See Real-Time Collision Detection, p. 210

Result returned by the intersection test

[src]

Intersection test

impl<S: BaseFloat> Discrete<Plane<S>> for Plane<S>
[src]

[src]

Intersection test

impl<S: BaseFloat> Continuous<(Plane<S>, Plane<S>)> for Plane<S>
[src]

See Real-Time Collision Detection, p. 212 - 214

Result returned by the intersection test

[src]

Intersection test

impl<S: BaseFloat> Discrete<(Plane<S>, Plane<S>)> for Plane<S>
[src]

[src]

Intersection test

Auto Trait Implementations

impl<S> Send for Plane<S> where
    S: Send

impl<S> Sync for Plane<S> where
    S: Sync