mirror of
https://github.com/ajisaacs/OpenNest.git
synced 2026-11-04 16:01:35 -05:00
Priority worked like a rank (lower first) with a default of 0, and the Edit Drawing form stopped at 0, so moving one part ahead of the rest meant renumbering every other drawing. Higher-first lets a user raise a single part to 1 and leave everything else at the default. Every engine, filler and candidate comparer now serves the highest tier first. Stored values keep their order: - .nest files add `nestPriority` and keep writing the negated value under `priority`, so older readers nest in the same order; files without `nestPriority` are negated on read. Drawing packages strip both, so package hashes are unchanged. - Library settings send both keys the same way for older clients. - Server schema v18 negates stored drawing priorities (an older server refuses the upgraded database). - Job documents move to version 2; version 1 jobs are converted, and an older worker refuses version 2 instead of reversing the order. The Edit Drawing form now accepts negative priorities and says higher numbers nest first. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
14 lines
632 B
C#
14 lines
632 B
C#
namespace OpenNest;
|
|
|
|
/// <summary>
|
|
/// Nesting priority places higher numbers first. Files, the drawing library and server job
|
|
/// documents written before that stored a lower-first value under <c>priority</c>; they keep
|
|
/// writing it beside the new value so older readers see the same order. Converting negates,
|
|
/// which keeps the order and is its own inverse.
|
|
/// </summary>
|
|
public static class LegacyPriority
|
|
{
|
|
/// <summary>Converts between a higher-first priority and its lower-first legacy value, either way.</summary>
|
|
public static int Convert(int priority) => priority == int.MinValue ? int.MaxValue : -priority;
|
|
}
|