Basic Geometry, Numerical Algorithms and Interfaces
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Groups Pages
Public Member Functions | Private Attributes | List of all members
Plane Class Reference

Detailed Description

A plane in three dimensions.

Can be initialized by a normal and distance from origin, or by two tangent vectors and a point in the plane. To create a plane from three points, use {verbatim} Vct3 a,b,c; Plane pl((a-b), (a-c), a); {verbatim} Plane supports computation of point distance and projections.

#include <plane.h>

Collaboration diagram for Plane:

Public Member Functions

 Plane ()
 empty construction
 Plane (CartesianPlaneType cartp, Real dst=0.0)
 construct a plane aligned with coordinate axes
 Plane (const Vct3 &n, Real d)
 build from normal and distance from origin
 Plane (const Vct3 &a, const Vct3 &b, const Vct3 &p)
 build from two vectors in plane and a point
Vct3 project (const Vct3 &p) const
 project point onto plane
Vct3 reflection (const Vct3 &p) const
 return the mirror image of a point with respect to plane
Real distance (const Vct3 &p) const
 calculate signed distance
bool parallel (const Plane &pl) const
 is *this parallel to pl
Line< 3 > intersection (const Plane &pl) const
 compute intersection line
PlnIts pierce (const Line< 3 > &ln) const
 compute line parameter where line pierces plane
PlnIts pierce (const Vct3 &p1, const Vct3 &p2) const
 compute line parameter where line pierces plane
const Vct3vector () const
 return normal
Real offset () const
 return offset (distance from origin)
const Vct3fitNormal (const Vct3 &origin, const PointList< 3 > &pts)
 determine a normal vector so that the plane through origin minimizes the sum of squared distances for the points in pts
XmlElement toXml (bool share) const
 return XML representation
void fromXml (const XmlElement &xe)
 recover from XML representation

Private Attributes

Vct3 m_normal
 normal vector
Real m_dist
 distance from origin

The documentation for this class was generated from the following files: