35#define G4GDMLWRITE_HH 1
39#include <xercesc/dom/DOM.hpp>
40#include <xercesc/util/XMLString.hpp>
41#include <xercesc/util/PlatformUtils.hpp>
42#include <xercesc/framework/LocalFileFormatTarget.hpp>
53 using VolumeMapType = std::map<const G4LogicalVolume*, G4Transform3D>;
54 using PhysVolumeMapType = std::map<const G4VPhysicalVolume*, G4String>;
55 using DepthMapType = std::map<G4int, G4int>;
62 G4bool storeReferences =
true);
122 xercesc::DOMElement* element);
132 xercesc::DOMDocument*
doc =
nullptr;
std::vector< G4GDMLAuxStructType > G4GDMLAuxListType
virtual void SurfacesWrite()=0
virtual void MaterialsWrite(xercesc::DOMElement *)=0
DepthMapType & DepthMap()
G4bool FileExists(const G4String &) const
static void SetAddPointerToName(G4bool)
G4GDMLAuxListType auxList
void AddModule(const G4VPhysicalVolume *const topVol)
xercesc::DOMElement * NewElement(const G4String &)
G4String GenerateName(const G4String &, const void *const)
void AddAuxiliary(G4GDMLAuxStructType myaux)
G4String Modularize(const G4VPhysicalVolume *const topvol, const G4int depth)
virtual void AddExtension(xercesc::DOMElement *, const G4LogicalVolume *const)
virtual void SetupWrite(xercesc::DOMElement *, const G4LogicalVolume *const)=0
G4Transform3D Write(const G4String &filename, const G4LogicalVolume *const topLog, const G4String &schemaPath, const G4int depth, G4bool storeReferences=true)
virtual G4Transform3D TraverseVolumeTree(const G4LogicalVolume *const, const G4int)=0
xercesc::DOMElement * extElement
virtual void DefineWrite(xercesc::DOMElement *)=0
xercesc::DOMDocument * doc
xercesc::DOMAttr * NewAttribute(const G4String &, const G4String &)
virtual void UserinfoWrite(xercesc::DOMElement *)
void AddAuxInfo(G4GDMLAuxListType *auxInfoList, xercesc::DOMElement *element)
static G4bool addPointerToName
xercesc::DOMElement * userinfoElement
virtual void ExtensionWrite(xercesc::DOMElement *)
virtual void SolidsWrite(xercesc::DOMElement *)=0
VolumeMapType & VolumeMap()
virtual void StructureWrite(xercesc::DOMElement *)=0
G4bool overwriteOutputFile
void SetOutputFileOverwrite(G4bool flag)
PhysVolumeMapType & PvolumeMap()