![]() |
ROOT
6.06/09
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... | |
| 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... | |
| void | Negate () |
| Negate the plane. More... | |
| Double_t | A () const |
| Double_t | B () const |
| Double_t | C () const |
| Double_t | D () const |
| TGLVector3 | Norm () const |
| Double_t | DistanceTo (const TGLVertex3 &vertex) const |
| Distance from plane to vertex. More... | |
| TGLVertex3 | NearestOn (const TGLVertex3 &point) const |
| Return nearest point on plane. More... | |
| const Double_t * | CArr () const |
| Double_t * | Arr () |
| void | Dump () const |
| Output plane equation to std::out. More... | |
| ClassDef (TGLPlane, 0) | |
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.
|
inline |
Definition at line 556 of file TGLUtil.h.
Referenced by Intersection().
|
inline |
Definition at line 557 of file TGLUtil.h.
Referenced by Intersection().
|
inline |
Definition at line 558 of file TGLUtil.h.
Referenced by Intersection().
|
inline |
Definition at line 566 of file TGLUtil.h.
Referenced by TGLScene::RenderAllPasses().
| TGLPlane::ClassDef | ( | TGLPlane | , |
| 0 | |||
| ) |
|
inline |
Definition at line 559 of file TGLUtil.h.
Referenced by TEveProjectionAxesGL::DirectDraw(), TEveCaloLegoGL::DrawAxis2D(), TEveCaloLegoGL::GetGridStep(), Intersection(), TEveLegoEventHandler::Rotate(), and TGLCameraOverlay::SetFrustum().
| Double_t TGLPlane::DistanceTo | ( | const TGLVertex3 & | vertex | ) | const |
Distance from plane to vertex.
Definition at line 520 of file TGLUtil.cxx.
Referenced by TGLPerspectiveCamera::Apply(), TGLBoundingBox::Overlap(), and TGLLightSet::StdSetupLights().
| 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.
Referenced by TGLRotateManip::Draw(), TGLCamera::Frustum(), and TGLClipPlane::Set().
| void TGLPlane::Negate | ( | ) |
Negate the plane.
Definition at line 509 of file TGLUtil.cxx.
Referenced by TGLClipPlane::PlaneSet(), and TGLScene::RenderAllPasses().
|
inline |
Definition at line 561 of file TGLUtil.h.
Referenced by TGLRotateManip::CalculateAngleDelta(), TGLRotateManip::Draw(), TGLCamera::EyeDirection(), TGLRotateManip::HandleButton(), TGLRotateManip::HandleMotion(), Intersection(), TGLClipPlane::Set(), and TGLClipPlane::Setup().
|
private |
Normalise the plane.
Definition at line 426 of file TGLUtil.cxx.
Assign from other.
Definition at line 453 of file TGLUtil.cxx.
Referenced by TGLRotateManip::HandleButton(), TGLCamera::TGLCamera(), and TGLCamera::UpdateCache().
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.
|
private |