From ccd8f684dfef24a42f447bed5c473ae06817ea9f Mon Sep 17 00:00:00 2001 From: Lesueur Benjamin Date: Wed, 23 Nov 2022 17:46:46 +0100 Subject: [PATCH] Build 0.13.0.0 (#301) * rebase (#298) * prevent crash on exited process when foreground window changes * Lower TDP minimum limit as per user request (#293) * Split UMC motion multiplier #85 (#294) * Remove device width height ratio. * Split sensitivity in x and y * Improve look and text * Tweak ranges part 2 * Add AOKZOE illustration to resource. * build 0.12.4.0 Co-authored-by: CasperH2O Co-authored-by: CasperH * oups * added XInputController Gamepad.TriggerThreshold * qol * cleanup * add input listener to quickprofilespage * qol * Prevent crash on null profile * more work on AOKZOE A1 * more work on AYANEO Next * Fix special key colors for DualSense and Xbox One controller models. * more work on process priority * fixed gyro injection when target is Xbox360 * fix quickprofiles hotkey label update on profile change * fix profile pipe update to service * fix vibrationstrength value * no-longer manage HIDmode at UI level * improve lock mechanism on quickprofilespage * misc UI improvements * add supports for AOKZOE A1 (Home, long-press) through OEM6 * implement SetVibration * force ShowActivated on Quicktools * SerializeProfile on UpdateOrCreate * Update Ayaneo 2021 OEM keys as hotkeys and 3D overlay highlight. * Quicktools prefix TDP and motion sensitivity sliders with text info. * Add UMC default activation to QuickTools. * prevent running profile from being deleted * brings back separator and improve quicktools TDP readability * implement device specific min/max GfxClock * prevent a crash with gfxLock * improve suspender UI interface * improve overall quickpages readability with reduced top/bottom margins * beta build 0.13.0.0 Co-authored-by: CasperH2O Co-authored-by: CasperH --- .../Controllers/DInputController.cs | 10 +- ControllerCommon/Controllers/DS4Controller.cs | 13 +- ControllerCommon/Controllers/IController.cs | 10 +- .../Controllers/NetpuneController.cs | 3 +- .../Controllers/XInputController.cs | 27 +- ControllerCommon/Devices/AOKZOEA1.cs | 31 +- ControllerCommon/Devices/AYANEO2021.cs | 12 +- ControllerCommon/Devices/AYANEO2021Pro.cs | 10 +- ControllerCommon/Devices/AYANEOAIR.cs | 3 +- ControllerCommon/Devices/AYANEOAIRLite.cs | 3 +- ControllerCommon/Devices/AYANEOAIRPro.cs | 3 +- ControllerCommon/Devices/AYANEONEXT.cs | 7 +- ControllerCommon/Devices/DefaultDevice.cs | 7 - ControllerCommon/Devices/Device.cs | 2 + ControllerCommon/Devices/GPDWinMax2AMD.cs | 1 + ControllerCommon/Devices/GPDWinMax2Intel.cs | 2 + ControllerCommon/Devices/OneXPlayerMiniAMD.cs | 1 + .../Devices/OneXPlayerMiniIntel.cs | 1 + ControllerCommon/HidHide.cs | 1 - ControllerCommon/Managers/SystemManager.cs | 2 - ControllerCommon/Pipes/PipeMessage.cs | 20 - ControllerCommon/Pipes/PipeServer.cs | 3 +- ControllerCommon/Profile.cs | 2 +- ControllerCommon/Utils/InputUtils.cs | 3 +- ControllerCommon/Utils/RegistryUtils.cs | 5 - ControllerService-offline.iss | 2 +- ControllerService.iss | 4 +- ControllerService/AssemblyInfo1.cs | 4 +- ControllerService/ControllerService.cs | 10 +- ControllerService/Program.cs | 8 +- ControllerService/Targets/Xbox360Target.cs | 8 +- HandheldCompanion/App.config | 3 - HandheldCompanion/App.xaml.cs | 34 +- HandheldCompanion/HandheldCompanion.csproj | 12 +- .../Managers/ControllerManager.cs | 1 - HandheldCompanion/Managers/EnergyManager.cs | 17 +- .../Managers/Hotkeys/InputsHotkey.cs | 6 +- HandheldCompanion/Managers/HotkeysManager.cs | 48 +- HandheldCompanion/Managers/InputsManager.cs | 7 +- HandheldCompanion/Managers/PowerManager.cs | 6 +- .../Managers/Process/ProcessEx.cs | 12 +- HandheldCompanion/Managers/ProcessManager.cs | 31 +- HandheldCompanion/Managers/ProfileManager.cs | 18 +- .../WFB-1.obj => Models/AYANEO NEXT/OEM1.obj} | 1004 ++++++++--------- .../WFB-2.obj => Models/AYANEO NEXT/OEM2.obj} | 784 ++++++------- HandheldCompanion/Models/ModelAYANEO2021.cs | 11 +- .../Properties/Resources.Designer.cs | 102 +- HandheldCompanion/Properties/Resources.resx | 12 + .../Properties/Settings.Designer.cs | 12 - .../Properties/Settings.settings | 3 - .../Views/Classes/OverlayWindow.cs | 1 + .../Views/Pages/ControllerPage.xaml | 5 +- .../Views/Pages/ControllerPage.xaml.cs | 75 +- .../Views/Pages/HotkeysPage.xaml.cs | 2 +- .../Views/Pages/OverlayPage.xaml | 12 +- .../Views/Pages/ProfileSettingsMode0.xaml | 312 ++--- .../Views/Pages/ProfileSettingsMode0.xaml.cs | 48 +- .../Views/Pages/ProfileSettingsMode1.xaml | 6 +- .../Views/Pages/ProfilesPage.xaml | 12 +- .../Views/Pages/ProfilesPage.xaml.cs | 44 +- .../QuickPages/QuickPerformancePage.xaml | 62 +- .../QuickPages/QuickPerformancePage.xaml.cs | 3 + .../Views/QuickPages/QuickProfilesPage.xaml | 118 +- .../QuickPages/QuickProfilesPage.xaml.cs | 234 ++-- .../Views/QuickPages/QuickSettingsPage.xaml | 7 +- .../Views/Windows/MainWindow.xaml.cs | 8 +- .../Views/Windows/OverlayQuickTools.xaml.cs | 1 + .../AYANEO 2021/{WFB-Win.obj => OEM1.obj} | 0 .../AYANEO 2021/{WFB-Esc.obj => OEM2.obj} | 0 .../AYANEO 2021/{WFB-KB.obj => OEM3.obj} | 0 HandheldCompanion/models/ModelAYANEONext.cs | 6 - HandheldCompanion/models/ModelDualSense.cs | 1 + HandheldCompanion/models/ModelXBOXOne.cs | 4 +- 73 files changed, 1718 insertions(+), 1584 deletions(-) rename HandheldCompanion/{models/AYANEO NEXT/WFB-1.obj => Models/AYANEO NEXT/OEM1.obj} (96%) rename HandheldCompanion/{models/AYANEO NEXT/WFB-2.obj => Models/AYANEO NEXT/OEM2.obj} (96%) rename HandheldCompanion/models/AYANEO 2021/{WFB-Win.obj => OEM1.obj} (100%) rename HandheldCompanion/models/AYANEO 2021/{WFB-Esc.obj => OEM2.obj} (100%) rename HandheldCompanion/models/AYANEO 2021/{WFB-KB.obj => OEM3.obj} (100%) diff --git a/ControllerCommon/Controllers/DInputController.cs b/ControllerCommon/Controllers/DInputController.cs index 8c863595e..990fe6117 100644 --- a/ControllerCommon/Controllers/DInputController.cs +++ b/ControllerCommon/Controllers/DInputController.cs @@ -1,12 +1,4 @@ -using ControllerCommon.Managers; -using SharpDX.DirectInput; -using SharpDX.XInput; -using System; -using System.Collections.Generic; -using System.Diagnostics; -using System.Linq; -using System.Runtime.InteropServices; -using System.Threading.Tasks; +using SharpDX.DirectInput; namespace ControllerCommon.Controllers { diff --git a/ControllerCommon/Controllers/DS4Controller.cs b/ControllerCommon/Controllers/DS4Controller.cs index c5e5abe17..b5da7b93e 100644 --- a/ControllerCommon/Controllers/DS4Controller.cs +++ b/ControllerCommon/Controllers/DS4Controller.cs @@ -1,18 +1,11 @@ -using ControllerCommon.Managers; -using SharpDX.DirectInput; -using SharpDX.XInput; +using SharpDX.DirectInput; using System; -using System.Collections.Generic; -using System.Diagnostics; -using System.Linq; -using System.Runtime.InteropServices; -using System.Threading.Tasks; namespace ControllerCommon.Controllers { public class DS4Controller : DInputController { - public DS4Controller(Joystick joystick, PnPDetails details) : base (joystick, details) + public DS4Controller(Joystick joystick, PnPDetails details) : base(joystick, details) { if (!IsConnected()) return; @@ -77,7 +70,7 @@ public override void UpdateReport() if (State.Buttons[13]) // TouchpadClick Inputs.Buttons |= ControllerButtonFlags.Special; - switch(State.PointOfViewControllers[0]) + switch (State.PointOfViewControllers[0]) { case 0: Inputs.Buttons |= ControllerButtonFlags.DPadUp; diff --git a/ControllerCommon/Controllers/IController.cs b/ControllerCommon/Controllers/IController.cs index 6bdeb0107..5da1afb13 100644 --- a/ControllerCommon/Controllers/IController.cs +++ b/ControllerCommon/Controllers/IController.cs @@ -50,7 +50,8 @@ public enum ControllerButtonFlags : ulong OEM2 = 1073741824, OEM3 = 2147483648, OEM4 = 4294967296, - OEM5 = 8589934592 + OEM5 = 8589934592, + OEM6 = 17179869184 } [Serializable] @@ -72,7 +73,7 @@ public abstract class IController public ControllerButtonFlags prevInjectedButtons; protected int UserIndex; - protected double VibrationStrength = 100.0d; + protected double VibrationStrength = 1.0d; public const short UPDATE_INTERVAL = 5; @@ -138,9 +139,12 @@ public void InjectButton(ControllerButtonFlags button, bool IsKeyDown, bool IsKe public void SetVibrationStrength(double value) { - VibrationStrength = value; + VibrationStrength = value / 100; } + public virtual void SetVibration(ushort LargeMotor, ushort SmallMotor) + { } + public virtual bool IsConnected() { return false; diff --git a/ControllerCommon/Controllers/NetpuneController.cs b/ControllerCommon/Controllers/NetpuneController.cs index a9acd725a..d46db3472 100644 --- a/ControllerCommon/Controllers/NetpuneController.cs +++ b/ControllerCommon/Controllers/NetpuneController.cs @@ -1,5 +1,4 @@ -using ControllerCommon.Managers; -using neptune_hidapi.net; +using neptune_hidapi.net; using SharpDX.DirectInput; using System; using System.Threading.Tasks; diff --git a/ControllerCommon/Controllers/XInputController.cs b/ControllerCommon/Controllers/XInputController.cs index 1cf4f585b..9d943d0c3 100644 --- a/ControllerCommon/Controllers/XInputController.cs +++ b/ControllerCommon/Controllers/XInputController.cs @@ -130,8 +130,6 @@ ref XInputCapabilitiesEx pCapabilities // [out] Receives the capabilities private XInputStateSecret State; private XInputStateSecret prevState; - private Vibration Vibration = new Vibration() { LeftMotorSpeed = ushort.MaxValue, RightMotorSpeed = ushort.MaxValue }; - public XInputController(int index) { Controller = new Controller((UserIndex)index); @@ -191,9 +189,9 @@ public override void UpdateReport() if (Gamepad.Buttons.HasFlag(GamepadButtonFlags.Back)) Inputs.Buttons |= ControllerButtonFlags.Back; - if (Gamepad.LeftTrigger > 0) + if (Gamepad.LeftTrigger > Gamepad.TriggerThreshold) Inputs.Buttons |= ControllerButtonFlags.LeftTrigger; - if (Gamepad.RightTrigger > 0) + if (Gamepad.RightTrigger > Gamepad.TriggerThreshold) Inputs.Buttons |= ControllerButtonFlags.RightTrigger; if (Gamepad.Buttons.HasFlag(GamepadButtonFlags.LeftThumb)) @@ -261,13 +259,23 @@ public override bool IsConnected() return (bool)(Controller?.IsConnected); } + public override void SetVibration(ushort LargeMotor, ushort SmallMotor) + { + ushort LeftMotorSpeed = (ushort)((LargeMotor * ushort.MaxValue / byte.MaxValue) * VibrationStrength); + ushort RightMotorSpeed = (ushort)((SmallMotor * ushort.MaxValue / byte.MaxValue) * VibrationStrength); + + Vibration vibration = new Vibration() { LeftMotorSpeed = LeftMotorSpeed, RightMotorSpeed = RightMotorSpeed }; + Controller.SetVibration(vibration); + } + public override async void Rumble() { for (int i = 0; i < 2; i++) { - Controller.SetVibration(Vibration); + SetVibration(ushort.MaxValue, ushort.MaxValue); await Task.Delay(100); - Controller.SetVibration(new Vibration()); + + SetVibration(0, 0); await Task.Delay(100); } base.Rumble(); @@ -292,12 +300,7 @@ private void OnServerMessage(PipeMessage message) case PipeCode.SERVER_VIBRATION: { PipeClientVibration e = (PipeClientVibration)message; - - ushort LeftMotorSpeed = (ushort)((e.LargeMotor * ushort.MaxValue / byte.MaxValue) * VibrationStrength); - ushort RightMotorSpeed = (ushort)((e.SmallMotor * ushort.MaxValue / byte.MaxValue) * VibrationStrength); - - Vibration vibration = new Vibration() { LeftMotorSpeed = LeftMotorSpeed, RightMotorSpeed = RightMotorSpeed }; - Controller.SetVibration(vibration); + SetVibration(e.LargeMotor, e.SmallMotor); } break; } diff --git a/ControllerCommon/Devices/AOKZOEA1.cs b/ControllerCommon/Devices/AOKZOEA1.cs index 1fc9b6ea2..6137e4c15 100644 --- a/ControllerCommon/Devices/AOKZOEA1.cs +++ b/ControllerCommon/Devices/AOKZOEA1.cs @@ -17,6 +17,7 @@ public AOKZOEA1() : base() // https://www.amd.com/en/products/apu/amd-ryzen-7-6800u this.nTDP = new double[] { 15, 15, 20 }; this.cTDP = new double[] { 10, 28 }; + this.GfxClock = new double[] { 100, 2200 }; this.AngularVelocityAxisSwap = new() { @@ -25,7 +26,7 @@ public AOKZOEA1() : base() { 'Z', 'Y' }, }; - this.AccelerationAxis = new Vector3(-1.0f, -1.0f, 1.0f); + this.AccelerationAxis = new Vector3(-1.0f, 1.0f, -1.0f); this.AccelerationAxisSwap = new() { { 'X', 'X' }, @@ -34,33 +35,45 @@ public AOKZOEA1() : base() }; // Home - listeners.Add(new DeviceChord("Home key", + listeners.Add(new DeviceChord("Home", new List() { KeyCode.LWin, KeyCode.D }, - new List() { KeyCode.LWin, KeyCode.D } + new List() { KeyCode.LWin, KeyCode.D }, + false, Controllers.ControllerButtonFlags.OEM1 + )); + + // Home (long press 1.5s) + listeners.Add(new DeviceChord("Home, Long-press", + new List() { KeyCode.LWin, KeyCode.G }, + new List() { KeyCode.LWin, KeyCode.G }, + false, Controllers.ControllerButtonFlags.OEM6 )); // Keyboard - listeners.Add(new DeviceChord("Keyboard key", + listeners.Add(new DeviceChord("Keyboard", new List() { KeyCode.RControlKey, KeyCode.LWin, KeyCode.O }, - new List() { KeyCode.O, KeyCode.LWin, KeyCode.RControlKey } + new List() { KeyCode.O, KeyCode.LWin, KeyCode.RControlKey }, + false, Controllers.ControllerButtonFlags.OEM2 )); // Turbo - listeners.Add(new DeviceChord("Turbo key", + listeners.Add(new DeviceChord("Turbo", + new List() { KeyCode.LControl, KeyCode.LWin, KeyCode.LMenu }, new List() { KeyCode.LControl, KeyCode.LWin, KeyCode.LMenu }, - new List() { KeyCode.LControl, KeyCode.LWin, KeyCode.LMenu } + false, Controllers.ControllerButtonFlags.OEM3 )); // Home + Keyboard listeners.Add(new DeviceChord("Home + Keyboard", new List() { KeyCode.RAlt, KeyCode.RControlKey, KeyCode.Delete }, - new List() { KeyCode.Delete, KeyCode.RControlKey, KeyCode.RAlt } + new List() { KeyCode.Delete, KeyCode.RControlKey, KeyCode.RAlt }, + false, Controllers.ControllerButtonFlags.OEM4 )); // Home + Turbo listeners.Add(new DeviceChord("Home + Turbo", new List() { KeyCode.LWin, KeyCode.Snapshot }, - new List() { KeyCode.Snapshot, KeyCode.LWin } + new List() { KeyCode.Snapshot, KeyCode.LWin }, + false, Controllers.ControllerButtonFlags.OEM5 )); } } diff --git a/ControllerCommon/Devices/AYANEO2021.cs b/ControllerCommon/Devices/AYANEO2021.cs index b71a8f4a3..b938e88b8 100644 --- a/ControllerCommon/Devices/AYANEO2021.cs +++ b/ControllerCommon/Devices/AYANEO2021.cs @@ -15,7 +15,8 @@ public AYANEO2021() : base() // https://www.amd.com/fr/products/apu/amd-ryzen-5-4500u this.nTDP = new double[] { 15, 15, 20 }; - this.cTDP = new double[] { 10, 25 }; + this.cTDP = new double[] { 10, 25 }; + this.GfxClock = new double[] { 100, 1750 }; this.AngularVelocityAxisSwap = new() { @@ -33,7 +34,8 @@ public AYANEO2021() : base() listeners.Add(new DeviceChord("WIN key", new List() { KeyCode.LWin }, - new List() { KeyCode.LWin } + new List() { KeyCode.LWin }, + false, Controllers.ControllerButtonFlags.OEM1 )); // Conflicts with OS @@ -41,13 +43,15 @@ public AYANEO2021() : base() listeners.Add(new DeviceChord("ESC key", new List() { KeyCode.Escape }, - new List() { KeyCode.Escape } + new List() { KeyCode.Escape }, + false, Controllers.ControllerButtonFlags.OEM2 )); // Conflicts with Ayaspace when installed listeners.Add(new DeviceChord("KB key", new List() { KeyCode.RControlKey, KeyCode.LWin, KeyCode.O }, - new List() { KeyCode.O, KeyCode.LWin, KeyCode.RControlKey } + new List() { KeyCode.O, KeyCode.LWin, KeyCode.RControlKey }, + false, Controllers.ControllerButtonFlags.OEM3 )); } } diff --git a/ControllerCommon/Devices/AYANEO2021Pro.cs b/ControllerCommon/Devices/AYANEO2021Pro.cs index 392016125..04a72de60 100644 --- a/ControllerCommon/Devices/AYANEO2021Pro.cs +++ b/ControllerCommon/Devices/AYANEO2021Pro.cs @@ -16,6 +16,7 @@ public AYANEO2021Pro() : base() // https://www.amd.com/fr/products/apu/amd-ryzen-7-4800u this.nTDP = new double[] { 15, 15, 20 }; this.cTDP = new double[] { 10, 25 }; + this.GfxClock = new double[] { 100, 1750 }; this.AngularVelocityAxisSwap = new() { @@ -33,7 +34,8 @@ public AYANEO2021Pro() : base() listeners.Add(new DeviceChord("WIN key", new List() { KeyCode.LWin }, - new List() { KeyCode.LWin } + new List() { KeyCode.LWin }, + false, Controllers.ControllerButtonFlags.OEM1 )); // Conflicts with OS @@ -41,13 +43,15 @@ public AYANEO2021Pro() : base() listeners.Add(new DeviceChord("ESC key", new List() { KeyCode.Escape }, - new List() { KeyCode.Escape } + new List() { KeyCode.Escape }, + false, Controllers.ControllerButtonFlags.OEM2 )); // Conflicts with Ayaspace when installed listeners.Add(new DeviceChord("KB key", new List() { KeyCode.RControlKey, KeyCode.LWin, KeyCode.O }, - new List() { KeyCode.O, KeyCode.LWin, KeyCode.RControlKey } + new List() { KeyCode.O, KeyCode.LWin, KeyCode.RControlKey }, + false, Controllers.ControllerButtonFlags.OEM3 )); } } diff --git a/ControllerCommon/Devices/AYANEOAIR.cs b/ControllerCommon/Devices/AYANEOAIR.cs index 22b0e5a81..506d33e74 100644 --- a/ControllerCommon/Devices/AYANEOAIR.cs +++ b/ControllerCommon/Devices/AYANEOAIR.cs @@ -16,7 +16,8 @@ public AYANEOAIR() : base() // https://www.amd.com/en/products/apu/amd-ryzen-5-5560u this.nTDP = new double[] { 12, 12, 15 }; - this.cTDP = new double[] { 8, 15 }; + this.cTDP = new double[] { 8, 15 }; + this.GfxClock = new double[] { 100, 1600 }; this.AngularVelocityAxisSwap = new() { diff --git a/ControllerCommon/Devices/AYANEOAIRLite.cs b/ControllerCommon/Devices/AYANEOAIRLite.cs index 9949867df..22ede9d30 100644 --- a/ControllerCommon/Devices/AYANEOAIRLite.cs +++ b/ControllerCommon/Devices/AYANEOAIRLite.cs @@ -16,7 +16,8 @@ public AYANEOAIRLite() : base() // https://www.amd.com/en/products/apu/amd-ryzen-5-5560u this.nTDP = new double[] { 8, 8, 12 }; - this.cTDP = new double[] { 8, 12 }; + this.cTDP = new double[] { 8, 12 }; + this.GfxClock = new double[] { 100, 1600 }; this.AngularVelocityAxisSwap = new() { diff --git a/ControllerCommon/Devices/AYANEOAIRPro.cs b/ControllerCommon/Devices/AYANEOAIRPro.cs index 053fa8ea7..2b6bbbced 100644 --- a/ControllerCommon/Devices/AYANEOAIRPro.cs +++ b/ControllerCommon/Devices/AYANEOAIRPro.cs @@ -16,7 +16,8 @@ public AYANEOAIRPro() : base() // https://www.amd.com/en/products/apu/amd-ryzen-7-5825u this.nTDP = new double[] { 12, 12, 15 }; - this.cTDP = new double[] { 8, 18 }; + this.cTDP = new double[] { 8, 18 }; + this.GfxClock = new double[] { 100, 2000 }; this.AngularVelocityAxisSwap = new() { diff --git a/ControllerCommon/Devices/AYANEONEXT.cs b/ControllerCommon/Devices/AYANEONEXT.cs index 4566be470..382489ac3 100644 --- a/ControllerCommon/Devices/AYANEONEXT.cs +++ b/ControllerCommon/Devices/AYANEONEXT.cs @@ -17,6 +17,7 @@ public AYANEONEXT() : base() // https://www.amd.com/fr/products/apu/amd-ryzen-7-5825u this.nTDP = new double[] { 15, 15, 20 }; this.cTDP = new double[] { 10, 25 }; + this.GfxClock = new double[] { 100, 2000 }; this.AngularVelocityAxisSwap = new() { @@ -34,12 +35,14 @@ public AYANEONEXT() : base() listeners.Add(new DeviceChord("Custom key BIG", new List() { KeyCode.RControlKey, KeyCode.LWin, KeyCode.F12 }, - new List() { KeyCode.F12, KeyCode.LWin, KeyCode.RControlKey } + new List() { KeyCode.F12, KeyCode.LWin, KeyCode.RControlKey }, + false, Controllers.ControllerButtonFlags.OEM1 )); listeners.Add(new DeviceChord("Custom key Small", new List() { KeyCode.LWin, KeyCode.D }, - new List() { KeyCode.LWin, KeyCode.D } + new List() { KeyCode.LWin, KeyCode.D }, + false, Controllers.ControllerButtonFlags.OEM2 )); } } diff --git a/ControllerCommon/Devices/DefaultDevice.cs b/ControllerCommon/Devices/DefaultDevice.cs index 98d8e334b..c2d1adfc7 100644 --- a/ControllerCommon/Devices/DefaultDevice.cs +++ b/ControllerCommon/Devices/DefaultDevice.cs @@ -7,13 +7,6 @@ public class DefaultDevice : Device { public DefaultDevice() : base() { - for (int i = (int)KeyCode.F1; i < (int)KeyCode.F12; i++) - { - listeners.Add(new DeviceChord($"Function {i}", - new List() { (KeyCode)i }, - new List() { (KeyCode)i } - )); - } } } } diff --git a/ControllerCommon/Devices/Device.cs b/ControllerCommon/Devices/Device.cs index 44f466e4d..8b19d1e19 100644 --- a/ControllerCommon/Devices/Device.cs +++ b/ControllerCommon/Devices/Device.cs @@ -29,6 +29,8 @@ public abstract class Device public double[] nTDP = { 15, 15, 20 }; // device configurable TDP (down, up) public double[] cTDP = { 10, 25 }; + // device GfxClock frequency limits + public double[] GfxClock = { 100, 1800 }; public Vector3 AngularVelocityAxis = new Vector3(1.0f, 1.0f, 1.0f); public Dictionary AngularVelocityAxisSwap = new() diff --git a/ControllerCommon/Devices/GPDWinMax2AMD.cs b/ControllerCommon/Devices/GPDWinMax2AMD.cs index 626113007..20d44ab84 100644 --- a/ControllerCommon/Devices/GPDWinMax2AMD.cs +++ b/ControllerCommon/Devices/GPDWinMax2AMD.cs @@ -16,6 +16,7 @@ public GPDWinMax2AMD() : base() // https://www.amd.com/fr/products/apu/amd-ryzen-7-6800u this.nTDP = new double[] { 15, 15, 28 }; this.cTDP = new double[] { 15, 28 }; + this.GfxClock = new double[] { 100, 2200 }; this.AngularVelocityAxis = new Vector3(1.0f, 1.0f, -1.0f); this.AngularVelocityAxisSwap = new() diff --git a/ControllerCommon/Devices/GPDWinMax2Intel.cs b/ControllerCommon/Devices/GPDWinMax2Intel.cs index f2c5c8756..09d94652a 100644 --- a/ControllerCommon/Devices/GPDWinMax2Intel.cs +++ b/ControllerCommon/Devices/GPDWinMax2Intel.cs @@ -13,8 +13,10 @@ public GPDWinMax2Intel() : base() // device specific settings this.ProductIllustration = "device_gpd_winmax2"; + // https://ark.intel.com/content/www/us/en/ark/products/226254/intel-core-i71260p-processor-18m-cache-up-to-4-70-ghz.html this.nTDP = new double[] { 15, 15, 20 }; this.cTDP = new double[] { 15, 28 }; + this.GfxClock = new double[] { 100, 1400 }; this.AngularVelocityAxis = new Vector3(1.0f, -1.0f, 1.0f); this.AngularVelocityAxisSwap = new() diff --git a/ControllerCommon/Devices/OneXPlayerMiniAMD.cs b/ControllerCommon/Devices/OneXPlayerMiniAMD.cs index eca94d0d9..151056484 100644 --- a/ControllerCommon/Devices/OneXPlayerMiniAMD.cs +++ b/ControllerCommon/Devices/OneXPlayerMiniAMD.cs @@ -17,6 +17,7 @@ public OneXPlayerMiniAMD() : base() // https://www.amd.com/fr/products/apu/amd-ryzen-7-5800u this.nTDP = new double[] { 15, 15, 20 }; this.cTDP = new double[] { 10, 25 }; + this.GfxClock = new double[] { 100, 2000 }; this.AngularVelocityAxisSwap = new() { diff --git a/ControllerCommon/Devices/OneXPlayerMiniIntel.cs b/ControllerCommon/Devices/OneXPlayerMiniIntel.cs index 9f410a12d..a29e6d66b 100644 --- a/ControllerCommon/Devices/OneXPlayerMiniIntel.cs +++ b/ControllerCommon/Devices/OneXPlayerMiniIntel.cs @@ -17,6 +17,7 @@ public OneXPlayerMiniIntel() : base() // https://ark.intel.com/content/www/us/en/ark/products/226254/intel-core-i71260p-processor-18m-cache-up-to-4-70-ghz.html this.nTDP = new double[] { 28, 28, 64 }; this.cTDP = new double[] { 20, 64 }; + this.GfxClock = new double[] { 100, 1400 }; this.AngularVelocityAxis = new Vector3(1.0f, 1.0f, -1.0f); this.AngularVelocityAxisSwap = new() diff --git a/ControllerCommon/HidHide.cs b/ControllerCommon/HidHide.cs index b31dbdfc8..426d1f252 100644 --- a/ControllerCommon/HidHide.cs +++ b/ControllerCommon/HidHide.cs @@ -1,6 +1,5 @@ using ControllerCommon.Managers; using ControllerCommon.Utils; -using Microsoft.Win32; using System; using System.Collections.Generic; using System.Diagnostics; diff --git a/ControllerCommon/Managers/SystemManager.cs b/ControllerCommon/Managers/SystemManager.cs index b961ea47d..626f81cea 100644 --- a/ControllerCommon/Managers/SystemManager.cs +++ b/ControllerCommon/Managers/SystemManager.cs @@ -4,7 +4,6 @@ using Microsoft.Win32; using Nefarius.Utilities.DeviceManagement.PnP; using PInvoke; -using SharpDX.DirectInput; using System; using System.Collections.Generic; using System.IO; @@ -12,7 +11,6 @@ using System.Media; using System.Runtime.InteropServices; using System.Threading.Tasks; -using static ControllerCommon.Managers.SystemManager; using Attributes = ControllerCommon.Managers.Hid.Attributes; using Capabilities = ControllerCommon.Managers.Hid.Capabilities; diff --git a/ControllerCommon/Pipes/PipeMessage.cs b/ControllerCommon/Pipes/PipeMessage.cs index a5f9aeb98..5c4dd7797 100644 --- a/ControllerCommon/Pipes/PipeMessage.cs +++ b/ControllerCommon/Pipes/PipeMessage.cs @@ -139,26 +139,6 @@ public PipeClientVibration() } } - [Serializable] - public partial class PipeConsoleArgs : PipeMessage - { - public string[] args; - - public PipeConsoleArgs() - { - code = PipeCode.CLIENT_CONSOLE; - } - } - - [Serializable] - public partial class PipeShutdown : PipeMessage - { - public PipeShutdown() - { - code = PipeCode.FORCE_SHUTDOWN; - } - } - [Serializable] public enum SensorType { diff --git a/ControllerCommon/Pipes/PipeServer.cs b/ControllerCommon/Pipes/PipeServer.cs index 59a4916d2..65f8a423f 100644 --- a/ControllerCommon/Pipes/PipeServer.cs +++ b/ControllerCommon/Pipes/PipeServer.cs @@ -38,8 +38,7 @@ public enum PipeCode CLIENT_CONSOLE = 12, // Sent from client to client to pass parameters // args: string[] parameters - FORCE_SHUTDOWN = 13, // Sent to server or client to halt process - // args: ... + OBSOLETE_3 = 13, // OBSOLETE, REUSEME SERVER_SENSOR = 14, // Sent to client to share sensor values // args: ... diff --git a/ControllerCommon/Profile.cs b/ControllerCommon/Profile.cs index 581866ac9..c2b001c2c 100644 --- a/ControllerCommon/Profile.cs +++ b/ControllerCommon/Profile.cs @@ -62,7 +62,7 @@ public class Profile public Input umc_input { get; set; } = Input.JoystickCamera; public Output umc_output { get; set; } = Output.RightStick; - public UMC_Motion_Default umc_motion_defaultoffon { get; set; } = UMC_Motion_Default.On; + public UMC_Motion_Default umc_motion_defaultoffon { get; set; } = UMC_Motion_Default.Off; // aiming public float aiming_sensitivity_x { get; set; } = 1.0f; diff --git a/ControllerCommon/Utils/InputUtils.cs b/ControllerCommon/Utils/InputUtils.cs index d401fb68b..edafb87e7 100644 --- a/ControllerCommon/Utils/InputUtils.cs +++ b/ControllerCommon/Utils/InputUtils.cs @@ -1,5 +1,4 @@ -using ControllerCommon.Controllers; -using System; +using System; using System.Collections.Generic; using System.Linq; using System.Numerics; diff --git a/ControllerCommon/Utils/RegistryUtils.cs b/ControllerCommon/Utils/RegistryUtils.cs index 6c2a70320..680b20789 100644 --- a/ControllerCommon/Utils/RegistryUtils.cs +++ b/ControllerCommon/Utils/RegistryUtils.cs @@ -1,10 +1,5 @@ using Microsoft.Win32; using System; -using System.Collections.Generic; -using System.Linq; -using System.Text; -using System.Threading.Tasks; -using System.Windows.Media.Animation; namespace ControllerCommon.Utils { diff --git a/ControllerService-offline.iss b/ControllerService-offline.iss index 585119eb7..4f8b0b6ec 100644 --- a/ControllerService-offline.iss +++ b/ControllerService-offline.iss @@ -241,7 +241,7 @@ end; #define MyAppSetupName 'Handheld Companion' #define MyBuildId 'HandheldCompanion' -#define MyAppVersion '0.12.4.0' +#define MyAppVersion '0.13.0.0' #define MyAppPublisher 'BenjaminLSR' #define MyAppCopyright 'Copyright © BenjaminLSR' #define MyAppURL 'https://github.com/Valkirie/HandheldCompanion' diff --git a/ControllerService.iss b/ControllerService.iss index aad51e0ed..1a916d0a7 100644 --- a/ControllerService.iss +++ b/ControllerService.iss @@ -405,9 +405,9 @@ end; #define MyAppSetupName 'Handheld Companion' #define MyBuildId 'HandheldCompanion' -#define MyAppVersion '0.12.4.0' +#define MyAppVersion '0.13.0.0' #define MyAppPublisher 'BenjaminLSR' -#define MyAppCopyright 'Copyright © BenjaminLSR' +#define MyAppCopyright 'Copyright © BenjaminLSR' #define MyAppURL 'https://github.com/Valkirie/HandheldCompanion' #define MyAppExeName "HandheldCompanion.exe" #define MySerExeName "ControllerService.exe" diff --git a/ControllerService/AssemblyInfo1.cs b/ControllerService/AssemblyInfo1.cs index 0e7483576..0098fc780 100644 --- a/ControllerService/AssemblyInfo1.cs +++ b/ControllerService/AssemblyInfo1.cs @@ -19,5 +19,5 @@ // Numéro de build // Révision // -[assembly: AssemblyVersion("0.12.4.0")] -[assembly: AssemblyFileVersion("0.12.4.0")] +[assembly: AssemblyVersion("0.13.0.0")] +[assembly: AssemblyFileVersion("0.13.0.0")] diff --git a/ControllerService/ControllerService.cs b/ControllerService/ControllerService.cs index b33131caf..c423e891c 100644 --- a/ControllerService/ControllerService.cs +++ b/ControllerService/ControllerService.cs @@ -32,7 +32,7 @@ public class ControllerService : IHostedService // devices vars public static Device handheldDevice; - public static string CurrentExe, CurrentPath, CurrentPathDep; + public static string CurrentPath, CurrentPathDep; public static string CurrentTag; public static int CurrentOverlayStatus = 2; @@ -59,7 +59,6 @@ public ControllerService(IHostApplicationLifetime lifetime) CultureInfo.DefaultThreadCurrentUICulture = new CultureInfo("en-US"); // paths - CurrentExe = Process.GetCurrentProcess().MainModule.FileName; CurrentPath = AppDomain.CurrentDomain.BaseDirectory; CurrentPathDep = Path.Combine(CurrentPath, "dependencies"); @@ -89,9 +88,6 @@ public ControllerService(IHostApplicationLifetime lifetime) throw new InvalidOperationException(); } - // initialize HidHide - HidHide.RegisterApplication(CurrentExe); - // initialize PipeServer PipeServer.Initialize("ControllerService"); PipeServer.Connected += OnClientConnected; @@ -256,10 +252,6 @@ private void OnClientMessage(PipeMessage message) { switch (message.code) { - case PipeCode.FORCE_SHUTDOWN: - HidHide.SetCloaking(false); - break; - case PipeCode.CLIENT_PROFILE: PipeClientProfile profile = (PipeClientProfile)message; ProfileUpdated(profile.profile, profile.backgroundTask); diff --git a/ControllerService/Program.cs b/ControllerService/Program.cs index f0985b4b8..22970a29f 100644 --- a/ControllerService/Program.cs +++ b/ControllerService/Program.cs @@ -1,4 +1,5 @@ -using ControllerCommon.Managers; +using ControllerCommon; +using ControllerCommon.Managers; using Microsoft.Extensions.DependencyInjection; using Microsoft.Extensions.Hosting; using Microsoft.Extensions.Logging; @@ -6,6 +7,7 @@ using System.Diagnostics; using System.IO; using System.Reflection; +using static ControllerCommon.WinAPI; namespace ControllerService { @@ -13,6 +15,10 @@ internal static class Program { public static void Main(string[] args) { + // force high priority + using (Process process = Process.GetCurrentProcess()) + SetPriorityClass(process.Handle, (int)PriorityClass.HIGH_PRIORITY_CLASS); + Directory.SetCurrentDirectory(AppDomain.CurrentDomain.BaseDirectory); Assembly CurrentAssembly = Assembly.GetExecutingAssembly(); diff --git a/ControllerService/Targets/Xbox360Target.cs b/ControllerService/Targets/Xbox360Target.cs index 6d1b01158..512751923 100644 --- a/ControllerService/Targets/Xbox360Target.cs +++ b/ControllerService/Targets/Xbox360Target.cs @@ -64,10 +64,10 @@ public override unsafe void UpdateReport() base.UpdateReport(); - virtualController.SetAxisValue(Xbox360Axis.LeftThumbX, (short)Inputs.LeftThumbX); - virtualController.SetAxisValue(Xbox360Axis.LeftThumbY, (short)Inputs.LeftThumbY); - virtualController.SetAxisValue(Xbox360Axis.RightThumbX, (short)Inputs.RightThumbX); - virtualController.SetAxisValue(Xbox360Axis.RightThumbY, (short)Inputs.RightThumbY); + virtualController.SetAxisValue(Xbox360Axis.LeftThumbX, (short)LeftThumb.X); + virtualController.SetAxisValue(Xbox360Axis.LeftThumbY, (short)LeftThumb.Y); + virtualController.SetAxisValue(Xbox360Axis.RightThumbX, (short)RightThumb.X); + virtualController.SetAxisValue(Xbox360Axis.RightThumbY, (short)RightThumb.Y); virtualController.SetSliderValue(Xbox360Slider.LeftTrigger, (byte)Inputs.LeftTrigger); virtualController.SetSliderValue(Xbox360Slider.RightTrigger, (byte)Inputs.RightTrigger); diff --git a/HandheldCompanion/App.config b/HandheldCompanion/App.config index e0374defa..228a59cab 100644 --- a/HandheldCompanion/App.config +++ b/HandheldCompanion/App.config @@ -91,9 +91,6 @@ False - - 0 - True diff --git a/HandheldCompanion/App.xaml.cs b/HandheldCompanion/App.xaml.cs index 30b47dc24..120645e20 100644 --- a/HandheldCompanion/App.xaml.cs +++ b/HandheldCompanion/App.xaml.cs @@ -1,4 +1,5 @@ -using ControllerCommon.Managers; +using ControllerCommon; +using ControllerCommon.Managers; using ControllerCommon.Utils; using HandheldCompanion.Managers; using HandheldCompanion.Views; @@ -6,8 +7,10 @@ using System.Diagnostics; using System.Globalization; using System.Reflection; +using System.Reflection.Metadata; using System.Threading; using System.Windows; +using static ControllerCommon.WinAPI; namespace HandheldCompanion { @@ -40,22 +43,27 @@ protected override void OnStartup(StartupEventArgs args) LogManager.Initialize("HandheldCompanion"); LogManager.LogInformation("{0} ({1})", CurrentAssembly.GetName(), fileVersionInfo.FileVersion); - string proc = Process.GetCurrentProcess().ProcessName; - Process[] processes = Process.GetProcessesByName(proc); - - if (processes.Length > 1) + using (Process process = Process.GetCurrentProcess()) { - Process process = processes[0]; + // force high priority + SetPriorityClass(process.Handle, (int)PriorityClass.HIGH_PRIORITY_CLASS); - IntPtr handle = process.MainWindowHandle; - if (ProcessUtils.IsIconic(handle)) - ProcessUtils.ShowWindow(handle, (int)ProcessUtils.ShowWindowCommands.Restored); + Process[] processes = Process.GetProcessesByName(process.ProcessName); + if (processes.Length > 1) + { + using (Process prevProcess = processes[0]) + { + IntPtr handle = prevProcess.MainWindowHandle; + if (ProcessUtils.IsIconic(handle)) + ProcessUtils.ShowWindow(handle, (int)ProcessUtils.ShowWindowCommands.Restored); - ProcessUtils.SetForegroundWindow(handle); + ProcessUtils.SetForegroundWindow(handle); - // force close this iteration - Process.GetCurrentProcess().Kill(); - return; + // force close this iteration + process.Kill(); + return; + } + } } // define culture settings diff --git a/HandheldCompanion/HandheldCompanion.csproj b/HandheldCompanion/HandheldCompanion.csproj index 82e116111..a4cc1c409 100644 --- a/HandheldCompanion/HandheldCompanion.csproj +++ b/HandheldCompanion/HandheldCompanion.csproj @@ -10,7 +10,7 @@ HandheldCompanion.App $(SolutionDir)bin\$(Configuration) Resources\icon.ico - 0.12.4.0 + 0.13.0.0 app.manifest @@ -430,13 +430,13 @@ Always - + Always Always - + Always @@ -451,7 +451,7 @@ Always - + Always @@ -679,10 +679,10 @@ Always - + Always - + Always diff --git a/HandheldCompanion/Managers/ControllerManager.cs b/HandheldCompanion/Managers/ControllerManager.cs index 2812f78bf..4829521d3 100644 --- a/HandheldCompanion/Managers/ControllerManager.cs +++ b/HandheldCompanion/Managers/ControllerManager.cs @@ -7,7 +7,6 @@ using System.Collections.Generic; using System.Linq; using System.Windows; -using static System.Windows.Forms.VisualStyles.VisualStyleElement.ListView; namespace HandheldCompanion.Managers { diff --git a/HandheldCompanion/Managers/EnergyManager.cs b/HandheldCompanion/Managers/EnergyManager.cs index c470ed714..037be3236 100644 --- a/HandheldCompanion/Managers/EnergyManager.cs +++ b/HandheldCompanion/Managers/EnergyManager.cs @@ -93,15 +93,12 @@ public static void Stop() private static void ProcessManager_ForegroundChanged(ProcessEx processEx, ProcessEx backgroundEx) { - if (!IsEnabled) - return; - // set efficiency mode to Eco on background(ed) process - if (backgroundEx != null && !backgroundEx.IsIgnored && !backgroundEx.IsSuspended()) + if (backgroundEx != null && backgroundEx.Filter == ProcessEx.ProcessFilter.None && !backgroundEx.IsSuspended()) ToggleEfficiencyMode(backgroundEx.Id, QualityOfServiceLevel.Eco); // set efficency mode to High on foreground(ed) process - if (processEx != null && !processEx.IsIgnored && !processEx.IsSuspended()) + if (processEx != null && processEx.Filter == ProcessEx.ProcessFilter.None && !processEx.IsSuspended()) ToggleEfficiencyMode(processEx.Id, QualityOfServiceLevel.High); } @@ -110,9 +107,6 @@ private static void ProcessManager_ProcessStarted(ProcessEx processEx, bool star if (!startup) return; - if (!IsEnabled) - return; - // do not set process QoS to Eco if is already in foreground ProcessEx foregroundProcess = ProcessManager.GetForegroundProcess(); if (processEx == foregroundProcess) @@ -157,7 +151,7 @@ public static void ToggleAllEfficiencyMode() if (processEx == foregroundProcess) continue; - if (processEx.IsIgnored || processEx.IsSuspended()) + if (processEx.Filter != ProcessEx.ProcessFilter.None || processEx.IsSuspended()) continue; ToggleEfficiencyMode(processEx.Id, QualityOfServiceLevel.Eco); @@ -166,12 +160,15 @@ public static void ToggleAllEfficiencyMode() public static void RestoreDefaultEfficiency() { - foreach (ProcessEx processEx in ProcessManager.GetProcesses().Where(item => !item.IsIgnored && !item.IsSuspended())) + foreach (ProcessEx processEx in ProcessManager.GetProcesses().Where(item => item.Filter == ProcessEx.ProcessFilter.None && !item.IsSuspended())) ToggleEfficiencyMode(processEx.Id, QualityOfServiceLevel.High); } public static void ToggleEfficiencyMode(int pId, QualityOfServiceLevel level, ProcessEx parent = null) { + if (!IsEnabled) + return; + bool result = false; IntPtr hProcess = OpenProcess((uint)(ProcessAccessFlags.QueryLimitedInformation | ProcessAccessFlags.SetInformation), false, (uint)pId); diff --git a/HandheldCompanion/Managers/Hotkeys/InputsHotkey.cs b/HandheldCompanion/Managers/Hotkeys/InputsHotkey.cs index 04ced2acb..2478ae65b 100644 --- a/HandheldCompanion/Managers/Hotkeys/InputsHotkey.cs +++ b/HandheldCompanion/Managers/Hotkeys/InputsHotkey.cs @@ -49,9 +49,9 @@ public enum InputsHotkeyType : ushort { 48, new InputsHotkey(InputsHotkeyType.Custom, "\u2788", "shortcutCustom8", "Segoe UI Symbol", 20, false, true) }, { 49, new InputsHotkey(InputsHotkeyType.Custom, "\u2789", "shortcutCustom9", "Segoe UI Symbol", 20, false, true) }, - // UI hotkeys shouldn't be listed on the hotkeys page - { 50, new InputsHotkey(InputsHotkeyType.UI, "\uEDE3", "shortcutProfilesPage", "Segoe Fluent Icons", 20, false, true) }, - { 51, new InputsHotkey(InputsHotkeyType.UI, "\uEDE3", "shortcutProfilesSettingsMode0", "Segoe Fluent Icons", 20, false, true) }, + { 50, new InputsHotkey(InputsHotkeyType.UI, "\uEDE3", "shortcutProfilesPage1", "Segoe Fluent Icons", 20, true, true) }, + { 51, new InputsHotkey(InputsHotkeyType.UI, "\uEDE3", "shortcutProfilesPage2", "Segoe Fluent Icons", 20, true, true) }, + { 52, new InputsHotkey(InputsHotkeyType.UI, "\uEDE3", "shortcutProfilesSettingsMode0", "Segoe Fluent Icons", 20, true, true) }, }; public string Glyph { get; set; } diff --git a/HandheldCompanion/Managers/HotkeysManager.cs b/HandheldCompanion/Managers/HotkeysManager.cs index 36ab9e7f9..81479ba76 100644 --- a/HandheldCompanion/Managers/HotkeysManager.cs +++ b/HandheldCompanion/Managers/HotkeysManager.cs @@ -83,7 +83,8 @@ public static void Start() break; } - Hotkeys.Add(hotkey.hotkeyId, hotkey); + if (!Hotkeys.ContainsKey(hotkey.hotkeyId)) + Hotkeys.Add(hotkey.hotkeyId, hotkey); } // process hotkeys types @@ -94,7 +95,7 @@ public static void Start() { HotkeyCreated?.Invoke(hotkey); - switch(hotkey.inputsHotkey.hotkeyType) + switch (hotkey.inputsHotkey.hotkeyType) { case InputsHotkeyType.UI: hotkey.inputButton.Click += (sender, e) => StartListening(hotkey, ListenerType.UI); @@ -171,16 +172,16 @@ private static void TriggerUpdated(string listener, InputsChord inputs, Listener { Application.Current.Dispatcher.Invoke(new Action(() => { - Hotkey hotkey = Hotkeys.Values.Where(item => item.inputsHotkey.Listener.Equals(listener)).FirstOrDefault(); - - if (hotkey is null) - return; - - hotkey.StopListening(inputs, type); + listener = listener.TrimEnd(new char[] { '0', '1', '2', '3', '4', '5', '6', '7', '8', '9' }); + var hotkeys = Hotkeys.Values.Where(item => item.inputsHotkey.Listener.Contains(listener)); + foreach (Hotkey hotkey in hotkeys) + { + hotkey.StopListening(inputs, type); - // overwrite current file - SerializeHotkey(hotkey, true); - HotkeyUpdated?.Invoke(hotkey); + // overwrite current file + SerializeHotkey(hotkey, true); + HotkeyUpdated?.Invoke(hotkey); + } })); } @@ -226,17 +227,22 @@ public static void SerializeHotkey(Hotkey hotkey, bool overwrite = false) public static void TriggerRaised(string listener, InputsChord input, bool IsKeyDown, bool IsKeyUp) { - ProcessEx fProcess = ProcessManager.GetForegroundProcess(); - - Application.Current.Dispatcher.Invoke(new Action(() => + listener = listener.TrimEnd(new char[] { '0', '1', '2', '3', '4', '5', '6', '7', '8', '9' }); + var hotkeys = Hotkeys.Values.Where(item => item.inputsHotkey.Listener.Contains(listener)); + + foreach(Hotkey hotkey in hotkeys) { - Hotkey hotkey = Hotkeys.Values.Where(item => item.inputsHotkey.Listener.Equals(listener)).FirstOrDefault(); + Application.Current.Dispatcher.Invoke(new Action(() => + { + hotkey.Highlight(); + })); - if (hotkey is null) + // These are special shortcut keys with no related events + if (hotkey == hotkeys.Last() && hotkey.inputsHotkey.hotkeyType == InputsHotkeyType.UI) return; + } - hotkey.Highlight(); - })); + ProcessEx fProcess = ProcessManager.GetForegroundProcess(); try { @@ -255,14 +261,14 @@ public static void TriggerRaised(string listener, InputsChord input, bool IsKeyD Shell.ToggleDesktop(); break; case "shortcutESC": - if (fProcess != null && !fProcess.IsIgnored) + if (fProcess != null && fProcess.Filter == ProcessEx.ProcessFilter.None) { ProcessUtils.SetForegroundWindow(fProcess.MainWindowHandle); InputsManager.KeyPress(VirtualKeyCode.ESCAPE); } break; case "shortcutExpand": - if (fProcess != null && !fProcess.IsIgnored) + if (fProcess != null && fProcess.Filter == ProcessEx.ProcessFilter.None) { var Placement = ProcessUtils.GetPlacement(fProcess.MainWindowHandle); @@ -292,7 +298,7 @@ public static void TriggerRaised(string listener, InputsChord input, bool IsKeyD { var sProcess = ProcessManager.GetSuspendedProcess(); - if (sProcess is null || sProcess.IsIgnored) + if (sProcess is null || sProcess.Filter != ProcessEx.ProcessFilter.None) break; if (sProcess.IsSuspended()) diff --git a/HandheldCompanion/Managers/InputsManager.cs b/HandheldCompanion/Managers/InputsManager.cs index ad7f560f8..5ab0bb6ac 100644 --- a/HandheldCompanion/Managers/InputsManager.cs +++ b/HandheldCompanion/Managers/InputsManager.cs @@ -8,7 +8,6 @@ using PrecisionTiming; using System; using System.Collections.Generic; -using System.Globalization; using System.Linq; using System.Threading; using System.Windows.Forms; @@ -594,10 +593,11 @@ private static void StopListening(InputsChord inputsChord = null) if (inputsChord == null) inputsChord = new InputsChord(); - switch(currentType) + switch (currentType) { case ListenerType.Default: case ListenerType.Output: + case ListenerType.UI: Triggers[currentHotkey.Listener] = new InputsChord(inputsChord.GamepadButtons, inputsChord.OutputKeys, inputsChord.InputsType); break; } @@ -631,7 +631,8 @@ private static void TriggerCreated(Hotkey hotkey) { string listener = hotkey.inputsHotkey.Listener; - Triggers.Add(listener, hotkey.inputsChord); + if (!Triggers.ContainsKey(listener)) + Triggers.Add(listener, hotkey.inputsChord); } internal static void InvokeTrigger(Hotkey hotkey, bool IsKeyDown, bool IsKeyUp) diff --git a/HandheldCompanion/Managers/PowerManager.cs b/HandheldCompanion/Managers/PowerManager.cs index 855493b9b..d68712ac0 100644 --- a/HandheldCompanion/Managers/PowerManager.cs +++ b/HandheldCompanion/Managers/PowerManager.cs @@ -258,7 +258,7 @@ private void gfxWatchdog_Elapsed(object? sender, ElapsedEventArgs e) // not ready yet if (CurrentGfxClock == 0) { - Monitor.Exit(cpuLock); + Monitor.Exit(gfxLock); return; } } @@ -267,7 +267,7 @@ private void gfxWatchdog_Elapsed(object? sender, ElapsedEventArgs e) // not ready yet if (CurrentGfxClock == 0) { - Monitor.Exit(cpuLock); + Monitor.Exit(gfxLock); return; } } @@ -275,7 +275,7 @@ private void gfxWatchdog_Elapsed(object? sender, ElapsedEventArgs e) // not ready yet if (StoredGfxClock == 0) { - Monitor.Exit(cpuLock); + Monitor.Exit(gfxLock); return; } diff --git a/HandheldCompanion/Managers/Process/ProcessEx.cs b/HandheldCompanion/Managers/Process/ProcessEx.cs index 779e6be68..86cd055ae 100644 --- a/HandheldCompanion/Managers/Process/ProcessEx.cs +++ b/HandheldCompanion/Managers/Process/ProcessEx.cs @@ -15,6 +15,13 @@ namespace HandheldCompanion.Managers { public class ProcessEx { + public enum ProcessFilter + { + None = 0, + Bypassed = 1, + Silenced = 2, + } + public Process Process; public ProcessThread MainThread; @@ -28,7 +35,7 @@ public class ProcessEx public string Name; public string Executable; public string Path; - public bool IsIgnored; + public ProcessFilter Filter; private ThreadWaitReason threadWaitReason = ThreadWaitReason.UserRequest; @@ -277,7 +284,8 @@ public void DrawControl() processStackPanel.Children.Add(new Separator() { Margin = new Thickness(-50, 0, -20, 0), - Background = Application.Current.FindResource("SystemControlBackgroundChromeMediumBrush") as Brush + Background = Application.Current.FindResource("SystemControlBackgroundChromeMediumBrush") as Brush, + Opacity = 0.25 }); Grid row2 = new Grid(); diff --git a/HandheldCompanion/Managers/ProcessManager.cs b/HandheldCompanion/Managers/ProcessManager.cs index cb73444ca..69bb9bda9 100644 --- a/HandheldCompanion/Managers/ProcessManager.cs +++ b/HandheldCompanion/Managers/ProcessManager.cs @@ -11,7 +11,8 @@ using System.Threading.Tasks; using System.Windows.Automation; using Windows.System.Diagnostics; -using static ControllerCommon.WinAPI; +using static ControllerCommon.WinAPI +using static HandheldCompanion.Managers.ProcessEx; using Timer = System.Timers.Timer; namespace HandheldCompanion.Managers @@ -203,10 +204,13 @@ private static void EventCallback(IntPtr hWinEventHook, uint iEvent, IntPtr hWnd string exec = System.IO.Path.GetFileName(path); bool self = IsSelf(exec, path); - if (self) return; + ProcessFilter filter = GetFilter(exec, path); + if (filter == ProcessFilter.Silenced) + return; + // save previous process (if exists) if (foregroundProcess != null) backgroundProcess = foregroundProcess; @@ -219,7 +223,7 @@ private static void EventCallback(IntPtr hWinEventHook, uint iEvent, IntPtr hWnd Name = exec, Executable = exec, Path = path, - IsIgnored = !IsValid(exec, path) + Filter = filter, }; // update main window handle @@ -287,14 +291,14 @@ private static void ProcessCreated(Process proc, int NativeWindowHandle = 0, boo Executable = exec, Path = path, MainWindowHandle = NativeWindowHandle != 0 ? (IntPtr)NativeWindowHandle : proc.MainWindowHandle, - IsIgnored = !IsValid(exec, path) + Filter = GetFilter(exec, path) }; processEx.ChildProcessCreated += ChildProcessCreated; Processes.TryAdd(processEx.Id, processEx); - if (processEx.IsIgnored) + if (processEx.Filter != ProcessFilter.None) return; // raise event @@ -312,16 +316,19 @@ private static void ProcessCreated(Process proc, int NativeWindowHandle = 0, boo private static void ChildProcessCreated(ProcessEx parent, int Id) { + if (parent.EcoQoS == EnergyManager.QualityOfServiceLevel.Default) + return; + EnergyManager.ToggleEfficiencyMode(Id, parent.EcoQoS, parent); } - private static bool IsValid(string exec, string path) + private static ProcessFilter GetFilter(string exec, string path) { if (string.IsNullOrEmpty(path)) - return false; + return ProcessFilter.Bypassed; if (path.Contains(Environment.GetEnvironmentVariable("windir"), StringComparison.InvariantCultureIgnoreCase)) - return false; + return ProcessFilter.Bypassed; // manual filtering switch (exec.ToLower()) @@ -357,17 +364,19 @@ private static bool IsValid(string exec, string path) // Other case "bdagent.exe": // Bitdefender Agent - case "radeonsoftware.exe": case "monotificationux.exe": // handheld companion case "handheldcompanion.exe": case "controllerservice.exe": case "controllerservice.dll": - return false; + return ProcessFilter.Bypassed; + + case "radeonsoftware.exe": + return ProcessFilter.Silenced; default: - return true; + return ProcessFilter.None; } } diff --git a/HandheldCompanion/Managers/ProfileManager.cs b/HandheldCompanion/Managers/ProfileManager.cs index ec65d242e..d6ba02059 100644 --- a/HandheldCompanion/Managers/ProfileManager.cs +++ b/HandheldCompanion/Managers/ProfileManager.cs @@ -42,7 +42,7 @@ public static class ProfileManager #endregion public static Profile currentProfile = new(); - private static string Path; + public static string Path; private static bool IsInitialized; static ProfileManager() @@ -201,14 +201,12 @@ private static void ProcessManager_ForegroundChanged(ProcessEx processEx, Proces LogManager.LogDebug("Profile {0} applied", profile.name); - if (profile.isDefault) - { - // inform service - PipeClient.SendMessage(new PipeClientProfile { profile = profile, backgroundTask = true }); + // inform service + PipeClient.SendMessage(new PipeClientProfile { profile = profile, backgroundTask = true }); - // do not update default profile path + // do not update default profile path + if (profile.isDefault) return; - } // send toast // todo: localize me @@ -340,7 +338,7 @@ private static ProfileErrorCode SanitizeProfile(Profile profile) return ProfileErrorCode.None; } - public static void UpdateOrCreateProfile(Profile profile, bool backgroundtask = true, bool fullUpdate = true) + public static void UpdateOrCreateProfile(Profile profile, bool backgroundtask = true, bool fullUpdate = true, bool serialize = true) { // refresh error code profile.error = SanitizeProfile(profile); @@ -374,6 +372,10 @@ public static void UpdateOrCreateProfile(Profile profile, bool backgroundtask = // update cloaking UpdateProfileCloaking(profile); } + + // serialize + if (serialize) + SerializeProfile(profile); } public static void UpdateProfileCloaking(Profile profile) diff --git a/HandheldCompanion/models/AYANEO NEXT/WFB-1.obj b/HandheldCompanion/Models/AYANEO NEXT/OEM1.obj similarity index 96% rename from HandheldCompanion/models/AYANEO NEXT/WFB-1.obj rename to HandheldCompanion/Models/AYANEO NEXT/OEM1.obj index 629f82374..af2bf6455 100644 --- a/HandheldCompanion/models/AYANEO NEXT/WFB-1.obj +++ b/HandheldCompanion/Models/AYANEO NEXT/OEM1.obj @@ -1,502 +1,502 @@ -# WaveFront *.obj file (generated by Autodesk ATF) - -mtllib AyaNeoNext_AyaNeoNext-01 v19_WFB-1_AyaNeoNext-01 v19.mtl - -g WFB-1 - -v 98.500002 -10.700000 -34.500001 -v 98.837640 -10.700000 -36.306209 -v 99.804957 -10.700000 -37.868479 -v 101.271310 -10.700000 -38.975817 -v 103.038660 -10.700000 -39.478671 -v 104.868316 -10.700000 -39.309129 -v 106.513175 -10.700000 -38.490087 -v 107.751087 -10.700000 -37.132161 -v 108.414867 -10.700000 -35.418748 -v 108.414867 -10.700000 -33.581253 -v 107.751087 -10.700000 -31.867840 -v 106.513175 -10.700000 -30.509914 -v 104.868316 -10.700000 -29.690872 -v 103.038660 -10.700000 -29.521330 -v 101.271310 -10.700000 -30.024184 -v 99.804957 -10.700000 -31.131522 -v 98.837640 -10.700000 -32.693792 -v 98.800002 -11.000000 -34.500001 -v 99.157768 -11.000000 -32.701388 -v 100.176600 -11.000000 -31.176599 -v 101.701389 -11.000000 -30.157767 -v 103.500002 -11.000000 -29.800001 -v 105.298614 -11.000000 -30.157767 -v 106.823403 -11.000000 -31.176599 -v 107.842235 -11.000000 -32.701388 -v 108.200002 -11.000000 -34.500001 -v 107.842235 -11.000000 -36.298613 -v 106.823403 -11.000000 -37.823402 -v 105.298614 -11.000000 -38.842234 -v 103.500002 -11.000000 -39.200001 -v 101.701389 -11.000000 -38.842234 -v 100.176600 -11.000000 -37.823402 -v 99.157768 -11.000000 -36.298613 -v 103.500002 -10.850000 -29.540193 -v 103.500002 -10.959808 -29.650001 -v 98.729531 -10.850000 -35.857316 -v 98.835147 -10.959808 -35.827266 -v 98.670691 -10.959808 -34.052499 -v 98.561352 -10.850000 -34.042367 -v 99.541990 -10.850000 -37.488952 -v 99.629618 -10.959808 -37.422779 -v 100.888999 -10.850000 -38.716914 -v 100.946806 -10.959808 -38.623554 -v 102.588639 -10.850000 -39.375358 -v 102.608816 -10.959808 -39.267420 -v 104.411364 -10.850000 -39.375358 -v 104.391187 -10.959808 -39.267420 -v 106.111004 -10.850000 -38.716914 -v 106.053198 -10.959808 -38.623554 -v 107.458013 -10.850000 -37.488952 -v 107.370385 -10.959808 -37.422779 -v 108.270472 -10.850000 -35.857316 -v 108.164856 -10.959808 -35.827266 -v 108.438651 -10.850000 -34.042367 -v 108.329312 -10.959808 -34.052499 -v 107.939839 -10.850000 -32.289224 -v 107.841544 -10.959808 -32.338169 -v 106.841402 -10.850000 -30.834658 -v 106.767425 -10.959808 -30.915807 -v 105.291691 -10.850000 -29.875118 -v 105.252024 -10.959808 -29.977510 -v 101.708312 -10.850000 -29.875118 -v 101.747979 -10.959808 -29.977510 -v 100.158601 -10.850000 -30.834658 -v 100.232578 -10.959808 -30.915807 -v 99.060164 -10.850000 -32.289224 -v 99.158460 -10.959808 -32.338169 -v 98.500002 -8.500000 -34.500001 -v 98.837640 -8.500000 -36.306209 -v 99.804957 -8.500000 -37.868479 -v 101.271310 -8.500000 -38.975817 -v 103.038660 -8.500000 -39.478671 -v 104.868316 -8.500000 -39.309129 -v 106.513175 -8.500000 -38.490087 -v 107.751087 -8.500000 -37.132161 -v 108.414867 -8.500000 -35.418748 -v 108.414867 -8.500000 -33.581253 -v 107.751087 -8.500000 -31.867840 -v 106.513175 -8.500000 -30.509914 -v 104.868316 -8.500000 -29.690872 -v 103.038660 -8.500000 -29.521330 -v 101.271310 -8.500000 -30.024184 -v 99.804957 -8.500000 -31.131522 -v 98.837640 -8.500000 -32.693792 -vt 0.000000 -0.590044 0.000000 -vt -0.015708 -0.635432 0.000000 -vt -0.000000 -0.771596 0.000000 -vt -0.015708 -0.816984 0.000000 -vt -0.000000 -0.953148 0.000000 -vt -0.015708 -0.998536 0.000000 -vt -0.000000 -1.134700 0.000000 -vt -0.015708 -1.180088 0.000000 -vt -0.000000 -1.316252 0.000000 -vt -0.015708 -1.361640 0.000000 -vt -0.000000 -1.497804 0.000000 -vt -0.015708 -1.543192 0.000000 -vt 0.000000 -1.679356 0.000000 -vt -0.000000 1.407028 0.000000 -vt -0.015708 1.543192 0.000000 -vt -0.015708 1.361640 0.000000 -vt -0.000000 1.225476 0.000000 -vt -0.015708 1.180088 0.000000 -vt -0.000000 1.043924 0.000000 -vt -0.015708 0.998536 0.000000 -vt -0.000000 0.862372 0.000000 -vt -0.015708 0.816984 0.000000 -vt -0.000000 0.680820 0.000000 -vt -0.015708 0.635432 0.000000 -vt -0.000000 0.499268 0.000000 -vt -0.015708 0.453880 0.000000 -vt -0.000000 0.317716 0.000000 -vt -0.015708 0.272328 0.000000 -vt -0.000000 0.136164 0.000000 -vt -0.015708 0.090776 0.000000 -vt 0.000000 -0.045388 0.000000 -vt -0.015708 -0.090776 0.000000 -vt 0.000000 -0.226940 0.000000 -vt -0.015708 -0.272328 0.000000 -vt 0.000000 -0.408492 0.000000 -vt -0.015708 -0.453880 0.000000 -vt -0.047124 -0.964495 0.000000 -vt -0.031416 -0.816984 0.000000 -vt -0.047124 -0.771596 0.000000 -vt -0.031416 -0.635432 0.000000 -vt -0.047124 -0.578697 0.000000 -vt -0.031416 -0.453880 0.000000 -vt -0.047124 -0.385798 0.000000 -vt -0.031416 -0.272328 0.000000 -vt -0.047124 -0.192899 0.000000 -vt -0.031416 -0.090776 0.000000 -vt -0.047124 0.000000 0.000000 -vt -0.031416 0.090776 0.000000 -vt -0.047124 0.192899 0.000000 -vt -0.031416 0.272328 0.000000 -vt -0.047124 0.385798 0.000000 -vt -0.031416 0.453880 0.000000 -vt -0.047124 0.578697 0.000000 -vt -0.031416 0.635432 0.000000 -vt -0.047124 0.771596 0.000000 -vt -0.031416 0.816984 0.000000 -vt -0.047124 0.964495 0.000000 -vt -0.031416 0.998536 0.000000 -vt -0.047124 1.157394 0.000000 -vt -0.031416 1.180088 0.000000 -vt -0.047124 1.350293 0.000000 -vt -0.031416 1.361640 0.000000 -vt -0.047124 1.543192 0.000000 -vt -0.031416 1.543192 0.000000 -vt -0.047124 -1.543192 0.000000 -vt -0.031416 -1.543192 0.000000 -vt -0.031416 -1.361640 0.000000 -vt -0.031416 -0.998536 0.000000 -vt -0.047124 -1.157394 0.000000 -vt -0.031416 -1.180088 0.000000 -vt -0.047124 -1.350293 0.000000 -vt 0.200000 -1.385997 0.000000 -vt -0.020000 -1.385997 0.000000 -vt 0.200000 -1.570796 0.000000 -vt -0.020000 -1.570796 0.000000 -vt 0.200000 1.570796 0.000000 -vt -0.020000 1.570796 0.000000 -vt 0.200000 1.385997 0.000000 -vt -0.020000 1.385997 0.000000 -vt 0.200000 1.201197 0.000000 -vt -0.020000 1.201197 0.000000 -vt 0.200000 1.016398 0.000000 -vt -0.020000 1.016398 0.000000 -vt 0.200000 0.831598 0.000000 -vt -0.020000 0.831598 0.000000 -vt 0.200000 0.646798 0.000000 -vt -0.020000 0.646798 0.000000 -vt 0.200000 0.461999 0.000000 -vt -0.020000 0.461999 0.000000 -vt 0.200000 0.277199 0.000000 -vt -0.020000 0.277199 0.000000 -vt 0.200000 0.092400 0.000000 -vt -0.020000 0.092400 0.000000 -vt 0.200000 -0.092400 0.000000 -vt -0.020000 -0.092400 0.000000 -vt 0.200000 -0.277199 0.000000 -vt -0.020000 -0.277199 0.000000 -vt 0.200000 -0.461999 0.000000 -vt -0.020000 -0.461999 0.000000 -vt 0.200000 -0.646798 0.000000 -vt -0.020000 -0.646798 0.000000 -vt 0.200000 -0.831598 0.000000 -vt -0.020000 -0.831598 0.000000 -vt 0.200000 -1.016398 0.000000 -vt -0.020000 -1.016398 0.000000 -vt 0.200000 -1.201197 0.000000 -vt -0.020000 -1.201197 0.000000 -vt -0.434223 -0.179861 0.000000 -vt 0.434223 -0.179861 0.000000 -vt -0.470000 0.000000 0.000000 -vt 0.470000 0.000000 0.000000 -vt -0.434223 0.179861 0.000000 -vt 0.434223 0.179861 0.000000 -vt -0.332340 0.332340 0.000000 -vt 0.332340 0.332340 0.000000 -vt -0.179861 0.434223 0.000000 -vt 0.179861 0.434223 0.000000 -vt 0.000000 0.470000 0.000000 -vt 0.332340 -0.332340 0.000000 -vt -0.332340 -0.332340 0.000000 -vt 0.179861 -0.434223 0.000000 -vt -0.179861 -0.434223 0.000000 -vt 0.000000 -0.470000 0.000000 -vt 0.466236 -0.180621 0.000000 -vt 0.500000 0.000000 0.000000 -vt 0.369504 -0.336848 0.000000 -vt 0.466236 0.180621 0.000000 -vt 0.369504 0.336848 0.000000 -vt 0.222869 -0.447582 0.000000 -vt 0.222869 0.447582 0.000000 -vt 0.046134 -0.497867 0.000000 -vt 0.046134 0.497867 0.000000 -vt -0.136831 -0.480913 0.000000 -vt -0.136831 0.480913 0.000000 -vt -0.301317 -0.399009 0.000000 -vt -0.301317 0.399009 0.000000 -vt -0.425109 -0.263216 0.000000 -vt -0.425109 0.263216 0.000000 -vt -0.491487 -0.091875 0.000000 -vt -0.491487 0.091875 0.000000 -vn -0.093247 0.000000 -0.036124 -vn -0.083297 -0.050000 -0.023700 -vn -0.100000 0.000000 -0.000000 -vn -0.086233 -0.050000 0.007991 -vn -0.093247 0.000000 0.036124 -vn -0.077523 -0.050000 0.038602 -vn -0.073901 0.000000 0.067370 -vn -0.058344 -0.050000 0.064000 -vn -0.044574 0.000000 0.089516 -vn -0.031284 -0.050000 0.080754 -vn -0.009227 0.000000 0.099573 -vn -0.000000 -0.050000 0.086603 -vn 0.027366 0.000000 0.096183 -vn 0.031284 -0.050000 0.080754 -vn 0.060263 0.000000 0.079802 -vn 0.058344 -0.050000 0.064000 -vn 0.085022 0.000000 0.052643 -vn 0.077523 -0.050000 0.038602 -vn 0.098297 0.000000 0.018375 -vn 0.086233 -0.050000 0.007991 -vn 0.098297 0.000000 -0.018375 -vn 0.083297 -0.050000 -0.023700 -vn 0.085022 0.000000 -0.052643 -vn 0.069110 -0.050000 -0.052190 -vn 0.060263 0.000000 -0.079802 -vn 0.045590 -0.050000 -0.073631 -vn 0.027366 0.000000 -0.096183 -vn 0.015913 -0.050000 -0.085128 -vn -0.009227 0.000000 -0.099573 -vn -0.015913 -0.050000 -0.085128 -vn -0.044574 0.000000 -0.089516 -vn -0.045590 -0.050000 -0.073631 -vn -0.073901 0.000000 -0.067370 -vn -0.069110 -0.050000 -0.052190 -vn 0.000000 -0.100000 -0.000000 -vn -0.049787 -0.086603 0.004613 -vn -0.000000 -0.100000 -0.000000 -vn -0.048091 -0.086603 -0.013683 -vn 0.000000 -0.100000 0.000000 -vn -0.039901 -0.086603 -0.030132 -vn -0.000000 -0.100000 -0.000000 -vn -0.026322 -0.086603 -0.042511 -vn -0.000000 -0.100000 -0.000000 -vn -0.009187 -0.086603 -0.049149 -vn 0.000000 -0.100000 -0.000000 -vn 0.009187 -0.086603 -0.049149 -vn 0.000000 -0.100000 -0.000000 -vn 0.026322 -0.086603 -0.042511 -vn 0.000000 -0.100000 -0.000000 -vn 0.039901 -0.086603 -0.030132 -vn -0.000000 -0.100000 0.000000 -vn 0.048091 -0.086603 -0.013683 -vn 0.000000 -0.100000 -0.000000 -vn 0.049787 -0.086603 0.004613 -vn -0.000000 -0.100000 -0.000000 -vn 0.044758 -0.086603 0.022287 -vn 0.000000 -0.100000 0.000000 -vn 0.033685 -0.086603 0.036950 -vn -0.000000 -0.100000 -0.000000 -vn 0.018062 -0.086603 0.046624 -vn 0.000000 -0.100000 0.000000 -vn 0.000000 -0.086603 0.050000 -vn -0.018062 -0.086603 0.046624 -vn -0.044758 -0.086603 0.022287 -vn -0.000000 -0.100000 0.000000 -vn -0.033685 -0.086603 0.036950 -vn 0.000000 -0.100000 -0.000000 -vn -0.093247 0.000000 -0.036124 -vn -0.100000 0.000000 -0.000000 -vn -0.093247 0.000000 0.036124 -vn -0.073901 0.000000 0.067370 -vn -0.044574 0.000000 0.089516 -vn -0.009227 0.000000 0.099573 -vn 0.027366 0.000000 0.096183 -vn 0.060263 0.000000 0.079802 -vn 0.085022 0.000000 0.052643 -vn 0.098297 0.000000 0.018375 -vn 0.098297 0.000000 -0.018375 -vn 0.085022 0.000000 -0.052643 -vn 0.060263 0.000000 -0.079802 -vn 0.027366 0.000000 -0.096183 -vn -0.009227 0.000000 -0.099573 -vn -0.044574 0.000000 -0.089516 -vn -0.073901 0.000000 -0.067370 -vn -0.000000 0.100000 -0.000000 -vn -0.000000 0.100000 -0.000000 -vn -0.000000 0.100000 -0.000000 -vn -0.000000 0.100000 -0.000000 -vn -0.000000 0.100000 -0.000000 -vn -0.000000 0.100000 -0.000000 -vn -0.000000 0.100000 -0.000000 -vn -0.000000 0.100000 -0.000000 -vn -0.000000 0.100000 -0.000000 -vn -0.000000 0.100000 -0.000000 -vn -0.000000 0.100000 -0.000000 -vn -0.000000 0.100000 -0.000000 -vn -0.000000 0.100000 -0.000000 -vn -0.000000 0.100000 -0.000000 -vn -0.000000 0.100000 -0.000000 -vn -0.000000 0.100000 -0.000000 -vn -0.000000 0.100000 -0.000000 -usemtl Paint_-_Enamel_Glossy_(Black) -f 2/1/1 36/2/2 1/3/3 -f 1/3/3 36/2/2 39/4/4 -f 1/3/3 39/4/4 17/5/5 -f 17/5/5 39/4/4 66/6/6 -f 17/5/5 66/6/6 16/7/7 -f 16/7/7 66/6/6 64/8/8 -f 16/7/7 64/8/8 15/9/9 -f 15/9/9 64/8/8 62/10/10 -f 15/9/9 62/10/10 14/11/11 -f 14/11/11 62/10/10 34/12/12 -f 14/11/11 34/12/12 13/13/13 -f 13/14/13 34/15/12 60/16/14 -f 13/14/13 60/16/14 12/17/15 -f 12/17/15 60/16/14 58/18/16 -f 12/17/15 58/18/16 11/19/17 -f 11/19/17 58/18/16 56/20/18 -f 11/19/17 56/20/18 10/21/19 -f 10/21/19 56/20/18 54/22/20 -f 10/21/19 54/22/20 9/23/21 -f 9/23/21 54/22/20 52/24/22 -f 9/23/21 52/24/22 8/25/23 -f 8/25/23 52/24/22 50/26/24 -f 8/25/23 50/26/24 7/27/25 -f 7/27/25 50/26/24 48/28/26 -f 7/27/25 48/28/26 6/29/27 -f 6/29/27 48/28/26 46/30/28 -f 6/29/27 46/30/28 5/31/29 -f 5/31/29 46/30/28 44/32/30 -f 5/31/29 44/32/30 4/33/31 -f 4/33/31 44/32/30 42/34/32 -f 4/33/31 42/34/32 3/35/33 -f 3/35/33 42/34/32 40/36/34 -f 3/35/33 40/36/34 2/1/1 -f 2/1/1 40/36/34 36/2/2 -f 19/37/35 38/38/36 18/39/37 -f 18/39/37 38/38/36 37/40/38 -f 18/39/37 37/40/38 33/41/39 -f 33/41/39 37/40/38 41/42/40 -f 33/41/39 41/42/40 32/43/41 -f 32/43/41 41/42/40 43/44/42 -f 32/43/41 43/44/42 31/45/43 -f 31/45/43 43/44/42 45/46/44 -f 31/45/43 45/46/44 30/47/45 -f 30/47/45 45/46/44 47/48/46 -f 30/47/45 47/48/46 29/49/47 -f 29/49/47 47/48/46 49/50/48 -f 29/49/47 49/50/48 28/51/49 -f 28/51/49 49/50/48 51/52/50 -f 28/51/49 51/52/50 27/53/51 -f 27/53/51 51/52/50 53/54/52 -f 27/53/51 53/54/52 26/55/53 -f 26/55/53 53/54/52 55/56/54 -f 26/55/53 55/56/54 25/57/55 -f 25/57/55 55/56/54 57/58/56 -f 25/57/55 57/58/56 24/59/57 -f 24/59/57 57/58/56 59/60/58 -f 24/59/57 59/60/58 23/61/59 -f 23/61/59 59/60/58 61/62/60 -f 23/61/59 61/62/60 22/63/61 -f 22/63/61 61/62/60 35/64/62 -f 22/65/61 35/66/62 63/67/63 -f 63/67/63 35/66/62 34/12/12 -f 63/67/63 34/12/12 62/10/10 -f 38/38/36 19/37/35 67/68/64 -f 67/68/64 19/37/35 20/69/65 -f 67/68/64 20/69/65 65/70/66 -f 65/70/66 20/69/65 21/71/67 -f 65/70/66 21/71/67 63/67/63 -f 63/67/63 21/71/67 22/65/61 -f 34/15/12 35/64/62 60/16/14 -f 60/16/14 35/64/62 61/62/60 -f 60/16/14 61/62/60 58/18/16 -f 58/18/16 61/62/60 59/60/58 -f 58/18/16 59/60/58 56/20/18 -f 56/20/18 59/60/58 57/58/56 -f 56/20/18 57/58/56 54/22/20 -f 54/22/20 57/58/56 55/56/54 -f 54/22/20 55/56/54 52/24/22 -f 52/24/22 55/56/54 53/54/52 -f 52/24/22 53/54/52 50/26/24 -f 50/26/24 53/54/52 51/52/50 -f 50/26/24 51/52/50 48/28/26 -f 48/28/26 51/52/50 49/50/48 -f 48/28/26 49/50/48 46/30/28 -f 46/30/28 49/50/48 47/48/46 -f 46/30/28 47/48/46 44/32/30 -f 44/32/30 47/48/46 45/46/44 -f 44/32/30 45/46/44 42/34/32 -f 42/34/32 45/46/44 43/44/42 -f 42/34/32 43/44/42 40/36/34 -f 40/36/34 43/44/42 41/42/40 -f 40/36/34 41/42/40 36/2/2 -f 36/2/2 41/42/40 37/40/38 -f 36/2/2 37/40/38 39/4/4 -f 39/4/4 37/40/38 38/38/36 -f 39/4/4 38/38/36 66/6/6 -f 66/6/6 38/38/36 67/68/64 -f 66/6/6 67/68/64 64/8/8 -f 64/8/8 67/68/64 65/70/66 -f 64/8/8 65/70/66 62/10/10 -f 62/10/10 65/70/66 63/67/63 -f 69/72/68 2/73/1 68/74/69 -f 68/74/69 2/73/1 1/75/3 -f 68/76/69 1/77/3 84/78/70 -f 84/78/70 1/77/3 17/79/5 -f 84/78/70 17/79/5 83/80/71 -f 83/80/71 17/79/5 16/81/7 -f 83/80/71 16/81/7 82/82/72 -f 82/82/72 16/81/7 15/83/9 -f 82/82/72 15/83/9 81/84/73 -f 81/84/73 15/83/9 14/85/11 -f 81/84/73 14/85/11 80/86/74 -f 80/86/74 14/85/11 13/87/13 -f 80/86/74 13/87/13 79/88/75 -f 79/88/75 13/87/13 12/89/15 -f 79/88/75 12/89/15 78/90/76 -f 78/90/76 12/89/15 11/91/17 -f 78/90/76 11/91/17 77/92/77 -f 77/92/77 11/91/17 10/93/19 -f 77/92/77 10/93/19 76/94/78 -f 76/94/78 10/93/19 9/95/21 -f 76/94/78 9/95/21 75/96/79 -f 75/96/79 9/95/21 8/97/23 -f 75/96/79 8/97/23 74/98/80 -f 74/98/80 8/97/23 7/99/25 -f 74/98/80 7/99/25 73/100/81 -f 73/100/81 7/99/25 6/101/27 -f 73/100/81 6/101/27 72/102/82 -f 72/102/82 6/101/27 5/103/29 -f 72/102/82 5/103/29 71/104/83 -f 71/104/83 5/103/29 4/105/31 -f 71/104/83 4/105/31 70/106/84 -f 70/106/84 4/105/31 3/107/33 -f 70/106/84 3/107/33 69/72/68 -f 69/72/68 3/107/33 2/73/1 -f 33/108/39 27/109/51 18/110/37 -f 18/110/37 27/109/51 26/111/53 -f 18/110/37 26/111/53 19/112/35 -f 19/112/35 26/111/53 25/113/55 -f 19/112/35 25/113/55 20/114/65 -f 20/114/65 25/113/55 24/115/57 -f 20/114/65 24/115/57 21/116/67 -f 21/116/67 24/115/57 23/117/59 -f 21/116/67 23/117/59 22/118/61 -f 27/109/51 33/108/39 28/119/49 -f 28/119/49 33/108/39 32/120/41 -f 28/119/49 32/120/41 29/121/47 -f 29/121/47 32/120/41 31/122/43 -f 29/121/47 31/122/43 30/123/45 -f 69/124/85 68/125/86 70/126/87 -f 70/126/87 68/125/86 84/127/88 -f 70/126/87 84/127/88 83/128/89 -f 70/126/87 83/128/89 71/129/90 -f 71/129/90 83/128/89 82/130/91 -f 71/129/90 82/130/91 72/131/92 -f 72/131/92 82/130/91 81/132/93 -f 72/131/92 81/132/93 73/133/94 -f 73/133/94 81/132/93 80/134/95 -f 73/133/94 80/134/95 74/135/96 -f 74/135/96 80/134/95 79/136/97 -f 74/135/96 79/136/97 75/137/98 -f 75/137/98 79/136/97 78/138/99 -f 75/137/98 78/138/99 76/139/100 -f 76/139/100 78/138/99 77/140/101 -# 84 vertices -# 140 texture params -# 101 normals -# 164 facets - -# 1 groups +# WaveFront *.obj file (generated by Autodesk ATF) + +mtllib AyaNeoNext_AyaNeoNext-01 v19_WFB-1_AyaNeoNext-01 v19.mtl + +g WFB-1 + +v 98.500002 -10.700000 -34.500001 +v 98.837640 -10.700000 -36.306209 +v 99.804957 -10.700000 -37.868479 +v 101.271310 -10.700000 -38.975817 +v 103.038660 -10.700000 -39.478671 +v 104.868316 -10.700000 -39.309129 +v 106.513175 -10.700000 -38.490087 +v 107.751087 -10.700000 -37.132161 +v 108.414867 -10.700000 -35.418748 +v 108.414867 -10.700000 -33.581253 +v 107.751087 -10.700000 -31.867840 +v 106.513175 -10.700000 -30.509914 +v 104.868316 -10.700000 -29.690872 +v 103.038660 -10.700000 -29.521330 +v 101.271310 -10.700000 -30.024184 +v 99.804957 -10.700000 -31.131522 +v 98.837640 -10.700000 -32.693792 +v 98.800002 -11.000000 -34.500001 +v 99.157768 -11.000000 -32.701388 +v 100.176600 -11.000000 -31.176599 +v 101.701389 -11.000000 -30.157767 +v 103.500002 -11.000000 -29.800001 +v 105.298614 -11.000000 -30.157767 +v 106.823403 -11.000000 -31.176599 +v 107.842235 -11.000000 -32.701388 +v 108.200002 -11.000000 -34.500001 +v 107.842235 -11.000000 -36.298613 +v 106.823403 -11.000000 -37.823402 +v 105.298614 -11.000000 -38.842234 +v 103.500002 -11.000000 -39.200001 +v 101.701389 -11.000000 -38.842234 +v 100.176600 -11.000000 -37.823402 +v 99.157768 -11.000000 -36.298613 +v 103.500002 -10.850000 -29.540193 +v 103.500002 -10.959808 -29.650001 +v 98.729531 -10.850000 -35.857316 +v 98.835147 -10.959808 -35.827266 +v 98.670691 -10.959808 -34.052499 +v 98.561352 -10.850000 -34.042367 +v 99.541990 -10.850000 -37.488952 +v 99.629618 -10.959808 -37.422779 +v 100.888999 -10.850000 -38.716914 +v 100.946806 -10.959808 -38.623554 +v 102.588639 -10.850000 -39.375358 +v 102.608816 -10.959808 -39.267420 +v 104.411364 -10.850000 -39.375358 +v 104.391187 -10.959808 -39.267420 +v 106.111004 -10.850000 -38.716914 +v 106.053198 -10.959808 -38.623554 +v 107.458013 -10.850000 -37.488952 +v 107.370385 -10.959808 -37.422779 +v 108.270472 -10.850000 -35.857316 +v 108.164856 -10.959808 -35.827266 +v 108.438651 -10.850000 -34.042367 +v 108.329312 -10.959808 -34.052499 +v 107.939839 -10.850000 -32.289224 +v 107.841544 -10.959808 -32.338169 +v 106.841402 -10.850000 -30.834658 +v 106.767425 -10.959808 -30.915807 +v 105.291691 -10.850000 -29.875118 +v 105.252024 -10.959808 -29.977510 +v 101.708312 -10.850000 -29.875118 +v 101.747979 -10.959808 -29.977510 +v 100.158601 -10.850000 -30.834658 +v 100.232578 -10.959808 -30.915807 +v 99.060164 -10.850000 -32.289224 +v 99.158460 -10.959808 -32.338169 +v 98.500002 -8.500000 -34.500001 +v 98.837640 -8.500000 -36.306209 +v 99.804957 -8.500000 -37.868479 +v 101.271310 -8.500000 -38.975817 +v 103.038660 -8.500000 -39.478671 +v 104.868316 -8.500000 -39.309129 +v 106.513175 -8.500000 -38.490087 +v 107.751087 -8.500000 -37.132161 +v 108.414867 -8.500000 -35.418748 +v 108.414867 -8.500000 -33.581253 +v 107.751087 -8.500000 -31.867840 +v 106.513175 -8.500000 -30.509914 +v 104.868316 -8.500000 -29.690872 +v 103.038660 -8.500000 -29.521330 +v 101.271310 -8.500000 -30.024184 +v 99.804957 -8.500000 -31.131522 +v 98.837640 -8.500000 -32.693792 +vt 0.000000 -0.590044 0.000000 +vt -0.015708 -0.635432 0.000000 +vt -0.000000 -0.771596 0.000000 +vt -0.015708 -0.816984 0.000000 +vt -0.000000 -0.953148 0.000000 +vt -0.015708 -0.998536 0.000000 +vt -0.000000 -1.134700 0.000000 +vt -0.015708 -1.180088 0.000000 +vt -0.000000 -1.316252 0.000000 +vt -0.015708 -1.361640 0.000000 +vt -0.000000 -1.497804 0.000000 +vt -0.015708 -1.543192 0.000000 +vt 0.000000 -1.679356 0.000000 +vt -0.000000 1.407028 0.000000 +vt -0.015708 1.543192 0.000000 +vt -0.015708 1.361640 0.000000 +vt -0.000000 1.225476 0.000000 +vt -0.015708 1.180088 0.000000 +vt -0.000000 1.043924 0.000000 +vt -0.015708 0.998536 0.000000 +vt -0.000000 0.862372 0.000000 +vt -0.015708 0.816984 0.000000 +vt -0.000000 0.680820 0.000000 +vt -0.015708 0.635432 0.000000 +vt -0.000000 0.499268 0.000000 +vt -0.015708 0.453880 0.000000 +vt -0.000000 0.317716 0.000000 +vt -0.015708 0.272328 0.000000 +vt -0.000000 0.136164 0.000000 +vt -0.015708 0.090776 0.000000 +vt 0.000000 -0.045388 0.000000 +vt -0.015708 -0.090776 0.000000 +vt 0.000000 -0.226940 0.000000 +vt -0.015708 -0.272328 0.000000 +vt 0.000000 -0.408492 0.000000 +vt -0.015708 -0.453880 0.000000 +vt -0.047124 -0.964495 0.000000 +vt -0.031416 -0.816984 0.000000 +vt -0.047124 -0.771596 0.000000 +vt -0.031416 -0.635432 0.000000 +vt -0.047124 -0.578697 0.000000 +vt -0.031416 -0.453880 0.000000 +vt -0.047124 -0.385798 0.000000 +vt -0.031416 -0.272328 0.000000 +vt -0.047124 -0.192899 0.000000 +vt -0.031416 -0.090776 0.000000 +vt -0.047124 0.000000 0.000000 +vt -0.031416 0.090776 0.000000 +vt -0.047124 0.192899 0.000000 +vt -0.031416 0.272328 0.000000 +vt -0.047124 0.385798 0.000000 +vt -0.031416 0.453880 0.000000 +vt -0.047124 0.578697 0.000000 +vt -0.031416 0.635432 0.000000 +vt -0.047124 0.771596 0.000000 +vt -0.031416 0.816984 0.000000 +vt -0.047124 0.964495 0.000000 +vt -0.031416 0.998536 0.000000 +vt -0.047124 1.157394 0.000000 +vt -0.031416 1.180088 0.000000 +vt -0.047124 1.350293 0.000000 +vt -0.031416 1.361640 0.000000 +vt -0.047124 1.543192 0.000000 +vt -0.031416 1.543192 0.000000 +vt -0.047124 -1.543192 0.000000 +vt -0.031416 -1.543192 0.000000 +vt -0.031416 -1.361640 0.000000 +vt -0.031416 -0.998536 0.000000 +vt -0.047124 -1.157394 0.000000 +vt -0.031416 -1.180088 0.000000 +vt -0.047124 -1.350293 0.000000 +vt 0.200000 -1.385997 0.000000 +vt -0.020000 -1.385997 0.000000 +vt 0.200000 -1.570796 0.000000 +vt -0.020000 -1.570796 0.000000 +vt 0.200000 1.570796 0.000000 +vt -0.020000 1.570796 0.000000 +vt 0.200000 1.385997 0.000000 +vt -0.020000 1.385997 0.000000 +vt 0.200000 1.201197 0.000000 +vt -0.020000 1.201197 0.000000 +vt 0.200000 1.016398 0.000000 +vt -0.020000 1.016398 0.000000 +vt 0.200000 0.831598 0.000000 +vt -0.020000 0.831598 0.000000 +vt 0.200000 0.646798 0.000000 +vt -0.020000 0.646798 0.000000 +vt 0.200000 0.461999 0.000000 +vt -0.020000 0.461999 0.000000 +vt 0.200000 0.277199 0.000000 +vt -0.020000 0.277199 0.000000 +vt 0.200000 0.092400 0.000000 +vt -0.020000 0.092400 0.000000 +vt 0.200000 -0.092400 0.000000 +vt -0.020000 -0.092400 0.000000 +vt 0.200000 -0.277199 0.000000 +vt -0.020000 -0.277199 0.000000 +vt 0.200000 -0.461999 0.000000 +vt -0.020000 -0.461999 0.000000 +vt 0.200000 -0.646798 0.000000 +vt -0.020000 -0.646798 0.000000 +vt 0.200000 -0.831598 0.000000 +vt -0.020000 -0.831598 0.000000 +vt 0.200000 -1.016398 0.000000 +vt -0.020000 -1.016398 0.000000 +vt 0.200000 -1.201197 0.000000 +vt -0.020000 -1.201197 0.000000 +vt -0.434223 -0.179861 0.000000 +vt 0.434223 -0.179861 0.000000 +vt -0.470000 0.000000 0.000000 +vt 0.470000 0.000000 0.000000 +vt -0.434223 0.179861 0.000000 +vt 0.434223 0.179861 0.000000 +vt -0.332340 0.332340 0.000000 +vt 0.332340 0.332340 0.000000 +vt -0.179861 0.434223 0.000000 +vt 0.179861 0.434223 0.000000 +vt 0.000000 0.470000 0.000000 +vt 0.332340 -0.332340 0.000000 +vt -0.332340 -0.332340 0.000000 +vt 0.179861 -0.434223 0.000000 +vt -0.179861 -0.434223 0.000000 +vt 0.000000 -0.470000 0.000000 +vt 0.466236 -0.180621 0.000000 +vt 0.500000 0.000000 0.000000 +vt 0.369504 -0.336848 0.000000 +vt 0.466236 0.180621 0.000000 +vt 0.369504 0.336848 0.000000 +vt 0.222869 -0.447582 0.000000 +vt 0.222869 0.447582 0.000000 +vt 0.046134 -0.497867 0.000000 +vt 0.046134 0.497867 0.000000 +vt -0.136831 -0.480913 0.000000 +vt -0.136831 0.480913 0.000000 +vt -0.301317 -0.399009 0.000000 +vt -0.301317 0.399009 0.000000 +vt -0.425109 -0.263216 0.000000 +vt -0.425109 0.263216 0.000000 +vt -0.491487 -0.091875 0.000000 +vt -0.491487 0.091875 0.000000 +vn -0.093247 0.000000 -0.036124 +vn -0.083297 -0.050000 -0.023700 +vn -0.100000 0.000000 -0.000000 +vn -0.086233 -0.050000 0.007991 +vn -0.093247 0.000000 0.036124 +vn -0.077523 -0.050000 0.038602 +vn -0.073901 0.000000 0.067370 +vn -0.058344 -0.050000 0.064000 +vn -0.044574 0.000000 0.089516 +vn -0.031284 -0.050000 0.080754 +vn -0.009227 0.000000 0.099573 +vn -0.000000 -0.050000 0.086603 +vn 0.027366 0.000000 0.096183 +vn 0.031284 -0.050000 0.080754 +vn 0.060263 0.000000 0.079802 +vn 0.058344 -0.050000 0.064000 +vn 0.085022 0.000000 0.052643 +vn 0.077523 -0.050000 0.038602 +vn 0.098297 0.000000 0.018375 +vn 0.086233 -0.050000 0.007991 +vn 0.098297 0.000000 -0.018375 +vn 0.083297 -0.050000 -0.023700 +vn 0.085022 0.000000 -0.052643 +vn 0.069110 -0.050000 -0.052190 +vn 0.060263 0.000000 -0.079802 +vn 0.045590 -0.050000 -0.073631 +vn 0.027366 0.000000 -0.096183 +vn 0.015913 -0.050000 -0.085128 +vn -0.009227 0.000000 -0.099573 +vn -0.015913 -0.050000 -0.085128 +vn -0.044574 0.000000 -0.089516 +vn -0.045590 -0.050000 -0.073631 +vn -0.073901 0.000000 -0.067370 +vn -0.069110 -0.050000 -0.052190 +vn 0.000000 -0.100000 -0.000000 +vn -0.049787 -0.086603 0.004613 +vn -0.000000 -0.100000 -0.000000 +vn -0.048091 -0.086603 -0.013683 +vn 0.000000 -0.100000 0.000000 +vn -0.039901 -0.086603 -0.030132 +vn -0.000000 -0.100000 -0.000000 +vn -0.026322 -0.086603 -0.042511 +vn -0.000000 -0.100000 -0.000000 +vn -0.009187 -0.086603 -0.049149 +vn 0.000000 -0.100000 -0.000000 +vn 0.009187 -0.086603 -0.049149 +vn 0.000000 -0.100000 -0.000000 +vn 0.026322 -0.086603 -0.042511 +vn 0.000000 -0.100000 -0.000000 +vn 0.039901 -0.086603 -0.030132 +vn -0.000000 -0.100000 0.000000 +vn 0.048091 -0.086603 -0.013683 +vn 0.000000 -0.100000 -0.000000 +vn 0.049787 -0.086603 0.004613 +vn -0.000000 -0.100000 -0.000000 +vn 0.044758 -0.086603 0.022287 +vn 0.000000 -0.100000 0.000000 +vn 0.033685 -0.086603 0.036950 +vn -0.000000 -0.100000 -0.000000 +vn 0.018062 -0.086603 0.046624 +vn 0.000000 -0.100000 0.000000 +vn 0.000000 -0.086603 0.050000 +vn -0.018062 -0.086603 0.046624 +vn -0.044758 -0.086603 0.022287 +vn -0.000000 -0.100000 0.000000 +vn -0.033685 -0.086603 0.036950 +vn 0.000000 -0.100000 -0.000000 +vn -0.093247 0.000000 -0.036124 +vn -0.100000 0.000000 -0.000000 +vn -0.093247 0.000000 0.036124 +vn -0.073901 0.000000 0.067370 +vn -0.044574 0.000000 0.089516 +vn -0.009227 0.000000 0.099573 +vn 0.027366 0.000000 0.096183 +vn 0.060263 0.000000 0.079802 +vn 0.085022 0.000000 0.052643 +vn 0.098297 0.000000 0.018375 +vn 0.098297 0.000000 -0.018375 +vn 0.085022 0.000000 -0.052643 +vn 0.060263 0.000000 -0.079802 +vn 0.027366 0.000000 -0.096183 +vn -0.009227 0.000000 -0.099573 +vn -0.044574 0.000000 -0.089516 +vn -0.073901 0.000000 -0.067370 +vn -0.000000 0.100000 -0.000000 +vn -0.000000 0.100000 -0.000000 +vn -0.000000 0.100000 -0.000000 +vn -0.000000 0.100000 -0.000000 +vn -0.000000 0.100000 -0.000000 +vn -0.000000 0.100000 -0.000000 +vn -0.000000 0.100000 -0.000000 +vn -0.000000 0.100000 -0.000000 +vn -0.000000 0.100000 -0.000000 +vn -0.000000 0.100000 -0.000000 +vn -0.000000 0.100000 -0.000000 +vn -0.000000 0.100000 -0.000000 +vn -0.000000 0.100000 -0.000000 +vn -0.000000 0.100000 -0.000000 +vn -0.000000 0.100000 -0.000000 +vn -0.000000 0.100000 -0.000000 +vn -0.000000 0.100000 -0.000000 +usemtl Paint_-_Enamel_Glossy_(Black) +f 2/1/1 36/2/2 1/3/3 +f 1/3/3 36/2/2 39/4/4 +f 1/3/3 39/4/4 17/5/5 +f 17/5/5 39/4/4 66/6/6 +f 17/5/5 66/6/6 16/7/7 +f 16/7/7 66/6/6 64/8/8 +f 16/7/7 64/8/8 15/9/9 +f 15/9/9 64/8/8 62/10/10 +f 15/9/9 62/10/10 14/11/11 +f 14/11/11 62/10/10 34/12/12 +f 14/11/11 34/12/12 13/13/13 +f 13/14/13 34/15/12 60/16/14 +f 13/14/13 60/16/14 12/17/15 +f 12/17/15 60/16/14 58/18/16 +f 12/17/15 58/18/16 11/19/17 +f 11/19/17 58/18/16 56/20/18 +f 11/19/17 56/20/18 10/21/19 +f 10/21/19 56/20/18 54/22/20 +f 10/21/19 54/22/20 9/23/21 +f 9/23/21 54/22/20 52/24/22 +f 9/23/21 52/24/22 8/25/23 +f 8/25/23 52/24/22 50/26/24 +f 8/25/23 50/26/24 7/27/25 +f 7/27/25 50/26/24 48/28/26 +f 7/27/25 48/28/26 6/29/27 +f 6/29/27 48/28/26 46/30/28 +f 6/29/27 46/30/28 5/31/29 +f 5/31/29 46/30/28 44/32/30 +f 5/31/29 44/32/30 4/33/31 +f 4/33/31 44/32/30 42/34/32 +f 4/33/31 42/34/32 3/35/33 +f 3/35/33 42/34/32 40/36/34 +f 3/35/33 40/36/34 2/1/1 +f 2/1/1 40/36/34 36/2/2 +f 19/37/35 38/38/36 18/39/37 +f 18/39/37 38/38/36 37/40/38 +f 18/39/37 37/40/38 33/41/39 +f 33/41/39 37/40/38 41/42/40 +f 33/41/39 41/42/40 32/43/41 +f 32/43/41 41/42/40 43/44/42 +f 32/43/41 43/44/42 31/45/43 +f 31/45/43 43/44/42 45/46/44 +f 31/45/43 45/46/44 30/47/45 +f 30/47/45 45/46/44 47/48/46 +f 30/47/45 47/48/46 29/49/47 +f 29/49/47 47/48/46 49/50/48 +f 29/49/47 49/50/48 28/51/49 +f 28/51/49 49/50/48 51/52/50 +f 28/51/49 51/52/50 27/53/51 +f 27/53/51 51/52/50 53/54/52 +f 27/53/51 53/54/52 26/55/53 +f 26/55/53 53/54/52 55/56/54 +f 26/55/53 55/56/54 25/57/55 +f 25/57/55 55/56/54 57/58/56 +f 25/57/55 57/58/56 24/59/57 +f 24/59/57 57/58/56 59/60/58 +f 24/59/57 59/60/58 23/61/59 +f 23/61/59 59/60/58 61/62/60 +f 23/61/59 61/62/60 22/63/61 +f 22/63/61 61/62/60 35/64/62 +f 22/65/61 35/66/62 63/67/63 +f 63/67/63 35/66/62 34/12/12 +f 63/67/63 34/12/12 62/10/10 +f 38/38/36 19/37/35 67/68/64 +f 67/68/64 19/37/35 20/69/65 +f 67/68/64 20/69/65 65/70/66 +f 65/70/66 20/69/65 21/71/67 +f 65/70/66 21/71/67 63/67/63 +f 63/67/63 21/71/67 22/65/61 +f 34/15/12 35/64/62 60/16/14 +f 60/16/14 35/64/62 61/62/60 +f 60/16/14 61/62/60 58/18/16 +f 58/18/16 61/62/60 59/60/58 +f 58/18/16 59/60/58 56/20/18 +f 56/20/18 59/60/58 57/58/56 +f 56/20/18 57/58/56 54/22/20 +f 54/22/20 57/58/56 55/56/54 +f 54/22/20 55/56/54 52/24/22 +f 52/24/22 55/56/54 53/54/52 +f 52/24/22 53/54/52 50/26/24 +f 50/26/24 53/54/52 51/52/50 +f 50/26/24 51/52/50 48/28/26 +f 48/28/26 51/52/50 49/50/48 +f 48/28/26 49/50/48 46/30/28 +f 46/30/28 49/50/48 47/48/46 +f 46/30/28 47/48/46 44/32/30 +f 44/32/30 47/48/46 45/46/44 +f 44/32/30 45/46/44 42/34/32 +f 42/34/32 45/46/44 43/44/42 +f 42/34/32 43/44/42 40/36/34 +f 40/36/34 43/44/42 41/42/40 +f 40/36/34 41/42/40 36/2/2 +f 36/2/2 41/42/40 37/40/38 +f 36/2/2 37/40/38 39/4/4 +f 39/4/4 37/40/38 38/38/36 +f 39/4/4 38/38/36 66/6/6 +f 66/6/6 38/38/36 67/68/64 +f 66/6/6 67/68/64 64/8/8 +f 64/8/8 67/68/64 65/70/66 +f 64/8/8 65/70/66 62/10/10 +f 62/10/10 65/70/66 63/67/63 +f 69/72/68 2/73/1 68/74/69 +f 68/74/69 2/73/1 1/75/3 +f 68/76/69 1/77/3 84/78/70 +f 84/78/70 1/77/3 17/79/5 +f 84/78/70 17/79/5 83/80/71 +f 83/80/71 17/79/5 16/81/7 +f 83/80/71 16/81/7 82/82/72 +f 82/82/72 16/81/7 15/83/9 +f 82/82/72 15/83/9 81/84/73 +f 81/84/73 15/83/9 14/85/11 +f 81/84/73 14/85/11 80/86/74 +f 80/86/74 14/85/11 13/87/13 +f 80/86/74 13/87/13 79/88/75 +f 79/88/75 13/87/13 12/89/15 +f 79/88/75 12/89/15 78/90/76 +f 78/90/76 12/89/15 11/91/17 +f 78/90/76 11/91/17 77/92/77 +f 77/92/77 11/91/17 10/93/19 +f 77/92/77 10/93/19 76/94/78 +f 76/94/78 10/93/19 9/95/21 +f 76/94/78 9/95/21 75/96/79 +f 75/96/79 9/95/21 8/97/23 +f 75/96/79 8/97/23 74/98/80 +f 74/98/80 8/97/23 7/99/25 +f 74/98/80 7/99/25 73/100/81 +f 73/100/81 7/99/25 6/101/27 +f 73/100/81 6/101/27 72/102/82 +f 72/102/82 6/101/27 5/103/29 +f 72/102/82 5/103/29 71/104/83 +f 71/104/83 5/103/29 4/105/31 +f 71/104/83 4/105/31 70/106/84 +f 70/106/84 4/105/31 3/107/33 +f 70/106/84 3/107/33 69/72/68 +f 69/72/68 3/107/33 2/73/1 +f 33/108/39 27/109/51 18/110/37 +f 18/110/37 27/109/51 26/111/53 +f 18/110/37 26/111/53 19/112/35 +f 19/112/35 26/111/53 25/113/55 +f 19/112/35 25/113/55 20/114/65 +f 20/114/65 25/113/55 24/115/57 +f 20/114/65 24/115/57 21/116/67 +f 21/116/67 24/115/57 23/117/59 +f 21/116/67 23/117/59 22/118/61 +f 27/109/51 33/108/39 28/119/49 +f 28/119/49 33/108/39 32/120/41 +f 28/119/49 32/120/41 29/121/47 +f 29/121/47 32/120/41 31/122/43 +f 29/121/47 31/122/43 30/123/45 +f 69/124/85 68/125/86 70/126/87 +f 70/126/87 68/125/86 84/127/88 +f 70/126/87 84/127/88 83/128/89 +f 70/126/87 83/128/89 71/129/90 +f 71/129/90 83/128/89 82/130/91 +f 71/129/90 82/130/91 72/131/92 +f 72/131/92 82/130/91 81/132/93 +f 72/131/92 81/132/93 73/133/94 +f 73/133/94 81/132/93 80/134/95 +f 73/133/94 80/134/95 74/135/96 +f 74/135/96 80/134/95 79/136/97 +f 74/135/96 79/136/97 75/137/98 +f 75/137/98 79/136/97 78/138/99 +f 75/137/98 78/138/99 76/139/100 +f 76/139/100 78/138/99 77/140/101 +# 84 vertices +# 140 texture params +# 101 normals +# 164 facets + +# 1 groups diff --git a/HandheldCompanion/models/AYANEO NEXT/WFB-2.obj b/HandheldCompanion/Models/AYANEO NEXT/OEM2.obj similarity index 96% rename from HandheldCompanion/models/AYANEO NEXT/WFB-2.obj rename to HandheldCompanion/Models/AYANEO NEXT/OEM2.obj index 32e89d76a..24b7b39eb 100644 --- a/HandheldCompanion/models/AYANEO NEXT/WFB-2.obj +++ b/HandheldCompanion/Models/AYANEO NEXT/OEM2.obj @@ -1,392 +1,392 @@ -# WaveFront *.obj file (generated by Autodesk ATF) - -mtllib AyaNeoNext_AyaNeoNext-01 v19_WFB-2_AyaNeoNext-01 v19.mtl - -g WFB-2 - -v 110.500002 -10.700000 -38.000001 -v 110.843634 -10.700000 -39.394170 -v 111.795807 -10.700000 -40.468952 -v 113.138392 -10.700000 -40.978127 -v 114.563816 -10.700000 -40.805049 -v 115.745534 -10.700000 -39.989369 -v 116.412827 -10.700000 -38.717948 -v 116.412827 -10.700000 -37.282054 -v 115.745534 -10.700000 -36.010633 -v 114.563816 -10.700000 -35.194952 -v 113.138392 -10.700000 -35.021874 -v 111.795807 -10.700000 -35.531049 -v 110.843634 -10.700000 -36.605831 -v 110.800002 -11.000000 -38.000001 -v 111.109270 -11.000000 -36.745248 -v 111.966227 -11.000000 -35.777944 -v 113.174553 -11.000000 -35.319687 -v 114.457435 -11.000000 -35.475457 -v 115.520981 -11.000000 -36.209569 -v 116.121545 -11.000000 -37.353848 -v 116.121545 -11.000000 -38.646153 -v 115.520981 -11.000000 -39.790432 -v 114.457435 -11.000000 -40.524544 -v 113.174553 -11.000000 -40.680315 -v 111.966227 -11.000000 -40.222057 -v 111.109270 -11.000000 -39.254753 -v 113.500002 -10.850000 -35.040193 -v 113.500002 -10.959808 -35.150001 -v 110.732533 -10.850000 -39.049563 -v 110.835205 -10.959808 -39.010624 -v 110.670781 -10.959808 -37.656471 -v 110.561774 -10.850000 -37.643235 -v 111.537286 -10.850000 -40.215448 -v 111.610102 -10.959808 -40.133256 -v 112.791673 -10.850000 -40.873802 -v 112.817952 -10.959808 -40.767185 -v 114.208330 -10.850000 -40.873802 -v 114.182051 -10.959808 -40.767185 -v 115.462717 -10.850000 -40.215448 -v 115.389901 -10.959808 -40.133256 -v 116.267470 -10.850000 -39.049563 -v 116.164798 -10.959808 -39.010624 -v 116.438229 -10.850000 -37.643235 -v 116.329222 -10.959808 -37.656471 -v 115.935876 -10.850000 -36.318638 -v 115.845506 -10.959808 -36.381016 -v 114.875493 -10.850000 -35.379221 -v 114.824463 -10.959808 -35.476451 -v 112.124511 -10.850000 -35.379221 -v 112.175541 -10.959808 -35.476451 -v 111.064128 -10.850000 -36.318638 -v 111.154498 -10.959808 -36.381016 -v 110.500002 -8.500000 -38.000001 -v 110.843634 -8.500000 -39.394170 -v 111.795807 -8.500000 -40.468952 -v 113.138392 -8.500000 -40.978127 -v 114.563816 -8.500000 -40.805049 -v 115.745534 -8.500000 -39.989369 -v 116.412827 -8.500000 -38.717948 -v 116.412827 -8.500000 -37.282054 -v 115.745534 -8.500000 -36.010633 -v 114.563816 -8.500000 -35.194952 -v 113.138392 -8.500000 -35.021874 -v 111.795807 -8.500000 -35.531049 -v 110.843634 -8.500000 -36.605831 -vt 0.000000 -0.316687 0.000000 -vt -0.015708 -0.351874 0.000000 -vt -0.000000 -0.457437 0.000000 -vt -0.015708 -0.492624 0.000000 -vt -0.000000 -0.598186 0.000000 -vt -0.015708 -0.633374 0.000000 -vt -0.000000 -0.738936 0.000000 -vt -0.015708 -0.774124 0.000000 -vt -0.000000 -0.879686 0.000000 -vt -0.015708 -0.914873 0.000000 -vt 0.000000 -1.020436 0.000000 -vt -0.000000 0.809311 0.000000 -vt -0.015708 0.914873 0.000000 -vt -0.015708 0.774124 0.000000 -vt -0.000000 0.668561 0.000000 -vt -0.015708 0.633374 0.000000 -vt -0.000000 0.527811 0.000000 -vt -0.015708 0.492624 0.000000 -vt -0.000000 0.387062 0.000000 -vt -0.015708 0.351874 0.000000 -vt -0.000000 0.246312 0.000000 -vt -0.015708 0.211125 0.000000 -vt -0.000000 0.105562 0.000000 -vt -0.015708 0.070375 0.000000 -vt 0.000000 -0.035187 0.000000 -vt -0.015708 -0.070375 0.000000 -vt 0.000000 -0.175937 0.000000 -vt -0.015708 -0.211125 0.000000 -vt -0.047124 -0.598186 0.000000 -vt -0.031416 -0.492624 0.000000 -vt -0.047124 -0.457437 0.000000 -vt -0.031416 -0.351874 0.000000 -vt -0.047124 -0.316687 0.000000 -vt -0.031416 -0.211125 0.000000 -vt -0.047124 -0.175937 0.000000 -vt -0.031416 -0.070375 0.000000 -vt -0.047124 -0.035187 0.000000 -vt -0.031416 0.070375 0.000000 -vt -0.047124 0.105562 0.000000 -vt -0.031416 0.211125 0.000000 -vt -0.047124 0.246312 0.000000 -vt -0.031416 0.351874 0.000000 -vt -0.047124 0.387062 0.000000 -vt -0.031416 0.492624 0.000000 -vt -0.047124 0.527811 0.000000 -vt -0.031416 0.633374 0.000000 -vt -0.047124 0.668561 0.000000 -vt -0.031416 0.774124 0.000000 -vt -0.047124 0.809311 0.000000 -vt -0.031416 0.914873 0.000000 -vt -0.047124 0.950061 0.000000 -vt -0.047124 -0.879686 0.000000 -vt -0.031416 -0.914873 0.000000 -vt -0.031416 -0.774124 0.000000 -vt -0.047124 -0.738936 0.000000 -vt -0.031416 -0.633374 0.000000 -vt 0.200000 -0.797481 0.000000 -vt -0.020000 -0.797481 0.000000 -vt 0.200000 -0.942478 0.000000 -vt -0.020000 -0.942478 0.000000 -vt 0.200000 0.942478 0.000000 -vt -0.020000 0.942478 0.000000 -vt 0.200000 0.797481 0.000000 -vt -0.020000 0.797481 0.000000 -vt 0.200000 0.652485 0.000000 -vt -0.020000 0.652485 0.000000 -vt 0.200000 0.507488 0.000000 -vt -0.020000 0.507488 0.000000 -vt 0.200000 0.362491 0.000000 -vt -0.020000 0.362491 0.000000 -vt 0.200000 0.217495 0.000000 -vt -0.020000 0.217495 0.000000 -vt 0.200000 0.072498 0.000000 -vt -0.020000 0.072498 0.000000 -vt 0.200000 -0.072498 0.000000 -vt -0.020000 -0.072498 0.000000 -vt 0.200000 -0.217495 0.000000 -vt -0.020000 -0.217495 0.000000 -vt 0.200000 -0.362491 0.000000 -vt -0.020000 -0.362491 0.000000 -vt 0.200000 -0.507488 0.000000 -vt -0.020000 -0.507488 0.000000 -vt 0.200000 -0.652485 0.000000 -vt -0.020000 -0.652485 0.000000 -vt -0.270000 0.000000 0.000000 -vt -0.239073 -0.125475 0.000000 -vt -0.239073 0.125475 0.000000 -vt -0.153377 -0.222206 0.000000 -vt -0.153377 0.222206 0.000000 -vt -0.032545 -0.268031 0.000000 -vt -0.032545 0.268031 0.000000 -vt 0.095743 -0.252454 0.000000 -vt 0.095743 0.252454 0.000000 -vt 0.202098 -0.179043 0.000000 -vt 0.202098 0.179043 0.000000 -vt 0.262154 -0.064615 0.000000 -vt 0.262154 0.064615 0.000000 -vt 0.300000 0.000000 0.000000 -vt 0.265637 0.139417 0.000000 -vt 0.265637 -0.139417 0.000000 -vt 0.170419 -0.246895 0.000000 -vt 0.170419 0.246895 0.000000 -vt 0.036161 -0.297813 0.000000 -vt 0.036161 0.297813 0.000000 -vt -0.106381 -0.280505 0.000000 -vt -0.106381 0.280505 0.000000 -vt -0.224553 -0.198937 0.000000 -vt -0.224553 0.198937 0.000000 -vt -0.291283 -0.071795 0.000000 -vt -0.291283 0.071795 0.000000 -vn -0.088546 0.000000 -0.046472 -vn -0.080975 -0.050000 -0.030710 -vn -0.100000 0.000000 -0.000000 -vn -0.085971 -0.050000 0.010439 -vn -0.088546 0.000000 0.046472 -vn -0.071272 -0.050000 0.049196 -vn -0.056806 0.000000 0.082298 -vn -0.040246 -0.050000 0.076683 -vn -0.012054 0.000000 0.099271 -vn -0.000000 -0.050000 0.086603 -vn 0.035460 0.000000 0.093502 -vn 0.040246 -0.050000 0.076683 -vn 0.074851 0.000000 0.066312 -vn 0.071272 -0.050000 0.049196 -vn 0.097094 0.000000 0.023932 -vn 0.085971 -0.050000 0.010439 -vn 0.097094 0.000000 -0.023932 -vn 0.080975 -0.050000 -0.030710 -vn 0.074851 0.000000 -0.066312 -vn 0.057428 -0.050000 -0.064823 -vn 0.035460 0.000000 -0.093502 -vn 0.020725 -0.050000 -0.084086 -vn -0.012054 0.000000 -0.099271 -vn -0.020725 -0.050000 -0.084086 -vn -0.056806 0.000000 -0.082298 -vn -0.057428 -0.050000 -0.064823 -vn -0.000000 -0.100000 0.000000 -vn -0.049635 -0.086603 0.006027 -vn -0.000000 -0.100000 -0.000000 -vn -0.046751 -0.086603 -0.017730 -vn -0.000000 -0.100000 -0.000000 -vn -0.033156 -0.086603 -0.037426 -vn 0.000000 -0.100000 0.000000 -vn -0.011966 -0.086603 -0.048547 -vn 0.000000 -0.100000 0.000000 -vn 0.011966 -0.086603 -0.048547 -vn 0.000000 -0.100000 -0.000000 -vn 0.033156 -0.086603 -0.037426 -vn 0.000000 -0.100000 -0.000000 -vn 0.046751 -0.086603 -0.017730 -vn -0.000000 -0.100000 0.000000 -vn 0.049635 -0.086603 0.006027 -vn -0.000000 -0.100000 -0.000000 -vn 0.041149 -0.086603 0.028403 -vn 0.000000 -0.100000 0.000000 -vn 0.023236 -0.086603 0.044273 -vn 0.000000 -0.100000 0.000000 -vn 0.000000 -0.086603 0.050000 -vn 0.000000 -0.100000 -0.000000 -vn -0.023236 -0.086603 0.044273 -vn 0.000000 -0.100000 -0.000000 -vn -0.041149 -0.086603 0.028403 -vn -0.088546 0.000000 -0.046472 -vn -0.100000 0.000000 -0.000000 -vn -0.088546 0.000000 0.046472 -vn -0.056806 0.000000 0.082298 -vn -0.012054 0.000000 0.099271 -vn 0.035460 0.000000 0.093502 -vn 0.074851 0.000000 0.066312 -vn 0.097094 0.000000 0.023932 -vn 0.097094 0.000000 -0.023932 -vn 0.074851 0.000000 -0.066312 -vn 0.035460 0.000000 -0.093502 -vn -0.012054 0.000000 -0.099271 -vn -0.056806 0.000000 -0.082298 -vn -0.000000 0.100000 -0.000000 -vn -0.000000 0.100000 -0.000000 -vn -0.000000 0.100000 -0.000000 -vn -0.000000 0.100000 -0.000000 -vn -0.000000 0.100000 -0.000000 -vn -0.000000 0.100000 -0.000000 -vn -0.000000 0.100000 -0.000000 -vn -0.000000 0.100000 -0.000000 -vn -0.000000 0.100000 -0.000000 -vn -0.000000 0.100000 -0.000000 -vn -0.000000 0.100000 -0.000000 -vn -0.000000 0.100000 -0.000000 -vn -0.000000 0.100000 -0.000000 -usemtl Paint_-_Enamel_Glossy_(Black) -f 2/1/1 29/2/2 1/3/3 -f 1/3/3 29/2/2 32/4/4 -f 1/3/3 32/4/4 13/5/5 -f 13/5/5 32/4/4 51/6/6 -f 13/5/5 51/6/6 12/7/7 -f 12/7/7 51/6/6 49/8/8 -f 12/7/7 49/8/8 11/9/9 -f 11/9/9 49/8/8 27/10/10 -f 11/9/9 27/10/10 10/11/11 -f 10/12/11 27/13/10 47/14/12 -f 10/12/11 47/14/12 9/15/13 -f 9/15/13 47/14/12 45/16/14 -f 9/15/13 45/16/14 8/17/15 -f 8/17/15 45/16/14 43/18/16 -f 8/17/15 43/18/16 7/19/17 -f 7/19/17 43/18/16 41/20/18 -f 7/19/17 41/20/18 6/21/19 -f 6/21/19 41/20/18 39/22/20 -f 6/21/19 39/22/20 5/23/21 -f 5/23/21 39/22/20 37/24/22 -f 5/23/21 37/24/22 4/25/23 -f 4/25/23 37/24/22 35/26/24 -f 4/25/23 35/26/24 3/27/25 -f 3/27/25 35/26/24 33/28/26 -f 3/27/25 33/28/26 2/1/1 -f 2/1/1 33/28/26 29/2/2 -f 15/29/27 31/30/28 14/31/29 -f 14/31/29 31/30/28 30/32/30 -f 14/31/29 30/32/30 26/33/31 -f 26/33/31 30/32/30 34/34/32 -f 26/33/31 34/34/32 25/35/33 -f 25/35/33 34/34/32 36/36/34 -f 25/35/33 36/36/34 24/37/35 -f 24/37/35 36/36/34 38/38/36 -f 24/37/35 38/38/36 23/39/37 -f 23/39/37 38/38/36 40/40/38 -f 23/39/37 40/40/38 22/41/39 -f 22/41/39 40/40/38 42/42/40 -f 22/41/39 42/42/40 21/43/41 -f 21/43/41 42/42/40 44/44/42 -f 21/43/41 44/44/42 20/45/43 -f 20/45/43 44/44/42 46/46/44 -f 20/45/43 46/46/44 19/47/45 -f 19/47/45 46/46/44 48/48/46 -f 19/47/45 48/48/46 18/49/47 -f 18/49/47 48/48/46 28/50/48 -f 18/49/47 28/50/48 17/51/49 -f 17/52/49 28/53/48 50/54/50 -f 17/52/49 50/54/50 16/55/51 -f 16/55/51 50/54/50 52/56/52 -f 16/55/51 52/56/52 15/29/27 -f 15/29/27 52/56/52 31/30/28 -f 27/13/10 28/50/48 47/14/12 -f 47/14/12 28/50/48 48/48/46 -f 47/14/12 48/48/46 45/16/14 -f 45/16/14 48/48/46 46/46/44 -f 45/16/14 46/46/44 43/18/16 -f 43/18/16 46/46/44 44/44/42 -f 43/18/16 44/44/42 41/20/18 -f 41/20/18 44/44/42 42/42/40 -f 41/20/18 42/42/40 39/22/20 -f 39/22/20 42/42/40 40/40/38 -f 39/22/20 40/40/38 37/24/22 -f 37/24/22 40/40/38 38/38/36 -f 37/24/22 38/38/36 35/26/24 -f 35/26/24 38/38/36 36/36/34 -f 35/26/24 36/36/34 33/28/26 -f 33/28/26 36/36/34 34/34/32 -f 33/28/26 34/34/32 29/2/2 -f 29/2/2 34/34/32 30/32/30 -f 29/2/2 30/32/30 32/4/4 -f 32/4/4 30/32/30 31/30/28 -f 32/4/4 31/30/28 51/6/6 -f 51/6/6 31/30/28 52/56/52 -f 51/6/6 52/56/52 49/8/8 -f 49/8/8 52/56/52 50/54/50 -f 49/8/8 50/54/50 27/10/10 -f 27/10/10 50/54/50 28/53/48 -f 54/57/53 2/58/1 53/59/54 -f 53/59/54 2/58/1 1/60/3 -f 53/61/54 1/62/3 65/63/55 -f 65/63/55 1/62/3 13/64/5 -f 65/63/55 13/64/5 64/65/56 -f 64/65/56 13/64/5 12/66/7 -f 64/65/56 12/66/7 63/67/57 -f 63/67/57 12/66/7 11/68/9 -f 63/67/57 11/68/9 62/69/58 -f 62/69/58 11/68/9 10/70/11 -f 62/69/58 10/70/11 61/71/59 -f 61/71/59 10/70/11 9/72/13 -f 61/71/59 9/72/13 60/73/60 -f 60/73/60 9/72/13 8/74/15 -f 60/73/60 8/74/15 59/75/61 -f 59/75/61 8/74/15 7/76/17 -f 59/75/61 7/76/17 58/77/62 -f 58/77/62 7/76/17 6/78/19 -f 58/77/62 6/78/19 57/79/63 -f 57/79/63 6/78/19 5/80/21 -f 57/79/63 5/80/21 56/81/64 -f 56/81/64 5/80/21 4/82/23 -f 56/81/64 4/82/23 55/83/65 -f 55/83/65 4/82/23 3/84/25 -f 55/83/65 3/84/25 54/57/53 -f 54/57/53 3/84/25 2/58/1 -f 14/85/29 26/86/31 15/87/27 -f 15/87/27 26/86/31 25/88/33 -f 15/87/27 25/88/33 16/89/51 -f 16/89/51 25/88/33 24/90/35 -f 16/89/51 24/90/35 17/91/49 -f 17/91/49 24/90/35 23/92/37 -f 17/91/49 23/92/37 18/93/47 -f 18/93/47 23/92/37 22/94/39 -f 18/93/47 22/94/39 19/95/45 -f 19/95/45 22/94/39 21/96/41 -f 19/95/45 21/96/41 20/97/43 -f 53/98/66 65/99/67 54/100/68 -f 54/100/68 65/99/67 55/101/69 -f 55/101/69 65/99/67 64/102/70 -f 55/101/69 64/102/70 56/103/71 -f 56/103/71 64/102/70 63/104/72 -f 56/103/71 63/104/72 57/105/73 -f 57/105/73 63/104/72 62/106/74 -f 57/105/73 62/106/74 58/107/75 -f 58/107/75 62/106/74 61/108/76 -f 58/107/75 61/108/76 59/109/77 -f 59/109/77 61/108/76 60/110/78 -# 65 vertices -# 110 texture params -# 78 normals -# 126 facets - -# 1 groups +# WaveFront *.obj file (generated by Autodesk ATF) + +mtllib AyaNeoNext_AyaNeoNext-01 v19_WFB-2_AyaNeoNext-01 v19.mtl + +g WFB-2 + +v 110.500002 -10.700000 -38.000001 +v 110.843634 -10.700000 -39.394170 +v 111.795807 -10.700000 -40.468952 +v 113.138392 -10.700000 -40.978127 +v 114.563816 -10.700000 -40.805049 +v 115.745534 -10.700000 -39.989369 +v 116.412827 -10.700000 -38.717948 +v 116.412827 -10.700000 -37.282054 +v 115.745534 -10.700000 -36.010633 +v 114.563816 -10.700000 -35.194952 +v 113.138392 -10.700000 -35.021874 +v 111.795807 -10.700000 -35.531049 +v 110.843634 -10.700000 -36.605831 +v 110.800002 -11.000000 -38.000001 +v 111.109270 -11.000000 -36.745248 +v 111.966227 -11.000000 -35.777944 +v 113.174553 -11.000000 -35.319687 +v 114.457435 -11.000000 -35.475457 +v 115.520981 -11.000000 -36.209569 +v 116.121545 -11.000000 -37.353848 +v 116.121545 -11.000000 -38.646153 +v 115.520981 -11.000000 -39.790432 +v 114.457435 -11.000000 -40.524544 +v 113.174553 -11.000000 -40.680315 +v 111.966227 -11.000000 -40.222057 +v 111.109270 -11.000000 -39.254753 +v 113.500002 -10.850000 -35.040193 +v 113.500002 -10.959808 -35.150001 +v 110.732533 -10.850000 -39.049563 +v 110.835205 -10.959808 -39.010624 +v 110.670781 -10.959808 -37.656471 +v 110.561774 -10.850000 -37.643235 +v 111.537286 -10.850000 -40.215448 +v 111.610102 -10.959808 -40.133256 +v 112.791673 -10.850000 -40.873802 +v 112.817952 -10.959808 -40.767185 +v 114.208330 -10.850000 -40.873802 +v 114.182051 -10.959808 -40.767185 +v 115.462717 -10.850000 -40.215448 +v 115.389901 -10.959808 -40.133256 +v 116.267470 -10.850000 -39.049563 +v 116.164798 -10.959808 -39.010624 +v 116.438229 -10.850000 -37.643235 +v 116.329222 -10.959808 -37.656471 +v 115.935876 -10.850000 -36.318638 +v 115.845506 -10.959808 -36.381016 +v 114.875493 -10.850000 -35.379221 +v 114.824463 -10.959808 -35.476451 +v 112.124511 -10.850000 -35.379221 +v 112.175541 -10.959808 -35.476451 +v 111.064128 -10.850000 -36.318638 +v 111.154498 -10.959808 -36.381016 +v 110.500002 -8.500000 -38.000001 +v 110.843634 -8.500000 -39.394170 +v 111.795807 -8.500000 -40.468952 +v 113.138392 -8.500000 -40.978127 +v 114.563816 -8.500000 -40.805049 +v 115.745534 -8.500000 -39.989369 +v 116.412827 -8.500000 -38.717948 +v 116.412827 -8.500000 -37.282054 +v 115.745534 -8.500000 -36.010633 +v 114.563816 -8.500000 -35.194952 +v 113.138392 -8.500000 -35.021874 +v 111.795807 -8.500000 -35.531049 +v 110.843634 -8.500000 -36.605831 +vt 0.000000 -0.316687 0.000000 +vt -0.015708 -0.351874 0.000000 +vt -0.000000 -0.457437 0.000000 +vt -0.015708 -0.492624 0.000000 +vt -0.000000 -0.598186 0.000000 +vt -0.015708 -0.633374 0.000000 +vt -0.000000 -0.738936 0.000000 +vt -0.015708 -0.774124 0.000000 +vt -0.000000 -0.879686 0.000000 +vt -0.015708 -0.914873 0.000000 +vt 0.000000 -1.020436 0.000000 +vt -0.000000 0.809311 0.000000 +vt -0.015708 0.914873 0.000000 +vt -0.015708 0.774124 0.000000 +vt -0.000000 0.668561 0.000000 +vt -0.015708 0.633374 0.000000 +vt -0.000000 0.527811 0.000000 +vt -0.015708 0.492624 0.000000 +vt -0.000000 0.387062 0.000000 +vt -0.015708 0.351874 0.000000 +vt -0.000000 0.246312 0.000000 +vt -0.015708 0.211125 0.000000 +vt -0.000000 0.105562 0.000000 +vt -0.015708 0.070375 0.000000 +vt 0.000000 -0.035187 0.000000 +vt -0.015708 -0.070375 0.000000 +vt 0.000000 -0.175937 0.000000 +vt -0.015708 -0.211125 0.000000 +vt -0.047124 -0.598186 0.000000 +vt -0.031416 -0.492624 0.000000 +vt -0.047124 -0.457437 0.000000 +vt -0.031416 -0.351874 0.000000 +vt -0.047124 -0.316687 0.000000 +vt -0.031416 -0.211125 0.000000 +vt -0.047124 -0.175937 0.000000 +vt -0.031416 -0.070375 0.000000 +vt -0.047124 -0.035187 0.000000 +vt -0.031416 0.070375 0.000000 +vt -0.047124 0.105562 0.000000 +vt -0.031416 0.211125 0.000000 +vt -0.047124 0.246312 0.000000 +vt -0.031416 0.351874 0.000000 +vt -0.047124 0.387062 0.000000 +vt -0.031416 0.492624 0.000000 +vt -0.047124 0.527811 0.000000 +vt -0.031416 0.633374 0.000000 +vt -0.047124 0.668561 0.000000 +vt -0.031416 0.774124 0.000000 +vt -0.047124 0.809311 0.000000 +vt -0.031416 0.914873 0.000000 +vt -0.047124 0.950061 0.000000 +vt -0.047124 -0.879686 0.000000 +vt -0.031416 -0.914873 0.000000 +vt -0.031416 -0.774124 0.000000 +vt -0.047124 -0.738936 0.000000 +vt -0.031416 -0.633374 0.000000 +vt 0.200000 -0.797481 0.000000 +vt -0.020000 -0.797481 0.000000 +vt 0.200000 -0.942478 0.000000 +vt -0.020000 -0.942478 0.000000 +vt 0.200000 0.942478 0.000000 +vt -0.020000 0.942478 0.000000 +vt 0.200000 0.797481 0.000000 +vt -0.020000 0.797481 0.000000 +vt 0.200000 0.652485 0.000000 +vt -0.020000 0.652485 0.000000 +vt 0.200000 0.507488 0.000000 +vt -0.020000 0.507488 0.000000 +vt 0.200000 0.362491 0.000000 +vt -0.020000 0.362491 0.000000 +vt 0.200000 0.217495 0.000000 +vt -0.020000 0.217495 0.000000 +vt 0.200000 0.072498 0.000000 +vt -0.020000 0.072498 0.000000 +vt 0.200000 -0.072498 0.000000 +vt -0.020000 -0.072498 0.000000 +vt 0.200000 -0.217495 0.000000 +vt -0.020000 -0.217495 0.000000 +vt 0.200000 -0.362491 0.000000 +vt -0.020000 -0.362491 0.000000 +vt 0.200000 -0.507488 0.000000 +vt -0.020000 -0.507488 0.000000 +vt 0.200000 -0.652485 0.000000 +vt -0.020000 -0.652485 0.000000 +vt -0.270000 0.000000 0.000000 +vt -0.239073 -0.125475 0.000000 +vt -0.239073 0.125475 0.000000 +vt -0.153377 -0.222206 0.000000 +vt -0.153377 0.222206 0.000000 +vt -0.032545 -0.268031 0.000000 +vt -0.032545 0.268031 0.000000 +vt 0.095743 -0.252454 0.000000 +vt 0.095743 0.252454 0.000000 +vt 0.202098 -0.179043 0.000000 +vt 0.202098 0.179043 0.000000 +vt 0.262154 -0.064615 0.000000 +vt 0.262154 0.064615 0.000000 +vt 0.300000 0.000000 0.000000 +vt 0.265637 0.139417 0.000000 +vt 0.265637 -0.139417 0.000000 +vt 0.170419 -0.246895 0.000000 +vt 0.170419 0.246895 0.000000 +vt 0.036161 -0.297813 0.000000 +vt 0.036161 0.297813 0.000000 +vt -0.106381 -0.280505 0.000000 +vt -0.106381 0.280505 0.000000 +vt -0.224553 -0.198937 0.000000 +vt -0.224553 0.198937 0.000000 +vt -0.291283 -0.071795 0.000000 +vt -0.291283 0.071795 0.000000 +vn -0.088546 0.000000 -0.046472 +vn -0.080975 -0.050000 -0.030710 +vn -0.100000 0.000000 -0.000000 +vn -0.085971 -0.050000 0.010439 +vn -0.088546 0.000000 0.046472 +vn -0.071272 -0.050000 0.049196 +vn -0.056806 0.000000 0.082298 +vn -0.040246 -0.050000 0.076683 +vn -0.012054 0.000000 0.099271 +vn -0.000000 -0.050000 0.086603 +vn 0.035460 0.000000 0.093502 +vn 0.040246 -0.050000 0.076683 +vn 0.074851 0.000000 0.066312 +vn 0.071272 -0.050000 0.049196 +vn 0.097094 0.000000 0.023932 +vn 0.085971 -0.050000 0.010439 +vn 0.097094 0.000000 -0.023932 +vn 0.080975 -0.050000 -0.030710 +vn 0.074851 0.000000 -0.066312 +vn 0.057428 -0.050000 -0.064823 +vn 0.035460 0.000000 -0.093502 +vn 0.020725 -0.050000 -0.084086 +vn -0.012054 0.000000 -0.099271 +vn -0.020725 -0.050000 -0.084086 +vn -0.056806 0.000000 -0.082298 +vn -0.057428 -0.050000 -0.064823 +vn -0.000000 -0.100000 0.000000 +vn -0.049635 -0.086603 0.006027 +vn -0.000000 -0.100000 -0.000000 +vn -0.046751 -0.086603 -0.017730 +vn -0.000000 -0.100000 -0.000000 +vn -0.033156 -0.086603 -0.037426 +vn 0.000000 -0.100000 0.000000 +vn -0.011966 -0.086603 -0.048547 +vn 0.000000 -0.100000 0.000000 +vn 0.011966 -0.086603 -0.048547 +vn 0.000000 -0.100000 -0.000000 +vn 0.033156 -0.086603 -0.037426 +vn 0.000000 -0.100000 -0.000000 +vn 0.046751 -0.086603 -0.017730 +vn -0.000000 -0.100000 0.000000 +vn 0.049635 -0.086603 0.006027 +vn -0.000000 -0.100000 -0.000000 +vn 0.041149 -0.086603 0.028403 +vn 0.000000 -0.100000 0.000000 +vn 0.023236 -0.086603 0.044273 +vn 0.000000 -0.100000 0.000000 +vn 0.000000 -0.086603 0.050000 +vn 0.000000 -0.100000 -0.000000 +vn -0.023236 -0.086603 0.044273 +vn 0.000000 -0.100000 -0.000000 +vn -0.041149 -0.086603 0.028403 +vn -0.088546 0.000000 -0.046472 +vn -0.100000 0.000000 -0.000000 +vn -0.088546 0.000000 0.046472 +vn -0.056806 0.000000 0.082298 +vn -0.012054 0.000000 0.099271 +vn 0.035460 0.000000 0.093502 +vn 0.074851 0.000000 0.066312 +vn 0.097094 0.000000 0.023932 +vn 0.097094 0.000000 -0.023932 +vn 0.074851 0.000000 -0.066312 +vn 0.035460 0.000000 -0.093502 +vn -0.012054 0.000000 -0.099271 +vn -0.056806 0.000000 -0.082298 +vn -0.000000 0.100000 -0.000000 +vn -0.000000 0.100000 -0.000000 +vn -0.000000 0.100000 -0.000000 +vn -0.000000 0.100000 -0.000000 +vn -0.000000 0.100000 -0.000000 +vn -0.000000 0.100000 -0.000000 +vn -0.000000 0.100000 -0.000000 +vn -0.000000 0.100000 -0.000000 +vn -0.000000 0.100000 -0.000000 +vn -0.000000 0.100000 -0.000000 +vn -0.000000 0.100000 -0.000000 +vn -0.000000 0.100000 -0.000000 +vn -0.000000 0.100000 -0.000000 +usemtl Paint_-_Enamel_Glossy_(Black) +f 2/1/1 29/2/2 1/3/3 +f 1/3/3 29/2/2 32/4/4 +f 1/3/3 32/4/4 13/5/5 +f 13/5/5 32/4/4 51/6/6 +f 13/5/5 51/6/6 12/7/7 +f 12/7/7 51/6/6 49/8/8 +f 12/7/7 49/8/8 11/9/9 +f 11/9/9 49/8/8 27/10/10 +f 11/9/9 27/10/10 10/11/11 +f 10/12/11 27/13/10 47/14/12 +f 10/12/11 47/14/12 9/15/13 +f 9/15/13 47/14/12 45/16/14 +f 9/15/13 45/16/14 8/17/15 +f 8/17/15 45/16/14 43/18/16 +f 8/17/15 43/18/16 7/19/17 +f 7/19/17 43/18/16 41/20/18 +f 7/19/17 41/20/18 6/21/19 +f 6/21/19 41/20/18 39/22/20 +f 6/21/19 39/22/20 5/23/21 +f 5/23/21 39/22/20 37/24/22 +f 5/23/21 37/24/22 4/25/23 +f 4/25/23 37/24/22 35/26/24 +f 4/25/23 35/26/24 3/27/25 +f 3/27/25 35/26/24 33/28/26 +f 3/27/25 33/28/26 2/1/1 +f 2/1/1 33/28/26 29/2/2 +f 15/29/27 31/30/28 14/31/29 +f 14/31/29 31/30/28 30/32/30 +f 14/31/29 30/32/30 26/33/31 +f 26/33/31 30/32/30 34/34/32 +f 26/33/31 34/34/32 25/35/33 +f 25/35/33 34/34/32 36/36/34 +f 25/35/33 36/36/34 24/37/35 +f 24/37/35 36/36/34 38/38/36 +f 24/37/35 38/38/36 23/39/37 +f 23/39/37 38/38/36 40/40/38 +f 23/39/37 40/40/38 22/41/39 +f 22/41/39 40/40/38 42/42/40 +f 22/41/39 42/42/40 21/43/41 +f 21/43/41 42/42/40 44/44/42 +f 21/43/41 44/44/42 20/45/43 +f 20/45/43 44/44/42 46/46/44 +f 20/45/43 46/46/44 19/47/45 +f 19/47/45 46/46/44 48/48/46 +f 19/47/45 48/48/46 18/49/47 +f 18/49/47 48/48/46 28/50/48 +f 18/49/47 28/50/48 17/51/49 +f 17/52/49 28/53/48 50/54/50 +f 17/52/49 50/54/50 16/55/51 +f 16/55/51 50/54/50 52/56/52 +f 16/55/51 52/56/52 15/29/27 +f 15/29/27 52/56/52 31/30/28 +f 27/13/10 28/50/48 47/14/12 +f 47/14/12 28/50/48 48/48/46 +f 47/14/12 48/48/46 45/16/14 +f 45/16/14 48/48/46 46/46/44 +f 45/16/14 46/46/44 43/18/16 +f 43/18/16 46/46/44 44/44/42 +f 43/18/16 44/44/42 41/20/18 +f 41/20/18 44/44/42 42/42/40 +f 41/20/18 42/42/40 39/22/20 +f 39/22/20 42/42/40 40/40/38 +f 39/22/20 40/40/38 37/24/22 +f 37/24/22 40/40/38 38/38/36 +f 37/24/22 38/38/36 35/26/24 +f 35/26/24 38/38/36 36/36/34 +f 35/26/24 36/36/34 33/28/26 +f 33/28/26 36/36/34 34/34/32 +f 33/28/26 34/34/32 29/2/2 +f 29/2/2 34/34/32 30/32/30 +f 29/2/2 30/32/30 32/4/4 +f 32/4/4 30/32/30 31/30/28 +f 32/4/4 31/30/28 51/6/6 +f 51/6/6 31/30/28 52/56/52 +f 51/6/6 52/56/52 49/8/8 +f 49/8/8 52/56/52 50/54/50 +f 49/8/8 50/54/50 27/10/10 +f 27/10/10 50/54/50 28/53/48 +f 54/57/53 2/58/1 53/59/54 +f 53/59/54 2/58/1 1/60/3 +f 53/61/54 1/62/3 65/63/55 +f 65/63/55 1/62/3 13/64/5 +f 65/63/55 13/64/5 64/65/56 +f 64/65/56 13/64/5 12/66/7 +f 64/65/56 12/66/7 63/67/57 +f 63/67/57 12/66/7 11/68/9 +f 63/67/57 11/68/9 62/69/58 +f 62/69/58 11/68/9 10/70/11 +f 62/69/58 10/70/11 61/71/59 +f 61/71/59 10/70/11 9/72/13 +f 61/71/59 9/72/13 60/73/60 +f 60/73/60 9/72/13 8/74/15 +f 60/73/60 8/74/15 59/75/61 +f 59/75/61 8/74/15 7/76/17 +f 59/75/61 7/76/17 58/77/62 +f 58/77/62 7/76/17 6/78/19 +f 58/77/62 6/78/19 57/79/63 +f 57/79/63 6/78/19 5/80/21 +f 57/79/63 5/80/21 56/81/64 +f 56/81/64 5/80/21 4/82/23 +f 56/81/64 4/82/23 55/83/65 +f 55/83/65 4/82/23 3/84/25 +f 55/83/65 3/84/25 54/57/53 +f 54/57/53 3/84/25 2/58/1 +f 14/85/29 26/86/31 15/87/27 +f 15/87/27 26/86/31 25/88/33 +f 15/87/27 25/88/33 16/89/51 +f 16/89/51 25/88/33 24/90/35 +f 16/89/51 24/90/35 17/91/49 +f 17/91/49 24/90/35 23/92/37 +f 17/91/49 23/92/37 18/93/47 +f 18/93/47 23/92/37 22/94/39 +f 18/93/47 22/94/39 19/95/45 +f 19/95/45 22/94/39 21/96/41 +f 19/95/45 21/96/41 20/97/43 +f 53/98/66 65/99/67 54/100/68 +f 54/100/68 65/99/67 55/101/69 +f 55/101/69 65/99/67 64/102/70 +f 55/101/69 64/102/70 56/103/71 +f 56/103/71 64/102/70 63/104/72 +f 56/103/71 63/104/72 57/105/73 +f 57/105/73 63/104/72 62/106/74 +f 57/105/73 62/106/74 58/107/75 +f 58/107/75 62/106/74 61/108/76 +f 58/107/75 61/108/76 59/109/77 +f 59/109/77 61/108/76 60/110/78 +# 65 vertices +# 110 texture params +# 78 normals +# 126 facets + +# 1 groups diff --git a/HandheldCompanion/Models/ModelAYANEO2021.cs b/HandheldCompanion/Models/ModelAYANEO2021.cs index bd1757320..195c3b9ed 100644 --- a/HandheldCompanion/Models/ModelAYANEO2021.cs +++ b/HandheldCompanion/Models/ModelAYANEO2021.cs @@ -7,12 +7,9 @@ namespace HandheldCompanion.Models internal class ModelAYANEO2021 : Model { // Specific groups (move me) - Model3DGroup WFBEsc; Model3DGroup WFBH; - Model3DGroup WFBKB; Model3DGroup WFBRGB; Model3DGroup WFBTM; - Model3DGroup WFBWin; Model3DGroup LeftShoulderMiddle; Model3DGroup RightShoulderMiddle; Model3DGroup Screen; @@ -42,13 +39,10 @@ public ModelAYANEO2021() : base("AYANEO 2021") UpwardVisibilityRotationPointLeft = new Vector3D(-93.32f, -10.5f, 54.05f); UpwardVisibilityRotationPointRight = new Vector3D(93.32, -10.5f, 54.05f); - // load model(s) - WFBEsc = modelImporter.Load($"models/{ModelName}/WFB-Esc.obj"); + // load model(s) WFBH = modelImporter.Load($"models/{ModelName}/WFB-H.obj"); - WFBKB = modelImporter.Load($"models/{ModelName}/WFB-KB.obj"); WFBRGB = modelImporter.Load($"models/{ModelName}/WFB-RGB.obj"); WFBTM = modelImporter.Load($"models/{ModelName}/WFB-TM.obj"); - WFBWin = modelImporter.Load($"models/{ModelName}/WFB-Win.obj"); LeftShoulderMiddle = modelImporter.Load($"models/{ModelName}/Shoulder-Left-Middle.obj"); RightShoulderMiddle = modelImporter.Load($"models/{ModelName}/Shoulder-Right-Middle.obj"); Screen = modelImporter.Load($"models/{ModelName}/Screen.obj"); @@ -56,12 +50,9 @@ public ModelAYANEO2021() : base("AYANEO 2021") JoystickRightCover = modelImporter.Load($"models/{ModelName}/Joystick-Right-Cover.obj"); // pull model(s) - model3DGroup.Children.Add(WFBEsc); model3DGroup.Children.Add(WFBH); - model3DGroup.Children.Add(WFBKB); model3DGroup.Children.Add(WFBRGB); model3DGroup.Children.Add(WFBTM); - model3DGroup.Children.Add(WFBWin); model3DGroup.Children.Add(LeftShoulderMiddle); model3DGroup.Children.Add(RightShoulderMiddle); model3DGroup.Children.Add(JoystickLeftCover); diff --git a/HandheldCompanion/Properties/Resources.Designer.cs b/HandheldCompanion/Properties/Resources.Designer.cs index f9e4403d7..edfee690d 100644 --- a/HandheldCompanion/Properties/Resources.Designer.cs +++ b/HandheldCompanion/Properties/Resources.Designer.cs @@ -241,12 +241,12 @@ public static string Administrator { } /// - /// Looks up a localized string similar to { - /// "name": "ControllerCompanion", - /// "path": "ControllerCompanion.exe", - /// "executable": "ControllerCompanion.exe", - /// "isEnabled": true, - /// "whitelisted": true + /// Looks up a localized string similar to { + /// "name": "ControllerCompanion", + /// "path": "ControllerCompanion.exe", + /// "executable": "ControllerCompanion.exe", + /// "isEnabled": true, + /// "whitelisted": true ///}. /// public static string ControllerCompanion_json { @@ -355,14 +355,14 @@ public static string ControllerPage_VibrationStrengthExpl { } /// - /// Looks up a localized string similar to { - /// "name": "Default", - /// "path": "", - /// "executable": "Default.exe", - /// "isDefault": true, - /// "isEnabled": true, - /// "whitelisted": false, - /// "umc_enabled": false + /// Looks up a localized string similar to { + /// "name": "Default", + /// "path": "", + /// "executable": "Default.exe", + /// "isDefault": true, + /// "isEnabled": true, + /// "whitelisted": false, + /// "umc_enabled": false ///}. /// public static string Default_json { @@ -688,12 +688,12 @@ public static string InputsHotkey_suspendResumeTaskDesc { } /// - /// Looks up a localized string similar to { - /// "name": "Joyxoff", - /// "path": "Joyxoff.exe", - /// "executable": "Joyxoff.exe", - /// "isEnabled": true, - /// "whitelisted": true + /// Looks up a localized string similar to { + /// "name": "Joyxoff", + /// "path": "Joyxoff.exe", + /// "executable": "Joyxoff.exe", + /// "isEnabled": true, + /// "whitelisted": true ///}. /// public static string JoyXOff_json { @@ -1243,12 +1243,12 @@ public static string OverlayPage_ZDOPlusController { } /// - /// Looks up a localized string similar to { - /// "name": "Playnite.FullscreenApp", - /// "path": "Playnite.FullscreenApp.exe", - /// "executable": "Playnite.FullscreenApp.exe", - /// "isEnabled": true, - /// "whitelisted": true + /// Looks up a localized string similar to { + /// "name": "Playnite.FullscreenApp", + /// "path": "Playnite.FullscreenApp.exe", + /// "executable": "Playnite.FullscreenApp.exe", + /// "isEnabled": true, + /// "whitelisted": true ///}. /// public static string Playnite_FullscreenApp_json { @@ -1258,13 +1258,13 @@ public static string Playnite_FullscreenApp_json { } /// - /// Looks up a localized string similar to { - /// "name": "Power Control Panel", - /// "path": "Power Control Panel.exe", - /// "executable": "Power Control Panel.exe", - /// "isEnabled": true, - /// "whitelisted": true - ///} + /// Looks up a localized string similar to { + /// "name": "Power Control Panel", + /// "path": "Power Control Panel.exe", + /// "executable": "Power Control Panel.exe", + /// "isEnabled": true, + /// "whitelisted": true + ///} ///. /// public static string PowerControlPanel_json { @@ -1993,6 +1993,24 @@ public static string ProfilesPage_Roll { } } + /// + /// Looks up a localized string similar to X. + /// + public static string ProfilesPage_SensitivityX { + get { + return ResourceManager.GetString("ProfilesPage_SensitivityX", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Y. + /// + public static string ProfilesPage_SensitivityY { + get { + return ResourceManager.GetString("ProfilesPage_SensitivityY", resourceCulture); + } + } + /// /// Looks up a localized string similar to Style of input. /// @@ -2264,6 +2282,15 @@ public static string QuickPerformancePage_PowerModePerformance { } } + /// + /// Looks up a localized string similar to Boost. + /// + public static string QuickPerformancePage_TDPBoost { + get { + return ResourceManager.GetString("QuickPerformancePage_TDPBoost", resourceCulture); + } + } + /// /// Looks up a localized string similar to Thermal Power (TDP) Limit. /// @@ -2291,6 +2318,15 @@ public static string QuickPerformancePage_TDPOverWrittenWarning { } } + /// + /// Looks up a localized string similar to Sustained. + /// + public static string QuickPerformancePage_TDPSustained { + get { + return ResourceManager.GetString("QuickPerformancePage_TDPSustained", resourceCulture); + } + } + /// /// Looks up a localized string similar to W. /// diff --git a/HandheldCompanion/Properties/Resources.resx b/HandheldCompanion/Properties/Resources.resx index 2eec11a1d..7682e979a 100644 --- a/HandheldCompanion/Properties/Resources.resx +++ b/HandheldCompanion/Properties/Resources.resx @@ -751,6 +751,12 @@ Roll + + X + + + Y + Style of input @@ -842,6 +848,9 @@ with motion input enabled, use selected button(s) to disable motion. Performance + + Boost + Thermal Power (TDP) Limit @@ -851,6 +860,9 @@ with motion input enabled, use selected button(s) to disable motion. Thermal Power Limit is overwritten by a profile + + Sustained + W diff --git a/HandheldCompanion/Properties/Settings.Designer.cs b/HandheldCompanion/Properties/Settings.Designer.cs index 2796388a6..a0cb17cdc 100644 --- a/HandheldCompanion/Properties/Settings.Designer.cs +++ b/HandheldCompanion/Properties/Settings.Designer.cs @@ -359,18 +359,6 @@ public bool OverlayRenderAntialiasing { } } - [global::System.Configuration.UserScopedSettingAttribute()] - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - [global::System.Configuration.DefaultSettingValueAttribute("0")] - public int HIDmode { - get { - return ((int)(this["HIDmode"])); - } - set { - this["HIDmode"] = value; - } - } - [global::System.Configuration.UserScopedSettingAttribute()] [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] [global::System.Configuration.DefaultSettingValueAttribute("True")] diff --git a/HandheldCompanion/Properties/Settings.settings b/HandheldCompanion/Properties/Settings.settings index d4c65c38a..1f4bca8e2 100644 --- a/HandheldCompanion/Properties/Settings.settings +++ b/HandheldCompanion/Properties/Settings.settings @@ -86,9 +86,6 @@ False - - 0 - True diff --git a/HandheldCompanion/Views/Classes/OverlayWindow.cs b/HandheldCompanion/Views/Classes/OverlayWindow.cs index 759b58cf5..4979e2d2c 100644 --- a/HandheldCompanion/Views/Classes/OverlayWindow.cs +++ b/HandheldCompanion/Views/Classes/OverlayWindow.cs @@ -59,6 +59,7 @@ public OverlayWindow() : base() Topmost = true; Focusable = false; ResizeMode = ResizeMode.NoResize; + ShowActivated = false; SizeChanged += (o, e) => { diff --git a/HandheldCompanion/Views/Pages/ControllerPage.xaml b/HandheldCompanion/Views/Pages/ControllerPage.xaml index ffb71bc6f..07736b56c 100644 --- a/HandheldCompanion/Views/Pages/ControllerPage.xaml +++ b/HandheldCompanion/Views/Pages/ControllerPage.xaml @@ -36,7 +36,7 @@ - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/HandheldCompanion/Views/Pages/ProfileSettingsMode0.xaml.cs b/HandheldCompanion/Views/Pages/ProfileSettingsMode0.xaml.cs index 935ad7176..31b755c2c 100644 --- a/HandheldCompanion/Views/Pages/ProfileSettingsMode0.xaml.cs +++ b/HandheldCompanion/Views/Pages/ProfileSettingsMode0.xaml.cs @@ -1,19 +1,14 @@ using ControllerCommon; -using ControllerCommon.Managers; -using ControllerCommon.Controllers; -using ControllerCommon.Utils; using ControllerService.Sensors; -using ModernWpf.Controls; +using HandheldCompanion.Managers; using System; -using System.Collections.Generic; +using System.Linq; using System.Windows; using System.Windows.Controls; using System.Windows.Controls.Primitives; using System.Windows.Input; using System.Windows.Media; using Page = System.Windows.Controls.Page; -using HandheldCompanion.Managers; -using System.Linq; namespace HandheldCompanion.Views.Pages { @@ -44,12 +39,12 @@ public void Update(Profile currentProfile) { this.currentProfile = currentProfile; - SliderSensitivityX.Value = profileCurrent.aiming_sensitivity_x; - SliderSensitivityY.Value = profileCurrent.aiming_sensitivity_y; - tb_ProfileAimingDownSightsMultiplier.Value = profileCurrent.aiming_down_sights_multiplier; - Toggle_FlickStick.IsOn = profileCurrent.flickstick_enabled; - tb_ProfileFlickDuration.Value = profileCurrent.flick_duration * 1000; - tb_ProfileStickSensitivity.Value = profileCurrent.stick_sensivity; + SliderSensitivityX.Value = currentProfile.aiming_sensitivity_x; + SliderSensitivityY.Value = currentProfile.aiming_sensitivity_y; + tb_ProfileAimingDownSightsMultiplier.Value = currentProfile.aiming_down_sights_multiplier; + Toggle_FlickStick.IsOn = currentProfile.flickstick_enabled; + tb_ProfileFlickDuration.Value = currentProfile.flick_duration * 1000; + tb_ProfileStickSensitivity.Value = currentProfile.stick_sensivity; // todo: improve me ? ProfilesPageHotkey.inputsChord.GamepadButtons = currentProfile.aiming_down_sights_activation; @@ -112,15 +107,15 @@ private void SliderSensitivityX_ValueChanged(object sender, RoutedPropertyChange if (currentProfile is null) return; - profileCurrent.aiming_sensitivity_x = (float)SliderSensitivityX.Value; + currentProfile.aiming_sensitivity_x = (float)SliderSensitivityX.Value; } private void SliderSensitivityY_ValueChanged(object sender, RoutedPropertyChangedEventArgs e) { - if (profileCurrent is null) + if (currentProfile is null) return; - profileCurrent.aiming_sensitivity_y = (float)SliderSensitivityY.Value; + currentProfile.aiming_sensitivity_y = (float)SliderSensitivityY.Value; } private void Highlight_Thumb(float value) @@ -258,9 +253,9 @@ private void SliderStickSensivity_ValueChanged(object sender, RoutedPropertyChan private void TriggerCreated(Hotkey hotkey) { - switch (hotkey.hotkeyId) + switch (hotkey.inputsHotkey.Listener) { - case 51: + case "shortcutProfilesSettingsMode0": { // pull hotkey ProfilesPageHotkey = hotkey; @@ -270,7 +265,8 @@ private void TriggerCreated(Hotkey hotkey) if (hotkeyBorder is null || hotkeyBorder.Parent != null) return; - UMC_Activator.Children.Add(hotkeyBorder); + if (UMC_Activator.Children.Count == 0) + UMC_Activator.Children.Add(hotkeyBorder); } break; } @@ -278,18 +274,10 @@ private void TriggerCreated(Hotkey hotkey) private void TriggerUpdated(string listener, InputsChord inputs, InputsManager.ListenerType type) { - Hotkey hotkey = HotkeysManager.Hotkeys.Values.Where(item => item.inputsHotkey.Listener.Equals(listener)).FirstOrDefault(); - - if (hotkey is null) - return; - - switch (hotkey.hotkeyId) + switch (listener) { - case 51: - { - // update profile - currentProfile.aiming_down_sights_activation = inputs.GamepadButtons; - } + case "shortcutProfilesSettingsMode0": + currentProfile.umc_trigger = inputs.GamepadButtons; break; } } diff --git a/HandheldCompanion/Views/Pages/ProfileSettingsMode1.xaml b/HandheldCompanion/Views/Pages/ProfileSettingsMode1.xaml index 5ada10165..54ad02f5e 100644 --- a/HandheldCompanion/Views/Pages/ProfileSettingsMode1.xaml +++ b/HandheldCompanion/Views/Pages/ProfileSettingsMode1.xaml @@ -114,7 +114,7 @@ - + @@ -142,7 +142,7 @@ - + @@ -170,7 +170,7 @@ - + diff --git a/HandheldCompanion/Views/Pages/ProfilesPage.xaml b/HandheldCompanion/Views/Pages/ProfilesPage.xaml index d403cfb5b..651941565 100644 --- a/HandheldCompanion/Views/Pages/ProfilesPage.xaml +++ b/HandheldCompanion/Views/Pages/ProfilesPage.xaml @@ -235,7 +235,7 @@ - + - + - + @@ -319,7 +319,7 @@ - + @@ -448,8 +448,8 @@ - - + + diff --git a/HandheldCompanion/Views/Pages/ProfilesPage.xaml.cs b/HandheldCompanion/Views/Pages/ProfilesPage.xaml.cs index a9f337839..ef3573f59 100644 --- a/HandheldCompanion/Views/Pages/ProfilesPage.xaml.cs +++ b/HandheldCompanion/Views/Pages/ProfilesPage.xaml.cs @@ -1,24 +1,18 @@ using ControllerCommon; -using ControllerCommon.Controllers; using ControllerCommon.Managers; using ControllerCommon.Processor; using ControllerCommon.Utils; -using Gma.System.MouseKeyHook.HotKeys; using HandheldCompanion.Managers; using Microsoft.Win32; using ModernWpf.Controls; using System; -using System.Collections.Generic; -using System.Globalization; using System.IO; +using System.Linq; using System.Threading.Tasks; using System.Windows; using System.Windows.Controls; using System.Xml; -using System.Xml.Linq; -using System.Linq; using Page = System.Windows.Controls.Page; -using static System.Windows.Forms.VisualStyles.VisualStyleElement; namespace HandheldCompanion.Views.Pages { @@ -290,10 +284,7 @@ private async void b_CreateProfile_Click(object sender, RoutedEventArgs e) } if (!exists) - { ProfileManager.UpdateOrCreateProfile(profile, false); - ProfileManager.SerializeProfile(profile); - } } catch (Exception ex) { @@ -346,7 +337,7 @@ private void DrawProfile() UniversalSettings.IsEnabled = true; // disable button if is default profile or application is running - b_DeleteProfile.IsEnabled = !currentProfile.isDefault && currentProfile.error != ProfileErrorCode.IsRunning; + b_DeleteProfile.IsEnabled = !currentProfile.isDefault && !currentProfile.isRunning; // prevent user from renaming default profile tB_ProfileName.IsEnabled = !currentProfile.isDefault; // prevent user from setting power settings on default profile @@ -483,7 +474,6 @@ private void b_ApplyProfile_Click(object sender, RoutedEventArgs e) currentProfile.TDP_override = (bool)TDPToggle.IsOn; ProfileManager.UpdateOrCreateProfile(currentProfile, false); - ProfileManager.SerializeProfile(currentProfile); } private void cB_Whitelist_Checked(object sender, RoutedEventArgs e) @@ -577,19 +567,18 @@ private void TDPToggle_Toggled(object sender, RoutedEventArgs e) private void TriggerCreated(Hotkey hotkey) { - switch (hotkey.hotkeyId) + switch (hotkey.inputsHotkey.Listener) { - case 50: + case "shortcutProfilesPage1": { - // pull hotkey - ProfilesPageHotkey = hotkey; - - // add to UI - Border hotkeyBorder = ProfilesPageHotkey.GetHotkey(); + Border hotkeyBorder = hotkey.GetHotkey(); if (hotkeyBorder is null || hotkeyBorder.Parent != null) return; - UMC_Activator.Children.Add(hotkeyBorder); + // pull hotkey + ProfilesPageHotkey = hotkey; + + this.UMC_Activator.Children.Add(hotkeyBorder); } break; } @@ -597,18 +586,11 @@ private void TriggerCreated(Hotkey hotkey) private void TriggerUpdated(string listener, InputsChord inputs, InputsManager.ListenerType type) { - Hotkey hotkey = HotkeysManager.Hotkeys.Values.Where(item => item.inputsHotkey.Listener.Equals(listener)).FirstOrDefault(); - - if (hotkey is null) - return; - - switch (hotkey.hotkeyId) + switch(listener) { - case 50: - { - // update profile - currentProfile.umc_trigger = inputs.GamepadButtons; - } + case "shortcutProfilesPage1": + case "shortcutProfilesPage2": + currentProfile.umc_trigger = inputs.GamepadButtons; break; } } diff --git a/HandheldCompanion/Views/QuickPages/QuickPerformancePage.xaml b/HandheldCompanion/Views/QuickPages/QuickPerformancePage.xaml index 5ea17057b..8da493b11 100644 --- a/HandheldCompanion/Views/QuickPages/QuickPerformancePage.xaml +++ b/HandheldCompanion/Views/QuickPages/QuickPerformancePage.xaml @@ -19,7 +19,7 @@ @@ -43,40 +43,47 @@ - - - - - + + + + + + + + + - - - - - + + + + + + + + + @@ -95,10 +102,13 @@ + + + @@ -122,24 +132,26 @@ - - + + + @@ -161,7 +173,7 @@ diff --git a/HandheldCompanion/Views/QuickPages/QuickPerformancePage.xaml.cs b/HandheldCompanion/Views/QuickPages/QuickPerformancePage.xaml.cs index af986f3fb..e31b8994e 100644 --- a/HandheldCompanion/Views/QuickPages/QuickPerformancePage.xaml.cs +++ b/HandheldCompanion/Views/QuickPages/QuickPerformancePage.xaml.cs @@ -30,6 +30,9 @@ public QuickPerformancePage() SettingsManager.SettingValueChanged += SettingsManager_SettingValueChanged; HotkeysManager.CommandExecuted += HotkeysManager_CommandExecuted; + + GPUSlider.Minimum = MainWindow.handheldDevice.GfxClock[0]; + GPUSlider.Maximum = MainWindow.handheldDevice.GfxClock[1]; } private void HotkeysManager_CommandExecuted(string listener) diff --git a/HandheldCompanion/Views/QuickPages/QuickProfilesPage.xaml b/HandheldCompanion/Views/QuickPages/QuickProfilesPage.xaml index 77a2468af..e88fdd4e0 100644 --- a/HandheldCompanion/Views/QuickPages/QuickProfilesPage.xaml +++ b/HandheldCompanion/Views/QuickPages/QuickProfilesPage.xaml @@ -18,7 +18,7 @@ @@ -33,6 +33,9 @@ + + +