#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.
1.5.8