40 const G4String& requiredPhysicalVolumeName,
42 G4int requiredContinuation)
43: fpSearchVolumesModel (pSearchVolumesModel)
44, fMatcher (requiredPhysicalVolumeName)
45, fRequiredCopyNo (requiredCopyNo)
46, fRequiredContinuation (requiredContinuation)
64 for (
auto& node: basePath) node.SetDrawn(
false);
88 if (requiredMatch.size()) {
89 size_t last = requiredMatch.size() - 1;
92 if (requiredMatch[0U] ==
'/' && requiredMatch[last] ==
'/') {
106 (
"G4PhysicalVolumesSearchScene::Matcher::Matcher",
107 "modeling0013",
JustWarning,
"Required match is null");
117 if (fRequiredMatch.size()) {
119 std::regex requiredRegex(fRequiredMatch);
121 std::regex_search(
s.c_str(), match, requiredRegex);
122 if (match.size() > 0) found =
true;
124 if (
s == fRequiredMatch) found =
true;
void G4Exception(const char *originOfException, const char *exceptionCode, G4ExceptionSeverity severity, const char *description)
static constexpr double s
G4int GetCurrentPVCopyNo() const
G4VPhysicalVolume * GetCurrentPV() const
void CurtailDescent() const
const std::vector< G4PhysicalVolumeNodeID > & GetFullPVPath() const
G4VPhysicalVolume * GetTopPhysicalVolume() const
G4int GetCurrentDepth() const
G4bool Match(const G4String &)
Matcher(const G4String &requiredMatch)
G4PhysicalVolumesSearchScene(G4PhysicalVolumeModel *pSearchVolumeModel, const G4String &requiredPhysicalVolumeName, G4int requiredCopyNo=-1, G4int requiredContinuation=G4PhysicalVolumeModel::UNLIMITED)
const G4PhysicalVolumeModel * fpSearchVolumesModel
std::vector< Findings > fFindings
G4int fRequiredContinuation
void ProcessVolume(const G4VSolid &)
const G4Transform3D * fpCurrentObjectTransformation
const G4String & GetName() const
const char * name(G4int ptype)