15
15
\param d grid spacing
16
16
\param p0 minimal corner (origin) of the search space
18
//template<typename T>
19
//NeighborTable<T>::NeighborTable(int x,int y,int z,double d,const Vec3& p0)
20
// :m_p0(p0),m_dim(d),m_xsize(x),m_ysize(y),m_zsize(z),m_valid(true)
22
// m_array.resize(m_xsize*m_ysize*m_zsize);
27
construct neigbortable with known dimensions
29
\param x nr. of grid points in x-direction
30
\param y nr. of grid points in y-direction
31
\param z nr. of grid points in z-direction
33
\param p0_global minimal corner (origin) of the global search space
34
\param ix x-index of the local origin
35
\param iy y-index of the local origin
36
\param iz z-index of the local origin
18
38
template<typename T>
19
NeighborTable<T>::NeighborTable(int x,int y,int z,double d,const Vec3& p0)
20
:m_p0(p0),m_dim(d),m_xsize(x),m_ysize(y),m_zsize(z),m_valid(true)
39
NeighborTable<T>::NeighborTable(int x,int y,int z, double d, const Vec3& p0_global, int ix, int iy, int iz)
40
:m_p0_global(p0_global),m_dim(d),m_xsize(x),m_ysize(y),m_zsize(z),m_valid(true)
22
m_array.resize(m_xsize*m_ysize*m_zsize);
45
m_array.resize(m_xsize*m_ysize*m_zsize);
46
// m_p0=m_p0_global+Vec3(m_dim*m_global_idx,m_dim*m_global_idy,m_dim*m_global_idz);
26
50
destruct NeighborTable
51
75
int NeighborTable<T>::index(const Vec3& pos)
54
int ix=int(floor((pos.X()-m_p0.X())/m_dim));
55
int iy=int(floor((pos.Y()-m_p0.Y())/m_dim));
56
int iz=int(floor((pos.Z()-m_p0.Z())/m_dim));
78
// int ix=int(floor((pos.X()-m_p0.X())/m_dim));
79
// int iy=int(floor((pos.Y()-m_p0.Y())/m_dim));
80
// int iz=int(floor((pos.Z()-m_p0.Z())/m_dim));
81
int ix=int(floor((pos.X()-m_p0_global.X())/m_dim))-m_global_idx;
82
int iy=int(floor((pos.Y()-m_p0_global.Y())/m_dim))-m_global_idy;
83
int iz=int(floor((pos.Z()-m_p0_global.Z())/m_dim))-m_global_idz;
57
84
if((ix>=0)&&(ix<m_xsize)&&
58
85
(iy>=0)&&(iy<m_ysize)&&
59
86
(iz>=0)&&(iz<m_zsize)){