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. | |
| TGLPlane (const TGLPlane &other) | |
| Construct plane from 'other'. | |
| TGLPlane (const TGLVector3 &norm, const TGLVertex3 &point) | |
| Construct plane with supplied normal vector, passing through point with optional normalisation. | |
| TGLPlane (const TGLVertex3 &p1, const TGLVertex3 &p2, const TGLVertex3 &p3) | |
| Construct plane passing through 3 supplied points with optional normalisation. | |
| 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. | |
| TGLPlane (Double_t eq[4]) | |
| Construct plane with equation eq[0].x + eq[1].y + eq[2].z + eq[3] = 0 with optional normalisation. | |
| ~TGLPlane ()=default | |
| 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. | |
| void | Dump () const |
| Output plane equation to std::out. | |
| TClass * | IsA () const |
| TGLVertex3 | NearestOn (const TGLVertex3 &point) const |
| Return nearest point on plane. | |
| void | Negate () |
| Negate the plane. | |
| TGLVector3 | Norm () const |
| TGLPlane & | operator= (const TGLPlane &src) |
| Assignment operator. | |
| void | Set (const TGLPlane &other) |
| Assign from other. | |
| void | Set (const TGLVector3 &norm, const TGLVertex3 &point) |
| Set plane from a normal vector and in-plane point pair. | |
| void | Set (const TGLVertex3 &p1, const TGLVertex3 &p2, const TGLVertex3 &p3) |
| Set plane by three points. | |
| void | Set (Double_t a, Double_t b, Double_t c, Double_t d) |
| Set by values. | |
| void | Set (Double_t eq[4]) |
| Set by array values. | |
| void | Streamer (TBuffer &) |
| void | StreamerNVirtual (TBuffer &ClassDef_StreamerNVirtual_b) |
Static Public Member Functions | |
| static TClass * | Class () |
| static const char * | Class_Name () |
| static constexpr Version_t | Class_Version () |
| static const char * | DeclFileName () |
Private Member Functions | |
| void | Normalise () |
| Normalise the plane. | |
Private Attributes | |
| Double_t | fVals [4] |
#include <TGLUtil.h>
| TGLPlane::TGLPlane | ( | ) |
Construct a default plane of x + y + z = 0.
Definition at line 336 of file TGLUtil.cxx.
| TGLPlane::TGLPlane | ( | const TGLPlane & | other | ) |
Construct plane from 'other'.
Definition at line 344 of file TGLUtil.cxx.
Construct plane with equation a.x + b.y + c.z + d = 0 with optional normalisation.
Definition at line 353 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 362 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 381 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 371 of file TGLUtil.cxx.
|
default |
|
static |
|
inlinestaticconstexpr |
|
inlinestatic |
| Double_t TGLPlane::DistanceTo | ( | const TGLVertex3 & | vertex | ) | const |
Distance from plane to vertex.
Definition at line 492 of file TGLUtil.cxx.
| void TGLPlane::Dump | ( | ) | const |
Output plane equation to std::out.
Definition at line 416 of file TGLUtil.cxx.
|
inline |
| TGLVertex3 TGLPlane::NearestOn | ( | const TGLVertex3 & | point | ) | const |
Return nearest point on plane.
Definition at line 500 of file TGLUtil.cxx.
| void TGLPlane::Negate | ( | ) |
Negate the plane.
Definition at line 481 of file TGLUtil.cxx.
|
inline |
|
private |
Normalise the plane.
Definition at line 398 of file TGLUtil.cxx.
Assignment operator.
Definition at line 389 of file TGLUtil.cxx.
| void TGLPlane::Set | ( | const TGLPlane & | other | ) |
Assign from other.
Definition at line 425 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 460 of file TGLUtil.cxx.
| void TGLPlane::Set | ( | const TGLVertex3 & | p1, |
| const TGLVertex3 & | p2, | ||
| const TGLVertex3 & | p3 | ||
| ) |
Set plane by three points.
Definition at line 472 of file TGLUtil.cxx.
Set by values.
Definition at line 436 of file TGLUtil.cxx.
| void TGLPlane::Set | ( | Double_t | eq[4] | ) |
Set by array values.
Definition at line 448 of file TGLUtil.cxx.
| void TGLPlane::Streamer | ( | TBuffer & | ) |
|
inline |