00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027
00028
00029
00030
00031
00032
00033
00034
00035
00036
00037
00038
00039
00040 #ifndef _G4GDMLWRITESOLIDS_INCLUDED_
00041 #define _G4GDMLWRITESOLIDS_INCLUDED_
00042
00043 #include "G4Types.hh"
00044
00045 #include "G4GDMLWriteMaterials.hh"
00046
00047 class G4BooleanSolid;
00048 class G4Box;
00049 class G4Cons;
00050 class G4EllipticalCone;
00051 class G4Ellipsoid;
00052 class G4EllipticalTube;
00053 class G4ExtrudedSolid;
00054 class G4Hype;
00055 class G4Orb;
00056 class G4Para;
00057 class G4Paraboloid;
00058 class G4Polycone;
00059 class G4Polyhedra;
00060 class G4Sphere;
00061 class G4TessellatedSolid;
00062 class G4Tet;
00063 class G4Torus;
00064 class G4GenericTrap;
00065 class G4Trap;
00066 class G4Trd;
00067 class G4Tubs;
00068 class G4CutTubs;
00069 class G4TwistedBox;
00070 class G4TwistedTrap;
00071 class G4TwistedTrd;
00072 class G4TwistedTubs;
00073 class G4VSolid;
00074 class G4OpticalSurface;
00075
00076 class G4GDMLWriteSolids : public G4GDMLWriteMaterials
00077 {
00078 public:
00079
00080 virtual void AddSolid(const G4VSolid* const);
00081 virtual void SolidsWrite(xercesc::DOMElement*);
00082
00083 protected:
00084
00085 G4GDMLWriteSolids();
00086 virtual ~G4GDMLWriteSolids();
00087
00088 void BooleanWrite(xercesc::DOMElement*, const G4BooleanSolid* const);
00089 void BoxWrite(xercesc::DOMElement*, const G4Box* const);
00090 void ConeWrite(xercesc::DOMElement*, const G4Cons* const);
00091 void ElconeWrite(xercesc::DOMElement*, const G4EllipticalCone* const);
00092 void EllipsoidWrite(xercesc::DOMElement*, const G4Ellipsoid* const);
00093 void EltubeWrite(xercesc::DOMElement*, const G4EllipticalTube* const);
00094 void XtruWrite(xercesc::DOMElement*, const G4ExtrudedSolid* const);
00095 void HypeWrite(xercesc::DOMElement*, const G4Hype* const);
00096 void OrbWrite(xercesc::DOMElement*, const G4Orb* const);
00097 void ParaWrite(xercesc::DOMElement*, const G4Para* const);
00098 void ParaboloidWrite(xercesc::DOMElement*, const G4Paraboloid* const);
00099 void PolyconeWrite(xercesc::DOMElement*, const G4Polycone* const);
00100 void PolyhedraWrite(xercesc::DOMElement*, const G4Polyhedra* const);
00101 void SphereWrite(xercesc::DOMElement*, const G4Sphere* const);
00102 void TessellatedWrite(xercesc::DOMElement*, const G4TessellatedSolid* const);
00103 void TetWrite(xercesc::DOMElement*, const G4Tet* const);
00104 void TorusWrite(xercesc::DOMElement*, const G4Torus* const);
00105 void GenTrapWrite(xercesc::DOMElement*, const G4GenericTrap* const);
00106 void TrapWrite(xercesc::DOMElement*, const G4Trap* const);
00107 void TrdWrite(xercesc::DOMElement*, const G4Trd* const);
00108 void TubeWrite(xercesc::DOMElement*, const G4Tubs* const);
00109 void CutTubeWrite(xercesc::DOMElement*, const G4CutTubs* const);
00110 void TwistedboxWrite(xercesc::DOMElement*, const G4TwistedBox* const);
00111 void TwistedtrapWrite(xercesc::DOMElement*, const G4TwistedTrap* const);
00112 void TwistedtrdWrite(xercesc::DOMElement*, const G4TwistedTrd* const);
00113 void TwistedtubsWrite(xercesc::DOMElement*, const G4TwistedTubs* const);
00114 void ZplaneWrite(xercesc::DOMElement*, const G4double&,
00115 const G4double&, const G4double&);
00116 void OpticalSurfaceWrite(xercesc::DOMElement*,
00117 const G4OpticalSurface* const);
00118
00119 protected:
00120
00121 std::vector<const G4VSolid*> solidList;
00122 xercesc::DOMElement* solidsElement;
00123 static const G4int maxTransforms = 8;
00124
00125
00126 };
00127
00128 #endif