Back to home page

Project CMSSW displayed by LXR

 
 

    


File indexing completed on 2024-04-06 12:05:32

0001 #ifndef DDL_BooleanSolid_H
0002 #define DDL_BooleanSolid_H
0003 
0004 #include <string>
0005 
0006 #include "DDLSolid.h"
0007 
0008 class DDCompactView;
0009 class DDLElementRegistry;
0010 
0011 /// This class takes care of processing all BooleanSolid type elements.
0012 /** @class DDLBooleanSolid
0013  * @author Michael Case
0014  *                                                                         
0015  *  DDLBooleanSolid.h  -  description
0016  *  -------------------
0017  *  begin: Wed Dec 12, 2001
0018  *  email: case@ucdhep.ucdavis.edu
0019  *                                                                         
0020  *  This is the Intersection, Subtraction and Union processor.
0021  *  A BooleanSolid handles all of these because as far as the DDL is
0022  *  concerned, they have the same basic form, including two solid 
0023  *  references, and potentially one translation and one rotation.
0024  *                                                                         
0025 **/
0026 
0027 class DDLBooleanSolid final : public DDLSolid {
0028 public:
0029   DDLBooleanSolid(DDLElementRegistry* myreg);
0030 
0031   void preProcessElement(const std::string& name, const std::string& nmspace, DDCompactView& cpv) override;
0032   void processElement(const std::string& name, const std::string& nmspace, DDCompactView& cpv) override;
0033 
0034 private:
0035   std::string dumpBooleanSolid(const std::string& name, const std::string& nmspace);
0036 };
0037 
0038 #endif