#include <plane3.h>
Public Member Functions |
|
Constructors and Destructors
|
|
TPlane3 () | |
Default constructor. |
|
TPlane3 (const TPlane3 &plane) | |
Copy constructor. |
|
TPlane3 (const TVector3< T > &point, const TVector3< T > &normal) | |
Detailed constructor. |
|
TPlane3 (const TVector3< T > &a, const TVector3< T > &b, const TVector3< T > &c) | |
Detailed constructor. |
|
TPlane3 (const T &a, const T &b, const T &c, const T &d) throw (Exception::DivisionByZero) | |
Constructor. |
|
virtual | ~TPlane3 () |
Destructor. |
|
virtual void | clear () |
Clear method. |
|
Assignment
|
|
void | swap (TPlane3 &plane) |
void | set (const TPlane3 &plane) |
Swap the contents of two instances
of planes. |
|
void | set (const TVector3< T > &point, const TVector3< T > &normal) |
Assign from a point and a normal.
|
|
void | set (const TVector3< T > &a, const TVector3< T > &b, const TVector3< T > &c) |
Assign from three points. |
|
TPlane3 & | operator= (const TPlane3 &plane) |
Assignment operator. |
|
void | get (TPlane3 &plane) const |
Assign to another instance of
Plane3. |
|
void | get (TVector3< T > &point, TVector3< T > &normal) const |
Assign to a point and a normal.
|
|
Accessors
|
|
void | normalize () throw (Exception::DivisionByZero) |
Normalize the the normal of the
plane. |
|
void | hessify () |
Hessify the plane. |
|
Predicates
|
|
bool | operator== (const TPlane3 &plane) const |
Equality operator. |
|
bool | operator!= (const TPlane3 &plane) const |
Inequality operator. |
|
bool | has (const TVector3< T > &point) const |
Test whether a given point is a
member of the plane. |
|
bool | has (const TLine3< T > &line) const |
Test whether a given line is a
member of the plane. |
|
Debugging and Diagnostics
|
|
bool | isValid () const |
Test whether instance is valid.
|
|
void | dump (std::ostream &s=std::cout, Size depth=0) const |
Internal state dump. |
|
Public Attributes |
|
Attributes
|
|
TVector3< T > | p |
The point. |
|
TVector3< T > | n |
The normal. |
A plane is defined by a point and its normal.
BALL::TPlane3< T >::TPlane3 | ( | ) |
Default constructor.
This method creates a new TPlane3 object. The two
components are initialized to (T)0
.
BALL::TPlane3< T >::TPlane3 | ( | const TPlane3< T > & | plane | ) |
BALL::TPlane3< T >::TPlane3 | ( | const TVector3< T > & | point, | |
const TVector3< T > & | normal | |||
) |
Detailed constructor.
Create a new instances of TPlane3 from a point and the normal.
point | assigned to p |
|
normal | assigned to n |
BALL::TPlane3< T >::TPlane3 | ( | const TVector3< T > & | a, | |
const TVector3< T > & | b, | |||
const TVector3< T > & | c | |||
) |
Detailed constructor.
Create a new instance of TPlane3 from three points.
a | assigned to p |
|
a,b,c | are used to calculate the normal
n |
BALL::TPlane3< T >::TPlane3 | ( | const T & | a, | |
const T & | b, | |||
const T & | c, | |||
const T & | d | |||
) | throw (Exception::DivisionByZero) |
Constructor.
Create a new TPlane3 object from four
T
values. Form: COORDINATE (ax + by + cz + d =
0)
a,b,c | are used to calculate the normal n
and the point p |
References BALL::Maths::isZero(), BALL::TPlane3< T >::n, and BALL::TPlane3< T >::p.
virtual BALL::TPlane3< T >::~TPlane3 | ( | ) | [virtual] |
Destructor.
Destructs the TPlane3 object. As there are no dynamic data structures, nothing happens.
virtual void BALL::TPlane3< T >::clear | ( | ) | [virtual] |
void BALL::TPlane3< T >::dump | ( | std::ostream & | s =
std::cout , |
|
Size | depth =
0 |
|||
) | const |
Internal state dump.
Dump the current internal state of {*this} to the output ostream s with dumping depth depth .
s | - output stream where to output the internal state of {*this} | |
depth | - the dumping depth |
References BALL::TPlane3< T >::n, and BALL::TPlane3< T >::p.
void BALL::TPlane3< T >::get | ( | TVector3< T > & | point, | |
TVector3< T > & | normal | |||
) | const |
Assign to a point and a normal.
point | the point to be assigned to | |
normal | the normal to be assigned to |
References BALL::TPlane3< T >::n, and BALL::TPlane3< T >::p.
void BALL::TPlane3< T >::get | ( | TPlane3< T > & | plane | ) | const |
Assign to another instance of Plane3.
Assigns the components to another plane.
plane | the plane to be assigned to |
References BALL::TPlane3< T >::n, and BALL::TPlane3< T >::p.
bool BALL::TPlane3< T >::has | ( | const TLine3< T > & | line | ) | const |
Test whether a given line is a member of the plane.
line | the line to be tested |
References BALL::TLine3< T >::d, BALL::TPlane3< T >::has(), BALL::Maths::isZero(), BALL::TPlane3< T >::n, and BALL::TLine3< T >::p.
bool BALL::TPlane3< T >::has | ( | const TVector3< T > & | point | ) | const |
Test whether a given point is a member of the plane.
point | the point to be tested |
References BALL::Maths::isZero(), BALL::TPlane3< T >::n, and BALL::TPlane3< T >::p.
Referenced by BALL::TPlane3< T >::has().
void BALL::TPlane3< T >::hessify | ( | ) |
Hessify the plane.
The normal is scaled with its length: . If the dot product of the point with the normal is less then zero, the normal is negated.
References BALL::Maths::isLess(), BALL::TPlane3< T >::n, BALL::TPlane3< T >::normalize(), and BALL::TPlane3< T >::p.
bool BALL::TPlane3< T >::isValid | ( | ) | const |
Test whether instance is valid.
always retruns true
void BALL::TPlane3< T >::normalize | ( | ) | throw (Exception::DivisionByZero) |
Normalize the the normal of the plane.
The normal is scaled with its length: .
DivisionByZero | if the length of the normal is 0 |
References BALL::TPlane3< T >::n.
Referenced by BALL::TPlane3< T >::hessify().
bool BALL::TPlane3< T >::operator!= | ( | const TPlane3< T > & | plane | ) | const |
Inequality operator.
References BALL::TPlane3< T >::n, and BALL::TPlane3< T >::p.
TPlane3& BALL::TPlane3< T >::operator= | ( | const TPlane3< T > & | plane | ) |
Assignment operator.
Assign the components from another instance of plane.
plane | the plane to assign from |
References BALL::TPlane3< T >::n, and BALL::TPlane3< T >::p.
bool BALL::TPlane3< T >::operator== | ( | const TPlane3< T > & | plane | ) | const |
Equality operator.
References BALL::TPlane3< T >::n, and BALL::TPlane3< T >::p.
void BALL::TPlane3< T >::set | ( | const TVector3< T > & | a, | |
const TVector3< T > & | b, | |||
const TVector3< T > & | c | |||
) |
Assign from three points.
a | the first point | |
b | the second point | |
c | the third point |
References BALL::TPlane3< T >::n, and BALL::TPlane3< T >::p.
void BALL::TPlane3< T >::set | ( | const TVector3< T > & | point, | |
const TVector3< T > & | normal | |||
) |
Assign from a point and a normal.
point | the new point | |
normal | the new normal |
References BALL::TPlane3< T >::n, and BALL::TPlane3< T >::p.
void BALL::TPlane3< T >::set | ( | const TPlane3< T > & | plane | ) |
Swap the contents of two instances of planes.
vector | the plane to swap contents with | |
bool | ignored - just for interface consistency |
References BALL::TPlane3< T >::n, and BALL::TPlane3< T >::p.