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 331 of file TGLUtil.cxx.
Construct plane from 'other'.
Definition at line 339 of file TGLUtil.cxx.
Construct plane with equation a.x + b.y + c.z + d = 0 with optional normalisation.
Definition at line 348 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 357 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 376 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 366 of file TGLUtil.cxx.
|
default |
Double_t TGLPlane::DistanceTo | ( | const TGLVertex3 & | vertex | ) | const |
Distance from plane to vertex.
Definition at line 487 of file TGLUtil.cxx.
void TGLPlane::Dump | ( | ) | const |
Output plane equation to std::out.
Definition at line 411 of file TGLUtil.cxx.
|
inline |
TGLVertex3 TGLPlane::NearestOn | ( | const TGLVertex3 & | point | ) | const |
Return nearest point on plane.
Definition at line 495 of file TGLUtil.cxx.
void TGLPlane::Negate | ( | ) |
Negate the plane.
Definition at line 476 of file TGLUtil.cxx.
|
inline |
|
private |
Normalise the plane.
Definition at line 393 of file TGLUtil.cxx.
Assignment operator.
Definition at line 384 of file TGLUtil.cxx.
Assign from other.
Definition at line 420 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 455 of file TGLUtil.cxx.
void TGLPlane::Set | ( | const TGLVertex3 & | p1, |
const TGLVertex3 & | p2, | ||
const TGLVertex3 & | p3 ) |
Set plane by three points.
Definition at line 467 of file TGLUtil.cxx.
Set by values.
Definition at line 431 of file TGLUtil.cxx.
void TGLPlane::Set | ( | Double_t | eq[4] | ) |
Set by array values.
Definition at line 443 of file TGLUtil.cxx.
void TGLPlane::Streamer | ( | TBuffer & | ) |
|
inline |