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 |
ClassDefNV (TGLPlane, 0) | |
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. | |
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. | |
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 |
TGLPlane::ClassDefNV | ( | TGLPlane | , |
0 | |||
) |
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.
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.
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.
Set by array values.
Definition at line 448 of file TGLUtil.cxx.