Import Geant4 9.3.0 source tree
This commit is contained in:
@@ -24,8 +24,8 @@
|
||||
// ********************************************************************
|
||||
//
|
||||
//
|
||||
// $Id: G4GDMLWriteStructure.hh,v 1.34 2008/07/16 15:46:34 gcosmo Exp $
|
||||
// GEANT4 tag $Name: geant4-09-02 $
|
||||
// $Id: G4GDMLWriteStructure.hh,v 1.39 2009/04/24 15:34:20 gcosmo Exp $
|
||||
// GEANT4 tag $Name: geant4-09-03 $
|
||||
//
|
||||
//
|
||||
// class G4GDMLWriteStructure
|
||||
@@ -41,36 +41,53 @@
|
||||
#ifndef _G4GDMLWRITESTRUCTURE_INCLUDED_
|
||||
#define _G4GDMLWRITESTRUCTURE_INCLUDED_
|
||||
|
||||
#include "G4LogicalVolumeStore.hh"
|
||||
#include "G4PhysicalVolumeStore.hh"
|
||||
#include "G4Material.hh"
|
||||
#include "G4PVDivision.hh"
|
||||
#include "G4PVReplica.hh"
|
||||
#include "G4VPhysicalVolume.hh"
|
||||
#include "G4ReflectedSolid.hh"
|
||||
#include "G4Types.hh"
|
||||
#include "G4Transform3D.hh"
|
||||
|
||||
#include "G4GDMLWriteParamvol.hh"
|
||||
|
||||
class G4LogicalVolume;
|
||||
class G4VPhysicalVolume;
|
||||
class G4PVDivision;
|
||||
class G4LogicalBorderSurface;
|
||||
class G4LogicalSkinSurface;
|
||||
class G4OpticalSurface;
|
||||
class G4SurfaceProperty;
|
||||
|
||||
class G4GDMLWriteStructure : public G4GDMLWriteParamvol
|
||||
{
|
||||
|
||||
private:
|
||||
public:
|
||||
|
||||
void DivisionvolWrite(xercesc::DOMElement*,const G4PVDivision* const);
|
||||
G4GDMLWriteStructure();
|
||||
virtual ~G4GDMLWriteStructure();
|
||||
|
||||
virtual void StructureWrite(xercesc::DOMElement*);
|
||||
|
||||
protected:
|
||||
|
||||
void DivisionvolWrite(xercesc::DOMElement*, const G4PVDivision* const);
|
||||
void PhysvolWrite(xercesc::DOMElement*,const G4VPhysicalVolume* const topVol,
|
||||
const G4Transform3D& transform,
|
||||
const G4String& moduleName);
|
||||
void ReplicavolWrite(xercesc::DOMElement*,const G4VPhysicalVolume* const);
|
||||
void StructureWrite(xercesc::DOMElement*);
|
||||
const G4Transform3D& transform, const G4String& moduleName);
|
||||
void ReplicavolWrite(xercesc::DOMElement*, const G4VPhysicalVolume* const);
|
||||
G4Transform3D TraverseVolumeTree(const G4LogicalVolume* const topVol,
|
||||
const G4int depth);
|
||||
private:
|
||||
void SurfacesWrite();
|
||||
void BorderSurfaceCache(const G4LogicalBorderSurface* const);
|
||||
void SkinSurfaceCache(const G4LogicalSkinSurface* const);
|
||||
const G4LogicalBorderSurface* GetBorderSurface(const G4VPhysicalVolume* const);
|
||||
const G4LogicalSkinSurface* GetSkinSurface(const G4LogicalVolume* const);
|
||||
G4bool FindOpticalSurface(const G4SurfaceProperty*);
|
||||
|
||||
protected:
|
||||
|
||||
xercesc::DOMElement* structureElement;
|
||||
static const int maxReflections = 8; // Constant for limiting the number
|
||||
// of displacements/reflections applied
|
||||
// to a single solid
|
||||
std::vector<xercesc::DOMElement*> borderElementVec;
|
||||
std::vector<xercesc::DOMElement*> skinElementVec;
|
||||
|
||||
private: // cache for optical surfaces...
|
||||
|
||||
std::vector<const G4OpticalSurface*> opt_vec;
|
||||
};
|
||||
|
||||
#endif
|
||||
|
||||
Reference in New Issue
Block a user