class G4Material;
class G4VSolid;
class G4LogicalVolume;
+class G4PVReplica;
class G4Box;
class G4Tubs;
+class G4Cons;
class G4Trd;
+class G4Trap;
+class G4Polycone;
+class G4Polyhedra;
class TG4XMLConvertor : public TG4VXMLConvertor
{
virtual void CloseComposition();
virtual void WriteMaterial(const G4Material* material);
- virtual void WriteSolid(const G4VSolid* solid, G4String materialName);
+ virtual void WriteSolid(G4String lvName, const G4VSolid* solid,
+ G4String materialName);
virtual void WriteRotation(const G4RotationMatrix* rotation);
- virtual void WritePosition(G4String solidName, G4ThreeVector position);
+ virtual void WritePosition(G4String lvName, G4ThreeVector position);
virtual void WritePositionWithRotation(
- G4String solidName, G4ThreeVector position,
- const G4RotationMatrix* rotation);
+ G4String lvName, G4ThreeVector position,
+ const G4RotationMatrix* rotation);
+ virtual void WriteReplica(G4String lvName, G4PVReplica* pvr);
virtual void WriteEmptyLine();
virtual void IncreaseIndention();
virtual void DecreaseIndention();
void CutName(G4String& name) const;
void CutName(G4String& name, G4int size) const;
void PutName(G4String& element, G4String name, G4String templ) const;
- void WriteBox (const G4Box* box, G4String materialName);
- void WriteTubs(const G4Tubs* tubs, G4String materialName);
- void WriteTrd (const G4Trd* trd, G4String materialName);
+
+ // writing solids
+ void WriteBox (G4String lvName, const G4Box* box, G4String materialName);
+ void WriteTubs(G4String lvName, const G4Tubs* tubs, G4String materialName);
+ void WriteCons(G4String lvName, const G4Cons* cons, G4String materialName);
+ void WriteTrd (G4String lvName, const G4Trd* trd, G4String materialName);
+ void WriteTrap(G4String lvName, const G4Trap* trap, G4String materialName);
+ void WritePolycone(G4String lvName, const G4Polycone* polycone,
+ G4String materialName);
+ void WritePolyhedra(G4String lvName, const G4Polyhedra* polyhedra,
+ G4String materialName);
// static data members
- static const G4int fgkMaxVolumeNameLength;
- static const G4int fgkMaxMaterialNameLength;
+ static const G4int fgkMaxVolumeNameLength; //maximal volume name length
+ static const G4int fgkMaxMaterialNameLength;//maximal material name length
// data members
G4std::ofstream& fOutFile; //output file
- TG4StringSet fMaterialNames; //set of names of materials
- TG4StringSet fSolidNames; //set of names of solids
- TG4RotationMatrixVector fRotations; // vector of rot matrices
- const G4String fBasicIndention; //basic indention
+ const G4String fkBasicIndention; //basic indention
G4String fIndention; //indention string
+ G4int fRotationCounter; //counter of rotations
+ TG4RotationMatrixVector fRotations; // vector of rot matrices
};
#endif //TG4_XML_CONVERTOR_H