Class to define the geometry primitive "Line" consisting of a position and a direction.
Class defining a plane in 3D.
Plane(const Vector3 &normal, MLdouble distance)
Constructs a plane from normal normal and distance from origin distance.
const Vector3 & getNormal() const
Returns the plane normal.
bool setNormal(const Vector3 &n)
Sets the plane normal to n (performing normalization), or (1,0,0) if n == 0.
MLdouble getDistance(const Vector3 &point) const
Returns the distance of point from plane.
bool intersect(const Line &l, Vector3 &intersection) const
Intersects this plane with line l and returns the intersection point in intersection.
Plane()
Constructor. Normal defaults to (0,0,1) and distance to 0.
bool isInHalfSpace(const Vector3 &point) const
Returns whether the point lies in the half-space of the plane into which the normal of the plane poin...
Plane(const Vector3 &normal, const Vector3 &point)
Constructs a plane from normal and point in space.
Vector3 getClosestPoint(const Vector3 &point) const
Projects a point onto this plane.
Plane(const Vector3 &p0, const Vector3 &p1, const Vector3 &p2)
Constructs a plane from three points in space.
void setDistance(double d)
Sets the distance from origin to d.
MLSign edgeIntersect(const Vector3 &v1, const Vector3 &v2, Vector3 &intersectPos) const
Determines whether an edge (line segment) bounded by v1 -> v2 intersects *this.
MLdouble getDistanceFromOrigin() const
Returns the minimum distance of plane from origin.
#define ML_LINEAR_ALGEBRA_EXPORT
Defines all system specific settings for all linear algebra classes.
Target mlrange_cast(Source arg)
Generic version of checked ML casts.
MLSign
Definition of possible signs as enumerator.