]>
Commit | Line | Data |
---|---|---|
240601e9 | 1 | // $Id$ |
2 | // Category: geometry | |
3 | // by I. Hrivnacova, 27.07.2000 | |
4 | // | |
5 | // Singleton class for generation of geometry data files in XML, | |
6 | // the XML format is independent from G4 geometry | |
7 | // object model. | |
8 | ||
9 | #ifndef TG4_XML_GEOMETRY_GENERATOR_H | |
10 | #define TG4_XML_GEOMETRY_GENERATOR_H | |
11 | ||
4032dc03 | 12 | #include "TG4Globals.h" |
13 | ||
240601e9 | 14 | #include <globals.hh> |
15 | #include <g4std/fstream> | |
16 | ||
17 | class TG4VXMLConvertor; | |
18 | ||
19 | class G4LogicalVolume; | |
20 | ||
21 | class TG4XMLGeometryGenerator | |
22 | { | |
23 | public: | |
24 | TG4XMLGeometryGenerator(); | |
25 | // --> protected | |
26 | // TG4XMLGeometryGenerator(const TG4XMLGeometryGenerator& right); | |
27 | virtual ~TG4XMLGeometryGenerator(); | |
28 | ||
29 | // static access method | |
30 | static TG4XMLGeometryGenerator* Instance(); | |
31 | ||
32 | // methods | |
429ec6b8 | 33 | void GenerateMaterials(const G4String& version, const G4String& date, |
34 | const G4String& author, const G4String dtdVersion, | |
35 | G4LogicalVolume* lv); | |
240601e9 | 36 | void GenerateSection(const G4String& name, const G4String& version, |
37 | const G4String& date, const G4String& author, | |
38 | const G4String& topVolume, G4LogicalVolume* lv); | |
39 | void OpenFile(G4String filePath); | |
40 | void CloseFile(); | |
41 | ||
42 | protected: | |
43 | TG4XMLGeometryGenerator(const TG4XMLGeometryGenerator& right); | |
44 | ||
45 | // operators | |
46 | TG4XMLGeometryGenerator& operator=(const TG4XMLGeometryGenerator& right); | |
47 | ||
48 | private: | |
49 | // methods | |
4032dc03 | 50 | void CutName(G4String& name) const; |
240601e9 | 51 | void ProcessLogicalVolume(G4LogicalVolume* lv); |
52 | void ProcessMaterials(G4LogicalVolume* lv); | |
53 | void ProcessSolids(G4LogicalVolume* lv); | |
429ec6b8 | 54 | void ProcessRotations(G4LogicalVolume* lv); |
4032dc03 | 55 | void ClearMaterialNames(); |
56 | void ClearVolumeNames(); | |
240601e9 | 57 | |
58 | // static data members | |
59 | static TG4XMLGeometryGenerator* fgInstance; //this instance | |
60 | ||
61 | // data members | |
62 | TG4VXMLConvertor* fConvertor; //interface to XML convertor | |
63 | G4std::ofstream fOutFile; //output file | |
4032dc03 | 64 | TG4StringSet fMaterialNames; //set of names of materials |
65 | TG4StringSet fVolumeNames; //set of names of solids | |
240601e9 | 66 | }; |
67 | ||
68 | ||
69 | // inline methods | |
70 | inline TG4XMLGeometryGenerator* TG4XMLGeometryGenerator::Instance() | |
71 | { return fgInstance; } | |
72 | ||
73 | #endif //TG4_GEOMETRY_XML_MANAGER_H | |
74 |