ROOT 6.08/07 Reference Guide |
3D plane class - of format Ax + By + Cz + D = 0
This is part of collection of simple utility classes for GL only in TGLUtil.h/cxx. These provide const and non-const accessors Arr() & CArr() to a GL compatible internal field - so can be used directly with OpenGL C API calls - which TVector3 etc cannot (easily). They are not intended to be fully featured just provide minimum required.
Public Member Functions | |
TGLPlane () | |
Construct a default plane of x + y + z = 0. More... | |
TGLPlane (const TGLPlane &other) | |
Construct plane from 'other'. More... | |
TGLPlane (Double_t a, Double_t b, Double_t c, Double_t d) | |
Construct plane with equation a.x + b.y + c.z + d = 0 with optional normalisation. More... | |
TGLPlane (Double_t eq[4]) | |
Construct plane with equation eq[0].x + eq[1].y + eq[2].z + eq[3] = 0 with optional normalisation. More... | |
TGLPlane (const TGLVector3 &norm, const TGLVertex3 &point) | |
Construct plane with supplied normal vector, passing through point with optional normalisation. More... | |
TGLPlane (const TGLVertex3 &p1, const TGLVertex3 &p2, const TGLVertex3 &p3) | |
Construct plane passing through 3 supplied points with optional normalisation. More... | |
virtual | ~TGLPlane () |
Destroy plane object. More... | |
Double_t | A () const |
Double_t * | Arr () |
Double_t | B () const |
Double_t | C () const |
const Double_t * | CArr () const |
Double_t | D () const |
Double_t | DistanceTo (const TGLVertex3 &vertex) const |
Distance from plane to vertex. More... | |
void | Dump () const |
Output plane equation to std::out. More... | |
TGLVertex3 | NearestOn (const TGLVertex3 &point) const |
Return nearest point on plane. More... | |
void | Negate () |
Negate the plane. More... | |
TGLVector3 | Norm () const |
void | Set (const TGLPlane &other) |
Assign from other. More... | |
void | Set (Double_t a, Double_t b, Double_t c, Double_t d) |
Set by values. More... | |
void | Set (Double_t eq[4]) |
Set by array values. More... | |
void | Set (const TGLVector3 &norm, const TGLVertex3 &point) |
Set plane from a normal vector and in-plane point pair. More... | |
void | Set (const TGLVertex3 &p1, const TGLVertex3 &p2, const TGLVertex3 &p3) |
Set plane by three points. More... | |
Private Member Functions | |
void | Normalise () |
Normalise the plane. More... | |
Private Attributes | |
Double_t | fVals [4] |
#include <TGLUtil.h>
TGLPlane::TGLPlane | ( | ) |
Construct a default plane of x + y + z = 0.
Definition at line 366 of file TGLUtil.cxx.
TGLPlane::TGLPlane | ( | const TGLPlane & | other | ) |
Construct plane from 'other'.
Definition at line 374 of file TGLUtil.cxx.
Construct plane with equation a.x + b.y + c.z + d = 0 with optional normalisation.
Definition at line 383 of file TGLUtil.cxx.
TGLPlane::TGLPlane | ( | Double_t | eq[4] | ) |
Construct plane with equation eq[0].x + eq[1].y + eq[2].z + eq[3] = 0 with optional normalisation.
Definition at line 392 of file TGLUtil.cxx.
TGLPlane::TGLPlane | ( | const TGLVector3 & | norm, |
const TGLVertex3 & | point | ||
) |
Construct plane with supplied normal vector, passing through point with optional normalisation.
Definition at line 411 of file TGLUtil.cxx.
TGLPlane::TGLPlane | ( | const TGLVertex3 & | p1, |
const TGLVertex3 & | p2, | ||
const TGLVertex3 & | p3 | ||
) |
Construct plane passing through 3 supplied points with optional normalisation.
Definition at line 401 of file TGLUtil.cxx.
|
virtual |
Destroy plane object.
Definition at line 419 of file TGLUtil.cxx.
Double_t TGLPlane::DistanceTo | ( | const TGLVertex3 & | vertex | ) | const |
Distance from plane to vertex.
Definition at line 520 of file TGLUtil.cxx.
void TGLPlane::Dump | ( | ) | const |
Output plane equation to std::out.
Definition at line 444 of file TGLUtil.cxx.
TGLVertex3 TGLPlane::NearestOn | ( | const TGLVertex3 & | point | ) | const |
Return nearest point on plane.
Definition at line 528 of file TGLUtil.cxx.
void TGLPlane::Negate | ( | ) |
Negate the plane.
Definition at line 509 of file TGLUtil.cxx.
|
inline |
|
private |
Normalise the plane.
Definition at line 426 of file TGLUtil.cxx.
Assign from other.
Definition at line 453 of file TGLUtil.cxx.
Set by values.
Definition at line 464 of file TGLUtil.cxx.
Set by array values.
Definition at line 476 of file TGLUtil.cxx.
void TGLPlane::Set | ( | const TGLVector3 & | norm, |
const TGLVertex3 & | point | ||
) |
Set plane from a normal vector and in-plane point pair.
Definition at line 488 of file TGLUtil.cxx.
void TGLPlane::Set | ( | const TGLVertex3 & | p1, |
const TGLVertex3 & | p2, | ||
const TGLVertex3 & | p3 | ||
) |
Set plane by three points.
Definition at line 500 of file TGLUtil.cxx.