ROOT 6.08/07 Reference Guide |
Class describing a geometrical plane in 3 dimensions.
A Plane3D is a 2 dimensional surface spanned by two linearly independent vectors. The plane is described by the equation \( a*x + b*y + c*z + d = 0 \) where (a,b,c) are the components of the normal vector to the plane \( n = (a,b,c) \) and \( d = - n \dot x \), where x is any point belonging to plane. More information on the mathematics describing a plane in 3D is available on MathWord. The Plane3D class contains the 4 scalar values in double which represent the four coefficients, fA, fB, fC, fD. fA, fB, fC are the normal components normalized to 1, i.e. fA**2 + fB**2 + fC**2 = 1
Public Types | |
typedef PositionVector3D< Cartesian3D< double >, DefaultCoordinateSystemTag > | Point |
typedef double | Scalar |
typedef DisplacementVector3D< Cartesian3D< double >, DefaultCoordinateSystemTag > | Vector |
Public Member Functions | |
Plane3D () | |
default constructor create plane z = 0 More... | |
Plane3D (const Scalar &a, const Scalar &b, const Scalar &c, const Scalar &d) | |
generic constructors from the four scalar values describing the plane according to the equation ax + by + cz + d = 0 More... | |
Plane3D (const Vector &n, const Point &p) | |
constructor a Plane3D from a normal vector and a point coplanar to the plane More... | |
template<class T1 , class T2 , class U > | |
Plane3D (const DisplacementVector3D< T1, U > &n, const PositionVector3D< T2, U > &p) | |
Construct from a generic DisplacementVector3D (normal vector) and PositionVector3D (point coplanar to the plane) More... | |
Plane3D (const Point &p1, const Point &p2, const Point &p3) | |
constructor from three Cartesian point belonging to the plane More... | |
template<class T1 , class T2 , class T3 , class U > | |
Plane3D (const PositionVector3D< T1, U > &p1, const PositionVector3D< T2, U > &p2, const PositionVector3D< T3, U > &p3) | |
constructor from three generic point belonging to the plane More... | |
Scalar | A () const |
Return the a coefficient of the plane equation \( a*x + b*y + c*z + d = 0 \). More... | |
Scalar | B () const |
Return the b coefficient of the plane equation \( a*x + b*y + c*z + d = 0 \). More... | |
Scalar | C () const |
Return the c coefficient of the plane equation \( a*x + b*y + c*z + d = 0 \). More... | |
Scalar | D () const |
Return the d coefficient of the plane equation \( a*x + b*y + c*z + d = 0 \). More... | |
Scalar | Distance (const Point &p) const |
Return the signed distance to a Point. More... | |
template<class T , class U > | |
Scalar | Distance (const PositionVector3D< T, U > &p) const |
Return the distance to a Point described with generic coordinates. More... | |
Scalar | HesseDistance () const |
Return the Hesse Distance (distance from the origin) of the plane or the d coefficient expressed in normalize form. More... | |
Vector | Normal () const |
Return normal vector to the plane as Cartesian DisplacementVector. More... | |
bool | operator!= (const Plane3D &rhs) const |
Plane3D & | operator= (const Plane3D &plane) |
Assignment operator from other Plane3D class. More... | |
bool | operator== (const Plane3D &rhs) const |
Exact equality. More... | |
Point | ProjectOntoPlane (const Point &p) const |
Return the projection of a Cartesian point to a plane. More... | |
template<class T , class U > | |
PositionVector3D< T, U > | ProjectOntoPlane (const PositionVector3D< T, U > &p) const |
Return the projection of a point to a plane. More... | |
Protected Member Functions | |
void | Normalize () |
Normalize the normal (a,b,c) plane components. More... | |
Private Member Functions | |
void | BuildFrom3Points (const Point &p1, const Point &p2, const Point &p3) |
void | BuildFromVecAndPoint (const Vector &n, const Point &p) |
Private Attributes | |
Scalar | fA |
Scalar | fB |
Scalar | fC |
Scalar | fD |
#include <Math/GenVector/Plane3D.h>
typedef PositionVector3D<Cartesian3D<double>, DefaultCoordinateSystemTag > ROOT::Math::Plane3D::Point |
typedef double ROOT::Math::Plane3D::Scalar |
typedef DisplacementVector3D<Cartesian3D<double>, DefaultCoordinateSystemTag > ROOT::Math::Plane3D::Vector |
|
inline |
ROOT::Math::Plane3D::Plane3D | ( | const Scalar & | a, |
const Scalar & | b, | ||
const Scalar & | c, | ||
const Scalar & | d | ||
) |
generic constructors from the four scalar values describing the plane according to the equation ax + by + cz + d = 0
a | scalar value |
b | scalar value |
c | scalar value |
d | sxcalar value |
Definition at line 37 of file Plane3D.cxx.
constructor a Plane3D from a normal vector and a point coplanar to the plane
n | normal expressed as a ROOT::Math::DisplacementVector3D<Cartesian3D<double> > |
p | point expressed as a ROOT::Math::PositionVector3D<Cartesian3D<double> > |
|
inline |
Construct from a generic DisplacementVector3D (normal vector) and PositionVector3D (point coplanar to the plane)
n | normal expressed as a generic ROOT::Math::DisplacementVector3D |
p | point expressed as a generic ROOT::Math::PositionVector3D |
constructor from three Cartesian point belonging to the plane
p1 | point1 expressed as a generic ROOT::Math::PositionVector3D |
p2 | point2 expressed as a generic ROOT::Math::PositionVector3D |
p3 | point3 expressed as a generic ROOT::Math::PositionVector3D |
|
inline |
constructor from three generic point belonging to the plane
p1 | point1 expressed as ROOT::Math::DisplacementVector3D<Cartesian3D<double> > |
p2 | point2 expressed as ROOT::Math::DisplacementVector3D<Cartesian3D<double> > |
p3 | point3 expressed as ROOT::Math::DisplacementVector3D<Cartesian3D<double> > |
|
inline |
|
inline |
|
private |
Definition at line 56 of file Plane3D.cxx.
Definition at line 45 of file Plane3D.cxx.
|
inline |
|
inline |
Return the signed distance to a Point.
The distance is signed positive if the Point is in the same side of the normal vector to the plane.
p | Point expressed in Cartesian Coordinates |
Definition at line 69 of file Plane3D.cxx.
|
inline |
Return the distance to a Point described with generic coordinates.
p | Point expressed as generic ROOT::Math::PositionVector3D |
|
inline |
|
inline |
|
protected |
Normalize the normal (a,b,c) plane components.
Definition at line 73 of file Plane3D.cxx.
|
inline |
|
inline |
Return the projection of a Cartesian point to a plane.
p | Point expressed as PositionVector3D<Cartesian3D<double> > |
Definition at line 87 of file Plane3D.cxx.
|
inline |
Return the projection of a point to a plane.
p | Point expressed as generic ROOT::Math::PositionVector3D |