@chestnutlabs/gcode-preview-core 0.8.1 → 0.10.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -79,6 +79,12 @@ export interface RenderStillResult {
79
79
  segmentCount: number;
80
80
  /** The quality tier actually rendered (resolves 'auto'). */
81
81
  quality: QualityMode;
82
+ /**
83
+ * Every-Nth extrusion decimation actually applied (1 = none). > 1 on large files — especially large
84
+ * `tubes` cards bounded by the tube-segment budget (RR-006) — so a card can disclose "simplified for
85
+ * size" honestly; layer boundaries are always kept. Pairs with `segmentCount` (segments drawn).
86
+ */
87
+ decimationApplied: number;
82
88
  /** True when the input was G-code bytes (a worker parse ran). */
83
89
  parsed: boolean;
84
90
  }
@@ -1 +1 @@
1
- {"version":3,"file":"render-still.d.ts","sourceRoot":"","sources":["../src/render-still.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;GAmBG;AACH,OAAO,EAAqB,KAAK,cAAc,EAAE,KAAK,gBAAgB,EAAE,MAAM,4BAA4B,CAAC;AAC3G,OAAO,EAIL,KAAK,cAAc,EACnB,KAAK,UAAU,EACf,KAAK,SAAS,EACd,KAAK,cAAc,EACnB,KAAK,WAAW,EAChB,KAAK,kBAAkB,EACvB,KAAK,KAAK,EACV,KAAK,UAAU,EACf,KAAK,WAAW,EACjB,MAAM,oCAAoC,CAAC;AAC5C,OAAO,EAAE,KAAK,eAAe,EAAE,KAAK,UAAU,EAAE,MAAM,6BAA6B,CAAC;AAEpF,sFAAsF;AACtF,MAAM,WAAW,eAAe;IAC9B,QAAQ,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;IACnC,MAAM,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;IACjC,uEAAuE;IACvE,GAAG,CAAC,EAAE,MAAM,CAAC;CACd;AAED,MAAM,WAAW,kBAAkB;IACjC,sFAAsF;IACtF,MAAM,EAAE,kBAAkB,CAAC;IAC3B,kEAAkE;IAClE,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,uEAAuE;IACvE,OAAO,CAAC,EAAE,WAAW,GAAG,MAAM,CAAC;IAC/B,kEAAkE;IAClE,UAAU,CAAC,EAAE,UAAU,CAAC;IACxB,0GAA0G;IAC1G,YAAY,CAAC,EAAE,QAAQ,GAAG,KAAK,CAAC;IAChC,SAAS,CAAC,EAAE,SAAS,CAAC;IACtB,IAAI,CAAC,EAAE,WAAW,CAAC;IACnB,sFAAsF;IACtF,KAAK,CAAC,EAAE,KAAK,CAAC;IACd;;;;;OAKG;IACH,UAAU,CAAC,EAAE,aAAa,GAAG,UAAU,CAAC;IACxC,sEAAsE;IACtE,WAAW,CAAC,EAAE,cAAc,GAAG,eAAe,CAAC;IAC/C,gEAAgE;IAChE,UAAU,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC9B,sFAAsF;IACtF,KAAK,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACtB,6FAA6F;IAC7F,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,kGAAkG;IAClG,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,6EAA6E;IAC7E,MAAM,CAAC,EAAE,eAAe,CAAC;IACzB,0EAA0E;IAC1E,YAAY,CAAC,EAAE,cAAc,CAAC,QAAQ,CAAC,CAAC;IACxC,gFAAgF;IAChF,YAAY,CAAC,EAAE,gBAAgB,CAAC;IAChC,2EAA2E;IAC3E,cAAc,CAAC,EAAE,CAAC,MAAM,EAAE,kBAAkB,KAAK,cAAc,CAAC;CACjE;AAED,MAAM,WAAW,iBAAiB;IAChC,iEAAiE;IACjE,MAAM,EAAE,kBAAkB,CAAC;IAC3B,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IACf,UAAU,EAAE,MAAM,CAAC;IACnB,YAAY,EAAE,MAAM,CAAC;IACrB,4DAA4D;IAC5D,OAAO,EAAE,WAAW,CAAC;IACrB,iEAAiE;IACjE,MAAM,EAAE,OAAO,CAAC;CACjB;AAkBD;;;GAGG;AACH,wBAAsB,WAAW,CAC/B,MAAM,EAAE,UAAU,GAAG,WAAW,GAAG,UAAU,EAC7C,OAAO,EAAE,kBAAkB,GAC1B,OAAO,CAAC,iBAAiB,CAAC,CAkH5B"}
1
+ {"version":3,"file":"render-still.d.ts","sourceRoot":"","sources":["../src/render-still.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;GAmBG;AACH,OAAO,EAAqB,KAAK,cAAc,EAAE,KAAK,gBAAgB,EAAE,MAAM,4BAA4B,CAAC;AAC3G,OAAO,EAIL,KAAK,cAAc,EACnB,KAAK,UAAU,EACf,KAAK,SAAS,EACd,KAAK,cAAc,EACnB,KAAK,WAAW,EAChB,KAAK,kBAAkB,EACvB,KAAK,KAAK,EACV,KAAK,UAAU,EACf,KAAK,WAAW,EACjB,MAAM,oCAAoC,CAAC;AAC5C,OAAO,EAAE,KAAK,eAAe,EAAE,KAAK,UAAU,EAAE,MAAM,6BAA6B,CAAC;AAEpF,sFAAsF;AACtF,MAAM,WAAW,eAAe;IAC9B,QAAQ,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;IACnC,MAAM,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;IACjC,uEAAuE;IACvE,GAAG,CAAC,EAAE,MAAM,CAAC;CACd;AAED,MAAM,WAAW,kBAAkB;IACjC,sFAAsF;IACtF,MAAM,EAAE,kBAAkB,CAAC;IAC3B,kEAAkE;IAClE,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,uEAAuE;IACvE,OAAO,CAAC,EAAE,WAAW,GAAG,MAAM,CAAC;IAC/B,kEAAkE;IAClE,UAAU,CAAC,EAAE,UAAU,CAAC;IACxB,0GAA0G;IAC1G,YAAY,CAAC,EAAE,QAAQ,GAAG,KAAK,CAAC;IAChC,SAAS,CAAC,EAAE,SAAS,CAAC;IACtB,IAAI,CAAC,EAAE,WAAW,CAAC;IACnB,sFAAsF;IACtF,KAAK,CAAC,EAAE,KAAK,CAAC;IACd;;;;;OAKG;IACH,UAAU,CAAC,EAAE,aAAa,GAAG,UAAU,CAAC;IACxC,sEAAsE;IACtE,WAAW,CAAC,EAAE,cAAc,GAAG,eAAe,CAAC;IAC/C,gEAAgE;IAChE,UAAU,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC9B,sFAAsF;IACtF,KAAK,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACtB,6FAA6F;IAC7F,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,kGAAkG;IAClG,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,6EAA6E;IAC7E,MAAM,CAAC,EAAE,eAAe,CAAC;IACzB,0EAA0E;IAC1E,YAAY,CAAC,EAAE,cAAc,CAAC,QAAQ,CAAC,CAAC;IACxC,gFAAgF;IAChF,YAAY,CAAC,EAAE,gBAAgB,CAAC;IAChC,2EAA2E;IAC3E,cAAc,CAAC,EAAE,CAAC,MAAM,EAAE,kBAAkB,KAAK,cAAc,CAAC;CACjE;AAED,MAAM,WAAW,iBAAiB;IAChC,iEAAiE;IACjE,MAAM,EAAE,kBAAkB,CAAC;IAC3B,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IACf,UAAU,EAAE,MAAM,CAAC;IACnB,YAAY,EAAE,MAAM,CAAC;IACrB,4DAA4D;IAC5D,OAAO,EAAE,WAAW,CAAC;IACrB;;;;OAIG;IACH,iBAAiB,EAAE,MAAM,CAAC;IAC1B,iEAAiE;IACjE,MAAM,EAAE,OAAO,CAAC;CACjB;AAkBD;;;GAGG;AACH,wBAAsB,WAAW,CAC/B,MAAM,EAAE,UAAU,GAAG,WAAW,GAAG,UAAU,EAC7C,OAAO,EAAE,kBAAkB,GAC1B,OAAO,CAAC,iBAAiB,CAAC,CAuH5B"}
@@ -85,6 +85,7 @@ export async function renderStill(source, options) {
85
85
  });
86
86
  try {
87
87
  renderer.resize(width, height);
88
+ let decimationApplied = 1;
88
89
  await new Promise((resolve) => {
89
90
  let settled = false;
90
91
  const finish = () => {
@@ -95,8 +96,10 @@ export async function renderStill(source, options) {
95
96
  resolve();
96
97
  };
97
98
  const off = renderer.onEvent((e) => {
98
- if (e.type === 'buildComplete')
99
+ if (e.type === 'buildComplete') {
100
+ decimationApplied = e.decimationApplied;
99
101
  finish();
102
+ }
100
103
  });
101
104
  renderer.setIR(ir);
102
105
  // An empty IR builds no chunks and may not emit buildComplete — guard on
@@ -144,6 +147,7 @@ export async function renderStill(source, options) {
144
147
  layerCount: renderer.layerCount,
145
148
  segmentCount: renderer.segmentCount,
146
149
  quality: renderer.activeQuality,
150
+ decimationApplied,
147
151
  parsed
148
152
  };
149
153
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@chestnutlabs/gcode-preview-core",
3
- "version": "0.8.1",
3
+ "version": "0.10.0",
4
4
  "description": "Framework-neutral preview controller for the Chestnut Labs G-code viewer (DD-007 §4.6): the shared engine glue, state model, and TypeScript contracts beneath the Vue/React/Svelte adapters.",
5
5
  "keywords": [
6
6
  "gcode",
@@ -52,9 +52,9 @@
52
52
  "test": "vitest run"
53
53
  },
54
54
  "dependencies": {
55
- "@chestnutlabs/gcode-parser": "0.8.1",
56
- "@chestnutlabs/gcode-renderer-2d": "0.8.1",
57
- "@chestnutlabs/gcode-renderer-three": "0.8.1",
58
- "@chestnutlabs/toolpath-core": "0.8.1"
55
+ "@chestnutlabs/gcode-parser": "0.10.0",
56
+ "@chestnutlabs/gcode-renderer-2d": "0.10.0",
57
+ "@chestnutlabs/gcode-renderer-three": "0.10.0",
58
+ "@chestnutlabs/toolpath-core": "0.10.0"
59
59
  }
60
60
  }