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>
43 lines
966 B
C#
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; }
|
|
}
|
|
}
|