4 #include <Math/AxisAngle.h>
5 #include <Math/Point3D.h>
6 #include <Math/Point3Dfwd.h>
7 #include <Math/Rotation3D.h>
8 #include <Math/Vector3D.h>
9 #include <Math/Vector3Dfwd.h>
10 #include <Math/VectorUtil.h>
19 template <
class Vector>
22 using namespace ROOT::Math;
24 return AxisAngle(vec.Unit().Cross(z), VectorUtil::Angle(vec, z));
31 template <
class Vector1,
class Vector2>
34 assert(point.size() > 1 && direction.size() > 1);
35 auto n = direction[0].Cross(direction[1]);
36 auto n0 = direction[0].Cross(n);
37 auto n1 = direction[1].Cross(n);
39 auto c0 = point[0] + (point[1] - point[0]).Dot(n1) / direction[0].Dot(n1) * direction[0];
40 auto c1 = point[1] + (point[0] - point[1]).Dot(n0) / direction[1].Dot(n0) * direction[1];
46 #endif //#ifndef ATVECTORUTIL_H