00001
00005 #ifndef DETDESC_SOLID_H
00006 #define DETDESC_SOLID_H 1
00008 #include <string>
00009 #include <functional>
00011 #include "GaudiKernel/Point3DTypes.h"
00013 #include "DetDesc/ISolid.h"
00014
00023 namespace Solid
00024 {
00033 template<class aPoint>
00034 class IsInside:
00035 public std::unary_function<const ISolid*,bool>
00036 {
00037 public:
00038
00042 explicit IsInside( const aPoint& LocalPoint )
00043 : m_point( LocalPoint ){};
00044
00049 inline bool operator() ( const ISolid* solid ) const
00050 { return ( 0 == solid ? false : solid->isInside( m_point ) ); };
00051
00052 private:
00053
00054 aPoint m_point;
00055
00056 };
00057
00058
00059 };
00060
00062 #endif
00063