@hatiolab/figure-model 0.2.13 → 0.2.15
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.
- package/dist/asset-types.d.ts +28 -4
- package/dist/asset-types.d.ts.map +1 -1
- package/dist/capabilities.js +84 -45
- package/dist/capabilities.js.map +1 -1
- package/dist/cost.d.ts.map +1 -1
- package/dist/cost.js +3 -4
- package/dist/cost.js.map +1 -1
- package/dist/graph-types.d.ts +55 -4
- package/dist/graph-types.d.ts.map +1 -1
- package/dist/graph.d.ts +2 -0
- package/dist/graph.d.ts.map +1 -1
- package/dist/graph.js +360 -35
- package/dist/graph.js.map +1 -1
- package/dist/index.d.ts +3 -3
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +2 -2
- package/dist/index.js.map +1 -1
- package/dist/kernel-version.d.ts +1 -1
- package/dist/kernel-version.js +1 -1
- package/dist/render-batches.d.ts +27 -2
- package/dist/render-batches.d.ts.map +1 -1
- package/dist/render-batches.js +99 -3
- package/dist/render-batches.js.map +1 -1
- package/dist/score.d.ts.map +1 -1
- package/dist/score.js +7 -19
- package/dist/score.js.map +1 -1
- package/package.json +1 -1
package/dist/score.js
CHANGED
|
@@ -20,10 +20,8 @@
|
|
|
20
20
|
*/
|
|
21
21
|
import { LIMITS, PART_LIMIT } from "./words.js";
|
|
22
22
|
import { compileFigureAsset } from "./asset.js";
|
|
23
|
-
import { compileFigureDocument } from "./document.js";
|
|
24
|
-
import { figureWritersOf } from "./gate.js";
|
|
25
23
|
import { figureTrianglesOf } from "./cost.js";
|
|
26
|
-
import {
|
|
24
|
+
import { figureBodyMovesOf, figureDrawPlanOf, figureDrawsOf } from "./render-batches.js";
|
|
27
25
|
/** Every budget, in the order a screen draws them. */
|
|
28
26
|
export const FIGURE_BUDGET_KEYS = ['groups', 'triangles', 'independent', 'moving', 'transparent', 'parts'];
|
|
29
27
|
/**
|
|
@@ -68,19 +66,9 @@ export function figureMaterialKeyOf(body) {
|
|
|
68
66
|
* A visibility flag is not a placement, so a lamp that only switches on does not count.
|
|
69
67
|
*/
|
|
70
68
|
export function figureIndependentBodiesOf(asset, drawn) {
|
|
71
|
-
const moves =
|
|
69
|
+
const moves = figureBodyMovesOf(asset);
|
|
72
70
|
return drawn.filter(moves).length;
|
|
73
71
|
}
|
|
74
|
-
/** Whether a drawn body moves with a state input: the value that places it depends on one. */
|
|
75
|
-
function movingOf(asset) {
|
|
76
|
-
const plan = compileFigureDocument(asset.document);
|
|
77
|
-
const writers = figureWritersOf(asset);
|
|
78
|
-
const nodes = new Map(asset.document.model.nodes.map(node => [node.id, node]));
|
|
79
|
-
return body => {
|
|
80
|
-
const node = nodes.get(('key' in body && body.key ? writers.get(body.key) : body.id) ?? '');
|
|
81
|
-
return !!node && Object.values(node.outputs).some(ref => (plan.dependence[ref]?.length ?? 0) > 0);
|
|
82
|
-
};
|
|
83
|
-
}
|
|
84
72
|
/**
|
|
85
73
|
* The grade of one asset, evaluated at its own design and state defaults as `figureCostOf` is. Nothing when no body is
|
|
86
74
|
* drawn: there is nothing to grade, and a grade of A would say otherwise.
|
|
@@ -94,14 +82,14 @@ export function figureScoreOf(asset) {
|
|
|
94
82
|
const triangles = drawn.reduce((sum, body) => sum + figureTrianglesOf(body), 0);
|
|
95
83
|
const transparent = new Set(drawn.filter(body => body.material.transparent).map(figureMaterialKeyOf)).size;
|
|
96
84
|
/*
|
|
97
|
-
As the renderer draws them (
|
|
98
|
-
batch of a row's copies and per body drawn alone; what moves on its own counted once a batch; and every body that
|
|
85
|
+
As the renderer draws them (figureDrawPlanOf, the rule it draws by -- ADR-0087 amended 2026-09-26, ADR-0109): a draw group per
|
|
86
|
+
batch of a row's copies, per still group merged by look and per body drawn alone; a merged group never moves; what moves on its own counted once a batch; and every body that
|
|
99
87
|
moves re-evaluated and moved each frame.
|
|
100
88
|
*/
|
|
101
|
-
const moves =
|
|
102
|
-
const plan =
|
|
89
|
+
const moves = figureBodyMovesOf(asset);
|
|
90
|
+
const plan = figureDrawPlanOf(asset, drawn);
|
|
103
91
|
const byId = new Map(drawn.map(body => [body.id, body]));
|
|
104
|
-
const groups = plan
|
|
92
|
+
const groups = figureDrawsOf(plan);
|
|
105
93
|
const independent = plan.batches.filter(b => b.ids.some(id => moves(byId.get(id)))).length + plan.alone.filter(id => moves(byId.get(id))).length;
|
|
106
94
|
const moving = drawn.filter(moves).length;
|
|
107
95
|
const budget = (key, used, limit) => ({ key, used, limit, ratio: used / limit });
|
package/dist/score.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"score.js","sourceRoot":"","sources":["../src/score.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH;;;;;;;;;;;;;;;;GAgBG;AACH,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,YAAY,CAAA;AAE/C,OAAO,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAA;AAC/C,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"score.js","sourceRoot":"","sources":["../src/score.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@hatiolab/figure-model",
|
|
3
|
-
"version": "0.2.
|
|
3
|
+
"version": "0.2.15",
|
|
4
4
|
"description": "The figure format (figure-asset-1): a kernel that evaluates a figure from its declared relations, the authoring commands a modeller and an AI share, the release gate and the score.",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"figure",
|