39:fpSearchPVModel(pSearchPVModel)
40,fRequiredTouchable(requiredTouchable)
45void G4TouchablePropertiesScene::ProcessVolume (
const G4VSolid& ) {
47 const std::vector<G4PhysicalVolumeModel::G4PhysicalVolumeNodeID>&
50 if (fRequiredTouchable.size() == fullPVPath.size()) {
52 std::vector<G4PhysicalVolumeModel::G4PhysicalVolumeNodeID>::const_iterator
54 for (iNameCopyNo = fRequiredTouchable.begin(), iPVNodeId = fullPVPath.begin();
55 iNameCopyNo != fRequiredTouchable.end();
56 ++iNameCopyNo, ++iPVNodeId) {
58 iNameCopyNo->GetName() ==
59 iPVNodeId->GetPhysicalVolume()->GetName() &&
60 iNameCopyNo->GetCopyNo() ==
61 iPVNodeId->GetPhysicalVolume()->GetCopyNo()
66 if (iNameCopyNo == fRequiredTouchable.end()) {
67 fFoundTouchableProperties.fTouchablePath = fRequiredTouchable;
68 fFoundTouchableProperties.fpTouchablePV = fpSearchPVModel->GetCurrentPV();
69 fFoundTouchableProperties.fCopyNo = fpSearchPVModel->GetCurrentPVCopyNo();
70 fFoundTouchableProperties.fTouchableGlobalTransform = fpSearchPVModel->GetCurrentTransform();
71 fFoundTouchableProperties.fTouchableBaseFullPVPath = fpSearchPVModel->GetFullPVPath();
73 fFoundTouchableProperties.fTouchableBaseFullPVPath.pop_back();
74 fFoundTouchableProperties.fTouchableFullPVPath = fpSearchPVModel->GetFullPVPath();
75 fpSearchPVModel->Abort();
PVNameCopyNoPath::const_iterator PVNameCopyNoPathConstIterator
std::vector< PVNameCopyNo > PVNameCopyNoPath
const std::vector< G4PhysicalVolumeNodeID > & GetFullPVPath() const
virtual ~G4TouchablePropertiesScene()
G4TouchablePropertiesScene(G4PhysicalVolumeModel *pSearchPVModel, const G4ModelingParameters::PVNameCopyNoPath &requiredTouchable)