CMS 3D CMS Logo

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Pages
DDG4SolidConverter.h
Go to the documentation of this file.
1 #ifndef SimG4Core_DDG4SolidConverter_h
2 #define SimG4Core_DDG4SolidConverter_h
3 
5 
6 #include <map>
7 #include <vector>
8 
9 class G4VSolid;
10 class DDSolid;
11 
13 {
14 public:
17  typedef G4VSolid * (*FNPTR) (const DDSolid &); // pointer to function
18  G4VSolid * convert(const DDSolid &);
19 
20 private:
21  /* foreach supported solid add a static conversion routine ,
22  register this method in the convDispatch_-map */
23  static G4VSolid * box(const DDSolid &);
24  static G4VSolid * tubs(const DDSolid &);
25  static G4VSolid * trap(const DDSolid &);
26  static G4VSolid * cons(const DDSolid &);
27  static G4VSolid * reflected(const DDSolid &);
28  static G4VSolid * unionsolid(const DDSolid &);
29  static G4VSolid * subtraction(const DDSolid &);
30  static G4VSolid * intersection(const DDSolid &);
31  static G4VSolid * shapeless(const DDSolid &);
32  static G4VSolid * polycone_rz(const DDSolid &);
33  static G4VSolid * polycone_rrz(const DDSolid &);
34  static G4VSolid * polyhedra_rz(const DDSolid &);
35  static G4VSolid * polyhedra_rrz(const DDSolid &);
36  static G4VSolid * pseudotrap(const DDSolid & s);
37  static G4VSolid * torus(const DDSolid &);
38  static G4VSolid * trunctubs(const DDSolid &);
39  static G4VSolid * sphere(const DDSolid &);
40  static G4VSolid * orb(const DDSolid &);
41  static G4VSolid * ellipsoid(const DDSolid &);
42  static G4VSolid * ellipticaltube(const DDSolid &);
43  static G4VSolid * para(const DDSolid &);
44  static const std::vector<double>* par_;
45  std::map<DDSolidShape,FNPTR> convDispatch_;
46 
47  friend class testTruncTubs;
48  friend class testPseudoTrap;
49 };
50 
51 #endif
static G4VSolid * polyhedra_rrz(const DDSolid &)
static const std::vector< double > * par_
friend class testTruncTubs
static G4VSolid * orb(const DDSolid &)
static G4VSolid * ellipsoid(const DDSolid &)
friend class testPseudoTrap
static G4VSolid * trap(const DDSolid &)
static G4VSolid * cons(const DDSolid &)
static G4VSolid * tubs(const DDSolid &)
static G4VSolid * sphere(const DDSolid &)
A DDSolid represents the shape of a part.
Definition: DDSolid.h:35
static G4VSolid * pseudotrap(const DDSolid &s)
static G4VSolid * reflected(const DDSolid &)
static G4VSolid * para(const DDSolid &)
static G4VSolid * box(const DDSolid &)
static G4VSolid * ellipticaltube(const DDSolid &)
static G4VSolid * polycone_rz(const DDSolid &)
static G4VSolid * intersection(const DDSolid &)
G4VSolid * convert(const DDSolid &)
static G4VSolid * unionsolid(const DDSolid &)
static G4VSolid * trunctubs(const DDSolid &)
static G4VSolid * torus(const DDSolid &)
static G4VSolid * polyhedra_rz(const DDSolid &)
static G4VSolid * polycone_rrz(const DDSolid &)
std::map< DDSolidShape, FNPTR > convDispatch_
static G4VSolid * shapeless(const DDSolid &)
static G4VSolid * subtraction(const DDSolid &)