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
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
GetHashCode()
Generates a hash code for this plane.
Declaration
public override int GetHashCode()
Returns
Type | Description |
---|---|
System.Int32 |
Overrides
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 |