35#ifndef G4VOXELNAVIGATION_HH
36#define G4VOXELNAVIGATION_HH 1
103 const G4int blockedNum,
106 const G4bool pLocatedOnEdge,
132 const G4double currentProposedStepLength,
140 G4int& blockedReplicaNo )
override;
207 void AlongComputeStepLog(
const G4VSolid* sampleSolid,
213 void PostComputeStepLog (
const G4VSolid* motherSolid,
218 void ComputeSafetyLog (
const G4VSolid* solid,
222 inline void PrintDaughterLog (
const G4VSolid* sampleSolid,
274#include "G4VoxelNavigation.icc"
CLHEP::Hep3Vector G4ThreeVector
G4BlockingList is an utility class responsible for (efficiently) maintaining a list of blocked volume...
G4NavigationHistory is a class responsible for the maintenance of the history of the path taken throu...
G4NavigationLogger is a simple utility class for use by the navigation systems for verbosity and chec...
G4SmartVoxelNode defines a node in the smart voxel hierarchy, i.e. a 'slice' of space along a given a...
G4VNavigation class holds the common navigation interface for all geometry navigator types.
G4VPhysicalVolume is an abstract base class for the representation of a positioned volume....
G4VSolid is an abstract base class for solids, physical shapes that can be tracked through....
G4double ComputeStep(const G4ThreeVector &localPoint, const G4ThreeVector &localDirection, const G4double currentProposedStepLength, G4double &newSafety, G4NavigationHistory &history, G4bool &validExitNormal, G4ThreeVector &exitNormal, G4bool &exiting, G4bool &entering, G4VPhysicalVolume *(*pBlockedPhysical), G4int &blockedReplicaNo) override
void SetVerboseLevel(G4int level) override
G4NavigationLogger * fLogger
void EnableBestSafety(G4bool flag=false)
std::vector< G4double > fVoxelSliceWidthStack
std::vector< EAxis > fVoxelAxisStack
G4int GetVerboseLevel() const override
G4VoxelSafety * fpVoxelSafety
G4double ComputeSafety(const G4ThreeVector &localpoint, const G4NavigationHistory &history, const G4double pMaxLength=DBL_MAX) override
G4SmartVoxelNode * fVoxelNode
G4bool LocateNextVoxel(const G4ThreeVector &localPoint, const G4ThreeVector &localDirection, const G4double currentStep)
G4SmartVoxelNode * VoxelLocate(G4SmartVoxelHeader *pHead, const G4ThreeVector &localPoint)
void RelocateWithinVolume(G4VPhysicalVolume *motherPhysical, const G4ThreeVector &localPoint) override
G4bool LevelLocate(G4NavigationHistory &history, const G4VPhysicalVolume *blockedVol, const G4int blockedNum, const G4ThreeVector &globalPoint, const G4ThreeVector *globalDirection, const G4bool pLocatedOnEdge, G4ThreeVector &localPoint) override
std::vector< G4int > fVoxelNodeNoStack
std::vector< G4SmartVoxelHeader * > fVoxelHeaderStack
std::vector< G4int > fVoxelNoSlicesStack
~G4VoxelNavigation() override
G4double ComputeVoxelSafety(const G4ThreeVector &localPoint) const
G4VoxelSafety is an utility class for the handling isotropic safety in volumes containing only G4PVPl...