]>
Commit | Line | Data |
---|---|---|
240601e9 | 1 | // $Id$ |
2 | // Category: geometry | |
3 | // by I. Hrivnacova, 27.07.2000 | |
4 | // | |
5 | // XML convertor that converts G4 basic geometry objects | |
6 | // to XML defined by AGDD.dtd | |
7 | // (ATLAS Generic Detector Description) | |
8 | ||
9 | #ifndef TG4_XML_CONVERTOR_H | |
10 | #define TG4_XML_CONVERTOR_H | |
11 | ||
12 | #include "TG4VXMLConvertor.h" | |
13 | #include "TG4Globals.h" | |
14 | ||
15 | #include <globals.hh> | |
16 | #include <g4std/fstream> | |
17 | ||
18 | class G4Material; | |
19 | class G4VSolid; | |
20 | class G4LogicalVolume; | |
21 | class G4Box; | |
22 | class G4Tubs; | |
23 | class G4Trd; | |
24 | ||
25 | class TG4XMLConvertor : public TG4VXMLConvertor | |
26 | { | |
27 | public: | |
28 | TG4XMLConvertor(G4std::ofstream& outFile); | |
29 | virtual ~TG4XMLConvertor(); | |
30 | ||
31 | // methods | |
509c89ec | 32 | virtual void OpenMaterials(const G4String& version, const G4String& date, |
33 | const G4String& author, const G4String dtdVersion); | |
240601e9 | 34 | virtual void OpenSection(const G4String& name, const G4String& version, |
35 | const G4String& date, const G4String& author, | |
36 | const G4String& topVolume); | |
37 | virtual void OpenComposition(const G4String& name); | |
509c89ec | 38 | virtual void CloseMaterials(); |
240601e9 | 39 | virtual void CloseSection(); |
40 | virtual void CloseComposition(); | |
41 | ||
42 | virtual void WriteMaterial(const G4Material* material); | |
43 | virtual void WriteSolid(const G4VSolid* solid, G4String materialName); | |
44 | virtual void WriteRotation(const G4RotationMatrix* rotation); | |
45 | virtual void WritePosition(G4String solidName, G4ThreeVector position); | |
46 | virtual void WritePositionWithRotation( | |
47 | G4String solidName, G4ThreeVector position, | |
48 | const G4RotationMatrix* rotation); | |
49 | virtual void WriteEmptyLine(); | |
509c89ec | 50 | virtual void IncreaseIndention(); |
51 | virtual void DecreaseIndention(); | |
240601e9 | 52 | |
53 | private: | |
54 | //methods | |
55 | void CutName(G4String& name) const; | |
56 | void CutName(G4String& name, G4int size) const; | |
57 | void PutName(G4String& element, G4String name, G4String templ) const; | |
58 | void WriteBox (const G4Box* box, G4String materialName); | |
59 | void WriteTubs(const G4Tubs* tubs, G4String materialName); | |
60 | void WriteTrd (const G4Trd* trd, G4String materialName); | |
61 | ||
62 | // static data members | |
63 | static const G4int fgkMaxVolumeNameLength; | |
64 | static const G4int fgkMaxMaterialNameLength; | |
65 | ||
66 | // data members | |
509c89ec | 67 | G4std::ofstream& fOutFile; //output file |
68 | TG4StringSet fMaterialNames; //set of names of materials | |
69 | TG4StringSet fSolidNames; //set of names of solids | |
70 | TG4RotationMatrixVector fRotations; // vector of rot matrices | |
71 | const G4String fBasicIndention; //basic indention | |
72 | G4String fIndention; //indention string | |
240601e9 | 73 | }; |
74 | ||
75 | #endif //TG4_XML_CONVERTOR_H | |
76 |