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 (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... | |
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 ()=default | |
Double_t | A () const |
Double_t * | Arr () |
Double_t | B () const |
Double_t | C () const |
const Double_t * | CArr () const |
ClassDefNV (TGLPlane, 0) | |
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 |
TGLPlane & | operator= (const TGLPlane &src) |
Assignment operator. More... | |
void | Set (const TGLPlane &other) |
Assign from other. 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... | |
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... | |
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 337 of file TGLUtil.cxx.
TGLPlane::TGLPlane | ( | const TGLPlane & | other | ) |
Construct plane from 'other'.
Definition at line 345 of file TGLUtil.cxx.
Construct plane with equation a.x + b.y + c.z + d = 0 with optional normalisation.
Definition at line 354 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 363 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 382 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 372 of file TGLUtil.cxx.
|
default |
TGLPlane::ClassDefNV | ( | TGLPlane | , |
0 | |||
) |
Double_t TGLPlane::DistanceTo | ( | const TGLVertex3 & | vertex | ) | const |
Distance from plane to vertex.
Definition at line 493 of file TGLUtil.cxx.
void TGLPlane::Dump | ( | ) | const |
Output plane equation to std::out.
Definition at line 417 of file TGLUtil.cxx.
TGLVertex3 TGLPlane::NearestOn | ( | const TGLVertex3 & | point | ) | const |
Return nearest point on plane.
Definition at line 501 of file TGLUtil.cxx.
void TGLPlane::Negate | ( | ) |
Negate the plane.
Definition at line 482 of file TGLUtil.cxx.
|
inline |
|
private |
Normalise the plane.
Definition at line 399 of file TGLUtil.cxx.
Assignment operator.
Definition at line 390 of file TGLUtil.cxx.
Assign from other.
Definition at line 426 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 461 of file TGLUtil.cxx.
void TGLPlane::Set | ( | const TGLVertex3 & | p1, |
const TGLVertex3 & | p2, | ||
const TGLVertex3 & | p3 | ||
) |
Set plane by three points.
Definition at line 473 of file TGLUtil.cxx.
Set by values.
Definition at line 437 of file TGLUtil.cxx.
Set by array values.
Definition at line 449 of file TGLUtil.cxx.