40#ifndef G4VOXELNAVIGATION_HH
41#define G4VOXELNAVIGATION_HH
79 const G4int blockedNum,
82 const G4bool pLocatedOnEdge,
87 const G4double currentProposedStepLength,
95 G4int& blockedReplicaNo );
129 void AlongComputeStepLog(
const G4VSolid* sampleSolid,
135 void PostComputeStepLog (
const G4VSolid* motherSolid,
140 void ComputeSafetyLog (
const G4VSolid* solid,
144 inline void PrintDaughterLog (
const G4VSolid* sampleSolid,
193#include "G4VoxelNavigation.icc"
G4NavigationLogger * fLogger
void EnableBestSafety(G4bool flag=false)
virtual G4double ComputeSafety(const G4ThreeVector &globalpoint, const G4NavigationHistory &history, const G4double pMaxLength=DBL_MAX)
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)
std::vector< G4double > fVoxelSliceWidthStack
std::vector< EAxis > fVoxelAxisStack
void CheckMode(G4bool mode)
G4SmartVoxelNode * VoxelLocateLight(G4SmartVoxelHeader *pHead, const G4ThreeVector &localPoint) const
G4VoxelSafety * fpVoxelSafety
G4SmartVoxelNode * fVoxelNode
G4bool LocateNextVoxel(const G4ThreeVector &localPoint, const G4ThreeVector &localDirection, const G4double currentStep)
G4SmartVoxelNode * VoxelLocate(G4SmartVoxelHeader *pHead, const G4ThreeVector &localPoint)
virtual ~G4VoxelNavigation()
G4int GetVerboseLevel() const
virtual G4bool LevelLocate(G4NavigationHistory &history, const G4VPhysicalVolume *blockedVol, const G4int blockedNum, const G4ThreeVector &globalPoint, const G4ThreeVector *globalDirection, const G4bool pLocatedOnEdge, G4ThreeVector &localPoint)
std::vector< G4int > fVoxelNodeNoStack
std::vector< G4SmartVoxelHeader * > fVoxelHeaderStack
std::vector< G4int > fVoxelNoSlicesStack
G4double ComputeVoxelSafety(const G4ThreeVector &localPoint) const
void SetVerboseLevel(G4int level)