Files
OpenNest/OpenNest.Core/Geometry/DefinedShape.cs
AJ Isaacs 2d956fd3f7 Restructure project layout to flatten directory structure
Move all projects from Source/ to repository root for simpler navigation.
- Remove External/ dependency DLLs (will use NuGet packages)
- Remove Installer/ NSIS script
- Replace PartCollection/PlateCollection with ObservableList
- Add packages.config for NuGet dependencies

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-27 20:29:12 -05:00

43 lines
966 B
C#

using System.Collections.Generic;
namespace OpenNest.Geometry
{
public class DefinedShape
{
public DefinedShape(Shape shape)
{
Update(shape.Entities);
}
public DefinedShape(List<Entity> entities)
{
Update(entities);
}
private void Update(List<Entity> entities)
{
var shapes = Helper.GetShapes(entities);
Perimeter = shapes[0];
Cutouts = new List<Shape>();
for (int i = 1; i < shapes.Count; i++)
{
if (shapes[i].Left < Perimeter.Left)
{
Cutouts.Add(Perimeter);
Perimeter = shapes[i];
}
else
{
Cutouts.Add(shapes[i]);
}
}
}
public Shape Perimeter { get; set; }
public List<Shape> Cutouts { get; set; }
}
}