// --------------------- Geting of Neighborhoood -----------------------------
 private static void GetNeighborhoodForEuclideanDistance(ref List<Cl3DModel.Cl3DModelPointIterator> p_pNeighborhood, Cl3DModel.Cl3DModelPointIterator p_CheckingPoint, Cl3DModel.Cl3DModelPointIterator p_CenterPoint, float p_fDistance)
 {
     List<Cl3DModel.Cl3DModelPointIterator> neighbors = p_CheckingPoint.GetListOfNeighbors();
     foreach (Cl3DModel.Cl3DModelPointIterator point in neighbors)
     {
         if (!point.AlreadyVisited)
         {
             if (IsItInsideSphere(point.X, point.Y, point.Z, p_CenterPoint.X, p_CenterPoint.Y, p_CenterPoint.Z, p_fDistance))
             {
                 point.AlreadyVisited = true;
                 p_pNeighborhood.Add(point);
                 GetNeighborhoodForEuclideanDistance(ref p_pNeighborhood, point, p_CenterPoint, p_fDistance);
             }
         }
     }
 }
        public static void GetListOfTriangles(out List<ClTriangle> triangles, Cl3DModel.Cl3DModelPointIterator iter)
        {
            triangles = new List<ClTriangle>();

            List<Cl3DModel.Cl3DModelPointIterator> Neighbors = iter.GetListOfNeighbors();
            for (int i = 0; i < Neighbors.Count; i++)
            {
                for (int j = i; j < Neighbors.Count; j++)
                {
                    if (Neighbors[i].IsPointInNeighbors(Neighbors[j].PointID))
                    {
                        triangles.Add(new ClTriangle(iter.CopyIterator(), Neighbors[i].CopyIterator(), Neighbors[j].CopyIterator()));
                    }
                }
            }
        }