Back to home page

Project CMSSW displayed by LXR

 
 

    


File indexing completed on 2021-08-04 02:02:25

0001 #ifndef DETECTOR_DESCRIPTION_CORE_DDI_BOOLEAN_H
0002 #define DETECTOR_DESCRIPTION_CORE_DDI_BOOLEAN_H
0003 
0004 #include "DetectorDescription/Core/interface/DDTranslation.h"
0005 #include "DetectorDescription/Core/interface/DDSolid.h"
0006 #include "DetectorDescription/Core/interface/DDSolidShapes.h"
0007 #include "DetectorDescription/Core/interface/DDTransform.h"
0008 #include "Solid.h"
0009 
0010 namespace DDI {
0011 
0012   class BooleanSolid : public Solid {
0013   public:
0014     BooleanSolid(const DDSolid& A, const DDSolid& B, const DDTranslation& t, const DDRotation& r, DDSolidShape s);
0015 
0016     const DDSolid& a() const { return a_; }
0017     const DDSolid& b() const { return b_; }
0018     const DDTranslation& t() const { return t_; }
0019     const DDRotation& r() const { return r_; }
0020 
0021   protected:
0022     DDSolid a_, b_;
0023     DDTranslation t_;
0024     DDRotation r_;
0025   };
0026 
0027   class Union : public BooleanSolid {
0028   public:
0029     Union(const DDSolid& A, const DDSolid& B, const DDTranslation& t, const DDRotation& r);
0030   };
0031 
0032   class Intersection : public BooleanSolid {
0033   public:
0034     Intersection(const DDSolid& A, const DDSolid& B, const DDTranslation& t, const DDRotation& r);
0035   };
0036 
0037   class Subtraction : public BooleanSolid {
0038   public:
0039     Subtraction(const DDSolid& A, const DDSolid& B, const DDTranslation& t, const DDRotation& r);
0040   };
0041 }  // namespace DDI
0042 #endif  // DETECTOR_DESCRIPTION_CORE_DDI_BOOLEAN_H