- Replace raw Panel with EntityView (via SplitPreview subclass) for proper zoom-to-point, middle-button pan, and double-buffered rendering - Add draggable handles for tab/spike positions along split lines; positions flow through to WeldGapTabSplit and SpikeGrooveSplit via SplitLine.FeaturePositions - Fix OK/Cancel buttons hidden off-screen by putting them in a bottom-docked panel - Fix DrawControl not invalidating on resize - Swap plate Width/Length label order, default edge spacing to 0.5 - Rename tab labels: Tab Width→Tab Length, Tab Height→Weld Gap, default count 2 - Spike depth now calculated (read-only), groove depth means positioning depth beyond spike tip (default 0.125), converted to total depth internally - Set entity layers visible so EntityView renders them Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
27 lines
780 B
C#
27 lines
780 B
C#
using System.Collections.Generic;
|
|
|
|
namespace OpenNest;
|
|
|
|
/// <summary>
|
|
/// Defines a split line at a position along an axis.
|
|
/// For Vertical, Position is the X coordinate. For Horizontal, Position is the Y coordinate.
|
|
/// </summary>
|
|
public class SplitLine
|
|
{
|
|
public double Position { get; }
|
|
public CutOffAxis Axis { get; }
|
|
|
|
/// <summary>
|
|
/// Optional custom center positions for features (tabs/spikes) along the split line.
|
|
/// Values are absolute coordinates on the perpendicular axis.
|
|
/// When empty, feature generators use their default even spacing.
|
|
/// </summary>
|
|
public List<double> FeaturePositions { get; set; } = new();
|
|
|
|
public SplitLine(double position, CutOffAxis axis)
|
|
{
|
|
Position = position;
|
|
Axis = axis;
|
|
}
|
|
}
|