@flighthq/node 0.3.0-next.906.07cea63 → 0.3.1-next.1041.35b950c
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/boundsRectangle.d.ts +11 -0
- package/dist/boundsRectangle.d.ts.map +1 -1
- package/dist/boundsRectangle.js +110 -12
- package/dist/boundsRectangle.js.map +1 -1
- package/dist/contract.d.ts +2 -0
- package/dist/contract.d.ts.map +1 -1
- package/dist/contract.js +2 -0
- package/dist/contract.js.map +1 -1
- package/dist/enableNodeGuards.d.ts +4 -0
- package/dist/enableNodeGuards.d.ts.map +1 -0
- package/dist/enableNodeGuards.js +29 -0
- package/dist/enableNodeGuards.js.map +1 -0
- package/dist/hasAppearance.d.ts +2 -1
- package/dist/hasAppearance.d.ts.map +1 -1
- package/dist/hasAppearance.js +10 -0
- package/dist/hasAppearance.js.map +1 -1
- package/dist/hasBoundsRectangle.d.ts +1 -1
- package/dist/hasBoundsRectangle.d.ts.map +1 -1
- package/dist/hasBoundsRectangle.js +5 -0
- package/dist/hasBoundsRectangle.js.map +1 -1
- package/dist/hasTransform3d.d.ts.map +1 -1
- package/dist/hasTransform3d.js +11 -4
- package/dist/hasTransform3d.js.map +1 -1
- package/dist/hierarchy.d.ts +15 -7
- package/dist/hierarchy.d.ts.map +1 -1
- package/dist/hierarchy.js +65 -28
- package/dist/hierarchy.js.map +1 -1
- package/dist/index.d.ts +1 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -1
- package/dist/index.js.map +1 -1
- package/dist/node.d.ts.map +1 -1
- package/dist/node.js +2 -0
- package/dist/node.js.map +1 -1
- package/dist/nodeColorAdjustment.d.ts.map +1 -1
- package/dist/nodeColorAdjustment.js +1 -7
- package/dist/nodeColorAdjustment.js.map +1 -1
- package/dist/nodeOrderList.d.ts +88 -0
- package/dist/nodeOrderList.d.ts.map +1 -0
- package/dist/nodeOrderList.js +257 -0
- package/dist/nodeOrderList.js.map +1 -0
- package/dist/nodeTransform2d.d.ts.map +1 -1
- package/dist/nodeTransform2d.js +1 -1
- package/dist/nodeTransform2d.js.map +1 -1
- package/dist/revision.d.ts +5 -2
- package/dist/revision.d.ts.map +1 -1
- package/dist/revision.js +17 -5
- package/dist/revision.js.map +1 -1
- package/dist/stageFit.d.ts.map +1 -1
- package/dist/stageFit.js +8 -4
- package/dist/stageFit.js.map +1 -1
- package/dist/traversal.d.ts +1 -1
- package/dist/traversal.d.ts.map +1 -1
- package/dist/traversal.js +1 -1
- package/dist/traversal.js.map +1 -1
- package/package.json +11 -7
- package/src/boundsRectangle.test.ts +378 -7
- package/src/enableNodeGuards.test.ts +78 -0
- package/src/hasAppearance.test.ts +33 -3
- package/src/hasBoundsRectangle.test.ts +8 -0
- package/src/hasTransform2d.test.ts +6 -0
- package/src/hasTransform3d.test.ts +40 -8
- package/src/hierarchy.test.ts +298 -4
- package/src/node.test.ts +11 -1
- package/src/nodeColorAdjustment.test.ts +11 -0
- package/src/nodeOrderList.test.ts +683 -0
- package/src/nodeTransform2d.test.ts +45 -0
- package/src/revision.test.ts +51 -0
- package/src/stageFit.test.ts +56 -1
- package/src/traversal.test.ts +32 -3
|
@@ -4,6 +4,17 @@ import type { BoundsNode, Rectangle, RectangleLike, Spatial2DNode } from '@fligh
|
|
|
4
4
|
* relative to the coordinate system of the `targetCoordinateSpace` object.
|
|
5
5
|
**/
|
|
6
6
|
export declare function computeNodeBoundsRectangle<Traits extends object>(out: RectangleLike, source: Spatial2DNode<Traits>, targetCoordinateSpace: Spatial2DNode<Traits> | null | undefined): void;
|
|
7
|
+
/**
|
|
8
|
+
* Writes the tight bounds of `root` and its enabled descendants in a coordinate system where the
|
|
9
|
+
* root's own local transform is identity. A child's transform is still relative to the root and
|
|
10
|
+
* nested transforms compose normally.
|
|
11
|
+
*
|
|
12
|
+
* This differs intentionally from computeNodeBoundsRectangle(out, root, root): that helper transforms
|
|
13
|
+
* an axis-aligned world box back into root space, which cannot recover tight bounds after a root
|
|
14
|
+
* rotation. Offscreen subtree capture uses this contract together with
|
|
15
|
+
* computeScene2DRenderTargetTransform so the root transform cancels exactly.
|
|
16
|
+
*/
|
|
17
|
+
export declare function computeNodeRootLocalBoundsRectangle<Traits extends object>(out: RectangleLike, root: Spatial2DNode<Traits>): void;
|
|
7
18
|
export declare function ensureNodeLocalBoundsRectangle<Traits extends object>(target: BoundsNode<Traits>): void;
|
|
8
19
|
export declare function ensureNodeParentBoundsRectangle<Traits extends object>(target: Spatial2DNode<Traits>): void;
|
|
9
20
|
export declare function ensureNodeWorldBoundsRectangle<Traits extends object>(target: Spatial2DNode<Traits>): void;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"boundsRectangle.d.ts","sourceRoot":"","sources":["../src/boundsRectangle.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"boundsRectangle.d.ts","sourceRoot":"","sources":["../src/boundsRectangle.ts"],"names":[],"mappings":"AAaA,OAAO,KAAK,EACV,UAAU,EAKV,SAAS,EACT,aAAa,EACb,aAAa,EACd,MAAM,0BAA0B,CAAC;AAOlC;;;IAGI;AACJ,wBAAgB,0BAA0B,CAAC,MAAM,SAAS,MAAM,EAC9D,GAAG,EAAE,aAAa,EAClB,MAAM,EAAE,aAAa,CAAC,MAAM,CAAC,EAC7B,qBAAqB,EAAE,aAAa,CAAC,MAAM,CAAC,GAAG,IAAI,GAAG,SAAS,GAC9D,IAAI,CAuBN;AAED;;;;;;;;;GASG;AACH,wBAAgB,mCAAmC,CAAC,MAAM,SAAS,MAAM,EACvE,GAAG,EAAE,aAAa,EAClB,IAAI,EAAE,aAAa,CAAC,MAAM,CAAC,GAC1B,IAAI,CAGN;AAED,wBAAgB,8BAA8B,CAAC,MAAM,SAAS,MAAM,EAAE,MAAM,EAAE,UAAU,CAAC,MAAM,CAAC,GAAG,IAAI,CAKtG;AAED,wBAAgB,+BAA+B,CAAC,MAAM,SAAS,MAAM,EAAE,MAAM,EAAE,aAAa,CAAC,MAAM,CAAC,GAAG,IAAI,CAS1G;AAED,wBAAgB,8BAA8B,CAAC,MAAM,SAAS,MAAM,EAAE,MAAM,EAAE,aAAa,CAAC,MAAM,CAAC,GAAG,IAAI,CAqBzG;AAED,wBAAgB,aAAa,CAAC,MAAM,SAAS,MAAM,EAAE,MAAM,EAAE,aAAa,CAAC,MAAM,CAAC,GAAG,MAAM,CAO1F;AAED;;GAEG;AACH,wBAAgB,2BAA2B,CAAC,MAAM,SAAS,MAAM,EAAE,MAAM,EAAE,UAAU,CAAC,MAAM,CAAC,GAAG,QAAQ,CAAC,SAAS,CAAC,CAGlH;AAED;;GAEG;AACH,wBAAgB,4BAA4B,CAAC,MAAM,SAAS,MAAM,EAChE,MAAM,EAAE,aAAa,CAAC,MAAM,CAAC,GAC5B,QAAQ,CAAC,SAAS,CAAC,CAGrB;AAED,wBAAgB,YAAY,CAAC,MAAM,SAAS,MAAM,EAAE,MAAM,EAAE,aAAa,CAAC,MAAM,CAAC,GAAG,MAAM,CAOzF;AAED;;GAEG;AACH,wBAAgB,2BAA2B,CAAC,MAAM,SAAS,MAAM,EAAE,MAAM,EAAE,aAAa,CAAC,MAAM,CAAC,GAAG,QAAQ,CAAC,SAAS,CAAC,CAGrH;AAED,wBAAgB,aAAa,CAAC,MAAM,SAAS,MAAM,EAAE,MAAM,EAAE,aAAa,CAAC,MAAM,CAAC,EAAE,KAAK,EAAE,MAAM,GAAG,IAAI,CAcvG;AAED,wBAAgB,YAAY,CAAC,MAAM,SAAS,MAAM,EAAE,MAAM,EAAE,aAAa,CAAC,MAAM,CAAC,EAAE,KAAK,EAAE,MAAM,GAAG,IAAI,CActG"}
|
package/dist/boundsRectangle.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { getEntityRuntime } from '@flighthq/entity/contract';
|
|
2
|
-
import { acquireMatrix, copyRectangle, createRectangle, inverseMatrix, matrixTransformRectangle, mergeRectangle, releaseMatrix, } from '@flighthq/geometry/contract';
|
|
2
|
+
import { acquireMatrix, copyMatrix, copyRectangle, createRectangle, inverseMatrix, matrixTransformRectangle, mergeRectangle, multiplyMatrix, releaseMatrix, setEmptyRectangle, } from '@flighthq/geometry/contract';
|
|
3
3
|
import { getNodeChildCount, getNodeParent } from './hierarchy';
|
|
4
4
|
import { getNodeRuntime } from './node';
|
|
5
5
|
import { ensureNodeWorldMatrix, getNodeLocalMatrix, getNodeWorldMatrix } from './nodeTransform2d';
|
|
@@ -12,11 +12,7 @@ export function computeNodeBoundsRectangle(out, source, targetCoordinateSpace) {
|
|
|
12
12
|
if (!targetCoordinateSpace)
|
|
13
13
|
targetCoordinateSpace = source;
|
|
14
14
|
let bounds;
|
|
15
|
-
if (
|
|
16
|
-
// if target has no parent, use world bounds
|
|
17
|
-
bounds = getNodeWorldBoundsRectangle(source);
|
|
18
|
-
}
|
|
19
|
-
else if (getNodeChildCount(source) === 0) {
|
|
15
|
+
if (getNodeChildCount(source) === 0) {
|
|
20
16
|
// only world bounds considers children
|
|
21
17
|
if (targetCoordinateSpace === source) {
|
|
22
18
|
// fast path, return local bounds for self
|
|
@@ -39,22 +35,38 @@ export function computeNodeBoundsRectangle(out, source, targetCoordinateSpace) {
|
|
|
39
35
|
copyRectangle(out, bounds);
|
|
40
36
|
}
|
|
41
37
|
}
|
|
38
|
+
/**
|
|
39
|
+
* Writes the tight bounds of `root` and its enabled descendants in a coordinate system where the
|
|
40
|
+
* root's own local transform is identity. A child's transform is still relative to the root and
|
|
41
|
+
* nested transforms compose normally.
|
|
42
|
+
*
|
|
43
|
+
* This differs intentionally from computeNodeBoundsRectangle(out, root, root): that helper transforms
|
|
44
|
+
* an axis-aligned world box back into root space, which cannot recover tight bounds after a root
|
|
45
|
+
* rotation. Offscreen subtree capture uses this contract together with
|
|
46
|
+
* computeScene2DRenderTargetTransform so the root transform cancels exactly.
|
|
47
|
+
*/
|
|
48
|
+
export function computeNodeRootLocalBoundsRectangle(out, root) {
|
|
49
|
+
setEmptyRectangle(out);
|
|
50
|
+
mergeRootLocalBounds(out, root, null);
|
|
51
|
+
}
|
|
42
52
|
export function ensureNodeLocalBoundsRectangle(target) {
|
|
43
53
|
const runtime = getEntityRuntime(target);
|
|
44
|
-
if (
|
|
54
|
+
if (!isNodeLocalBoundsRectangleValid(target, runtime)) {
|
|
45
55
|
recomputeLocalBoundsRectangle(target, runtime);
|
|
46
56
|
}
|
|
47
57
|
}
|
|
48
58
|
export function ensureNodeParentBoundsRectangle(target) {
|
|
49
59
|
const runtime = getEntityRuntime(target);
|
|
50
|
-
if (
|
|
60
|
+
if (!isNodeLocalBoundsRectangleValid(target, runtime) ||
|
|
61
|
+
runtime.boundsUsingLocalBoundsId !== runtime.localBoundsId ||
|
|
51
62
|
runtime.boundsUsingLocalTransformId !== runtime.localTransformId) {
|
|
52
63
|
recomputeNodeBoundsRectangle(target, runtime);
|
|
53
64
|
}
|
|
54
65
|
}
|
|
55
66
|
export function ensureNodeWorldBoundsRectangle(target) {
|
|
56
67
|
const runtime = getEntityRuntime(target);
|
|
57
|
-
const localBoundsInvalid = runtime
|
|
68
|
+
const localBoundsInvalid = !isNodeLocalBoundsRectangleValid(target, runtime) ||
|
|
69
|
+
runtime.worldBoundsUsingLocalBoundsId !== runtime.localBoundsId;
|
|
58
70
|
const hasChildren = getNodeChildCount(target) !== 0;
|
|
59
71
|
let forceRecompute = false;
|
|
60
72
|
if (!hasChildren && !localBoundsInvalid) {
|
|
@@ -63,7 +75,11 @@ export function ensureNodeWorldBoundsRectangle(target) {
|
|
|
63
75
|
forceRecompute = true;
|
|
64
76
|
}
|
|
65
77
|
ensureNodeWorldMatrix(target);
|
|
66
|
-
|
|
78
|
+
const childBoundsChanged = hasChildren && ensureNodeChildWorldBoundsRectangles(target);
|
|
79
|
+
if (forceRecompute ||
|
|
80
|
+
localBoundsInvalid ||
|
|
81
|
+
childBoundsChanged ||
|
|
82
|
+
runtime.worldBoundsUsingWorldTransformId !== runtime.worldTransformId) {
|
|
67
83
|
recomputeWorldBoundsRectangle(target, runtime);
|
|
68
84
|
}
|
|
69
85
|
}
|
|
@@ -99,13 +115,37 @@ export function getNodeWorldBoundsRectangle(target) {
|
|
|
99
115
|
export function setNodeHeight(target, value) {
|
|
100
116
|
if (target.scaleY === 0)
|
|
101
117
|
return;
|
|
102
|
-
|
|
118
|
+
const bounds = getNodeLocalBoundsRectangle(target);
|
|
119
|
+
const matrix = getNodeLocalMatrix(target);
|
|
120
|
+
const scaleYFactor = Math.abs(matrix.d / target.scaleY);
|
|
121
|
+
const localHeight = Math.abs(bounds.height);
|
|
122
|
+
// This setter is the inverse of getNodeHeight's parent-space AABB measurement. The perpendicular
|
|
123
|
+
// scale contributes a fixed term, so width/height setters intentionally do not commute.
|
|
124
|
+
if (scaleYFactor <= SINGULAR_AXIS_EPSILON || localHeight === 0)
|
|
125
|
+
return;
|
|
126
|
+
const fixedXTerm = Math.abs(matrix.b) * Math.abs(bounds.width);
|
|
127
|
+
const adjustableHeight = value - fixedXTerm;
|
|
128
|
+
if (adjustableHeight < 0)
|
|
129
|
+
return;
|
|
130
|
+
target.scaleY = Math.sign(target.scaleY) * (adjustableHeight / (scaleYFactor * localHeight));
|
|
103
131
|
invalidateNodeLocalTransform(target);
|
|
104
132
|
}
|
|
105
133
|
export function setNodeWidth(target, value) {
|
|
106
134
|
if (target.scaleX === 0)
|
|
107
135
|
return;
|
|
108
|
-
|
|
136
|
+
const bounds = getNodeLocalBoundsRectangle(target);
|
|
137
|
+
const matrix = getNodeLocalMatrix(target);
|
|
138
|
+
const scaleXFactor = Math.abs(matrix.a / target.scaleX);
|
|
139
|
+
const localWidth = Math.abs(bounds.width);
|
|
140
|
+
// This setter is the inverse of getNodeWidth's parent-space AABB measurement. The perpendicular
|
|
141
|
+
// scale contributes a fixed term, so width/height setters intentionally do not commute.
|
|
142
|
+
if (scaleXFactor <= SINGULAR_AXIS_EPSILON || localWidth === 0)
|
|
143
|
+
return;
|
|
144
|
+
const fixedYTerm = Math.abs(matrix.c) * Math.abs(bounds.height);
|
|
145
|
+
const adjustableWidth = value - fixedYTerm;
|
|
146
|
+
if (adjustableWidth < 0)
|
|
147
|
+
return;
|
|
148
|
+
target.scaleX = Math.sign(target.scaleX) * (adjustableWidth / (scaleXFactor * localWidth));
|
|
109
149
|
invalidateNodeLocalTransform(target);
|
|
110
150
|
}
|
|
111
151
|
function recomputeNodeBoundsRectangle(target, runtime) {
|
|
@@ -115,6 +155,62 @@ function recomputeNodeBoundsRectangle(target, runtime) {
|
|
|
115
155
|
runtime.boundsUsingLocalBoundsId = runtime.localBoundsId;
|
|
116
156
|
runtime.boundsUsingLocalTransformId = runtime.localTransformId;
|
|
117
157
|
}
|
|
158
|
+
function isNodeLocalBoundsRectangleValid(target, runtime) {
|
|
159
|
+
return (runtime.localBoundsUsingLocalBoundsId === runtime.localBoundsId &&
|
|
160
|
+
(runtime.isLocalBoundsRectangleValid?.(target) ?? true));
|
|
161
|
+
}
|
|
162
|
+
function ensureNodeChildWorldBoundsRectangles(target) {
|
|
163
|
+
const children = getNodeRuntime(target).children;
|
|
164
|
+
if (children === null)
|
|
165
|
+
return false;
|
|
166
|
+
let changed = false;
|
|
167
|
+
for (const child of children) {
|
|
168
|
+
if (!child.enabled)
|
|
169
|
+
continue;
|
|
170
|
+
const childNode = child;
|
|
171
|
+
const runtime = getNodeRuntime(childNode);
|
|
172
|
+
const previous = runtime.worldBoundsRectangle;
|
|
173
|
+
const previousX = previous?.x;
|
|
174
|
+
const previousY = previous?.y;
|
|
175
|
+
const previousWidth = previous?.width;
|
|
176
|
+
const previousHeight = previous?.height;
|
|
177
|
+
ensureNodeWorldBoundsRectangle(childNode);
|
|
178
|
+
const current = runtime.worldBoundsRectangle;
|
|
179
|
+
if (previous === null ||
|
|
180
|
+
current.x !== previousX ||
|
|
181
|
+
current.y !== previousY ||
|
|
182
|
+
current.width !== previousWidth ||
|
|
183
|
+
current.height !== previousHeight) {
|
|
184
|
+
changed = true;
|
|
185
|
+
}
|
|
186
|
+
}
|
|
187
|
+
return changed;
|
|
188
|
+
}
|
|
189
|
+
function mergeRootLocalBounds(out, node, transform) {
|
|
190
|
+
const localBounds = getNodeLocalBoundsRectangle(node);
|
|
191
|
+
if (transform === null) {
|
|
192
|
+
copyRectangle(_rootLocalNodeBounds, localBounds);
|
|
193
|
+
}
|
|
194
|
+
else {
|
|
195
|
+
matrixTransformRectangle(_rootLocalNodeBounds, transform, localBounds);
|
|
196
|
+
}
|
|
197
|
+
mergeRectangle(out, out, _rootLocalNodeBounds);
|
|
198
|
+
const children = getNodeRuntime(node).children;
|
|
199
|
+
if (children === null)
|
|
200
|
+
return;
|
|
201
|
+
for (const child of children) {
|
|
202
|
+
if (!child.enabled)
|
|
203
|
+
continue;
|
|
204
|
+
const childTransform = acquireMatrix();
|
|
205
|
+
const childLocal = getNodeLocalMatrix(child);
|
|
206
|
+
if (transform === null)
|
|
207
|
+
copyMatrix(childTransform, childLocal);
|
|
208
|
+
else
|
|
209
|
+
multiplyMatrix(childTransform, transform, childLocal);
|
|
210
|
+
mergeRootLocalBounds(out, child, childTransform);
|
|
211
|
+
releaseMatrix(childTransform);
|
|
212
|
+
}
|
|
213
|
+
}
|
|
118
214
|
function recomputeLocalBoundsRectangle(target, runtime) {
|
|
119
215
|
if (runtime.localBoundsRectangle === null)
|
|
120
216
|
runtime.localBoundsRectangle = createRectangle();
|
|
@@ -157,4 +253,6 @@ function tryFastRecomputeWorldBoundsRectangle(target, runtime) {
|
|
|
157
253
|
return false;
|
|
158
254
|
}
|
|
159
255
|
const _tempBoundsRectangle = createRectangle();
|
|
256
|
+
const _rootLocalNodeBounds = createRectangle();
|
|
257
|
+
const SINGULAR_AXIS_EPSILON = 1e-12;
|
|
160
258
|
//# sourceMappingURL=boundsRectangle.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"boundsRectangle.js","sourceRoot":"","sources":["../src/boundsRectangle.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,2BAA2B,CAAC;AAC7D,OAAO,EACL,aAAa,EACb,aAAa,EACb,eAAe,EACf,aAAa,EACb,wBAAwB,EACxB,cAAc,EACd,aAAa,
|
|
1
|
+
{"version":3,"file":"boundsRectangle.js","sourceRoot":"","sources":["../src/boundsRectangle.ts"],"names":[],"mappings":"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"}
|
package/dist/contract.d.ts
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
export * from './boundsRectangle';
|
|
2
|
+
export * from './enableNodeGuards';
|
|
2
3
|
export * from './hasAppearance';
|
|
3
4
|
export * from './hasBlendMode';
|
|
4
5
|
export * from './hasBoundsRectangle';
|
|
@@ -9,6 +10,7 @@ export * from './hasTransform3d';
|
|
|
9
10
|
export * from './hierarchy';
|
|
10
11
|
export * from './node';
|
|
11
12
|
export * from './nodeColorAdjustment';
|
|
13
|
+
export * from './nodeOrderList';
|
|
12
14
|
export * from './revision';
|
|
13
15
|
export * from './nodeTransform2d';
|
|
14
16
|
export * from './stageFit';
|
package/dist/contract.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"contract.d.ts","sourceRoot":"","sources":["../src/contract.ts"],"names":[],"mappings":"AAAA,cAAc,mBAAmB,CAAC;AAClC,cAAc,iBAAiB,CAAC;AAChC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,sBAAsB,CAAC;AACrC,cAAc,WAAW,CAAC;AAC1B,cAAc,eAAe,CAAC;AAC9B,cAAc,kBAAkB,CAAC;AACjC,cAAc,kBAAkB,CAAC;AACjC,cAAc,aAAa,CAAC;AAC5B,cAAc,QAAQ,CAAC;AACvB,cAAc,uBAAuB,CAAC;AACtC,cAAc,YAAY,CAAC;AAC3B,cAAc,mBAAmB,CAAC;AAClC,cAAc,YAAY,CAAC;AAC3B,cAAc,mBAAmB,CAAC;AAClC,cAAc,aAAa,CAAC;AAC5B,cAAc,YAAY,CAAC"}
|
|
1
|
+
{"version":3,"file":"contract.d.ts","sourceRoot":"","sources":["../src/contract.ts"],"names":[],"mappings":"AAAA,cAAc,mBAAmB,CAAC;AAClC,cAAc,oBAAoB,CAAC;AACnC,cAAc,iBAAiB,CAAC;AAChC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,sBAAsB,CAAC;AACrC,cAAc,WAAW,CAAC;AAC1B,cAAc,eAAe,CAAC;AAC9B,cAAc,kBAAkB,CAAC;AACjC,cAAc,kBAAkB,CAAC;AACjC,cAAc,aAAa,CAAC;AAC5B,cAAc,QAAQ,CAAC;AACvB,cAAc,uBAAuB,CAAC;AACtC,cAAc,iBAAiB,CAAC;AAChC,cAAc,YAAY,CAAC;AAC3B,cAAc,mBAAmB,CAAC;AAClC,cAAc,YAAY,CAAC;AAC3B,cAAc,mBAAmB,CAAC;AAClC,cAAc,aAAa,CAAC;AAC5B,cAAc,YAAY,CAAC"}
|
package/dist/contract.js
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
export * from './boundsRectangle';
|
|
2
|
+
export * from './enableNodeGuards';
|
|
2
3
|
export * from './hasAppearance';
|
|
3
4
|
export * from './hasBlendMode';
|
|
4
5
|
export * from './hasBoundsRectangle';
|
|
@@ -9,6 +10,7 @@ export * from './hasTransform3d';
|
|
|
9
10
|
export * from './hierarchy';
|
|
10
11
|
export * from './node';
|
|
11
12
|
export * from './nodeColorAdjustment';
|
|
13
|
+
export * from './nodeOrderList';
|
|
12
14
|
export * from './revision';
|
|
13
15
|
export * from './nodeTransform2d';
|
|
14
16
|
export * from './stageFit';
|
package/dist/contract.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"contract.js","sourceRoot":"","sources":["../src/contract.ts"],"names":[],"mappings":"AAAA,cAAc,mBAAmB,CAAC;AAClC,cAAc,iBAAiB,CAAC;AAChC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,sBAAsB,CAAC;AACrC,cAAc,WAAW,CAAC;AAC1B,cAAc,eAAe,CAAC;AAC9B,cAAc,kBAAkB,CAAC;AACjC,cAAc,kBAAkB,CAAC;AACjC,cAAc,aAAa,CAAC;AAC5B,cAAc,QAAQ,CAAC;AACvB,cAAc,uBAAuB,CAAC;AACtC,cAAc,YAAY,CAAC;AAC3B,cAAc,mBAAmB,CAAC;AAClC,cAAc,YAAY,CAAC;AAC3B,cAAc,mBAAmB,CAAC;AAClC,cAAc,aAAa,CAAC;AAC5B,cAAc,YAAY,CAAC"}
|
|
1
|
+
{"version":3,"file":"contract.js","sourceRoot":"","sources":["../src/contract.ts"],"names":[],"mappings":"AAAA,cAAc,mBAAmB,CAAC;AAClC,cAAc,oBAAoB,CAAC;AACnC,cAAc,iBAAiB,CAAC;AAChC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,sBAAsB,CAAC;AACrC,cAAc,WAAW,CAAC;AAC1B,cAAc,eAAe,CAAC;AAC9B,cAAc,kBAAkB,CAAC;AACjC,cAAc,kBAAkB,CAAC;AACjC,cAAc,aAAa,CAAC;AAC5B,cAAc,QAAQ,CAAC;AACvB,cAAc,uBAAuB,CAAC;AACtC,cAAc,iBAAiB,CAAC;AAChC,cAAc,YAAY,CAAC;AAC3B,cAAc,mBAAmB,CAAC;AAClC,cAAc,YAAY,CAAC;AAC3B,cAAc,mBAAmB,CAAC;AAClC,cAAc,aAAa,CAAC;AAC5B,cAAc,YAAY,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"enableNodeGuards.d.ts","sourceRoot":"","sources":["../src/enableNodeGuards.ts"],"names":[],"mappings":"AAMA,wBAAgB,oBAAoB,IAAI,OAAO,CAE9C;AAED,wBAAgB,iBAAiB,IAAI,IAAI,CAGxC;AAKD,wBAAgB,gBAAgB,IAAI,IAAI,CAGvC"}
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
import { logOnce } from '@flighthq/log/contract';
|
|
2
|
+
import { LogLevel } from '@flighthq/types/contract';
|
|
3
|
+
import { setReparentNodeGuard } from './hierarchy';
|
|
4
|
+
export function areNodeGuardsEnabled() {
|
|
5
|
+
return nodeGuardsEnabled;
|
|
6
|
+
}
|
|
7
|
+
export function disableNodeGuards() {
|
|
8
|
+
setReparentNodeGuard(null);
|
|
9
|
+
nodeGuardsEnabled = false;
|
|
10
|
+
}
|
|
11
|
+
// Installs opt-in diagnostics for graph operations that decline rather than invent a result. The core
|
|
12
|
+
// modules stay message-free, so an application that omits this one sheds both the text and
|
|
13
|
+
// @flighthq/log.
|
|
14
|
+
export function enableNodeGuards() {
|
|
15
|
+
setReparentNodeGuard(warnOnDeclinedReparent);
|
|
16
|
+
nodeGuardsEnabled = true;
|
|
17
|
+
}
|
|
18
|
+
// `reparentNode` returning false is a complete no-op, so a caller that ignores the return sees a child
|
|
19
|
+
// that simply did not move — no error, no partial state, and nothing to attribute it to. That silence
|
|
20
|
+
// is the point of the design and the reason it needs a guard.
|
|
21
|
+
function warnOnDeclinedReparent(child, newParent) {
|
|
22
|
+
logOnce(`node:reparent-singular-parent:${newParent.name ?? '<unnamed>'}`, LogLevel.Warn, {
|
|
23
|
+
child: child.name ?? '<unnamed>',
|
|
24
|
+
message: 'reparentNode: the new parent has no invertible world matrix, so no local transform could preserve the child’s world transform — nothing was changed. A zero scale on the parent or an ancestor is the usual cause; use addNodeChild to attach without preserving world position.',
|
|
25
|
+
newParent: newParent.name ?? '<unnamed>',
|
|
26
|
+
});
|
|
27
|
+
}
|
|
28
|
+
let nodeGuardsEnabled = false;
|
|
29
|
+
//# sourceMappingURL=enableNodeGuards.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"enableNodeGuards.js","sourceRoot":"","sources":["../src/enableNodeGuards.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,wBAAwB,CAAC;AAEjD,OAAO,EAAE,QAAQ,EAAE,MAAM,0BAA0B,CAAC;AAEpD,OAAO,EAAE,oBAAoB,EAAE,MAAM,aAAa,CAAC;AAEnD,MAAM,UAAU,oBAAoB;IAClC,OAAO,iBAAiB,CAAC;AAC3B,CAAC;AAED,MAAM,UAAU,iBAAiB;IAC/B,oBAAoB,CAAC,IAAI,CAAC,CAAC;IAC3B,iBAAiB,GAAG,KAAK,CAAC;AAC5B,CAAC;AAED,sGAAsG;AACtG,2FAA2F;AAC3F,iBAAiB;AACjB,MAAM,UAAU,gBAAgB;IAC9B,oBAAoB,CAAC,sBAAsB,CAAC,CAAC;IAC7C,iBAAiB,GAAG,IAAI,CAAC;AAC3B,CAAC;AAED,uGAAuG;AACvG,sGAAsG;AACtG,8DAA8D;AAC9D,SAAS,sBAAsB,CAAC,KAAW,EAAE,SAAe;IAC1D,OAAO,CAAC,iCAAiC,SAAS,CAAC,IAAI,IAAI,WAAW,EAAE,EAAE,QAAQ,CAAC,IAAI,EAAE;QACvF,KAAK,EAAE,KAAK,CAAC,IAAI,IAAI,WAAW;QAChC,OAAO,EACL,kRAAkR;QACpR,SAAS,EAAE,SAAS,CAAC,IAAI,IAAI,WAAW;KACzC,CAAC,CAAC;AACL,CAAC;AAED,IAAI,iBAAiB,GAAG,KAAK,CAAC"}
|
package/dist/hasAppearance.d.ts
CHANGED
|
@@ -1,3 +1,4 @@
|
|
|
1
|
-
import type { HasAppearance } from '@flighthq/types/contract';
|
|
1
|
+
import type { HasAppearance, HasAppearanceRuntime } from '@flighthq/types/contract';
|
|
2
|
+
export declare function initAppearanceRuntimeTrait(target: HasAppearanceRuntime): void;
|
|
2
3
|
export declare function initAppearanceTrait(target: HasAppearance, obj?: Readonly<Partial<HasAppearance>>): void;
|
|
3
4
|
//# sourceMappingURL=hasAppearance.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"hasAppearance.d.ts","sourceRoot":"","sources":["../src/hasAppearance.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC;
|
|
1
|
+
{"version":3,"file":"hasAppearance.d.ts","sourceRoot":"","sources":["../src/hasAppearance.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,oBAAoB,EAAE,MAAM,0BAA0B,CAAC;AAMpF,wBAAgB,0BAA0B,CAAC,MAAM,EAAE,oBAAoB,GAAG,IAAI,CAK7E;AAED,wBAAgB,mBAAmB,CAAC,MAAM,EAAE,aAAa,EAAE,GAAG,CAAC,EAAE,QAAQ,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC,GAAG,IAAI,CAGvG"}
|
package/dist/hasAppearance.js
CHANGED
|
@@ -1,3 +1,13 @@
|
|
|
1
|
+
// Resets the resolved-appearance cache for graph families that resolve appearance on the node (the 3D
|
|
2
|
+
// scene graph — see ensureNode3DWorldAlpha). The `-1` stamps are sentinels no live revision takes, so
|
|
3
|
+
// the first resolve always recomputes; `worldAppearanceId` starts at 0, the fresh-runtime value a
|
|
4
|
+
// child stores before its parent has ever resolved.
|
|
5
|
+
export function initAppearanceRuntimeTrait(target) {
|
|
6
|
+
target.worldAlpha = null;
|
|
7
|
+
target.worldAlphaUsingAppearanceId = -1;
|
|
8
|
+
target.worldAlphaUsingParentAppearanceId = -1;
|
|
9
|
+
target.worldAppearanceId = 0;
|
|
10
|
+
}
|
|
1
11
|
export function initAppearanceTrait(target, obj) {
|
|
2
12
|
target.alpha = obj?.alpha ?? 1;
|
|
3
13
|
target.visible = obj?.visible ?? true;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"hasAppearance.js","sourceRoot":"","sources":["../src/hasAppearance.ts"],"names":[],"mappings":"AAEA,MAAM,UAAU,mBAAmB,CAAC,MAAqB,EAAE,GAAsC;IAC/F,MAAM,CAAC,KAAK,GAAG,GAAG,EAAE,KAAK,IAAI,CAAC,CAAC;IAC/B,MAAM,CAAC,OAAO,GAAG,GAAG,EAAE,OAAO,IAAI,IAAI,CAAC;AACxC,CAAC"}
|
|
1
|
+
{"version":3,"file":"hasAppearance.js","sourceRoot":"","sources":["../src/hasAppearance.ts"],"names":[],"mappings":"AAEA,sGAAsG;AACtG,sGAAsG;AACtG,kGAAkG;AAClG,oDAAoD;AACpD,MAAM,UAAU,0BAA0B,CAAC,MAA4B;IACrE,MAAM,CAAC,UAAU,GAAG,IAAI,CAAC;IACzB,MAAM,CAAC,2BAA2B,GAAG,CAAC,CAAC,CAAC;IACxC,MAAM,CAAC,iCAAiC,GAAG,CAAC,CAAC,CAAC;IAC9C,MAAM,CAAC,iBAAiB,GAAG,CAAC,CAAC;AAC/B,CAAC;AAED,MAAM,UAAU,mBAAmB,CAAC,MAAqB,EAAE,GAAsC;IAC/F,MAAM,CAAC,KAAK,GAAG,GAAG,EAAE,KAAK,IAAI,CAAC,CAAC;IAC/B,MAAM,CAAC,OAAO,GAAG,GAAG,EAAE,OAAO,IAAI,IAAI,CAAC;AACxC,CAAC"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import type { BoundsNodeAny, HasBoundsRectangle, HasBoundsRectangleRuntime, MethodsOf, Rectangle } from '@flighthq/types/contract';
|
|
2
2
|
export declare function defaultComputeLocalBoundsRectangle(_out: Rectangle, _source: Readonly<BoundsNodeAny>): void;
|
|
3
|
-
export declare function initBoundsRectangleRuntimeTrait(target: HasBoundsRectangleRuntime, methods?: Readonly<Partial<MethodsOf<HasBoundsRectangleRuntime>>>): void;
|
|
3
|
+
export declare function initBoundsRectangleRuntimeTrait(target: HasBoundsRectangleRuntime, methods?: Readonly<Partial<MethodsOf<HasBoundsRectangleRuntime> & Pick<HasBoundsRectangleRuntime, 'isLocalBoundsRectangleValid'>>>): void;
|
|
4
4
|
export declare function initBoundsRectangleTrait(_target: HasBoundsRectangle, _obj?: Readonly<Partial<HasBoundsRectangle>>): void;
|
|
5
5
|
//# sourceMappingURL=hasBoundsRectangle.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"hasBoundsRectangle.d.ts","sourceRoot":"","sources":["../src/hasBoundsRectangle.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,aAAa,EACb,kBAAkB,EAClB,yBAAyB,EACzB,SAAS,EACT,SAAS,EACV,MAAM,0BAA0B,CAAC;AAElC,wBAAgB,kCAAkC,CAAC,IAAI,EAAE,SAAS,EAAE,OAAO,EAAE,QAAQ,CAAC,aAAa,CAAC,QAAI;AAExG,wBAAgB,+BAA+B,CAC7C,MAAM,EAAE,yBAAyB,EACjC,OAAO,CAAC,EAAE,QAAQ,
|
|
1
|
+
{"version":3,"file":"hasBoundsRectangle.d.ts","sourceRoot":"","sources":["../src/hasBoundsRectangle.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,aAAa,EACb,kBAAkB,EAClB,yBAAyB,EACzB,SAAS,EACT,SAAS,EACV,MAAM,0BAA0B,CAAC;AAElC,wBAAgB,kCAAkC,CAAC,IAAI,EAAE,SAAS,EAAE,OAAO,EAAE,QAAQ,CAAC,aAAa,CAAC,QAAI;AAExG,wBAAgB,+BAA+B,CAC7C,MAAM,EAAE,yBAAyB,EACjC,OAAO,CAAC,EAAE,QAAQ,CAChB,OAAO,CAAC,SAAS,CAAC,yBAAyB,CAAC,GAAG,IAAI,CAAC,yBAAyB,EAAE,6BAA6B,CAAC,CAAC,CAC/G,GACA,IAAI,CAMN;AAMD,wBAAgB,wBAAwB,CACtC,OAAO,EAAE,kBAAkB,EAC3B,IAAI,CAAC,EAAE,QAAQ,CAAC,OAAO,CAAC,kBAAkB,CAAC,CAAC,GAC3C,IAAI,CAAG"}
|
|
@@ -4,6 +4,11 @@ export function initBoundsRectangleRuntimeTrait(target, methods) {
|
|
|
4
4
|
target.localBoundsRectangle = null;
|
|
5
5
|
target.worldBoundsRectangle = null;
|
|
6
6
|
target.computeLocalBoundsRectangle = methods?.computeLocalBoundsRectangle ?? defaultComputeLocalBoundsRectangle;
|
|
7
|
+
target.isLocalBoundsRectangleValid = methods?.isLocalBoundsRectangleValid ?? null;
|
|
7
8
|
}
|
|
9
|
+
// Deliberately empty: `HasBoundsRectangle` carries no entity fields today (its state lives entirely on
|
|
10
|
+
// the runtime tier). Kept rather than deleted as dead code so every trait has a real init to call — a
|
|
11
|
+
// composition site that hand-inlines a trait's setup instead of calling its init is how a trait's
|
|
12
|
+
// sentinels drift out of sync with the package that owns them.
|
|
8
13
|
export function initBoundsRectangleTrait(_target, _obj) { }
|
|
9
14
|
//# sourceMappingURL=hasBoundsRectangle.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"hasBoundsRectangle.js","sourceRoot":"","sources":["../src/hasBoundsRectangle.ts"],"names":[],"mappings":"AAQA,MAAM,UAAU,kCAAkC,CAAC,IAAe,EAAE,OAAgC,IAAG,CAAC;AAExG,MAAM,UAAU,+BAA+B,CAC7C,MAAiC,EACjC,
|
|
1
|
+
{"version":3,"file":"hasBoundsRectangle.js","sourceRoot":"","sources":["../src/hasBoundsRectangle.ts"],"names":[],"mappings":"AAQA,MAAM,UAAU,kCAAkC,CAAC,IAAe,EAAE,OAAgC,IAAG,CAAC;AAExG,MAAM,UAAU,+BAA+B,CAC7C,MAAiC,EACjC,OAEC;IAED,MAAM,CAAC,eAAe,GAAG,IAAI,CAAC;IAC9B,MAAM,CAAC,oBAAoB,GAAG,IAAI,CAAC;IACnC,MAAM,CAAC,oBAAoB,GAAG,IAAI,CAAC;IACnC,MAAM,CAAC,2BAA2B,GAAG,OAAO,EAAE,2BAA2B,IAAI,kCAAkC,CAAC;IAChH,MAAM,CAAC,2BAA2B,GAAG,OAAO,EAAE,2BAA2B,IAAI,IAAI,CAAC;AACpF,CAAC;AAED,uGAAuG;AACvG,sGAAsG;AACtG,kGAAkG;AAClG,+DAA+D;AAC/D,MAAM,UAAU,wBAAwB,CACtC,OAA2B,EAC3B,IAA4C,IACrC,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"hasTransform3d.d.ts","sourceRoot":"","sources":["../src/hasTransform3d.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,cAAc,EAAE,qBAAqB,EAAE,MAAM,0BAA0B,CAAC;AAEtF,wBAAgB,2BAA2B,CAAC,MAAM,EAAE,qBAAqB,GAAG,IAAI,CAI/E;
|
|
1
|
+
{"version":3,"file":"hasTransform3d.d.ts","sourceRoot":"","sources":["../src/hasTransform3d.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,cAAc,EAAE,qBAAqB,EAAE,MAAM,0BAA0B,CAAC;AAEtF,wBAAgB,2BAA2B,CAAC,MAAM,EAAE,qBAAqB,GAAG,IAAI,CAI/E;AAMD,wBAAgB,oBAAoB,CAAC,MAAM,EAAE,cAAc,EAAE,GAAG,CAAC,EAAE,QAAQ,CAAC,OAAO,CAAC,cAAc,CAAC,CAAC,GAAG,IAAI,CAO1G"}
|
package/dist/hasTransform3d.js
CHANGED
|
@@ -1,12 +1,19 @@
|
|
|
1
|
-
import { createQuaternion, createVector3 } from '@flighthq/geometry/contract';
|
|
1
|
+
import { cloneQuaternion, cloneVector3, createQuaternion, createVector3 } from '@flighthq/geometry/contract';
|
|
2
2
|
export function initTransform3DRuntimeTrait(target) {
|
|
3
3
|
target.localMatrix4 = null;
|
|
4
4
|
target.localMatrix4Detached = false;
|
|
5
5
|
target.worldMatrix4 = null;
|
|
6
6
|
}
|
|
7
|
+
// The node owns its position/rotation/scale storage: values are copied out of `obj` rather than
|
|
8
|
+
// retained, so one options object can seed many nodes and later transform writes (which mutate these
|
|
9
|
+
// in place) never reach back into the caller's `Readonly` input. Mirrors the value semantics of the
|
|
10
|
+
// primitive-field 2D sibling.
|
|
7
11
|
export function initTransform3DTrait(target, obj) {
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
12
|
+
const position = obj?.position;
|
|
13
|
+
const rotation = obj?.rotation;
|
|
14
|
+
const scale = obj?.scale;
|
|
15
|
+
target.position = position !== undefined ? cloneVector3(position) : createVector3();
|
|
16
|
+
target.rotation = rotation !== undefined ? cloneQuaternion(rotation) : createQuaternion();
|
|
17
|
+
target.scale = scale !== undefined ? cloneVector3(scale) : createVector3(1, 1, 1);
|
|
11
18
|
}
|
|
12
19
|
//# sourceMappingURL=hasTransform3d.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"hasTransform3d.js","sourceRoot":"","sources":["../src/hasTransform3d.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,aAAa,EAAE,MAAM,6BAA6B,CAAC;
|
|
1
|
+
{"version":3,"file":"hasTransform3d.js","sourceRoot":"","sources":["../src/hasTransform3d.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,YAAY,EAAE,gBAAgB,EAAE,aAAa,EAAE,MAAM,6BAA6B,CAAC;AAG7G,MAAM,UAAU,2BAA2B,CAAC,MAA6B;IACvE,MAAM,CAAC,YAAY,GAAG,IAAI,CAAC;IAC3B,MAAM,CAAC,oBAAoB,GAAG,KAAK,CAAC;IACpC,MAAM,CAAC,YAAY,GAAG,IAAI,CAAC;AAC7B,CAAC;AAED,gGAAgG;AAChG,qGAAqG;AACrG,oGAAoG;AACpG,8BAA8B;AAC9B,MAAM,UAAU,oBAAoB,CAAC,MAAsB,EAAE,GAAuC;IAClG,MAAM,QAAQ,GAAG,GAAG,EAAE,QAAQ,CAAC;IAC/B,MAAM,QAAQ,GAAG,GAAG,EAAE,QAAQ,CAAC;IAC/B,MAAM,KAAK,GAAG,GAAG,EAAE,KAAK,CAAC;IACzB,MAAM,CAAC,QAAQ,GAAG,QAAQ,KAAK,SAAS,CAAC,CAAC,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,aAAa,EAAE,CAAC;IACpF,MAAM,CAAC,QAAQ,GAAG,QAAQ,KAAK,SAAS,CAAC,CAAC,CAAC,eAAe,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,gBAAgB,EAAE,CAAC;IAC1F,MAAM,CAAC,KAAK,GAAG,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;AACpF,CAAC"}
|
package/dist/hierarchy.d.ts
CHANGED
|
@@ -89,15 +89,22 @@ export declare function removeNodeChildAt<Traits extends object>(target: Node<Tr
|
|
|
89
89
|
**/
|
|
90
90
|
export declare function removeNodeChildren<Traits extends object>(target: Node<Traits>, beginIndex?: number, endIndex?: number): void;
|
|
91
91
|
/**
|
|
92
|
-
* Moves a child to a new parent while preserving its world-space position
|
|
93
|
-
* The child's local
|
|
94
|
-
*
|
|
95
|
-
*
|
|
92
|
+
* Moves a child to a new parent while preserving its world-space position, and reports whether it
|
|
93
|
+
* did. The child's local transform fields are recomputed so its effective world transform remains
|
|
94
|
+
* unchanged. Its pivot is preserved; rotation and skew may be reparameterized because a general
|
|
95
|
+
* affine matrix has multiple equivalent decompositions.
|
|
96
96
|
*
|
|
97
|
-
*
|
|
98
|
-
*
|
|
97
|
+
* Returns `false`, having changed NOTHING — neither the attachment nor the transform — when
|
|
98
|
+
* `newParent`'s world matrix has no inverse (a zero scale anywhere in its ancestry). This is not a
|
|
99
|
+
* computation that went wrong: under a singular parent there EXISTS no local transform that would
|
|
100
|
+
* preserve the child's world transform, so there is no right answer to write and inventing one is
|
|
101
|
+
* the defect. Declining whole is what keeps the caller out of a half-applied state it would have to
|
|
102
|
+
* untangle without being told which half happened.
|
|
103
|
+
*
|
|
104
|
+
* To reparent without preserving world position (keeping local TRS unchanged), use addNodeChild
|
|
105
|
+
* instead — that is also the composition to reach for when a caller wants the attachment regardless.
|
|
99
106
|
*/
|
|
100
|
-
export declare function reparentNode<Traits extends object>(child: Transform2DNode<Traits>, newParent: Transform2DNode<Traits>):
|
|
107
|
+
export declare function reparentNode<Traits extends object>(child: Transform2DNode<Traits>, newParent: Transform2DNode<Traits>): boolean;
|
|
101
108
|
/**
|
|
102
109
|
* Replaces `oldChild` with `newChild` at the same index position in `target`'s children. If
|
|
103
110
|
* `oldChild` is not a child of `target`, this is a no-op. If `newChild` is already a child of
|
|
@@ -109,6 +116,7 @@ export declare function replaceNodeChild<Traits extends object>(target: Node<Tra
|
|
|
109
116
|
* This affects the layering of child objects.
|
|
110
117
|
**/
|
|
111
118
|
export declare function setNodeChildIndex<Traits extends object>(target: Node<Traits>, child: Node<Traits>, index: number): void;
|
|
119
|
+
export declare function setReparentNodeGuard(guard: ((child: Node, newParent: Node) => void) | null): void;
|
|
112
120
|
/**
|
|
113
121
|
* Recursively stops the timeline execution of all MovieClips rooted at this object.
|
|
114
122
|
**/
|
package/dist/hierarchy.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"hierarchy.d.ts","sourceRoot":"","sources":["../src/hierarchy.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"hierarchy.d.ts","sourceRoot":"","sources":["../src/hierarchy.ts"],"names":[],"mappings":"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"}
|