Archived
docs(engines): template on shared services and a determinism rule
New engines start from the shared test kit (the template's tests are a one-line EngineContractTests subclass) and the host APIs, so they don't re-derive geometry reading, work areas or validator tolerances. BENCH-RULES.md now forbids clocks, unseeded randomness and environment variables from influencing placement (budgets count work; wall time only through the host's cancellation token) and lists the kit as read-only. Build-Engines.ps1 deploys only OpenNest.Engine.* folders, and New-Engine.ps1 -IncludeBuildFiles copies the kit. Co-Authored-By: Codex <noreply@openai.com> Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
1 parent
0cdef009f8
commit
33cc2ee810
8 files changed
+63
-92
No files matched your search
@@ -18,6 +18,7 @@ public sealed class __NAME__NestingEngine : INestingEngine
|
||||
)
|
||||
{
|
||||
ArgumentNullException.ThrowIfNull(job);
|
||||
token.ThrowIfCancellationRequested();
|
||||
|
||||
// TODO: implement independent placement logic here.
|
||||
//
|
||||
@@ -30,9 +31,12 @@ public sealed class __NAME__NestingEngine : INestingEngine
|
||||
// job.Plates -> candidate stock sheets (size, spacing, edge spacing, quadrant, quantity)
|
||||
// job.Options -> job-wide options
|
||||
//
|
||||
// Return a NestJobResult built from NestJobPlateResult (one per used sheet, holding
|
||||
// ordered NestJobPlacement values), PartFulfillment (requested vs placed per part id),
|
||||
// and StockUsage (sheets used per stock id).
|
||||
// Read material with JobPartGeometry.TryRead(part.Geometry); use stock.WorkArea/Fits,
|
||||
// RotationCandidates.ForShape and NestJobCost as primitives for your own decisions.
|
||||
// var result = new NestJobResultBuilder(job, progress);
|
||||
// result.AddSheet(stock, poses); // (PartId, X, Y, Rotation); call only on commit.
|
||||
// return result.Build(NestJobStopReason.NoPlacementFound);
|
||||
// The builder assigns sheet/instance indices, fulfillment, usage and commit progress.
|
||||
|
||||
throw new NotImplementedException("__NAME__ nesting engine placement logic not yet implemented.");
|
||||
}
|
||||
|
||||
Reference in new issue
Block a user