diff --git a/src/Rig.cs b/src/Rig.cs index 0f741d0..faf97cb 100644 --- a/src/Rig.cs +++ b/src/Rig.cs @@ -75,22 +75,23 @@ static class Rig btn_select.Step(r_con.x1.IsActive() || r_con.trigger > 0.5f); btn_back.Step(r_con.x2.IsActive()); + // bool con_tracked = r_con.trackedPos > TrackState.Lost; - Vec2 stick = r_con.stick; - Quat stick_rot = Quat.FromAngles(stick.y * -90, 0, stick.x * +90); - float stick_sign = r_con.IsStickClicked ? -1 : +1; - r_con_stick = r_con.aim; - // r_con_stick.position += r_con_stick.orientation * V.XYZ(0.0065f, -0.012f, -0.05f); - // r_con_stick.orientation *= Quat.FromAngles(-50, 0, 0); - fullstick = r_con_stick.orientation * stick_rot * Vec3.Up * stick_sign; + Vec2 stick = r_con.stick; + Quat stick_rot = Quat.FromAngles(stick.y * -90, 0, stick.x * +90); + float stick_sign = r_con.IsStickClicked ? -1 : +1; + r_con_stick = r_con.aim; + // r_con_stick.position += r_con_stick.orientation * V.XYZ(0.0065f, -0.012f, -0.05f); + // r_con_stick.orientation *= Quat.FromAngles(-50, 0, 0); + fullstick = r_con_stick.orientation * stick_rot * Vec3.Up * stick_sign; - // Vec3 fullstick = r_hand.palm.orientation * Vec3.Up; - float ax = Maths.abs(fullstick.x); - float ay = Maths.abs(fullstick.y); - float az = Maths.abs(fullstick.z); - if (ax > ay && ax > az) new_dir = new(Maths.sign(fullstick.x), 0, 0); - if (ay > ax && ay > az) new_dir = new(0, Maths.sign(fullstick.y), 0); - if (az > ax && az > ay) new_dir = new(0, 0, Maths.sign(fullstick.z)); + // Vec3 fullstick = r_hand.palm.orientation * Vec3.Up; + float ax = Maths.abs(fullstick.x); + float ay = Maths.abs(fullstick.y); + float az = Maths.abs(fullstick.z); + if (ax > ay && ax > az) new_dir = new(Maths.sign(fullstick.x), 0, 0); + if (ay > ax && ay > az) new_dir = new(0, Maths.sign(fullstick.y), 0); + if (az > ax && az > ay) new_dir = new(0, 0, Maths.sign(fullstick.z)); } } }