Go to the documentation of this file.00001 #ifndef DDI_Boolean_h
00002 #define DDI_Boolean_h
00003 #include "Solid.h"
00004
00005 #include "DetectorDescription/Core/interface/DDSolid.h"
00006 #include "DetectorDescription/Core/interface/DDTransform.h"
00007
00008 namespace DDI {
00009
00010 class BooleanSolid : public Solid
00011 {
00012 public:
00013 BooleanSolid(const DDSolid & A, const DDSolid & B,
00014 const DDTranslation & t,
00015 const DDRotation & r,
00016 DDSolidShape s);
00017
00018 const DDSolid & a() const { return a_; }
00019 const DDSolid & b() const { return b_; }
00020 const DDTranslation & t() const { return t_; }
00021 const DDRotation & r() const { return r_; }
00022
00023
00024 protected:
00025 DDSolid a_, b_;
00026 DDTranslation t_;
00027 DDRotation r_;
00028 };
00029
00030 class Union : public BooleanSolid
00031 {
00032 public:
00033 Union(const DDSolid & A, const DDSolid & B,
00034 const DDTranslation & t,
00035 const DDRotation & r);
00036
00037
00038 };
00039
00040 class Intersection : public BooleanSolid
00041 {
00042 public:
00043 Intersection(const DDSolid & A, const DDSolid & B,
00044 const DDTranslation & t,
00045 const DDRotation & r);
00046
00047
00048 };
00049
00050
00051 class Subtraction : public BooleanSolid
00052 {
00053 public:
00054 Subtraction(const DDSolid & A, const DDSolid & B,
00055 const DDTranslation & t,
00056 const DDRotation & r);
00057 };
00058 }
00059
00060 #endif // DDI_Boolean_h