35#include <unordered_map>
46 using Data = std::map<MolType, size_t>;
47 using Voxel = std::tuple<Index, Box, Data>;
48 using IndexMap = std::unordered_map<Index, G4int, G4VDNAMesh::hashFunc>;
54 size_t size() {
return fVoxelVector.size(); };
59 auto end() {
return fVoxelVector.end(); }
60 auto begin() {
return fVoxelVector.begin(); }
61 VoxelVector::const_iterator
const_end()
const {
return fVoxelVector.end(); }
64 return fVoxelVector.begin();
void InitializeVoxel(const Index &key, Data &&mapList)
std::tuple< Index, Box, Data > Voxel
VoxelVector::const_iterator const_end() const
void PrintVoxel(const Index &index)
std::vector< Voxel > VoxelVector
G4int GetNumberOfType(MolType type) const
Index ConvertIndex(const Index &index, const G4int &) const
std::unordered_map< Index, G4int, G4VDNAMesh::hashFunc > IndexMap
Voxel & GetVoxel(const Index &index)
G4double GetResolution() const
VoxelVector::const_iterator const_begin() const
const G4MolecularConfiguration * MolType
Data & GetVoxelMapList(const Index &index)
std::map< MolType, size_t > Data
const G4DNABoundingBox & GetBoundingBox() const
G4DNAMesh(const G4DNABoundingBox &, G4int)
Index GetIndex(const G4ThreeVector &position) const
std::vector< Index > FindNeighboringVoxels(const Index &index) const