36#ifndef G4VOXELNAVIGATION_HH
37#define G4VOXELNAVIGATION_HH
76 const G4int blockedNum,
79 const G4bool pLocatedOnEdge,
84 const G4double currentProposedStepLength,
92 G4int& blockedReplicaNo )
override;
124 void AlongComputeStepLog(
const G4VSolid* sampleSolid,
130 void PostComputeStepLog (
const G4VSolid* motherSolid,
135 void ComputeSafetyLog (
const G4VSolid* solid,
139 inline void PrintDaughterLog (
const G4VSolid* sampleSolid,
190#include "G4VoxelNavigation.icc"
G4VNavigation class holds the common navigation interface for all geometry navigator types.
virtual G4double ComputeSafety(const G4ThreeVector &globalpoint, const G4NavigationHistory &history, const G4double pMaxLength=DBL_MAX) override
virtual G4int GetVerboseLevel() const override
virtual void SetVerboseLevel(G4int level) override
G4NavigationLogger * fLogger
void EnableBestSafety(G4bool flag=false)
virtual G4bool LevelLocate(G4NavigationHistory &history, const G4VPhysicalVolume *blockedVol, const G4int blockedNum, const G4ThreeVector &globalPoint, const G4ThreeVector *globalDirection, const G4bool pLocatedOnEdge, G4ThreeVector &localPoint) override
std::vector< G4double > fVoxelSliceWidthStack
std::vector< EAxis > fVoxelAxisStack
G4SmartVoxelNode * VoxelLocateLight(G4SmartVoxelHeader *pHead, const G4ThreeVector &localPoint) const
G4VoxelSafety * fpVoxelSafety
G4SmartVoxelNode * fVoxelNode
virtual G4double ComputeStep(const G4ThreeVector &globalPoint, const G4ThreeVector &globalDirection, const G4double currentProposedStepLength, G4double &newSafety, G4NavigationHistory &history, G4bool &validExitNormal, G4ThreeVector &exitNormal, G4bool &exiting, G4bool &entering, G4VPhysicalVolume *(*pBlockedPhysical), G4int &blockedReplicaNo) override
G4bool LocateNextVoxel(const G4ThreeVector &localPoint, const G4ThreeVector &localDirection, const G4double currentStep)
G4SmartVoxelNode * VoxelLocate(G4SmartVoxelHeader *pHead, const G4ThreeVector &localPoint)
virtual void RelocateWithinVolume(G4VPhysicalVolume *motherPhysical, const G4ThreeVector &localPoint) override
virtual ~G4VoxelNavigation()
std::vector< G4int > fVoxelNodeNoStack
std::vector< G4SmartVoxelHeader * > fVoxelHeaderStack
std::vector< G4int > fVoxelNoSlicesStack
G4double ComputeVoxelSafety(const G4ThreeVector &localPoint) const