// --------------------- 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())); } } } }