cee::Plane
-
class Plane
Class defining a plane in space.
The class describes a plane by the equation: Ax + By + Cz + Dx = 0 The plane’s normal is defined by the coefficients [A, B, C]
Public Functions
-
Plane()
Constructs a plane.
-
Plane(double A, double B, double C, double D)
Constructs a plane based on the equation: Ax + By + Cz + Dx = 0.
-
Plane &operator=(const Plane &other)
Assigns other to this plane and returns a reference to this plane.
-
bool operator==(const Plane &rhs) const
Returns true if rhs is equal to this plane; otherwise returns false.
-
bool operator!=(const Plane &rhs) const
Returns true if rhs is NOT equal to this plane; otherwise returns false.
-
double A() const
Returns the value A.
Plane equation: Ax + By + Cz + Dx = 0
-
double B() const
Returns the value B.
Plane equation: Ax + By + Cz + Dx = 0
-
double C() const
Returns the value C.
Plane equation: Ax + By + Cz + Dx = 0
-
double D() const
Returns the value D.
Plane equation: Ax + By + Cz + Dx = 0
-
bool isValid() const
Returns true if the plane is valid, otherwise returns false.
-
double distance(const Vec3d &point) const
Returns the distance between the give point and this plane.
-
double distanceSquared(const Vec3d &point) const
Returns the square of the distance from the point to the plane.
The square of the distance is relatively fast to compute (no sqrt) and is useful for determine which side the point is on. To obtain the actual distance, divide by sqrt(A^2 + B^2 + C^2) or use the distance() function directly.
-
void set(double A, double B, double C, double D)
Sets A, B, C and D values for this plane.
Plane equation: Ax + By + Cz + Dx = 0
-
bool setFromPointAndNormal(const Vec3d &point, const Vec3d &normal)
Sets the plane from a point and a normal.
-
bool setFromPoints(const Vec3d &p1, const Vec3d &p2, const Vec3d &p3)
Sets the plane from three points.
The three points cannot be on a line as they need to define a plane. So (p2 - p1)*(p3 - p1) != 0
-
void transform(const Mat4d &matrix)
Transforms the plane with the given homogeneous transformation matrix.
-
bool rayIntersect(const Ray &ray, Vec3d *intersectionPoint) const
Calculates the intersection point between a ray and the plane.
Returns true if an intersection point was found
-
bool rayIntersect(const Ray &ray, double *distance) const
Calculates the distance between a ray and the plane.
Returns true if an intersection point was found
-
Plane()