Repe [T3DU] Update - 31f26d171bba0355ce2a77031e3aad4c64dbc7e9

This commit is contained in:
2026-09-04 10:46:13 -07:00
parent c915312901
commit 0460b9d587
482 changed files with 27797 additions and 3226 deletions

View File

@ -106,6 +106,7 @@ class Transform {
Rebuild the matrices, if needed.
**/
public function update() {
if (object.constraints != null && object.constraints.length > 0) dirty = true;
if (dirty) buildMatrix();
}
@ -150,12 +151,19 @@ class Transform {
if (boneParent != null) local.multmats(boneParent, local);
if (object.parent != null && !localOnly) {
world.multmats3x4(local, object.parent.transform.world);
// Swap multiplication order for linked objects to keep local transform intact
var swapMult: Bool = object.raw != null && object.parent.raw != null && object.parent.raw.group_ref != null && object.parent.raw.group_ref != "";
var a: Mat4 = swapMult ? object.parent.transform.world : local;
var b: Mat4 = swapMult ? local : object.parent.transform.world;
world.multmats3x4(a, b);
}
else {
world.setFrom(local);
}
// Constraints
if (object.constraints != null) for (c in object.constraints) c.apply(this);
worldUnpack.setFrom(world);
if (scaleWorld != 1.0) {
worldUnpack._00 *= scaleWorld;
@ -172,9 +180,6 @@ class Transform {
worldUnpack._23 *= scaleWorld;
}
// Constraints
if (object.constraints != null) for (c in object.constraints) c.apply(this);
computeDim();
// Update children
@ -265,7 +270,7 @@ class Transform {
}
function computeRadius() {
radius = Math.sqrt(dim.x * dim.x + dim.y * dim.y + dim.z * dim.z);
radius = 0.5 * Math.sqrt(dim.x * dim.x + dim.y * dim.y + dim.z * dim.z);
}
function computeDim() {