From 879f43a734f456bbc62d447367882cd7267d2008 Mon Sep 17 00:00:00 2001 From: MathemanFlo Date: Tue, 8 Mar 2022 14:23:26 +0100 Subject: [PATCH] Add light angle --- Sources/arm/Context.hx | 1 + Sources/arm/ui/UIMenu.hx | 18 ++++++------------ 2 files changed, 7 insertions(+), 12 deletions(-) diff --git a/Sources/arm/Context.hx b/Sources/arm/Context.hx index 5a7b8ac6..47d946df 100644 --- a/Sources/arm/Context.hx +++ b/Sources/arm/Context.hx @@ -90,6 +90,7 @@ class Context { public static var showEnvmapBlur = false; public static var showEnvmapBlurHandle = new Handle({ selected: false }); public static var envmapAngle = 0.0; + public static var lightAngle = 0.0; public static var drawWireframe = false; public static var wireframeHandle = new Handle({ selected: false }); public static var drawTexels = false; diff --git a/Sources/arm/ui/UIMenu.hx b/Sources/arm/ui/UIMenu.hx index e267588e..ace50bc8 100644 --- a/Sources/arm/ui/UIMenu.hx +++ b/Sources/arm/ui/UIMenu.hx @@ -158,24 +158,18 @@ class UIMenu { menuFill(ui); var light = iron.Scene.active.lights[0]; var lahandle = Id.handle(); - if (lahandle.value < 0) { - lahandle.value += (Std.int(-lahandle.value / 360) + 1) * 360; - } - else if (lahandle.value > 360) { - lahandle.value -= Std.int(lahandle.value / 360) * 360; - } + lahandle.value = Context.lightAngle / Math.PI * 180; menuAlign(ui); - var lightAngle = lahandle.value; - ui.slider(lahandle, tr("Light Angle"), 0.0, 360.0, true, 1); - var ldiff = lahandle.value - lightAngle; - if (ldiff != 0) { - ldiff = (ldiff) / 180.0 * Math.PI; + var newAngle = ui.slider(lahandle, tr("Light Angle"), 0.0, 359.0, true, 1) / 180 * Math.PI; + var ldiff = newAngle - Context.lightAngle; + if (Math.abs(ldiff) > 0.005) { + Context.lightAngle = newAngle % (2*Math.PI); var m = iron.math.Mat4.identity(); m.self = kha.math.FastMatrix4.rotationZ(ldiff); light.transform.local.multmat(m); light.transform.decompose(); + Context.ddirty = 2; } - if (lahandle.changed) Context.ddirty = 2; menuFill(ui); var sxhandle = Id.handle();