struct
#include <Spore/MathUtils.h>
PlaneEquation
Contents
Public types
 enum class Intersection { None, Point, InPlane }
 The type of intersection between the plane and a line.
Constructors, destructors, conversion operators
 PlaneEquation()
 PlaneEquation(float a, float b, float c, float d)
 PlaneEquation(const Vector3& normal, const Vector3& point)
 PlaneEquation(const Vector3& u, const Vector3& v, const Vector3& point)
Public functions
 auto GetNormal() const > Vector3
 Returns the normal vector of the plane; this vector is perpendicular to the plane.
 auto GetPointOnPlane() const > Vector3
 Returns an arbitrary point that is contained on the plane, might not be the same as the one used in the constructor.
 auto IsOnPlane(const Vector3& point, float epsilon = 1e7f) const > bool
 Returns whether a given point is inside the plane.
 auto IntersectRay(const Vector3& point, const Vector3& direction, Vector3& dst) const > Intersection
 Calculates the intesection between a ray (semiinfinite line) and the plane.
 auto ProjectPoint(const Vector3& point) const > Vector3
 Returns the projection of the point onto the plane: that is the point inside the plane that is closest to the given point.
 auto ProjectVector(const Vector3& v) const > Vector3
 Returns the projection of the vector onto the plane.
Public variables
Enum documentation
enum class Math::PlaneEquation::Intersection
The type of intersection between the plane and a line.
Enumerators  

None 

Point 

InPlane 
Infinite intersection points, the line is contained inside the plane. 
Function documentation
Vector3 Math::PlaneEquation:: GetPointOnPlane() const
Returns an arbitrary point that is contained on the plane, might not be the same as the one used in the constructor.
Returns  A point in the plane 

Intersection Math::PlaneEquation:: IntersectRay(const Vector3& point,
const Vector3& direction,
Vector3& dst) const
Calculates the intesection between a ray (semiinfinite line) and the plane.
Parameters  

point  Start point of the ray 
direction  Direction of the ray 
dst out  Where the intersection point will be written. Only valid if returns Intersection:: 
Returns  The type of intersection 
The ray is defined by the start point and a direction; only positive multiples of the direction will be considered.
A ray can intersect with a plane in 3 different ways:
 Intersection::
None , line is parallel to plane  Intersection::
Point , line intersects with the plane in only one point  Intersection::
InPlane , line is parallel to plane and contained within it, so all points of the ray are inside the plane Only in the one point case this method gives a valid result.
Vector3 Math::PlaneEquation:: ProjectPoint(const Vector3& point) const
Returns the projection of the point onto the plane: that is the point inside the plane that is closest to the given point.
Parameters  

point  The point to project 
Returns  The projected point, which is contained in the plane 
Vector3 Math::PlaneEquation:: ProjectVector(const Vector3& v) const
Returns the projection of the vector onto the plane.
Parameters  

v  The vector to project 
Returns  The projected vector. 
This only considers the plane normal and not its position, since its irrelevant for a vector.