17 #ifndef ROOT_Math_GenVector_Plane3D 18 #define ROOT_Math_GenVector_Plane3D 1 73 Plane3D(
const Scalar &
a,
const Scalar &
b,
const Scalar &
c,
const Scalar & d);
92 template<
class T1,
class T2,
class U>
114 template <
class T1,
class T2,
class T3,
class U>
143 Scalar
A()
const {
return fA; }
149 Scalar
B()
const {
return fB; }
155 Scalar
C()
const {
return fC; }
161 Scalar
D()
const {
return fD; }
185 Scalar
Distance(
const Point & p)
const;
191 template <
class T,
class U>
206 template <
class T,
class U>
210 p2.
SetXYZ( pxyz.
X(), pxyz.
Y(), pxyz.
Z() );
Class describing a geometrical plane in 3 dimensions.
static double p3(double t, double a, double b, double c, double d)
This namespace contains pre-defined functions to be used in conjuction with TExecutor::Map and TExecu...
Scalar B() const
Return the b coefficient of the plane equation .
Plane3D()
default constructor create plane z = 0
Scalar Distance(const Point &p) const
Return the signed distance to a Point.
bool operator==(const Plane3D &rhs) const
Exact equality.
Class describing a generic position vector (point) in 3 dimensions.
Scalar Distance(const PositionVector3D< T, U > &p) const
Return the distance to a Point described with generic coordinates.
Scalar A() const
Return the a coefficient of the plane equation .
std::ostream & operator<<(std::ostream &os, const AxisAngle &a)
Stream Output and Input.
Scalar D() const
Return the d coefficient of the plane equation .
Plane3D & operator=(const Plane3D &plane)
Assignment operator from other Plane3D class.
PositionVector3D< T, U > ProjectOntoPlane(const PositionVector3D< T, U > &p) const
Return the projection of a point to a plane.
static double p2(double t, double a, double b, double c)
Plane3D(const DisplacementVector3D< T1, U > &n, const PositionVector3D< T2, U > &p)
Construct from a generic DisplacementVector3D (normal vector) and PositionVector3D (point coplanar to...
Scalar C() const
Return the c coefficient of the plane equation .
Plane3D(const Vector &n, const Point &p)
constructor a Plane3D from a normal vector and a point coplanar to the plane
Vector Normal() const
Return normal vector to the plane as Cartesian DisplacementVector.
Scalar Z() const
Cartesian Z, converting if necessary from internal coordinate system.
Class describing a generic displacement vector in 3 dimensions.
Scalar X() const
Cartesian X, converting if necessary from internal coordinate system.
PositionVector3D< Cartesian3D< double >, DefaultCoordinateSystemTag > Point
Scalar HesseDistance() const
Return the Hesse Distance (distance from the origin) of the plane or the d coefficient expressed in n...
static double p1(double t, double a, double b)
DisplacementVector3D< Cartesian3D< double >, DefaultCoordinateSystemTag > Vector
void BuildFromVecAndPoint(const Vector &n, const Point &p)
void Normalize()
Normalize the normal (a,b,c) plane components.
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
Namespace for new Math classes and functions.
void BuildFrom3Points(const Point &p1, const Point &p2, const Point &p3)
Scalar Y() const
Cartesian Y, converting if necessary from internal coordinate system.
PositionVector3D< CoordSystem, Tag > & SetXYZ(Scalar a, Scalar b, Scalar c)
set the values of the vector from the cartesian components (x,y,z) (if the vector is held in polar or...
bool operator!=(const Plane3D &rhs) const
you should not use this method at all Int_t Int_t Double_t Double_t Double_t Int_t Double_t Double_t Double_t Double_t b
Plane3D(const Point &p1, const Point &p2, const Point &p3)
constructor from three Cartesian point belonging to the plane
DefaultCoordinateSystemTag Default tag for identifying any coordinate system.
Point ProjectOntoPlane(const Point &p) const
Return the projection of a Cartesian point to a plane.