00001 #ifndef DDI_Solid_h 00002 #define DDI_Solid_h 00003 00004 #include <iosfwd> 00005 #include <vector> 00006 // #include <utility> 00007 // #include "DetectorDescription/Core/interface/DDSolid.h" 00008 #include "DetectorDescription/Core/interface/DDSolidShapes.h" 00009 00010 // class DDSolid; 00011 00012 namespace DDI { 00013 00014 class Solid 00015 { 00016 00017 // friend class DDSolid; 00018 public: 00019 00020 Solid() : shape_(dd_not_init) { } 00021 00022 Solid(DDSolidShape shape) : shape_(shape) { } 00023 00024 virtual ~Solid() { } 00025 00026 const std::vector<double> & parameters() const { return p_; } 00027 00028 virtual double volume() const { return 0; } 00029 00030 DDSolidShape shape() const { return shape_; } 00031 00032 // bool boolean() const { IMPLEMENTATION MISSING } 00033 00034 // DDSolid::Composites comp IMPLEMENTATION MISSING 00035 virtual void stream(std::ostream &) const; 00036 00037 void setParameters(std::vector<double> const & p) { p_ = p;} 00038 00039 protected: 00040 DDSolidShape shape_; 00041 std::vector<double> p_; 00042 }; 00043 00044 } 00045 00046 #endif // DDI_Solid_h