36G4LogicalBorderSurface::theBorderSurfaceTable =
nullptr;
47 Volume1(vol1), Volume2(vol2),
48 Index(theBorderSurfaceTable != nullptr ? theBorderSurfaceTable->size() : 0)
50 if (theBorderSurfaceTable ==
nullptr)
57 theBorderSurfaceTable->insert(std::make_pair(std::make_pair(vol1,vol2),
this));
77 if (theBorderSurfaceTable ==
nullptr)
81 return theBorderSurfaceTable;
87 if (theBorderSurfaceTable !=
nullptr)
89 return theBorderSurfaceTable->size();
99 if (theBorderSurfaceTable !=
nullptr)
101 auto pos = theBorderSurfaceTable->find(std::make_pair(vol1,vol2));
102 if(pos != theBorderSurfaceTable->cend()) {
return pos->second; }
112 G4cout <<
"***** Surface Table : Nb of Surfaces = "
115 if (theBorderSurfaceTable !=
nullptr)
117 for(
const auto & pos : *theBorderSurfaceTable)
121 <<
" Border of volumes "
132 if (theBorderSurfaceTable ==
nullptr) {
return; }
137 G4cout <<
"WARNING - Attempt to clear the border surface store"
138 <<
" while geometry closed !" <<
G4endl;
142 for (
const auto& pos : *theBorderSurfaceTable)
146 theBorderSurfaceTable->clear();
std::map< std::pair< const G4VPhysicalVolume *, const G4VPhysicalVolume * >, G4LogicalBorderSurface * > G4LogicalBorderSurfaceTable
G4GLOB_DLL std::ostream G4cout
static G4GeometryManager * GetInstance()
G4LogicalBorderSurface is a Logical Surface class for surfaces defined by the boundary of two physica...
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
G4LogicalSurface(const G4LogicalSurface &)=delete
G4VPhysicalVolume is an abstract base class for the representation of a positioned volume....
const G4String & GetName() const