]>
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 | ||
12 | #include <globals.hh> | |
13 | #include <g4std/fstream> | |
14 | ||
15 | class TG4VXMLConvertor; | |
16 | ||
17 | class G4LogicalVolume; | |
18 | ||
19 | class TG4XMLGeometryGenerator | |
20 | { | |
21 | public: | |
22 | TG4XMLGeometryGenerator(); | |
23 | // --> protected | |
24 | // TG4XMLGeometryGenerator(const TG4XMLGeometryGenerator& right); | |
25 | virtual ~TG4XMLGeometryGenerator(); | |
26 | ||
27 | // static access method | |
28 | static TG4XMLGeometryGenerator* Instance(); | |
29 | ||
30 | // methods | |
31 | void GenerateSection(const G4String& name, const G4String& version, | |
32 | const G4String& date, const G4String& author, | |
33 | const G4String& topVolume, G4LogicalVolume* lv); | |
34 | void OpenFile(G4String filePath); | |
35 | void CloseFile(); | |
36 | ||
37 | protected: | |
38 | TG4XMLGeometryGenerator(const TG4XMLGeometryGenerator& right); | |
39 | ||
40 | // operators | |
41 | TG4XMLGeometryGenerator& operator=(const TG4XMLGeometryGenerator& right); | |
42 | ||
43 | private: | |
44 | // methods | |
45 | void ProcessLogicalVolume(G4LogicalVolume* lv); | |
46 | void ProcessMaterials(G4LogicalVolume* lv); | |
47 | void ProcessSolids(G4LogicalVolume* lv); | |
48 | ||
49 | // static data members | |
50 | static TG4XMLGeometryGenerator* fgInstance; //this instance | |
51 | ||
52 | // data members | |
53 | TG4VXMLConvertor* fConvertor; //interface to XML convertor | |
54 | G4std::ofstream fOutFile; //output file | |
55 | }; | |
56 | ||
57 | ||
58 | // inline methods | |
59 | inline TG4XMLGeometryGenerator* TG4XMLGeometryGenerator::Instance() | |
60 | { return fgInstance; } | |
61 | ||
62 | #endif //TG4_GEOMETRY_XML_MANAGER_H | |
63 |