38G4LogicalBorderSurface::theBorderSurfaceTable =
nullptr;
49 Volume1(vol1), Volume2(vol2),
50 Index(theBorderSurfaceTable != nullptr ? theBorderSurfaceTable->size() : 0)
52 if (theBorderSurfaceTable ==
nullptr)
59 theBorderSurfaceTable->insert(std::make_pair(std::make_pair(vol1,vol2),
this));
84 if (theBorderSurfaceTable ==
nullptr)
88 return theBorderSurfaceTable;
94 if (theBorderSurfaceTable !=
nullptr)
96 return theBorderSurfaceTable->size();
106 if (theBorderSurfaceTable !=
nullptr)
108 auto pos = theBorderSurfaceTable->find(std::make_pair(vol1,vol2));
109 if(pos != theBorderSurfaceTable->cend())
return pos->second;
119 G4cout <<
"***** Surface Table : Nb of Surfaces = "
122 if (theBorderSurfaceTable !=
nullptr)
124 for(
const auto & pos : *theBorderSurfaceTable)
128 <<
" Border of volumes "
139 if (theBorderSurfaceTable !=
nullptr)
141 for(
const auto & pos : *theBorderSurfaceTable)
145 theBorderSurfaceTable->clear();
std::map< std::pair< const G4VPhysicalVolume *, const G4VPhysicalVolume * >, G4LogicalBorderSurface * > G4LogicalBorderSurfaceTable
G4GLOB_DLL std::ostream G4cout
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)
~G4LogicalBorderSurface() override
static void CleanSurfaceTable()
const G4VPhysicalVolume * GetVolume1() const
G4bool operator==(const G4LogicalBorderSurface &right) const
const G4String & GetName() const
const G4String & GetName() const