1 #if defined(__unix__) || defined(__linux__) || defined(__APPLE__) || defined(__MACH__) 5 #if defined(__APPLE__) || defined(__MACH__) 19 #define API __declspec(dllexport) 25 int clamp(
int x,
int minV,
int maxV) {
26 return max(minV, max(x, minV));
30 return std::max(maxVal.
x - minVal.
x, std::max(maxVal.
y - minVal.
y, maxVal.
z - minVal.
z)) + (2 * maxAtomRad);
39 res.
x = (int)( (pos3D.
x - originGrid.
x) / dx);
40 res.
y = (int)( (pos3D.
y - originGrid.
y) / dx);
41 res.
z = (int)( (pos3D.
z - originGrid.
z) / dx);
47 res.
x = originGrid.
x + cellPos.
x * dx;
48 res.
y = originGrid.
y + cellPos.
y * dx;
49 res.
z = originGrid.
z + cellPos.
z * dx;
55 return (gridDim.
y * gridDim.
z * id3d.
x) + (gridDim.
z * id3d.
y) + id3d.
z;
61 res.
x = index / (gridDim.
y * gridDim.
z);
62 res.
y = (index - res.
x * gridDim.
y * gridDim.
z) / gridDim.
z;
63 res.
z = index - res.
x * gridDim.
y * gridDim.
z - res.
y * gridDim.
z;
68 float x = (p1.
x - p2.
x) * (p1.
x - p2.
x);
69 float y = (p1.
y - p2.
y) * (p1.
y - p2.
y);
70 float z = (p1.
z - p2.
z) * (p1.
z - p2.
z);
87 vmin.
x = vmin.
y = vmin.
z = 100000.0f;
88 vmax.
x = vmax.
y = vmax.
z = -100000.0f;
90 for (
int a = 0; a < N; a++) {
92 vmin.
x = std::min(vmin.
x, coords.
x);
93 vmin.
y = std::min(vmin.
y, coords.
y);
94 vmin.
z = std::min(vmin.
z, coords.
z);
96 vmax.
x = std::max(vmax.
x, coords.
x);
97 vmax.
y = std::max(vmax.
y, coords.
y);
98 vmax.
z = std::max(vmax.
z, coords.
z);
100 float atomRad = radii[a];
102 *maxAtom = std::max(*maxAtom, atomRad);
void getMinMax(float3 *pos, float *radii, unsigned int N, float3 *minVal, float3 *maxVal, float *maxAtom)
Definition: NeighborSearch.hpp:82
float z
Definition: MarchingCubes.h:37
API void freeMem()
Definition: NeighborSearchLib.cpp:214
float computeMaxDist(float3 minVal, float3 maxVal, float maxAtomRad)
Definition: NeighborSearch.hpp:29
Definition: MarchingCubes.h:34
Definition: MarchingCubes.h:28
bool operator()(int2 a, int2 b)
Definition: NeighborSearch.hpp:76
Definition: NeighborSearch.hpp:75
int clamp(int x, int minV, int maxV)
Definition: NeighborSearch.hpp:25
#define API
Definition: NeighborSearch.hpp:19
float sqr_distance(float3 p1, float3 p2)
Definition: NeighborSearch.hpp:67
API void initGridNeighbor(float3 *atomPos, float *radii, int N)
Definition: NeighborSearchLib.cpp:27
int3 unflatten1DTo3D(int index, int3 gridDim)
Definition: NeighborSearch.hpp:59
float y
Definition: MarchingCubes.h:36
API int * findAtomsInRadius(float3 p, float rad, int *resSize)
Definition: NeighborSearchLib.cpp:169
float3 gridToSpace(int3 cellPos, float3 originGrid, float dx)
Definition: NeighborSearch.hpp:45
int x
Definition: cpdb.h:59
int y
Definition: MarchingCubes.h:30
int3 spaceToGrid(float3 pos3D, float3 originGrid, float dx)
Definition: NeighborSearch.hpp:34
int z
Definition: MarchingCubes.h:31
int x
Definition: MarchingCubes.h:29
API int findClosestAtom(float3 p)
Definition: NeighborSearchLib.cpp:107
float x
Definition: MarchingCubes.h:35
int flatten3DTo1D(int3 id3d, int3 gridDim)
Definition: NeighborSearch.hpp:54