38G4LogicalBorderSurface::theBorderSurfaceTable =
nullptr;
50 Volume1(vol1), Volume2(vol2),
51 Index(theBorderSurfaceTable != nullptr ? theBorderSurfaceTable->size() : 0)
53 if (theBorderSurfaceTable ==
nullptr)
60 theBorderSurfaceTable->insert(std::make_pair(std::make_pair(vol1,vol2),
this));
89 if (theBorderSurfaceTable ==
nullptr)
93 return theBorderSurfaceTable;
98 if (theBorderSurfaceTable !=
nullptr)
100 return theBorderSurfaceTable->size();
109 if (theBorderSurfaceTable !=
nullptr)
111 auto pos = theBorderSurfaceTable->find(std::make_pair(vol1,vol2));
112 if(pos != theBorderSurfaceTable->cend())
return pos->second;
121 G4cout <<
"***** Surface Table : Nb of Surfaces = "
124 if (theBorderSurfaceTable !=
nullptr)
126 for(
auto pos = theBorderSurfaceTable->cbegin();
127 pos != theBorderSurfaceTable->cend(); ++pos)
131 <<
" Border of volumes "
141 if (theBorderSurfaceTable !=
nullptr)
143 for(
auto pos = theBorderSurfaceTable->cbegin();
144 pos != theBorderSurfaceTable->cend(); ++pos)
146 if (pos->second) {
delete pos->second; }
148 theBorderSurfaceTable->clear();
std::map< std::pair< const G4VPhysicalVolume *, const G4VPhysicalVolume * >, G4LogicalBorderSurface * > G4LogicalBorderSurfaceTable
G4GLOB_DLL std::ostream G4cout
~G4LogicalBorderSurface()
G4bool operator!=(const G4LogicalBorderSurface &right) const
static std::size_t GetNumberOfBorderSurfaces()
static G4LogicalBorderSurface * GetSurface(const G4VPhysicalVolume *vol1, const G4VPhysicalVolume *vol2)
static const G4LogicalBorderSurfaceTable * GetSurfaceTable()
const G4VPhysicalVolume * GetVolume2() const
G4LogicalBorderSurface(const G4String &name, G4VPhysicalVolume *vol1, G4VPhysicalVolume *vol2, G4SurfaceProperty *surfaceProperty)
static void CleanSurfaceTable()
const G4VPhysicalVolume * GetVolume1() const
G4bool operator==(const G4LogicalBorderSurface &right) const
const G4String & GetName() const
const G4String & GetName() const