12#ifndef ROOT_TGeoVoxelGrid
13#define ROOT_TGeoVoxelGrid
21 size_t idx{std::numeric_limits<size_t>::max()};
22 bool isValid()
const {
return idx != std::numeric_limits<size_t>::max(); }
28template <
typename T,
typename S =
float>
53 bool inside(std::array<S, 3>
const &
p)
const
55 for (
int i = 0; i < 3; ++i) {
64 T &
at(std::array<S, 3>
const &P)
107 return {midX, midY, midZ};
127 i = std::min(i,
fNx - 1);
128 j = std::min(j,
fNy - 1);
129 k = std::min(k,
fNz - 1);
145 i = std::min(i,
fNz - 1);
146 j = std::min(j,
fNy - 1);
147 k = std::min(k,
fNz - 1);
155 size_t index(
int i,
int j,
int k)
const {
return i +
fNx * (j +
fNy * k); }
winID h TVirtualViewer3D TVirtualGLPainter p
Option_t Option_t TPoint TPoint const char GetTextMagnitude GetFillStyle GetLineColor GetLineWidth GetMarkerStyle GetTextAlign GetTextColor GetTextSize void char Point_t Rectangle_t WindowAttributes_t index
Option_t Option_t TPoint TPoint const char GetTextMagnitude GetFillStyle GetLineColor GetLineWidth GetMarkerStyle GetTextAlign GetTextColor GetTextSize void value
A finite 3D grid structure, mapping/binning arbitrary 3D cartesian points onto discrete "voxels".
S getDiagonalLength() const
void indexToIndices(size_t idx, int &i, int &j, int &k) const
std::array< S, 3 > fMinBound
int getVoxelCountY() const
size_t index(int i, int j, int k) const
TGeoVoxelGridIndex pointToVoxelIndex(S x, S y, S z) const
int getVoxelCountX() const
std::array< S, 3 > getVoxelMidpoint(TGeoVoxelGridIndex const &vi) const
void set(TGeoVoxelGridIndex const &vi, const T &value)
int getVoxelCountZ() const
T & at(std::array< S, 3 > const &P)
T * at(TGeoVoxelGridIndex const &vi)
bool inside(std::array< S, 3 > const &p) const
T & at(int i, int j, int k)
std::array< S, 3 > fMaxBound
TGeoVoxelGrid(S xmin, S ymin, S zmin, S xmax, S ymax, S zmax, S Lx_, S Ly_, S Lz_)
TGeoVoxelGridIndex pointToVoxelIndex(std::array< S, 3 > const &p) const
void set(std::array< S, 3 > const &p, const T &value)
void set(int i, int j, int k, const T &value)
void pointToVoxelIndex(std::array< S, 3 > const &p, int &i, int &j, int &k) const