protected virtual bool IsCollidingAnyObstacle(BlockReference blkRef) { var intersections = new Point3dCollection(); foreach (var girder in Environment.Girders) { blkRef.IntersectWith(girder, Intersect.OnBothOperands, intersections, IntPtr.Zero, IntPtr.Zero); if (intersections.Count > 0) { return(true); } } foreach (var collumn in Environment.Collumns) { blkRef.IntersectWith(collumn, Intersect.OnBothOperands, intersections, IntPtr.Zero, IntPtr.Zero); if (intersections.Count > 0) { return(true); } } foreach (var empty in Environment.Empties) { blkRef.IntersectWith(empty, Intersect.OnBothOperands, intersections, IntPtr.Zero, IntPtr.Zero); if (intersections.Count > 0) { return(true); } } return(false); }