00001
00002
00003 #ifndef LHCBMATH_GEOMFUN_H
00004 #define LHCBMATH_GEOMFUN_H 1
00005
00006 namespace Gaudi
00007 {
00008 namespace Math
00009 {
00010
00028 template<typename aLine, typename aPlane, typename aPoint>
00029 bool intersection
00030 ( const aLine& line ,
00031 const aPlane& plane ,
00032 aPoint& intersect ,
00033 double& mu ) ;
00034
00053 template<typename aLine, typename aPlane>
00054 bool intersection
00055 ( const aPlane& plane0 ,
00056 const aPlane& plane1 ,
00057 aLine& intersect ) ;
00058
00076 template<typename aPoint, typename aPlane>
00077 bool intersection
00078 ( const aPlane& plane0 ,
00079 const aPlane& plane1 ,
00080 const aPlane& plane2 ,
00081 aPoint& intersect ) ;
00082
00091 template<typename aPoint, typename aLine>
00092 double impactParameter
00093 ( const aPoint& point ,
00094 const aLine& line ) ;
00095
00108 template <typename aLine, typename bLine>
00109 double distance
00110 ( const aLine& line0 ,
00111 const bLine& line1 );
00112
00129 template <typename aLine, typename bLine, typename aPoint>
00130 bool closestPoints
00131 ( const aLine& line0 ,
00132 const bLine& line1 ,
00133 aPoint& p0 ,
00134 aPoint& p1 ) ;
00135
00150 template <typename aLine, typename aPoint>
00151 double closestPointParam
00152 ( const aPoint& point ,
00153 const aLine& line ) ;
00154
00169 template <typename aLine, typename aPoint>
00170 aPoint closestPoint(const aPoint& point ,
00171 const aLine& line);
00172
00187 template <typename aLine, typename bLine>
00188 bool closestPointParams
00189 ( const aLine& line0 ,
00190 const bLine& line1 ,
00191 double& mu0 ,
00192 double& mu1 ) ;
00193
00203
00204 template <typename aLine, typename bLine>
00205 bool parallel
00206 ( const aLine& line0 ,
00207 const bLine& line1 ) ;
00208
00209 }
00210 }
00211
00212 #include "LHCbMath/GeomFun.icpp"
00213
00214
00215
00216 #endif
00217