17 #ifndef ROOT_Math_GenVector_Plane3D
18 #define ROOT_Math_GenVector_Plane3D 1
92 template<
class T1,
class T2,
class U>
114 template <
class T1,
class T2,
class T3,
class U>
191 template <
class T,
class U>
206 template <
class T,
class U>
210 p2.
SetXYZ( pxyz.
X(), pxyz.
Y(), pxyz.
Z() );
Scalar Distance(const PositionVector3D< T, U > &p) const
Return the distance to a Point described with generic coordinates.
Class describing a geometrical plane in 3 dimensions.
static double p3(double t, double a, double b, double c, double d)
Plane3D()
default constructor create plane z = 0
Scalar C()
Return the c coefficient of the plane equation .
Class describing a generic position vector (point) in 3 dimensions.
Scalar Z() const
Cartesian Z, converting if necessary from internal coordinate system.
Scalar Y() const
Cartesian Y, converting if necessary from internal coordinate system.
std::ostream & operator<<(std::ostream &os, const AxisAngle &a)
Stream Output and Input.
Plane3D & operator=(const Plane3D &plane)
Assignment operator from other Plane3D class.
Vector Normal() const
Return normal vector to the plane as Cartesian DisplacementVector.
Scalar D()
Return the d coefficient of the plane equation .
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...
bool operator==(const Plane3D &rhs) const
Exact equality.
bool operator!=(const Plane3D &rhs) const
Plane3D(const Vector &n, const Point &p)
constructor a Plane3D from a normal vector and a point coplanar to the plane
Point ProjectOntoPlane(const Point &p) const
Return the projection of a Cartesian point to a plane.
Class describing a generic displacement vector in 3 dimensions.
Scalar HesseDistance() const
Return the Hesse Distance (distance from the origin) of the plane or the d coefficient expressed in n...
PositionVector3D< Cartesian3D< double >, DefaultCoordinateSystemTag > Point
static double p1(double t, double a, double b)
DisplacementVector3D< Cartesian3D< double >, DefaultCoordinateSystemTag > Vector
PositionVector3D< T, U > ProjectOntoPlane(const PositionVector3D< T, U > &p) const
Return the projection of a point to a plane.
void BuildFromVecAndPoint(const Vector &n, const Point &p)
Scalar B()
Return the b coefficient of the plane equation .
Scalar A()
Return the a coefficient of the plane equation .
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
void BuildFrom3Points(const Point &p1, const Point &p2, const Point &p3)
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...
Scalar X() const
Cartesian X, converting if necessary from internal coordinate system.
Plane3D(const Point &p1, const Point &p2, const Point &p3)
constructor from three Cartesian point belonging to the plane
Scalar Distance(const Point &p) const
Return the signed distance to a Point.
DefaultCoordinateSystemTag Default tag for identifying any coordinate system.