Immutable result type that holds overlap flag, overlap regions (as polygons), intersection points, and computed overlap area. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
24 lines
751 B
C#
24 lines
751 B
C#
using System.Collections.Generic;
|
|
using System.Linq;
|
|
|
|
namespace OpenNest.Geometry
|
|
{
|
|
public class CollisionResult
|
|
{
|
|
public static readonly CollisionResult None = new(false, new List<Polygon>(), new List<Vector>());
|
|
|
|
public CollisionResult(bool overlaps, List<Polygon> overlapRegions, List<Vector> intersectionPoints)
|
|
{
|
|
Overlaps = overlaps;
|
|
OverlapRegions = overlapRegions;
|
|
IntersectionPoints = intersectionPoints;
|
|
OverlapArea = overlapRegions.Sum(r => r.Area());
|
|
}
|
|
|
|
public bool Overlaps { get; }
|
|
public List<Polygon> OverlapRegions { get; }
|
|
public List<Vector> IntersectionPoints { get; }
|
|
public double OverlapArea { get; }
|
|
}
|
|
}
|