| Classes | Job Modules | Data Objects | Services | Algorithms | Tools | Packages | Directories | Tracs |

In This Package:

SolidIntersection.h

Go to the documentation of this file.
00001 // $Id: SolidIntersection.h,v 1.14 2007/03/16 15:57:09 cattanem Exp $
00003 #ifndef      DETDESC_SOLIDINTERSECTION_H
00004 #define      DETDESC_SOLIDINTERSECTION_H 1 
00005 // STD & STL 
00006 #include <algorithm>
00007 #include <functional>
00009 #include "DetDesc/ISolid.h"
00010 #include "DetDesc/SolidBoolean.h" 
00011 #include "DetDesc/SolidChild.h"
00013 template <class TYPE> 
00014 class SolidFactory;
00015 
00016 
00025 class SolidIntersection: public SolidBoolean
00026 {
00028   friend class SolidFactory<SolidIntersection>;
00029 
00030 public:
00031 
00037   SolidIntersection( const std::string& name , ISolid* first ); 
00038 
00040   virtual ~SolidIntersection();
00041 
00042 public:
00043   
00047   virtual std::string typeName () const { return "SolidIntersection" ; };
00048   
00057   bool isInside ( const Gaudi::XYZPoint   & ) const ;
00058   bool isInside ( const Gaudi::Polar3DPoint& point ) const ;
00059   bool isInside ( const Gaudi::RhoZPhiPoint& point ) const ;
00065   StatusCode    intersect( ISolid*               solid                    , 
00066                            const Gaudi::Transform3D* mtrx                     );
00067   
00074   StatusCode intersect( ISolid*                  child                    , 
00075                         const Gaudi::XYZPoint&   position                 , 
00076                         const Gaudi::Rotation3D& rotation = Gaudi::Rotation3D() );
00077 protected:
00078 
00082   SolidIntersection( const std::string& name = "Anonymous Intersection" );
00083   
00084 private:
00085   
00086   SolidIntersection ( const SolidIntersection& ); 
00087   SolidIntersection& operator=( const SolidIntersection& ); 
00088 
00094   template <class aPoint>
00095   bool isInsideImpl(const aPoint& point) const;
00096   
00097 };
00098 
00100 #endif  
00101 
00102 
00103 
00104 
00105 
| Classes | Job Modules | Data Objects | Services | Algorithms | Tools | Packages | Directories | Tracs |

Generated on Mon Apr 11 20:00:13 2011 for DetDesc by doxygen 1.4.7