From ce09e510e94a43bfa70395704933494a157c30df Mon Sep 17 00:00:00 2001 From: Onek8 Date: Thu, 27 Aug 2026 22:41:52 -0700 Subject: [PATCH] Cleanup --- leenkx/Sources/iron/math/Quat.hx | 68 ++++--------------- leenkx/Sources/iron/object/Transform.hx | 14 ++-- .../Sources/leenkx/logicnode/MouseLookNode.hx | 7 -- leenkx/blender/lnx/material/cycles.py | 8 +-- 4 files changed, 22 insertions(+), 75 deletions(-) diff --git a/leenkx/Sources/iron/math/Quat.hx b/leenkx/Sources/iron/math/Quat.hx index 0d059e2c..e0d744fa 100644 --- a/leenkx/Sources/iron/math/Quat.hx +++ b/leenkx/Sources/iron/math/Quat.hx @@ -66,32 +66,12 @@ class Quat { } public inline function fromAxisAngle(axis: Vec4, angle: FastFloat): Quat { - //var s: FastFloat = Math.sin(angle * 0.5); - //x = axis.x * s; - //y = axis.y * s; - //z = axis.z * s; - //w = Math.cos(angle * 0.5); - //return normalize(); - // Normalize the axis vector first - var axisLen = Math.sqrt(axis.x * axis.x + axis.y * axis.y + axis.z * axis.z); - if (axisLen > 0.00001) { - var aL = 1.0 / axisLen; - var nX = axis.x * aL; - var nY = axis.y * aL; - var nZ = axis.z * aL; - var halfAngle = angle * 0.5; - var s: FastFloat = Math.sin(halfAngle); - x = nX * s; - y = nY * s; - z = nZ * s; - w = Math.cos(halfAngle); - } else { - x = 0.0; - y = 0.0; - z = 0.0; - w = 1.0; - } - return this; + var s: FastFloat = Math.sin(angle * 0.5); + x = axis.x * s; + y = axis.y * s; + z = axis.z * s; + w = Math.cos(angle * 0.5); + return normalize(); } public inline function toAxisAngle(axis: Vec4): FastFloat { @@ -399,33 +379,17 @@ class Quat { @return This quaternion. **/ public inline function fromEulerOrdered(e: Vec4, order: String): Quat { - - var mappedAngles = new Vec4(); - switch (order) { - case "XYZ": - mappedAngles.set(e.x, e.y, e.z); - case "XZY": - mappedAngles.set(e.x, e.z, e.y); - case "YXZ": - mappedAngles.set(e.y, e.x, e.z); - case "YZX": - mappedAngles.set(e.y, e.z, e.x); - case "ZXY": - mappedAngles.set(e.z, e.x, e.y); - case "ZYX": - mappedAngles.set(e.z, e.y, e.x); - } - var c1 = Math.cos(mappedAngles.x / 2); - var c2 = Math.cos(mappedAngles.y / 2); - var c3 = Math.cos(mappedAngles.z / 2); - var s1 = Math.sin(mappedAngles.x / 2); - var s2 = Math.sin(mappedAngles.y / 2); - var s3 = Math.sin(mappedAngles.z / 2); + var c1 = Math.cos(e.x / 2); + var c2 = Math.cos(e.y / 2); + var c3 = Math.cos(e.z / 2); + var s1 = Math.sin(e.x / 2); + var s2 = Math.sin(e.y / 2); + var s3 = Math.sin(e.z / 2); + var qx = new Quat(s1, 0, 0, c1); var qy = new Quat(0, s2, 0, c2); var qz = new Quat(0, 0, s3, c3); - // Original multiplication sequence (implements reverse of 'order') if (order.charAt(2) == 'X') this.setFrom(qx); else if (order.charAt(2) == 'Y') @@ -445,12 +409,6 @@ class Quat { else this.mult(qz); - // TO DO quick fix somethings wrong.. - this.x = -this.x; - this.y = -this.y; - this.z = -this.z; - this.w = -this.w; - return this; } diff --git a/leenkx/Sources/iron/object/Transform.hx b/leenkx/Sources/iron/object/Transform.hx index b2162830..ce155f61 100644 --- a/leenkx/Sources/iron/object/Transform.hx +++ b/leenkx/Sources/iron/object/Transform.hx @@ -132,15 +132,11 @@ class Transform { function composeDelta() { // Delta transform - var dl = new Vec4().addvecs(loc, dloc); - var ds = new Vec4().setFrom(scale); - ds.x *= dscale.x; - ds.y *= dscale.y; - ds.z *= dscale.z; - var dr = new Quat().fromEuler(_deulerX, _deulerY, _deulerZ); - dr.multquats(dr, rot); - dr.multquats(drot, dr); - local.compose(dl, dr, ds); + dloc.addvecs(loc, dloc); + dscale.addvecs(dscale, scale); + drot.fromEuler(_deulerX, _deulerY, _deulerZ); + drot.multquats(rot, drot); + local.compose(dloc, drot, dscale); } /** diff --git a/leenkx/Sources/leenkx/logicnode/MouseLookNode.hx b/leenkx/Sources/leenkx/logicnode/MouseLookNode.hx index 977432e3..e5555b12 100644 --- a/leenkx/Sources/leenkx/logicnode/MouseLookNode.hx +++ b/leenkx/Sources/leenkx/logicnode/MouseLookNode.hx @@ -131,15 +131,8 @@ class MouseLookNode extends LogicNode { horizontalAxis.set(0, 0, 1); // Z-axis for horizontal rotation verticalAxis.set(0, 1, 0); // Y-axis for vertical rotation case "Y": // Y-axis forward (most common for 3D games) - #if lnx_yaxisup - // Y-up coordinate system (Blender default) horizontalAxis.set(0, 0, 1); // Z-axis for horizontal rotation verticalAxis.set(1, 0, 0); // X-axis for vertical rotation - #else - // Z-up coordinate system - horizontalAxis.set(0, 0, 1); // Z-axis for horizontal rotation - verticalAxis.set(1, 0, 0); // X-axis for vertical rotation - #end case "Z": // Z-axis forward (top-down or specific orientations) horizontalAxis.set(0, 1, 0); // Y-axis for horizontal rotation verticalAxis.set(1, 0, 0); // X-axis for vertical rotation diff --git a/leenkx/blender/lnx/material/cycles.py b/leenkx/blender/lnx/material/cycles.py index c22a1677..db8c42b7 100644 --- a/leenkx/blender/lnx/material/cycles.py +++ b/leenkx/blender/lnx/material/cycles.py @@ -75,8 +75,8 @@ def resize_texture_if_needed(image: bpy.types.Image, filepath: str, max_size: in texture_quality = wrd.lnx_texture_quality cache_key = (filepath, max_size, texture_quality, os.path.getmtime(filepath) if os.path.exists(filepath) else 0) - if cache_key in _texture_resize_cache: - cached_path = _texture_resize_cache[cache_key] + if cache_key in texture_resize_cache: + cached_path = texture_resize_cache[cache_key] if os.path.exists(cached_path): return cached_path @@ -101,7 +101,7 @@ def resize_texture_if_needed(image: bpy.types.Image, filepath: str, max_size: in src_mtime = os.path.getmtime(filepath) dst_mtime = os.path.getmtime(resized_path) if dst_mtime >= src_mtime: - _texture_resize_cache[cache_key] = resized_path + texture_resize_cache[cache_key] = resized_path return resized_path try: @@ -146,7 +146,7 @@ def resize_texture_if_needed(image: bpy.types.Image, filepath: str, max_size: in if result.returncode == 0 and os.path.exists(resized_path): print(f"[Texture Optimizer] Resized: {basename} {width}x{height} -> {new_width}x{new_height}") - _texture_resize_cache[cache_key] = resized_path + texture_resize_cache[cache_key] = resized_path return resized_path else: error_msg = result.stderr.decode('utf-8', errors='ignore') if result.stderr else 'Unknown error'