42 #ifndef G4SurfaceVoxelizer_HH 
   43 #define G4SurfaceVoxelizer_HH 
   73     void Voxelize(std::vector<G4VFacet *> &facets);
 
   87                                         std::vector<G4int> &list,
 
   93                                         std::vector<G4int> &list,
 
   96                                         std::vector<G4int> &list,
 
   99     inline const std::vector<G4VoxelBox> &
GetBoxes() 
const;
 
  107                                     std::vector<G4int> &curVoxel) 
const;
 
  109     inline void GetVoxel(std::vector<G4int> &curVoxel,
 
  118                             const std::vector<G4int> &curVoxel) 
const;
 
  142     inline long long CountVoxels(std::vector<G4double> boundaries[]) 
const;
 
  144     inline const std::vector<G4int> &
 
  164     class G4VoxelComparator
 
  168       std::vector<G4VoxelInfo> &fVoxels;
 
  170       G4VoxelComparator(std::vector<G4VoxelInfo> &voxels) : fVoxels(voxels) {}
 
  176         G4int right = rv.count + fVoxels[rv.next].count;
 
  177         return (left == right) ? l < r : left < right;
 
  189     void CreateSortedBoundary(std::vector<G4double> &boundaryRaw, 
G4int axis);
 
  191     void BuildBoundaries();
 
  193     void BuildReduceVoxels(std::vector<G4double> fBoundaries[],
 
  195     void BuildReduceVoxels2(std::vector<G4double> fBoundaries[],
 
  198     void BuildVoxelLimits(std::vector<G4VFacet *> &facets);
 
  202     void BuildBitmasks(std::vector<G4double> fBoundaries[],
 
  205     void BuildBoundingBox();
 
  209     void CreateMiniVoxels(std::vector<G4double> fBoundaries[],
 
  211     static void FindComponentsFastest(
unsigned int mask,
 
  212                                       std::vector<G4int> &list, 
G4int i);
 
  216     std::vector<G4VoxelBox> fVoxelBoxes;
 
  217     std::vector<std::vector<G4int> > fVoxelBoxesCandidates;
 
  218     mutable std::map<G4int, std::vector<G4int> > fCandidates;
 
  220     const std::vector<G4int> fNoCandidates;
 
  222     long long fCountOfVoxels;
 
  226     std::vector<G4VoxelBox> fBoxes;
 
  229     std::vector<G4double> fBoundaries[3];
 
  232     std::vector<G4int> fCandidatesCounts[3]; 
 
  234     G4int fTotalCandidates;
 
  253 #include "G4SurfaceVoxelizer.icc" 
G4bool Contains(const G4ThreeVector &point) const 
 
void DisplayListNodes() const 
 
G4int GetCandidatesVoxelArray(const G4ThreeVector &point, std::vector< G4int > &list, G4SurfBits *crossed=0) const 
 
void Voxelize(std::vector< G4VFacet * > &facets)
 
G4double DistanceToFirst(const G4ThreeVector &point, const G4ThreeVector &direction) const 
 
G4double DistanceToBoundingBox(const G4ThreeVector &point) const 
 
G4int GetVoxelsIndex(G4int x, G4int y, G4int z) const 
 
void DisplayVoxelLimits()
 
static G4double MinDistanceToBox(const G4ThreeVector &aPoint, const G4ThreeVector &f)
 
G4bool UpdateCurrentVoxel(const G4ThreeVector &point, const G4ThreeVector &direction, std::vector< G4int > &curVoxel) const 
 
G4int GetBitsPerSlice() const 
 
G4int GetPointIndex(const G4ThreeVector &p) const 
 
G4bool IsEmpty(G4int index) const 
 
static G4int BinarySearch(const std::vector< T > &vec, T value)
 
const XML_Char int const XML_Char * value
 
void GetVoxel(std::vector< G4int > &curVoxel, const G4ThreeVector &point) const 
 
G4double DistanceToNext(const G4ThreeVector &point, const G4ThreeVector &direction, const std::vector< G4int > &curVoxel) const 
 
void SetMaxVoxels(G4int max)
 
const std::vector< G4VoxelBox > & GetBoxes() const 
 
const std::vector< G4int > & GetCandidates(std::vector< G4int > &curVoxel) const 
 
static G4int SetDefaultVoxelsCount(G4int count)
 
T max(const T t1, const T t2)
brief Return the largest of the two arguments 
 
void GetCandidatesVoxel(std::vector< G4int > &voxels)
 
long long GetCountOfVoxels() const 
 
const std::vector< G4double > & GetBoundary(G4int index) const 
 
G4int GetTotalCandidates() const 
 
const G4SurfBits & Empty() const 
 
G4int GetMaxVoxels(G4ThreeVector &ratioOfReduction)
 
const std::vector< G4int > & GetVoxelBoxCandidates(G4int i) const 
 
G4int GetVoxelBoxesSize() const 
 
long long CountVoxels(std::vector< G4double > boundaries[]) const 
 
const G4VoxelBox & GetVoxelBox(G4int i) const 
 
static G4int GetDefaultVoxelsCount()