Geant4 9.6.0
Toolkit for the simulation of the passage of particles through matter
All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros
G4GDMLWriteSolids.hh
Go to the documentation of this file.
1//
2// ********************************************************************
3// * License and Disclaimer *
4// * *
5// * The Geant4 software is copyright of the Copyright Holders of *
6// * the Geant4 Collaboration. It is provided under the terms and *
7// * conditions of the Geant4 Software License, included in the file *
8// * LICENSE and available at http://cern.ch/geant4/license . These *
9// * include a list of copyright holders. *
10// * *
11// * Neither the authors of this software system, nor their employing *
12// * institutes,nor the agencies providing financial support for this *
13// * work make any representation or warranty, express or implied, *
14// * regarding this software system or assume any liability for its *
15// * use. Please see the license in the file LICENSE and URL above *
16// * for the full disclaimer and the limitation of liability. *
17// * *
18// * This code implementation is the result of the scientific and *
19// * technical work of the GEANT4 collaboration. *
20// * By using, copying, modifying or distributing the software (or *
21// * any work based on the software) you agree to acknowledge its *
22// * use in resulting scientific publications, and indicate your *
23// * acceptance of all terms of the Geant4 Software license. *
24// ********************************************************************
25//
26//
27// $Id$
28//
29//
30// class G4GDMLWriteSolids
31//
32// Class description:
33//
34// GDML class for writing solids.
35
36// History:
37// - Created. Zoltan Torzsok, November 2007
38// -------------------------------------------------------------------------
39
40#ifndef _G4GDMLWRITESOLIDS_INCLUDED_
41#define _G4GDMLWRITESOLIDS_INCLUDED_
42
43#include "G4Types.hh"
44
46
47class G4BooleanSolid;
48class G4Box;
49class G4Cons;
51class G4Ellipsoid;
53class G4ExtrudedSolid;
54class G4Hype;
55class G4Orb;
56class G4Para;
57class G4Paraboloid;
58class G4Polycone;
59class G4Polyhedra;
60class G4Sphere;
62class G4Tet;
63class G4Torus;
64class G4GenericTrap;
65class G4Trap;
66class G4Trd;
67class G4Tubs;
68class G4CutTubs;
69class G4TwistedBox;
70class G4TwistedTrap;
71class G4TwistedTrd;
72class G4TwistedTubs;
73class G4VSolid;
75
77{
78 public:
79
80 virtual void AddSolid(const G4VSolid* const);
81 virtual void SolidsWrite(xercesc::DOMElement*);
82
83 protected:
84
86 virtual ~G4GDMLWriteSolids();
87
88 void BooleanWrite(xercesc::DOMElement*, const G4BooleanSolid* const);
89 void BoxWrite(xercesc::DOMElement*, const G4Box* const);
90 void ConeWrite(xercesc::DOMElement*, const G4Cons* const);
91 void ElconeWrite(xercesc::DOMElement*, const G4EllipticalCone* const);
92 void EllipsoidWrite(xercesc::DOMElement*, const G4Ellipsoid* const);
93 void EltubeWrite(xercesc::DOMElement*, const G4EllipticalTube* const);
94 void XtruWrite(xercesc::DOMElement*, const G4ExtrudedSolid* const);
95 void HypeWrite(xercesc::DOMElement*, const G4Hype* const);
96 void OrbWrite(xercesc::DOMElement*, const G4Orb* const);
97 void ParaWrite(xercesc::DOMElement*, const G4Para* const);
98 void ParaboloidWrite(xercesc::DOMElement*, const G4Paraboloid* const);
99 void PolyconeWrite(xercesc::DOMElement*, const G4Polycone* const);
100 void PolyhedraWrite(xercesc::DOMElement*, const G4Polyhedra* const);
101 void SphereWrite(xercesc::DOMElement*, const G4Sphere* const);
102 void TessellatedWrite(xercesc::DOMElement*, const G4TessellatedSolid* const);
103 void TetWrite(xercesc::DOMElement*, const G4Tet* const);
104 void TorusWrite(xercesc::DOMElement*, const G4Torus* const);
105 void GenTrapWrite(xercesc::DOMElement*, const G4GenericTrap* const);
106 void TrapWrite(xercesc::DOMElement*, const G4Trap* const);
107 void TrdWrite(xercesc::DOMElement*, const G4Trd* const);
108 void TubeWrite(xercesc::DOMElement*, const G4Tubs* const);
109 void CutTubeWrite(xercesc::DOMElement*, const G4CutTubs* const);
110 void TwistedboxWrite(xercesc::DOMElement*, const G4TwistedBox* const);
111 void TwistedtrapWrite(xercesc::DOMElement*, const G4TwistedTrap* const);
112 void TwistedtrdWrite(xercesc::DOMElement*, const G4TwistedTrd* const);
113 void TwistedtubsWrite(xercesc::DOMElement*, const G4TwistedTubs* const);
114 void ZplaneWrite(xercesc::DOMElement*, const G4double&,
115 const G4double&, const G4double&);
116 void OpticalSurfaceWrite(xercesc::DOMElement*,
117 const G4OpticalSurface* const);
118
119 protected:
120
121 std::vector<const G4VSolid*> solidList;
122 xercesc::DOMElement* solidsElement;
123 static const G4int maxTransforms = 8; // Constant for limiting the number
124 // of displacements/reflections
125 // applied to a single solid
126};
127
128#endif
double G4double
Definition: G4Types.hh:64
int G4int
Definition: G4Types.hh:66
Definition: G4Box.hh:55
Definition: G4Cons.hh:75
void TwistedtrdWrite(xercesc::DOMElement *, const G4TwistedTrd *const)
void TorusWrite(xercesc::DOMElement *, const G4Torus *const)
void TetWrite(xercesc::DOMElement *, const G4Tet *const)
void TrapWrite(xercesc::DOMElement *, const G4Trap *const)
void HypeWrite(xercesc::DOMElement *, const G4Hype *const)
void TwistedtrapWrite(xercesc::DOMElement *, const G4TwistedTrap *const)
virtual void AddSolid(const G4VSolid *const)
void PolyhedraWrite(xercesc::DOMElement *, const G4Polyhedra *const)
void TessellatedWrite(xercesc::DOMElement *, const G4TessellatedSolid *const)
void GenTrapWrite(xercesc::DOMElement *, const G4GenericTrap *const)
void TwistedboxWrite(xercesc::DOMElement *, const G4TwistedBox *const)
void TubeWrite(xercesc::DOMElement *, const G4Tubs *const)
void ParaboloidWrite(xercesc::DOMElement *, const G4Paraboloid *const)
std::vector< const G4VSolid * > solidList
void SphereWrite(xercesc::DOMElement *, const G4Sphere *const)
void BoxWrite(xercesc::DOMElement *, const G4Box *const)
void OrbWrite(xercesc::DOMElement *, const G4Orb *const)
void TwistedtubsWrite(xercesc::DOMElement *, const G4TwistedTubs *const)
void EltubeWrite(xercesc::DOMElement *, const G4EllipticalTube *const)
void BooleanWrite(xercesc::DOMElement *, const G4BooleanSolid *const)
void ElconeWrite(xercesc::DOMElement *, const G4EllipticalCone *const)
void ConeWrite(xercesc::DOMElement *, const G4Cons *const)
virtual void SolidsWrite(xercesc::DOMElement *)
xercesc::DOMElement * solidsElement
virtual ~G4GDMLWriteSolids()
static const G4int maxTransforms
void CutTubeWrite(xercesc::DOMElement *, const G4CutTubs *const)
void EllipsoidWrite(xercesc::DOMElement *, const G4Ellipsoid *const)
void PolyconeWrite(xercesc::DOMElement *, const G4Polycone *const)
void ParaWrite(xercesc::DOMElement *, const G4Para *const)
void TrdWrite(xercesc::DOMElement *, const G4Trd *const)
void XtruWrite(xercesc::DOMElement *, const G4ExtrudedSolid *const)
void OpticalSurfaceWrite(xercesc::DOMElement *, const G4OpticalSurface *const)
void ZplaneWrite(xercesc::DOMElement *, const G4double &, const G4double &, const G4double &)
Definition: G4Hype.hh:67
Definition: G4Orb.hh:52
Definition: G4Para.hh:77
Definition: G4Tet.hh:57
Definition: G4Trd.hh:63
Definition: G4Tubs.hh:77