Apply hierarchy node transforms relative to parents

This commit is contained in:
2026-09-21 09:11:38 +08:00
parent 63f726dc32
commit a472911ad1
19 changed files with 181 additions and 113 deletions

View File

@@ -7,6 +7,7 @@
"eight GLB parts rendered with studio PMREM lighting and calibrated exposure",
"dragging GLB root tree nodes updates component parent hierarchy",
"origin visibility, numeric translation/rotation and TransformControls mode update",
"internal mesh parent-relative position and rotation survive GLB export without moving its parent",
"validated assembly exports a self-contained managed GLB",
"validated hierarchy applied through LOAD_WORKSPACE with geometry and physical zero in userData",
"same component assembly switches to BC hierarchy and applies BC geometry",

View File

@@ -7,6 +7,7 @@
"eight GLB parts rendered with studio PMREM lighting and calibrated exposure",
"dragging GLB root tree nodes updates component parent hierarchy",
"origin visibility, numeric translation/rotation and TransformControls mode update",
"internal mesh parent-relative position and rotation survive GLB export without moving its parent",
"validated assembly exports a self-contained managed GLB",
"validated hierarchy applied through LOAD_WORKSPACE with geometry and physical zero in userData",
"same component assembly switches to BC hierarchy and applies BC geometry",

Binary file not shown.

Before

Width:  |  Height:  |  Size: 34 KiB

After

Width:  |  Height:  |  Size: 26 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 100 KiB

After

Width:  |  Height:  |  Size: 96 KiB

View File

@@ -8,7 +8,7 @@
"sha256": "bf37130681cc6462412e52744519516e8ade2a3212dd69153c0b1b3e415bcf66"
},
"checks": [
"part translation and rotation inputs update the selected GLB assembly root",
"root and internal node transforms update their local position and posture relative to their parent",
"selected MILL700 joint displays its local XYZ coordinate system at local origin",
"existing 132-node, depth-6 hierarchy displayed as a draggable tree with node origins",
"each joint rotates about its own origin while children inherit parent motion",
@@ -34,26 +34,26 @@
"baseline": {
"base": {
"local": [
0.12,
0.1,
0,
0
],
"localQuaternion": [
0,
0,
0.21643961393810288,
0.9762960071199334
0.17364817766693033,
0.984807753012208
],
"world": [
0.12,
0.1,
0,
0
],
"worldQuaternion": [
0,
0,
0.21643961393810288,
0.9762960071199335
0.17364817766693033,
0.9848077530122079
]
},
"x": {
@@ -69,15 +69,15 @@
1
],
"world": [
-1.7247304318819034,
-0.4850368286962905,
-1.7799844207142423,
-0.3224122661666029,
1.488389492034912
],
"worldQuaternion": [
0,
0,
0.21643961393810288,
0.9762960071199335
0.17364817766693033,
0.9848077530122079
]
},
"y": {
@@ -93,39 +93,39 @@
1
],
"world": [
-1.6419970838670583,
-0.6718512577331518,
-1.7138478483851618,
-0.515726496296395,
1.8940227031707764
],
"worldQuaternion": [
0,
0,
0.21643961393810288,
0.9762960071199335
0.17364817766693033,
0.9848077530122079
]
},
"z": {
"local": [
-0.02080368995666504,
0.12,
-0.9040489196777344,
0.3689253330230713
],
"localQuaternion": [
0,
0,
0,
1
0.21643961393810288,
0.9762960071199334
],
"world": [
-1.2787840471111187,
-1.4999898527864315,
-1.2918817928092583,
-1.3242121777479543,
2.2629480361938477
],
"worldQuaternion": [
0,
0,
0.21643961393810288,
0.9762960071199335
0.38268343236508984,
0.9238795325112867
]
},
"tilt": {
@@ -141,15 +141,15 @@
1
],
"world": [
-1.4729858525275663,
-0.9649055930417467,
-1.571021124066044,
-0.8223959707837081,
0.8832522630691528
],
"worldQuaternion": [
0,
0,
0.21643961393810288,
0.9762960071199335
0.17364817766693033,
0.9848077530122079
]
},
"c": {
@@ -165,41 +165,41 @@
1
],
"world": [
-1.2050917487774973,
-1.5396173432583025,
-1.3542358677161157,
-1.418269278870524,
0.796804666519165
],
"worldQuaternion": [
0,
0,
0.21643961393810288,
0.9762960071199335
0.17364817766693033,
0.9848077530122079
]
}
},
"driven": {
"base": {
"local": [
0.12,
0.1,
0,
0
],
"localQuaternion": [
0,
0,
0.21643961393810288,
0.9762960071199334
0.17364817766693033,
0.984807753012208
],
"world": [
0.12,
0.1,
0,
0
],
"worldQuaternion": [
0,
0,
0.21643961393810288,
0.9762960071199335
0.17364817766693033,
0.9848077530122079
]
},
"x": {
@@ -215,15 +215,15 @@
1
],
"world": [
-1.715667354011537,
-0.48081064607888346,
-1.7705874945063833,
-0.3189920647333462,
1.488389492034912
],
"worldQuaternion": [
0,
0,
0.21643961393810288,
0.9762960071199335
0.17364817766693033,
0.9848077530122079
]
},
"y": {
@@ -239,39 +239,39 @@
1
],
"world": [
-1.641386371231506,
-0.6494989193750118,
-1.7112913250438162,
-0.4935124424474202,
1.8940227031707764
],
"worldQuaternion": [
0,
0,
0.21643961393810288,
0.9762960071199335
0.17364817766693033,
0.9848077530122079
]
},
"z": {
"local": [
-0.02080368995666504,
0.12,
-0.9040489196777344,
0.3989253330230713
],
"localQuaternion": [
0,
0,
0,
1
0.21643961393810288,
0.9762960071199334
],
"world": [
-1.2781733344755664,
-1.4776375144282916,
-1.2893252694679127,
-1.3019981238989793,
2.292948036193848
],
"worldQuaternion": [
0,
0,
0.21643961393810288,
0.9762960071199335
0.38268343236508984,
0.9238795325112867
]
},
"tilt": {
@@ -287,15 +287,15 @@
0.9914448613738104
],
"world": [
-1.4729858525275663,
-0.9649055930417467,
-1.571021124066044,
-0.8223959707837081,
0.8832522630691528
],
"worldQuaternion": [
0.12743220028900526,
0.02825103865291857,
0.21458794303666343,
0.9679436594388271
0.12854320606946854,
0.022665635416815412,
0.1721625934348045,
0.9763825861650425
]
},
"c": {
@@ -311,15 +311,15 @@
0.9238795325112867
],
"world": [
-1.2236785538569896,
-1.4997578111351686,
-1.369277957263005,
-1.3769414774990314,
0.6356376244864839
],
"worldQuaternion": [
0.12854320606946854,
-0.022665635416815422,
0.5686694104253471,
0.812144084994173
0.12743220028900526,
-0.02825103865291858,
0.5327029357136194,
0.8361761150778141
]
}
}

Binary file not shown.

Before

Width:  |  Height:  |  Size: 338 KiB

After

Width:  |  Height:  |  Size: 334 KiB