Show / Hide Table of Contents

Struct PlaneD

Represents a plane in the form of Ax + By + Cz = D. The following applies: Ax + Bx + Cz - D = 0. The plane's normal equals n = (A, B, C) and may NOT necessarily be of unit length. The plane divides a space into two half-spaces.The direction plane's normal vector defines the "outer" or negative half-space. Points that lie in the positive half space of the plane do have a negative signed distance to the plane.

Inherited Members
System.ValueType.ToString()
System.Object.Equals(System.Object, System.Object)
System.Object.GetType()
System.Object.ReferenceEquals(System.Object, System.Object)
Namespace: Fusee.Math.Core
Assembly: Fusee.Math.Core.dll
Syntax
public struct PlaneD

Fields

D

The D plane coefficient.

Declaration
public double D
Field Value
Type Description
System.Double

Properties

A

The A plane coefficient.

Declaration
public double A { get; set; }
Property Value
Type Description
System.Double

B

The B plane coefficient.

Declaration
public double B { get; set; }
Property Value
Type Description
System.Double

C

The C plane coefficient.

Declaration
public double C { get; set; }
Property Value
Type Description
System.Double

Normal

The plane's normal vector. May NOT be of unit length if the plane isn't normalized.

Declaration
public readonly double3 Normal { get; }
Property Value
Type Description
double3

Methods

AngleBetween(PlaneD)

Calculates the angle between this plane and another one.

Declaration
public double AngleBetween(PlaneD other)
Parameters
Type Name Description
PlaneD other

The other plane to calculate the angle with.

Returns
Type Description
System.Double

Equals(Object)

Indicates whether this plane is equal to another object.

Declaration
public override bool Equals(object obj)
Parameters
Type Name Description
System.Object obj

The object. This method will throw an exception if the object isn't of type PlaneD.

Returns
Type Description
System.Boolean
Overrides
System.ValueType.Equals(System.Object)

GetHashCode()

Generates a hash code for this plane.

Declaration
public override int GetHashCode()
Returns
Type Description
System.Int32
Overrides
System.ValueType.GetHashCode()

InsideOrIntersecting(AABBd)

Test whether a AABBd intersects this plane. See: Ericson 2005, Real Time Collision Detection, p. 161 - 164 CAREFUL: the definition whats completely inside and outside is flipped in comparison to Ericson, because FUSEE defines a point with a negative signed distance to be inside.

Declaration
public bool InsideOrIntersecting(AABBd aabb)
Parameters
Type Name Description
AABBd aabb

The axis aligned bounding box.

Returns
Type Description
System.Boolean

InsideOrIntersecting(double3, double3)

Test whether a cuboid intersects this plane. See: Ericson 2005, Real Time Collision Detection, p. 161 - 164 CAREFUL: the definition whats completely inside and outside is flipped in comparison to Ericson, because FUSEE defines a point with a negative signed distance to be inside.

Declaration
public bool InsideOrIntersecting(double3 center, double3 size)
Parameters
Type Name Description
double3 center

The center of the cuboid.

double3 size

The width, height and length of the cuboid.

Returns
Type Description
System.Boolean

InsideOrIntersecting(double3, Double)

Test whether a cuboid intersects this plane. See: Ericson 2005, Real Time Collision Detection, p. 161 - 164 CAREFUL: the definition whats completely inside and outside is flipped in comparison to Ericson, because FUSEE defines a point with a negative signed distance to be inside.

Declaration
public bool InsideOrIntersecting(double3 center, double size)
Parameters
Type Name Description
double3 center

The center of the cuboid.

System.Double size

The width, height and length of the cuboid.

Returns
Type Description
System.Boolean

InsideOrIntersecting(OBBd)

Test whether a OBBd intersects this plane. See: Ericson 2005, Real Time Collision Detection, p. 161 - 164 CAREFUL: the definition whats completely inside and outside is flipped in comparison to Ericson, because FUSEE defines a point with a negative signed distance to be inside.

Declaration
public bool InsideOrIntersecting(OBBd obb)
Parameters
Type Name Description
OBBd obb

The object oriented bounding box.

Returns
Type Description
System.Boolean

Intersects(AABBd)

Test whether a AABBd intersects this plane. See: Ericson 2005, Real Time Collision Detection, p. 161 - 164

Declaration
public bool Intersects(AABBd aabb)
Parameters
Type Name Description
AABBd aabb

The axis aligned bounding box.

Returns
Type Description
System.Boolean

Intersects(double3, double3)

Test whether a cuboid intersects this plane. See: Ericson 2005, Real Time Collision Detection, p. 161 - 164

Declaration
public bool Intersects(double3 center, double3 size)
Parameters
Type Name Description
double3 center

The center of the cuboid.

double3 size

The width, height and length of the cuboid.

Returns
Type Description
System.Boolean

Intersects(OBBd)

Test whether a OBBd intersects this plane. See: Ericson 2005, Real Time Collision Detection, p. 161 - 164

Declaration
public bool Intersects(OBBd obb)
Parameters
Type Name Description
OBBd obb

The axis aligned bounding box.

Returns
Type Description
System.Boolean

Normalize()

Normalizes this plane.

Declaration
public PlaneD Normalize()
Returns
Type Description
PlaneD

SignedDistanceFromPoint(double3)

Returns the signed distance from a point to this plane. If the plane isn't normalized this may not be the euclidean distance! For normalized and unnormalized planes the following is true: 1.If the distance is negative, the point lies in the negative half-space. 2.If 0 = dist, the point lies in the plane. 3.If the distance is positive the point lies in the positive half-space.

Declaration
public double SignedDistanceFromPoint(double3 pt)
Parameters
Type Name Description
double3 pt

An arbitrary point.

Returns
Type Description
System.Double

Operators

Equality(PlaneD, PlaneD)

Operator override for equality.

Declaration
public static bool operator ==(PlaneD left, PlaneD right)
Parameters
Type Name Description
PlaneD left

The plane.

PlaneD right

The scalar value.

Returns
Type Description
System.Boolean

Inequality(PlaneD, PlaneD)

Operator override for inequality.

Declaration
public static bool operator !=(PlaneD left, PlaneD right)
Parameters
Type Name Description
PlaneD left

The plane.

PlaneD right

The scalar value.

Returns
Type Description
System.Boolean

Multiply(PlaneD, Double)

Operator override for multiplying a Plane with a double.

Declaration
public static PlaneD operator *(PlaneD plane, double scalar)
Parameters
Type Name Description
PlaneD plane

The plane.

System.Double scalar

The scalar value.

Returns
Type Description
PlaneD
Generated by DocFX
GitHub Repo
Back to top