public double GetDistTo(IParticle3D particle) { double deltX = X - particle.X; double deltY = Y - particle.Y; double deltZ = Z - particle.Z; return(Sqrt(deltX * deltX + deltY * deltY + deltZ * deltZ)); }
/// <summary> /// Подходит ли частица к этой ячейке? /// Находится ли частица в пространстве ячейки? /// </summary> /// <param name="particle"></param> /// <returns></returns> bool GoodParticle(IParticle3D particle) { return(!(particle.X < X0 || particle.X >= X1 || particle.Y < Y0 || particle.Y >= Y1 || particle.Z < Z0 || particle.Z >= Z1)); }
/// <summary> /// Вычисляет индекс ячейки (строку) в сетке CellNet, подходящей для частицы /// </summary> /// <param name="particle"></param> /// <returns></returns> int GetHashYInd(IParticle3D particle) { return((int)Floor((particle.Y - ymin) / hmax)); }
/// <summary> /// Вычисляет индекс ячейки (z) в сетке CellNet, подходящей для частицы /// </summary> /// <param name="particle"></param> /// <returns></returns> int GetHashZInd(IParticle3D particle) { return((int)Floor((particle.Z - zmin) / hmax)); }
/// <summary> /// Вычисляет индекс ячейки (колонку) в сетке CellNet, подходящей для частицы /// </summary> /// <param name="particle"></param> /// <returns></returns> int GetHashXInd(IParticle3D particle) { return((int)Floor((particle.X - xmin) / hmax)); }