public List <ConflictingPlanes> SeparationPlanes(List <Plane> activePlanes) { // A List of every conflicting planes List <ConflictingPlanes> cList = new List <ConflictingPlanes>(); // Copy of activePlanes List <Plane> activePlanesCopy = new List <Plane>(activePlanes); // Find every conflicting plane foreach (var plane1 in activePlanesCopy) { Coordinate coordinate1 = plane1.Positions.First().Coordinate; activePlanes.Remove(activePlanes.First()); foreach (var plane2 in activePlanesCopy) { Coordinate coordinate2 = plane2.Positions.First().Coordinate; int diffX = Math.Abs(coordinate1.X - coordinate2.X); int diffY = Math.Abs(coordinate1.Y - coordinate2.Y); int diffZ = Math.Abs(coordinate1.Z - coordinate2.Z); if (diffX < 5000 && diffY < 5000 && diffZ < 300) { ConflictingPlanes cPlanes = new ConflictingPlanes(); cPlanes.Tag1 = plane1.Tag; cPlanes.Tag2 = plane2.Tag; cList.Add(cPlanes); } } } return(cList); }
public List<ConflictingPlanes> SeparationPlanes(List<Plane> activePlanes) { // A List of every conflicting planes List<ConflictingPlanes> cList = new List<ConflictingPlanes>(); // Copy of activePlanes List<Plane> activePlanesCopy = new List<Plane>(activePlanes); // Find every conflicting plane foreach (var plane1 in activePlanesCopy) { Coordinate coordinate1 = plane1.Positions.First().Coordinate; activePlanes.Remove(activePlanes.First()); foreach (var plane2 in activePlanesCopy) { Coordinate coordinate2 = plane2.Positions.First().Coordinate; int diffX = Math.Abs(coordinate1.X - coordinate2.X); int diffY = Math.Abs(coordinate1.Y - coordinate2.Y); int diffZ = Math.Abs(coordinate1.Z - coordinate2.Z); if (diffX < 5000 && diffY < 5000 && diffZ < 300) { ConflictingPlanes cPlanes = new ConflictingPlanes(); cPlanes.Tag1 = plane1.Tag; cPlanes.Tag2 = plane2.Tag; cList.Add(cPlanes); } } } return cList; }