diff --git a/JoystickProxy/.gitignore b/JoystickProxy/.gitignore
deleted file mode 100644
index dd7327e..0000000
--- a/JoystickProxy/.gitignore
+++ /dev/null
@@ -1,231 +0,0 @@
-## Ignore Visual Studio temporary files, build results, and
-## files generated by popular Visual Studio add-ons.
-
-# User-specific files
-*.suo
-*.user
-*.userosscache
-*.sln.docstates
-
-# User-specific files (MonoDevelop/Xamarin Studio)
-*.userprefs
-
-# Build results
-[Dd]ebug/
-[Dd]ebugPublic/
-[Rr]elease/
-[Rr]eleases/
-x64/
-x86/
-build/
-bld/
-[Bb]in/
-[Oo]bj/
-
-# Visual Studio 2015 cache/options directory
-.vs/
-# Uncomment if you have tasks that create the project's static files in wwwroot
-#wwwroot/
-
-# MSTest test Results
-[Tt]est[Rr]esult*/
-[Bb]uild[Ll]og.*
-
-# NUNIT
-*.VisualState.xml
-TestResult.xml
-
-# Build Results of an ATL Project
-[Dd]ebugPS/
-[Rr]eleasePS/
-dlldata.c
-
-# DNX
-project.lock.json
-artifacts/
-
-*_i.c
-*_p.c
-*_i.h
-*.ilk
-*.meta
-*.obj
-*.pch
-*.pdb
-*.pgc
-*.pgd
-*.rsp
-*.sbr
-*.tlb
-*.tli
-*.tlh
-*.tmp
-*.tmp_proj
-*.log
-*.vspscc
-*.vssscc
-.builds
-*.pidb
-*.svclog
-*.scc
-
-# Chutzpah Test files
-_Chutzpah*
-
-# Visual C++ cache files
-ipch/
-*.aps
-*.ncb
-*.opendb
-*.opensdf
-*.sdf
-*.cachefile
-
-# Visual Studio profiler
-*.psess
-*.vsp
-*.vspx
-*.sap
-
-# TFS 2012 Local Workspace
-$tf/
-
-# Guidance Automation Toolkit
-*.gpState
-
-# ReSharper is a .NET coding add-in
-_ReSharper*/
-*.[Rr]e[Ss]harper
-*.DotSettings.user
-
-# JustCode is a .NET coding add-in
-.JustCode
-
-# TeamCity is a build add-in
-_TeamCity*
-
-# DotCover is a Code Coverage Tool
-*.dotCover
-
-# NCrunch
-_NCrunch_*
-.*crunch*.local.xml
-nCrunchTemp_*
-
-# MightyMoose
-*.mm.*
-AutoTest.Net/
-
-# Web workbench (sass)
-.sass-cache/
-
-# Installshield output folder
-[Ee]xpress/
-
-# DocProject is a documentation generator add-in
-DocProject/buildhelp/
-DocProject/Help/*.HxT
-DocProject/Help/*.HxC
-DocProject/Help/*.hhc
-DocProject/Help/*.hhk
-DocProject/Help/*.hhp
-DocProject/Help/Html2
-DocProject/Help/html
-
-# Click-Once directory
-publish/
-
-# Publish Web Output
-*.[Pp]ublish.xml
-*.azurePubxml
-# TODO: Comment the next line if you want to checkin your web deploy settings
-# but database connection strings (with potential passwords) will be unencrypted
-*.pubxml
-*.publishproj
-
-# NuGet Packages
-*.nupkg
-# The packages folder can be ignored because of Package Restore
-**/packages/*
-# except build/, which is used as an MSBuild target.
-!**/packages/build/
-# Uncomment if necessary however generally it will be regenerated when needed
-#!**/packages/repositories.config
-
-# Windows Azure Build Output
-csx/
-*.build.csdef
-
-# Windows Azure Emulator
-ecf/
-rcf/
-
-# Windows Store app package directory
-AppPackages/
-
-# Visual Studio cache files
-# files ending in .cache can be ignored
-*.[Cc]ache
-# but keep track of directories ending in .cache
-!*.[Cc]ache/
-
-# Others
-ClientBin/
-[Ss]tyle[Cc]op.*
-~$*
-*~
-*.dbmdl
-*.dbproj.schemaview
-*.pfx
-*.publishsettings
-node_modules/
-orleans.codegen.cs
-
-# RIA/Silverlight projects
-Generated_Code/
-
-# Backup & report files from converting an old project file
-# to a newer Visual Studio version. Backup files are not needed,
-# because we have git ;-)
-_UpgradeReport_Files/
-Backup*/
-UpgradeLog*.XML
-UpgradeLog*.htm
-
-# SQL Server files
-*.mdf
-*.ldf
-
-# Business Intelligence projects
-*.rdl.data
-*.bim.layout
-*.bim_*.settings
-
-# Microsoft Fakes
-FakesAssemblies/
-
-# GhostDoc plugin setting file
-*.GhostDoc.xml
-
-# Node.js Tools for Visual Studio
-.ntvs_analysis.dat
-
-# Visual Studio 6 build log
-*.plg
-
-# Visual Studio 6 workspace options file
-*.opt
-
-# Visual Studio LightSwitch build output
-**/*.HTMLClient/GeneratedArtifacts
-**/*.DesktopClient/GeneratedArtifacts
-**/*.DesktopClient/ModelManifest.xml
-**/*.Server/GeneratedArtifacts
-**/*.Server/ModelManifest.xml
-_Pvt_Extensions
-
-# Paket dependency manager
-.paket/paket.exe
-
-# FAKE - F# Make
-.fake/
diff --git a/JoystickProxy/JoystickProxy.sln b/JoystickProxy/JoystickProxy.sln
deleted file mode 100644
index e089aa6..0000000
--- a/JoystickProxy/JoystickProxy.sln
+++ /dev/null
@@ -1,22 +0,0 @@
-
-Microsoft Visual Studio Solution File, Format Version 12.00
-# Visual Studio 14
-VisualStudioVersion = 14.0.23107.0
-MinimumVisualStudioVersion = 10.0.40219.1
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "JoystickProxy", "JoystickProxy\JoystickProxy.csproj", "{E18B3EBB-51B4-4B73-9F13-1998B32FE319}"
-EndProject
-Global
- GlobalSection(SolutionConfigurationPlatforms) = preSolution
- Debug|Any CPU = Debug|Any CPU
- Release|Any CPU = Release|Any CPU
- EndGlobalSection
- GlobalSection(ProjectConfigurationPlatforms) = postSolution
- {E18B3EBB-51B4-4B73-9F13-1998B32FE319}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {E18B3EBB-51B4-4B73-9F13-1998B32FE319}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {E18B3EBB-51B4-4B73-9F13-1998B32FE319}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {E18B3EBB-51B4-4B73-9F13-1998B32FE319}.Release|Any CPU.Build.0 = Release|Any CPU
- EndGlobalSection
- GlobalSection(SolutionProperties) = preSolution
- HideSolutionNode = FALSE
- EndGlobalSection
-EndGlobal
diff --git a/JoystickProxy/JoystickProxy/App.config b/JoystickProxy/JoystickProxy/App.config
deleted file mode 100644
index 88fa402..0000000
--- a/JoystickProxy/JoystickProxy/App.config
+++ /dev/null
@@ -1,6 +0,0 @@
-
-
-
-
-
-
\ No newline at end of file
diff --git a/JoystickProxy/JoystickProxy/FodyWeavers.xml b/JoystickProxy/JoystickProxy/FodyWeavers.xml
deleted file mode 100644
index c6e1b7c..0000000
--- a/JoystickProxy/JoystickProxy/FodyWeavers.xml
+++ /dev/null
@@ -1,4 +0,0 @@
-
-
-
-
\ No newline at end of file
diff --git a/JoystickProxy/JoystickProxy/JoystickProxy.csproj b/JoystickProxy/JoystickProxy/JoystickProxy.csproj
deleted file mode 100644
index 23e7a98..0000000
--- a/JoystickProxy/JoystickProxy/JoystickProxy.csproj
+++ /dev/null
@@ -1,134 +0,0 @@
-
-
-
-
- Debug
- AnyCPU
- {E18B3EBB-51B4-4B73-9F13-1998B32FE319}
- Exe
- Properties
- JoystickProxy
- JoystickProxy
- v4.5.2
- 512
- true
-
-
- false
- E:\JoystickVisualizer-0.8\
- true
- Disk
- false
- Foreground
- 7
- Days
- false
- false
- true
- 0
- 1.0.0.%2a
- false
- true
- true
-
-
- AnyCPU
- true
- full
- false
- bin\Debug\
- DEBUG;TRACE
- prompt
- 4
-
-
- AnyCPU
- pdbonly
- true
- bin\Release\
- TRACE
- prompt
- 4
-
-
- JoystickThrottle.ico
-
-
- 05ED595BB89D4F0A78BF56B88FFF8284A5CA535D
-
-
- JoystickProxy_TemporaryKey.pfx
-
-
- true
-
-
- true
-
-
-
- ..\packages\Costura.Fody.1.6.2\lib\dotnet\Costura.dll
- False
-
-
- ..\packages\ini-parser.2.5.2\lib\net20\INIFileParser.dll
-
-
- ..\packages\Newtonsoft.Json.10.0.3\lib\net45\Newtonsoft.Json.dll
-
-
- ..\packages\SharpDX.4.1.0-ci184\lib\net45\SharpDX.dll
-
-
- ..\packages\SharpDX.DirectInput.4.1.0-ci184\lib\net45\SharpDX.DirectInput.dll
-
-
- ..\packages\SharpDX.RawInput.4.1.0-ci184\lib\net45\SharpDX.RawInput.dll
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- PreserveNewest
-
-
-
-
-
-
-
-
-
-
-
-
-
- This project references NuGet package(s) that are missing on this computer. Use NuGet Package Restore to download them. For more information, see http://go.microsoft.com/fwlink/?LinkID=322105. The missing file is {0}.
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/JoystickProxy/JoystickProxy/JoystickThrottle.ico b/JoystickProxy/JoystickProxy/JoystickThrottle.ico
deleted file mode 100644
index 4283156..0000000
Binary files a/JoystickProxy/JoystickProxy/JoystickThrottle.ico and /dev/null differ
diff --git a/JoystickProxy/JoystickProxy/Program.cs b/JoystickProxy/JoystickProxy/Program.cs
deleted file mode 100644
index a5bd70f..0000000
--- a/JoystickProxy/JoystickProxy/Program.cs
+++ /dev/null
@@ -1,236 +0,0 @@
-using System;
-using SharpDX.DirectInput;
-using System.Threading;
-using System.Net.Sockets;
-using System.Net;
-using System.Collections.Generic;
-using System.IO;
-using System.Text.RegularExpressions;
-using System.Text;
-using System.Linq;
-using System.Linq.Expressions;
-using IniParser;
-using IniParser.Model;
-using System.Collections.Concurrent;
-using System.Diagnostics;
-
-namespace JoystickProxy
-{
- class Program
- {
- private static int FPS = 30;
- private static int FrameTime;
- private bool Debug = true;
- private static Dictionary SupportedDevices = new Dictionary();
- private static Dictionary InstanceGuidToUsbIdLookup = new Dictionary();
- private static IPAddress host;
- private static int port;
-
- static void Main(string[] args)
- {
- var parser = new FileIniDataParser();
- IniData data = parser.ReadFile("settings.ini");
-
- host = IPAddress.Parse(data["Config"]["Host"]);
- port = Int32.Parse(data["Config"]["Port"]);
- FrameTime = 1000 / Int32.Parse(data["Config"]["FPS"]);
-
- Console.WriteLine("JoystickProxy");
- Console.WriteLine("=============");
- Console.WriteLine("Outgoing destination: " + host + ":" + port);
- Console.WriteLine("Supported Devices:");
-
- foreach(KeyData supportedDevice in data["Devices"])
- {
- if(supportedDevice.KeyName.StartsWith("#"))
- {
- continue;
- }
-
- SupportedDevices.Add(supportedDevice.KeyName, supportedDevice.Value);
- Console.WriteLine(" * " + supportedDevice.Value);
- }
-
- // TODO Validate config and handle errors nicely
- Console.WriteLine("");
- new Program();
- }
-
- private ConcurrentDictionary connectedJoysticks = new ConcurrentDictionary();
-
- private string GuidToUsbID(Guid guid)
- {
- return Regex.Replace(guid.ToString(), @"(^....)(....).*$", "$2:$1");
- }
-
- private string GetUsbId(Joystick joystick)
- {
- return GuidToUsbID(joystick.Information.ProductGuid);
- }
-
- private DirectInput di = new DirectInput();
- private Socket sock;
- private IPEndPoint endPoint;
-
- public Program()
- {
-
-
- try
- {
- sock = new Socket(AddressFamily.InterNetwork, SocketType.Dgram, ProtocolType.Udp);
- endPoint = new IPEndPoint(host, port);
-
- System.Timers.Timer deviceFinderTimer = new System.Timers.Timer(2000);
- deviceFinderTimer.Elapsed += DeviceFinderTimer_Elapsed;
- deviceFinderTimer.Enabled = true;
- ScanJoysticks();
-
- while (true)
- {
- Stopwatch sw = new Stopwatch();
- foreach (Joystick joystick in connectedJoysticks.Values)
- {
- sw.Start();
- try
- {
- joystick.Poll();
- JoystickUpdate[] updates = joystick.GetBufferedData();
-
- if (updates.Length > 0)
- {
- string usbID = GetUsbId(joystick);
- List events = new List();
-
- foreach (var state in updates)
- {
- events.Add(state.Offset + "=" + state.Value);
- }
-
- SendEvent(sock, endPoint, usbID, events);
- }
- }
- catch (SharpDX.SharpDXException)
- {}
-
- }
- sw.Stop();
- int sleepTime = FrameTime - (int)sw.ElapsedMilliseconds;
- if (sleepTime > 0)
- {
- Thread.Sleep(sleepTime);
- }
- }
- }
- catch (Exception e)
- {
- Console.WriteLine("Error: " + e.ToString());
- Console.ReadLine();
- }
-
-
- foreach (Joystick joystick in connectedJoysticks.Values)
- {
- Console.WriteLine("Closing connection to " + joystick.Information.InstanceName);
- joystick.Unacquire();
- }
-
- Console.WriteLine("\nPress any key to close");
- Console.ReadLine();
-
- }
-
- private void SendEvent(Socket sock, IPEndPoint endPoint, Guid instanceGuid, List events)
- {
- SendEvent(sock, endPoint, InstanceGuidToUsbIdLookup[instanceGuid], events);
- }
-
- private void SendEvent(Socket sock, IPEndPoint endPoint, string usbID, List events)
- {
- if (sock == null || endPoint == null)
- return;
-
- string outgoingString = String.Format("{0},{1},{2}", usbID, SupportedDevices[usbID], String.Join(",", events));
- byte[] send_buffer = Encoding.ASCII.GetBytes(outgoingString);
- sock.SendTo(send_buffer, endPoint);
- if (Debug)
- {
- Console.WriteLine(outgoingString);
- }
- }
-
- private void DeviceFinderTimer_Elapsed(object sender, System.Timers.ElapsedEventArgs e)
- {
- ScanJoysticks();
- }
-
- private void ScanJoysticks()
- {
- bool changesMade = false;
- Dictionary foundJoysticks = new Dictionary();
-
- foreach (DeviceInstance device in di.GetDevices())
- {
- string usbId = GuidToUsbID(device.ProductGuid);
-
- //Console.WriteLine("Found DirectInput device " + usbId + ": " + device.InstanceName);
-
- if (SupportedDevices.ContainsKey(usbId))
- {
- try
- {
- InstanceGuidToUsbIdLookup[device.InstanceGuid] = usbId;
- //Console.WriteLine("Registering device " + device.InstanceName+ " " + usbId + " | " + device.InstanceGuid);
- foundJoysticks.Add(device.InstanceGuid, new Joystick(di, device.InstanceGuid));
- } catch(ArgumentException e)
- {
- Console.WriteLine("Failed to register device " + device.InstanceName + " " + usbId + " | " + device.InstanceGuid, e);
- }
- }
- }
-
- // Find removed devices
- foreach(Guid removed in connectedJoysticks.Keys.Except(foundJoysticks.Keys))
- {
- changesMade = true;
- connectedJoysticks[removed].Unacquire();
-
- connectedJoysticks.TryRemove(removed, out Joystick ignored);
- Console.WriteLine(SupportedDevices[InstanceGuidToUsbIdLookup[removed]] + " disconnected");
- List events = new List
- {
- "Connected=0"
- };
- SendEvent(sock, endPoint, removed, events);
- }
-
- // Find added devices
-
- foreach (Guid added in foundJoysticks.Keys.Except(connectedJoysticks.Keys))
- {
- changesMade = true;
- foundJoysticks[added].Properties.BufferSize = 32;
- foundJoysticks[added].Acquire();
-
- if (connectedJoysticks.TryAdd(added, foundJoysticks[added]))
- {
- Console.WriteLine(SupportedDevices[InstanceGuidToUsbIdLookup[added]] + " connected");
- List events = new List
- {
- "Connected=1"
- };
- SendEvent(sock, endPoint, added, events);
- }
- }
-
- if(changesMade)
- {
- Console.WriteLine("Connected devices:");
- foreach(Joystick joystick in connectedJoysticks.Values)
- {
- Console.WriteLine(" * " + joystick.Information.InstanceName + " (" + joystick.Information.InstanceGuid + ")");
- }
- }
- }
- }
-}
diff --git a/JoystickProxy/JoystickProxy/Properties/AssemblyInfo.cs b/JoystickProxy/JoystickProxy/Properties/AssemblyInfo.cs
deleted file mode 100644
index 2060119..0000000
--- a/JoystickProxy/JoystickProxy/Properties/AssemblyInfo.cs
+++ /dev/null
@@ -1,36 +0,0 @@
-using System.Reflection;
-using System.Runtime.CompilerServices;
-using System.Runtime.InteropServices;
-
-// General Information about an assembly is controlled through the following
-// set of attributes. Change these attribute values to modify the information
-// associated with an assembly.
-[assembly: AssemblyTitle("JoystickProxy")]
-[assembly: AssemblyDescription("")]
-[assembly: AssemblyConfiguration("")]
-[assembly: AssemblyCompany("")]
-[assembly: AssemblyProduct("JoystickProxy")]
-[assembly: AssemblyCopyright("Copyright © 2015")]
-[assembly: AssemblyTrademark("")]
-[assembly: AssemblyCulture("")]
-
-// Setting ComVisible to false makes the types in this assembly not visible
-// to COM components. If you need to access a type in this assembly from
-// COM, set the ComVisible attribute to true on that type.
-[assembly: ComVisible(false)]
-
-// The following GUID is for the ID of the typelib if this project is exposed to COM
-[assembly: Guid("e18b3ebb-51b4-4b73-9f13-1998b32fe319")]
-
-// Version information for an assembly consists of the following four values:
-//
-// Major Version
-// Minor Version
-// Build Number
-// Revision
-//
-// You can specify all the values or you can default the Build and Revision Numbers
-// by using the '*' as shown below:
-// [assembly: AssemblyVersion("1.0.*")]
-[assembly: AssemblyVersion("1.0.0.0")]
-[assembly: AssemblyFileVersion("1.0.0.0")]
diff --git a/JoystickProxy/JoystickProxy/packages.config b/JoystickProxy/JoystickProxy/packages.config
deleted file mode 100644
index b20f954..0000000
--- a/JoystickProxy/JoystickProxy/packages.config
+++ /dev/null
@@ -1,12 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/JoystickProxy/JoystickProxy/settings.ini b/JoystickProxy/JoystickProxy/settings.ini
deleted file mode 100644
index a7429f1..0000000
--- a/JoystickProxy/JoystickProxy/settings.ini
+++ /dev/null
@@ -1,24 +0,0 @@
-[Config]
-Host = 127.0.0.1
-Port = 11011
-FPS = 60
-
-[Devices]
-044f:b10a = Thrustmaster T.16000M
-044f:b678 = Thrustmaster T.Flight Rudder Car Mode
-044f:b679 = Thrustmaster T.Flight Rudder
-044f:b106 = Thrustmaster T.Flight Stick X
-044f:0402 = Thrustmaster Warthog Joystick
-044f:0404 = Thrustmaster Warthog Throttle
-06a3:0763 = Saitek Rudder Pedals
-06a3:0764 = Saitek Combat Rudder Pedals
-068e:00f = CH Pro Pedals
-231d:011f = VKB Gunfighter
-046d:c215 = Logitech 3D Pro
-06a3:075c = Saitek X52 HOTAS
-06a3:0762 = Saitek X52 Pro HOTAS
-0738:a215 = Saitek X55 Throttle
-0738:2215 = Saitek X55 Joystick
-06a3:0c2d = Saitek Pro Flight Throttle Quadrant
-06a3:2541 = Saitek X45 HOTAS (2541)
-06a3:053c = Saitek X45 HOTAS (053c)
diff --git a/JoystickProxy/JoystickThrottle.ico b/JoystickProxy/JoystickThrottle.ico
deleted file mode 100644
index 4283156..0000000
Binary files a/JoystickProxy/JoystickThrottle.ico and /dev/null differ
diff --git a/JoystickProxyWin/Joystick Proxy/App.config b/JoystickProxyWin/Joystick Proxy/App.config
index 9b53d9b..921ed0e 100644
--- a/JoystickProxyWin/Joystick Proxy/App.config
+++ b/JoystickProxyWin/Joystick Proxy/App.config
@@ -14,7 +14,7 @@
127.0.0.1
- 8888
+ 11011
34
diff --git a/JoystickProxyWin/Joystick Proxy/Form1.Designer.cs b/JoystickProxyWin/Joystick Proxy/Form1.Designer.cs
index 88b1b45..0cab247 100644
--- a/JoystickProxyWin/Joystick Proxy/Form1.Designer.cs
+++ b/JoystickProxyWin/Joystick Proxy/Form1.Designer.cs
@@ -32,7 +32,10 @@ private void InitializeComponent()
System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle1 = new System.Windows.Forms.DataGridViewCellStyle();
System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(Form1));
this.DevicesDataGridView = new System.Windows.Forms.DataGridView();
- this.DeviceEnabled = new System.Windows.Forms.DataGridViewCheckBoxColumn();
+ this.deviceEnabled = new System.Windows.Forms.DataGridViewCheckBoxColumn();
+ this.nameDataGridViewTextBoxColumn = new System.Windows.Forms.DataGridViewTextBoxColumn();
+ this.uSBIDDataGridViewTextBoxColumn = new System.Windows.Forms.DataGridViewTextBoxColumn();
+ this.ControllerDeviceBindingSource = new System.Windows.Forms.BindingSource(this.components);
this.RefreshDevicesTimer = new System.Windows.Forms.Timer(this.components);
this.DataGridView1 = new System.Windows.Forms.DataGridView();
this.InputName = new System.Windows.Forms.DataGridViewTextBoxColumn();
@@ -45,20 +48,20 @@ private void InitializeComponent()
this.SaveFileDialog = new System.Windows.Forms.SaveFileDialog();
this.LogToFileCheckbox = new System.Windows.Forms.CheckBox();
this.label2 = new System.Windows.Forms.Label();
- this.NameDataGridViewTextBoxColumn = new System.Windows.Forms.DataGridViewTextBoxColumn();
- this.USBIDDataGridViewTextBoxColumn = new System.Windows.Forms.DataGridViewTextBoxColumn();
- this.ControllerDeviceBindingSource = new System.Windows.Forms.BindingSource(this.components);
this.PollingRateInput = new System.Windows.Forms.NumericUpDown();
this.VisualizerHostTextBox = new System.Windows.Forms.TextBox();
+ this.label3 = new System.Windows.Forms.Label();
+ this.PortInput = new System.Windows.Forms.NumericUpDown();
((System.ComponentModel.ISupportInitialize)(this.DevicesDataGridView)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.ControllerDeviceBindingSource)).BeginInit();
((System.ComponentModel.ISupportInitialize)(this.DataGridView1)).BeginInit();
((System.ComponentModel.ISupportInitialize)(this.InputBindingSource)).BeginInit();
((System.ComponentModel.ISupportInitialize)(this.TipJarImage)).BeginInit();
- ((System.ComponentModel.ISupportInitialize)(this.ControllerDeviceBindingSource)).BeginInit();
((System.ComponentModel.ISupportInitialize)(this.PollingRateInput)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.PortInput)).BeginInit();
this.SuspendLayout();
//
- // devicesDataGridView
+ // DevicesDataGridView
//
this.DevicesDataGridView.AllowUserToAddRows = false;
this.DevicesDataGridView.AllowUserToDeleteRows = false;
@@ -71,13 +74,13 @@ private void InitializeComponent()
this.DevicesDataGridView.ColumnHeadersBorderStyle = System.Windows.Forms.DataGridViewHeaderBorderStyle.None;
this.DevicesDataGridView.ColumnHeadersHeightSizeMode = System.Windows.Forms.DataGridViewColumnHeadersHeightSizeMode.AutoSize;
this.DevicesDataGridView.Columns.AddRange(new System.Windows.Forms.DataGridViewColumn[] {
- this.DeviceEnabled,
- this.NameDataGridViewTextBoxColumn,
- this.USBIDDataGridViewTextBoxColumn});
+ this.deviceEnabled,
+ this.nameDataGridViewTextBoxColumn,
+ this.uSBIDDataGridViewTextBoxColumn});
this.DevicesDataGridView.DataSource = this.ControllerDeviceBindingSource;
this.DevicesDataGridView.Location = new System.Drawing.Point(12, 12);
this.DevicesDataGridView.MultiSelect = false;
- this.DevicesDataGridView.Name = "devicesDataGridView";
+ this.DevicesDataGridView.Name = "DevicesDataGridView";
this.DevicesDataGridView.RowHeadersVisible = false;
this.DevicesDataGridView.SelectionMode = System.Windows.Forms.DataGridViewSelectionMode.CellSelect;
this.DevicesDataGridView.Size = new System.Drawing.Size(550, 355);
@@ -88,23 +91,47 @@ private void InitializeComponent()
//
// deviceEnabled
//
- this.DeviceEnabled.AutoSizeMode = System.Windows.Forms.DataGridViewAutoSizeColumnMode.Fill;
- this.DeviceEnabled.DataPropertyName = "Enabled";
- this.DeviceEnabled.FalseValue = "false";
- this.DeviceEnabled.FillWeight = 10F;
- this.DeviceEnabled.HeaderText = "Enabled";
- this.DeviceEnabled.IndeterminateValue = "";
- this.DeviceEnabled.Name = "deviceEnabled";
- this.DeviceEnabled.ToolTipText = "Enable device input polling";
- this.DeviceEnabled.TrueValue = "true";
+ this.deviceEnabled.AutoSizeMode = System.Windows.Forms.DataGridViewAutoSizeColumnMode.Fill;
+ this.deviceEnabled.DataPropertyName = "Enabled";
+ this.deviceEnabled.FalseValue = "false";
+ this.deviceEnabled.FillWeight = 10F;
+ this.deviceEnabled.HeaderText = "Enabled";
+ this.deviceEnabled.IndeterminateValue = "";
+ this.deviceEnabled.Name = "deviceEnabled";
+ this.deviceEnabled.ToolTipText = "Enable device input polling";
+ this.deviceEnabled.TrueValue = "true";
+ //
+ // nameDataGridViewTextBoxColumn
+ //
+ this.nameDataGridViewTextBoxColumn.AutoSizeMode = System.Windows.Forms.DataGridViewAutoSizeColumnMode.Fill;
+ this.nameDataGridViewTextBoxColumn.DataPropertyName = "Name";
+ this.nameDataGridViewTextBoxColumn.FillWeight = 70F;
+ this.nameDataGridViewTextBoxColumn.HeaderText = "Name";
+ this.nameDataGridViewTextBoxColumn.Name = "nameDataGridViewTextBoxColumn";
+ this.nameDataGridViewTextBoxColumn.ReadOnly = true;
+ //
+ // uSBIDDataGridViewTextBoxColumn
+ //
+ this.uSBIDDataGridViewTextBoxColumn.AutoSizeMode = System.Windows.Forms.DataGridViewAutoSizeColumnMode.Fill;
+ this.uSBIDDataGridViewTextBoxColumn.DataPropertyName = "UsbId";
+ dataGridViewCellStyle1.Font = new System.Drawing.Font("Consolas", 9.75F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
+ this.uSBIDDataGridViewTextBoxColumn.DefaultCellStyle = dataGridViewCellStyle1;
+ this.uSBIDDataGridViewTextBoxColumn.FillWeight = 20F;
+ this.uSBIDDataGridViewTextBoxColumn.HeaderText = "USB ID";
+ this.uSBIDDataGridViewTextBoxColumn.Name = "uSBIDDataGridViewTextBoxColumn";
+ this.uSBIDDataGridViewTextBoxColumn.ReadOnly = true;
//
- // refreshDevicesTimer
+ // ControllerDeviceBindingSource
+ //
+ this.ControllerDeviceBindingSource.DataSource = typeof(Joystick_Proxy.ControllerDevice);
+ //
+ // RefreshDevicesTimer
//
this.RefreshDevicesTimer.Enabled = true;
this.RefreshDevicesTimer.Interval = 2000;
this.RefreshDevicesTimer.Tick += new System.EventHandler(this.RefreshDevicesTimer_Tick);
//
- // dataGridView1
+ // DataGridView1
//
this.DataGridView1.AllowUserToAddRows = false;
this.DataGridView1.AllowUserToDeleteRows = false;
@@ -117,7 +144,7 @@ private void InitializeComponent()
this.InputValue});
this.DataGridView1.DataSource = this.InputBindingSource;
this.DataGridView1.Location = new System.Drawing.Point(568, 12);
- this.DataGridView1.Name = "dataGridView1";
+ this.DataGridView1.Name = "DataGridView1";
this.DataGridView1.RowHeadersVisible = false;
this.DataGridView1.Size = new System.Drawing.Size(302, 355);
this.DataGridView1.TabIndex = 2;
@@ -138,7 +165,7 @@ private void InitializeComponent()
this.InputValue.HeaderText = "Value";
this.InputValue.Name = "InputValue";
//
- // readInputTimer
+ // ReadInputTimer
//
this.ReadInputTimer.Interval = global::Joystick_Proxy.Properties.Settings.Default.PollingRate;
this.ReadInputTimer.Tick += new System.EventHandler(this.ReadInputTimer_Tick);
@@ -148,7 +175,7 @@ private void InitializeComponent()
this.TipJarImage.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right)));
this.TipJarImage.Cursor = System.Windows.Forms.Cursors.Hand;
this.TipJarImage.Image = global::Joystick_Proxy.Properties.Resources.tipjar;
- this.TipJarImage.Location = new System.Drawing.Point(778, 373);
+ this.TipJarImage.Location = new System.Drawing.Point(778, 377);
this.TipJarImage.Name = "TipJarImage";
this.TipJarImage.Size = new System.Drawing.Size(92, 20);
this.TipJarImage.SizeMode = System.Windows.Forms.PictureBoxSizeMode.AutoSize;
@@ -172,22 +199,22 @@ private void InitializeComponent()
//
this.label1.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right)));
this.label1.AutoSize = true;
- this.label1.Location = new System.Drawing.Point(572, 376);
+ this.label1.Location = new System.Drawing.Point(455, 380);
this.label1.Name = "label1";
this.label1.Size = new System.Drawing.Size(79, 13);
this.label1.TabIndex = 6;
this.label1.Text = "Visualizer Host:";
//
- // saveFileDialog
+ // SaveFileDialog
//
this.SaveFileDialog.DefaultExt = "log";
//
- // logToFileCheckbox
+ // LogToFileCheckbox
//
this.LogToFileCheckbox.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left)));
this.LogToFileCheckbox.AutoSize = true;
this.LogToFileCheckbox.Location = new System.Drawing.Point(125, 379);
- this.LogToFileCheckbox.Name = "logToFileCheckbox";
+ this.LogToFileCheckbox.Name = "LogToFileCheckbox";
this.LogToFileCheckbox.Size = new System.Drawing.Size(72, 17);
this.LogToFileCheckbox.TabIndex = 7;
this.LogToFileCheckbox.Text = "Log to file";
@@ -198,70 +225,84 @@ private void InitializeComponent()
//
this.label2.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right)));
this.label2.AutoSize = true;
- this.label2.Location = new System.Drawing.Point(440, 376);
+ this.label2.Location = new System.Drawing.Point(323, 380);
this.label2.Name = "label2";
this.label2.Size = new System.Drawing.Size(67, 13);
this.label2.TabIndex = 8;
this.label2.Text = "Polling Rate:";
this.label2.TextAlign = System.Drawing.ContentAlignment.TopRight;
//
- // nameDataGridViewTextBoxColumn
- //
- this.NameDataGridViewTextBoxColumn.AutoSizeMode = System.Windows.Forms.DataGridViewAutoSizeColumnMode.Fill;
- this.NameDataGridViewTextBoxColumn.DataPropertyName = "Name";
- this.NameDataGridViewTextBoxColumn.FillWeight = 70F;
- this.NameDataGridViewTextBoxColumn.HeaderText = "Name";
- this.NameDataGridViewTextBoxColumn.Name = "nameDataGridViewTextBoxColumn";
- this.NameDataGridViewTextBoxColumn.ReadOnly = true;
- //
- // uSBIDDataGridViewTextBoxColumn
- //
- this.USBIDDataGridViewTextBoxColumn.AutoSizeMode = System.Windows.Forms.DataGridViewAutoSizeColumnMode.Fill;
- this.USBIDDataGridViewTextBoxColumn.DataPropertyName = "UsbId";
- dataGridViewCellStyle1.Font = new System.Drawing.Font("Consolas", 9.75F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
- this.USBIDDataGridViewTextBoxColumn.DefaultCellStyle = dataGridViewCellStyle1;
- this.USBIDDataGridViewTextBoxColumn.FillWeight = 20F;
- this.USBIDDataGridViewTextBoxColumn.HeaderText = "USB ID";
- this.USBIDDataGridViewTextBoxColumn.Name = "uSBIDDataGridViewTextBoxColumn";
- this.USBIDDataGridViewTextBoxColumn.ReadOnly = true;
- //
- // controllerDeviceBindingSource
- //
- this.ControllerDeviceBindingSource.DataSource = typeof(Joystick_Proxy.ControllerDevice);
- //
- // pollingRateInput
+ // PollingRateInput
//
this.PollingRateInput.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right)));
- this.PollingRateInput.Location = new System.Drawing.Point(513, 373);
+ this.PollingRateInput.Location = new System.Drawing.Point(396, 377);
this.PollingRateInput.Minimum = new decimal(new int[] {
12,
0,
0,
0});
- this.PollingRateInput.Name = "pollingRateInput";
+ this.PollingRateInput.Name = "PollingRateInput";
this.PollingRateInput.Size = new System.Drawing.Size(53, 20);
this.PollingRateInput.TabIndex = 9;
- this.PollingRateInput.Value = (decimal)global::Joystick_Proxy.Properties.Settings.Default.PollingRate;
+ this.PollingRateInput.Value = new decimal(new int[] {
+ 34,
+ 0,
+ 0,
+ 0});
this.PollingRateInput.ValueChanged += new System.EventHandler(this.PollingRateInput_ValueChanged);
this.PollingRateInput.KeyDown += new System.Windows.Forms.KeyEventHandler(this.PollingRateInput_KeyDown);
this.PollingRateInput.KeyPress += new System.Windows.Forms.KeyPressEventHandler(this.PollingRateInput_KeyPress);
//
- // visualizerHostTextBox
+ // VisualizerHostTextBox
//
this.VisualizerHostTextBox.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right)));
this.VisualizerHostTextBox.DataBindings.Add(new System.Windows.Forms.Binding("Text", global::Joystick_Proxy.Properties.Settings.Default, "Host", true, System.Windows.Forms.DataSourceUpdateMode.OnPropertyChanged));
- this.VisualizerHostTextBox.Location = new System.Drawing.Point(657, 373);
- this.VisualizerHostTextBox.Name = "visualizerHostTextBox";
+ this.VisualizerHostTextBox.Location = new System.Drawing.Point(540, 377);
+ this.VisualizerHostTextBox.Name = "VisualizerHostTextBox";
this.VisualizerHostTextBox.Size = new System.Drawing.Size(115, 20);
this.VisualizerHostTextBox.TabIndex = 5;
this.VisualizerHostTextBox.Text = global::Joystick_Proxy.Properties.Settings.Default.Host;
this.VisualizerHostTextBox.KeyPress += new System.Windows.Forms.KeyPressEventHandler(this.VisualizerHostTextBox_KeyPress);
this.VisualizerHostTextBox.Leave += new System.EventHandler(this.VisualizerHostTextBox_Leave);
//
+ // label3
+ //
+ this.label3.AutoSize = true;
+ this.label3.Location = new System.Drawing.Point(661, 379);
+ this.label3.Name = "label3";
+ this.label3.Size = new System.Drawing.Size(29, 13);
+ this.label3.TabIndex = 10;
+ this.label3.Text = "Port:";
+ //
+ // PortInput
+ //
+ this.PortInput.Location = new System.Drawing.Point(696, 377);
+ this.PortInput.Maximum = new decimal(new int[] {
+ 65535,
+ 0,
+ 0,
+ 0});
+ this.PortInput.Minimum = new decimal(new int[] {
+ 1000,
+ 0,
+ 0,
+ 0});
+ this.PortInput.Name = "PortInput";
+ this.PortInput.Size = new System.Drawing.Size(65, 20);
+ this.PortInput.TabIndex = 11;
+ this.PortInput.Value = new decimal(new int[] {
+ 1000,
+ 0,
+ 0,
+ 0});
+ this.PortInput.ValueChanged += new System.EventHandler(this.PortInput_ValueChanged);
+ //
// Form1
//
this.AutoSizeMode = System.Windows.Forms.AutoSizeMode.GrowAndShrink;
this.ClientSize = new System.Drawing.Size(882, 405);
+ this.Controls.Add(this.PortInput);
+ this.Controls.Add(this.label3);
this.Controls.Add(this.PollingRateInput);
this.Controls.Add(this.label2);
this.Controls.Add(this.LogToFileCheckbox);
@@ -277,11 +318,12 @@ private void InitializeComponent()
this.SizeGripStyle = System.Windows.Forms.SizeGripStyle.Show;
this.Text = "Joystick Proxy";
((System.ComponentModel.ISupportInitialize)(this.DevicesDataGridView)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.ControllerDeviceBindingSource)).EndInit();
((System.ComponentModel.ISupportInitialize)(this.DataGridView1)).EndInit();
((System.ComponentModel.ISupportInitialize)(this.InputBindingSource)).EndInit();
((System.ComponentModel.ISupportInitialize)(this.TipJarImage)).EndInit();
- ((System.ComponentModel.ISupportInitialize)(this.ControllerDeviceBindingSource)).EndInit();
((System.ComponentModel.ISupportInitialize)(this.PollingRateInput)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.PortInput)).EndInit();
this.ResumeLayout(false);
this.PerformLayout();
@@ -308,6 +350,11 @@ private void InitializeComponent()
private System.Windows.Forms.CheckBox LogToFileCheckbox;
private System.Windows.Forms.Label label2;
private System.Windows.Forms.NumericUpDown PollingRateInput;
+ private System.Windows.Forms.DataGridViewCheckBoxColumn deviceEnabled;
+ private System.Windows.Forms.DataGridViewTextBoxColumn nameDataGridViewTextBoxColumn;
+ private System.Windows.Forms.DataGridViewTextBoxColumn uSBIDDataGridViewTextBoxColumn;
+ private System.Windows.Forms.Label label3;
+ private System.Windows.Forms.NumericUpDown PortInput;
}
}
diff --git a/JoystickProxyWin/Joystick Proxy/Form1.cs b/JoystickProxyWin/Joystick Proxy/Form1.cs
index 1ed18a0..1693a93 100644
--- a/JoystickProxyWin/Joystick Proxy/Form1.cs
+++ b/JoystickProxyWin/Joystick Proxy/Form1.cs
@@ -48,6 +48,7 @@ public Form1()
InputBindingSource.DataSource = _input;
VisualizerHostTextBox.Text = Properties.Settings.Default.Host;
+ PortInput.Value = Properties.Settings.Default.Port;
ScanJoysticks();
}
@@ -184,7 +185,13 @@ private void SendEvent(ControllerDevice device, string e)
return;
bool supportedDevice = SupportedDevices.ContainsKey(device.UsbId);
- string outgoingString = String.Format("{0},{1},{2}", device.UsbId, device.Name, e);
+ string id = device.UsbId;
+ if (id == "046d:c212")
+ {
+ id = "046d:c215";
+ }
+
+ string outgoingString = String.Format("{0},{1},{2}", id, device.Name, e);
if (supportedDevice)
{
@@ -375,5 +382,13 @@ private void PollingRateInput_KeyDown(object sender, KeyEventArgs e)
ActiveControl = null;
}
}
+
+ private void PortInput_ValueChanged(object sender, EventArgs e)
+ {
+ var port = Convert.ToInt32(PortInput.Value);
+ Properties.Settings.Default.Port = port;
+ Properties.Settings.Default.Save();
+ UpdateEndpoint(VisualizerHostTextBox.Text, port);
+ }
}
}
diff --git a/JoystickProxyWin/Joystick Proxy/Form1.resx b/JoystickProxyWin/Joystick Proxy/Form1.resx
index 49e8e0d..041bc17 100644
--- a/JoystickProxyWin/Joystick Proxy/Form1.resx
+++ b/JoystickProxyWin/Joystick Proxy/Form1.resx
@@ -117,29 +117,26 @@
System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
-
- True
-
-
- 337, 17
-
-
+
17, 17
+
+ 238, 17
+
True
True
-
- 560, 17
+
+ 403, 17
-
- 719, 17
+
+ 562, 17
-
- 854, 17
+
+ 701, 17
diff --git a/JoystickProxyWin/Joystick Proxy/Properties/Settings.Designer.cs b/JoystickProxyWin/Joystick Proxy/Properties/Settings.Designer.cs
index db9e972..0382b69 100644
--- a/JoystickProxyWin/Joystick Proxy/Properties/Settings.Designer.cs
+++ b/JoystickProxyWin/Joystick Proxy/Properties/Settings.Designer.cs
@@ -12,7 +12,7 @@ namespace Joystick_Proxy.Properties {
[global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
- [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "15.6.0.0")]
+ [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "16.2.0.0")]
internal sealed partial class Settings : global::System.Configuration.ApplicationSettingsBase {
private static Settings defaultInstance = ((Settings)(global::System.Configuration.ApplicationSettingsBase.Synchronized(new Settings())));
@@ -37,7 +37,7 @@ public string Host {
[global::System.Configuration.UserScopedSettingAttribute()]
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
- [global::System.Configuration.DefaultSettingValueAttribute("8888")]
+ [global::System.Configuration.DefaultSettingValueAttribute("11011")]
public int Port {
get {
return ((int)(this["Port"]));
diff --git a/JoystickProxyWin/Joystick Proxy/Properties/Settings.settings b/JoystickProxyWin/Joystick Proxy/Properties/Settings.settings
index bfda6ef..9685cbf 100644
--- a/JoystickProxyWin/Joystick Proxy/Properties/Settings.settings
+++ b/JoystickProxyWin/Joystick Proxy/Properties/Settings.settings
@@ -6,7 +6,7 @@
127.0.0.1
- 8888
+ 11011
34
diff --git a/JoystickProxyWin/Joystick Proxy/ThrustmasterWarthogJoystick.yaml b/JoystickProxyWin/Joystick Proxy/ThrustmasterWarthogJoystick.yaml
new file mode 100644
index 0000000..2cca63d
--- /dev/null
+++ b/JoystickProxyWin/Joystick Proxy/ThrustmasterWarthogJoystick.yaml
@@ -0,0 +1,25 @@
+name: "My Custom Stick" # name of the mapping configuration
+
+usb_id: "1234:4567" # (optional) automatically apply to devices with this usb id
+
+model: "tm_warthog_joystick" # model name, used in Visualizer to spawn the requested model
+ # the model has a set of axis and buttons available for configuration
+
+axis:
+ x: "X" # generic name, followed by raw device name in quotes
+ y: "-Y" # prefix axis with - to invert
+ rotation: "Z"
+ throttle: "RotationZ"
+
+buttons:
+ trigger: "Buttons0"
+ pickle: "Buttons5"
+
+hats:
+ hat1: # 4 or 8 way hats, raw values represented as buttons
+ - "Buttons10" # up
+ - "Buttons11" # right
+ - "Buttons12" # down
+ - "Buttons13" # left
+ hat2: # Pov hat, raw values are -1 for nothing and (angle * 100) for the 8 directions
+ pov: "PointOfViewControllers0"
diff --git a/JoystickProxyWin/Joystick Proxy/settings.ini b/JoystickProxyWin/Joystick Proxy/settings.ini
index 2c2cda5..9cdea0e 100644
--- a/JoystickProxyWin/Joystick Proxy/settings.ini
+++ b/JoystickProxyWin/Joystick Proxy/settings.ini
@@ -12,6 +12,7 @@
068e:c0f2 = CH Pro Pedals
068e:00f2 = CH Pro Pedals
231d:011f = VKB Gunfighter
+046d:c212 = Logitech Extreme 3D Pro
046d:c215 = Logitech 3D Pro
16d0:0a38 = MFG Crosswind
06a3:075c = Saitek X52 HOTAS
@@ -27,3 +28,4 @@
03eb:2043 = Virpil Mongoos T-50
03ef:2004 = VPC-Star-Citizen-L
03ec:2005 = VPC-Star-Citizen-R
+044f:b68f = Thrustmaster Pendular Rudder
diff --git a/JoystickVisualizer/.vscode/settings.json b/JoystickVisualizer/.vscode/settings.json
new file mode 100644
index 0000000..1060b04
--- /dev/null
+++ b/JoystickVisualizer/.vscode/settings.json
@@ -0,0 +1,56 @@
+{
+ "files.exclude":
+ {
+ "**/.DS_Store":true,
+ "**/.git":true,
+ "**/.gitignore":true,
+ "**/.gitmodules":true,
+ "**/*.booproj":true,
+ "**/*.pidb":true,
+ "**/*.suo":true,
+ "**/*.user":true,
+ "**/*.userprefs":true,
+ "**/*.unityproj":true,
+ "**/*.dll":true,
+ "**/*.exe":true,
+ "**/*.pdf":true,
+ "**/*.mid":true,
+ "**/*.midi":true,
+ "**/*.wav":true,
+ "**/*.gif":true,
+ "**/*.ico":true,
+ "**/*.jpg":true,
+ "**/*.jpeg":true,
+ "**/*.png":true,
+ "**/*.psd":true,
+ "**/*.tga":true,
+ "**/*.tif":true,
+ "**/*.tiff":true,
+ "**/*.3ds":true,
+ "**/*.3DS":true,
+ "**/*.fbx":true,
+ "**/*.FBX":true,
+ "**/*.lxo":true,
+ "**/*.LXO":true,
+ "**/*.ma":true,
+ "**/*.MA":true,
+ "**/*.obj":true,
+ "**/*.OBJ":true,
+ "**/*.asset":true,
+ "**/*.cubemap":true,
+ "**/*.flare":true,
+ "**/*.mat":true,
+ "**/*.meta":true,
+ "**/*.prefab":true,
+ "**/*.unity":true,
+ "build/":true,
+ "Build/":true,
+ "Library/":true,
+ "library/":true,
+ "obj/":true,
+ "Obj/":true,
+ "ProjectSettings/":true,
+ "temp/":true,
+ "Temp/":true
+ }
+}
\ No newline at end of file
diff --git a/JoystickVisualizer/Assets/Device Models/Thrustmaster Warthog Joystick.prefab.meta b/JoystickVisualizer/Assets/Device Models/Thrustmaster Warthog Joystick.prefab.meta
deleted file mode 100644
index 158d3f2..0000000
--- a/JoystickVisualizer/Assets/Device Models/Thrustmaster Warthog Joystick.prefab.meta
+++ /dev/null
@@ -1,10 +0,0 @@
-fileFormatVersion: 2
-guid: f5931b5d4e7843246a5d933a74e1af3b
-timeCreated: 1522435869
-licenseType: Free
-NativeFormatImporter:
- externalObjects: {}
- mainObjectFileID: 100100000
- userData:
- assetBundleName:
- assetBundleVariant:
diff --git a/JoystickVisualizer/Assets/Devices.meta b/JoystickVisualizer/Assets/Devices.meta
index 310ec64..df01a82 100644
--- a/JoystickVisualizer/Assets/Devices.meta
+++ b/JoystickVisualizer/Assets/Devices.meta
@@ -1,9 +1,8 @@
fileFormatVersion: 2
-guid: da151936bcd663f4183cbabf84c9bc7e
+guid: 925b62ab4e56d1141a88e20830665235
folderAsset: yes
-timeCreated: 1509547912
-licenseType: Free
DefaultImporter:
+ externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:
diff --git a/JoystickVisualizer/Assets/Devices/CH Pro Pedals.prefab b/JoystickVisualizer/Assets/Devices/CH Pro Pedals.prefab
new file mode 100644
index 0000000..5b98fd3
Binary files /dev/null and b/JoystickVisualizer/Assets/Devices/CH Pro Pedals.prefab differ
diff --git a/JoystickVisualizer/Assets/UnityHDRI/License.rtf.meta b/JoystickVisualizer/Assets/Devices/CH Pro Pedals.prefab.meta
similarity index 50%
rename from JoystickVisualizer/Assets/UnityHDRI/License.rtf.meta
rename to JoystickVisualizer/Assets/Devices/CH Pro Pedals.prefab.meta
index 69efb6c..f0035d1 100644
--- a/JoystickVisualizer/Assets/UnityHDRI/License.rtf.meta
+++ b/JoystickVisualizer/Assets/Devices/CH Pro Pedals.prefab.meta
@@ -1,8 +1,6 @@
fileFormatVersion: 2
-guid: c585f3dbce534e8499c2b7218ba469ec
-timeCreated: 1510079443
-licenseType: Free
-DefaultImporter:
+guid: ef6c38aa3a5b2714b85b704b178e5024
+PrefabImporter:
externalObjects: {}
userData:
assetBundleName:
diff --git a/JoystickVisualizer/Assets/Devices/HOTAS Warthog/Textures/Metal_Aluminum_Anodized.jpg b/JoystickVisualizer/Assets/Devices/HOTAS Warthog/Textures/Metal_Aluminum_Anodized.jpg
deleted file mode 100644
index 8956fcf..0000000
Binary files a/JoystickVisualizer/Assets/Devices/HOTAS Warthog/Textures/Metal_Aluminum_Anodized.jpg and /dev/null differ
diff --git a/JoystickVisualizer/Assets/Devices/HOTAS Warthog/Textures/warthog-up-tex.jpg b/JoystickVisualizer/Assets/Devices/HOTAS Warthog/Textures/warthog-up-tex.jpg
deleted file mode 100644
index 1b8f768..0000000
Binary files a/JoystickVisualizer/Assets/Devices/HOTAS Warthog/Textures/warthog-up-tex.jpg and /dev/null differ
diff --git a/JoystickVisualizer/Assets/Devices/MFG Crosswind.prefab b/JoystickVisualizer/Assets/Devices/MFG Crosswind.prefab
new file mode 100644
index 0000000..aaa191e
Binary files /dev/null and b/JoystickVisualizer/Assets/Devices/MFG Crosswind.prefab differ
diff --git a/JoystickVisualizer/Assets/TextMesh Pro/Editor Resources/TMPro_LightSkin.guiskin.meta b/JoystickVisualizer/Assets/Devices/MFG Crosswind.prefab.meta
similarity index 50%
rename from JoystickVisualizer/Assets/TextMesh Pro/Editor Resources/TMPro_LightSkin.guiskin.meta
rename to JoystickVisualizer/Assets/Devices/MFG Crosswind.prefab.meta
index 601668b..503762d 100644
--- a/JoystickVisualizer/Assets/TextMesh Pro/Editor Resources/TMPro_LightSkin.guiskin.meta
+++ b/JoystickVisualizer/Assets/Devices/MFG Crosswind.prefab.meta
@@ -1,6 +1,7 @@
fileFormatVersion: 2
-guid: 6c695beab55cb6448ad18f8bf064c2e1
-NativeFormatImporter:
+guid: d951369d538a4c042b15be29c20e0545
+PrefabImporter:
+ externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:
diff --git a/JoystickVisualizer/Assets/Devices/Saitek Combat Rudder Pedals.prefab b/JoystickVisualizer/Assets/Devices/Saitek Combat Rudder Pedals.prefab
new file mode 100644
index 0000000..6b40783
Binary files /dev/null and b/JoystickVisualizer/Assets/Devices/Saitek Combat Rudder Pedals.prefab differ
diff --git a/JoystickVisualizer/Assets/TextMesh Pro/Examples & Extras/Materials/Ground - Logo Scene.mat.meta b/JoystickVisualizer/Assets/Devices/Saitek Combat Rudder Pedals.prefab.meta
similarity index 50%
rename from JoystickVisualizer/Assets/TextMesh Pro/Examples & Extras/Materials/Ground - Logo Scene.mat.meta
rename to JoystickVisualizer/Assets/Devices/Saitek Combat Rudder Pedals.prefab.meta
index 9942503..cc2322a 100644
--- a/JoystickVisualizer/Assets/TextMesh Pro/Examples & Extras/Materials/Ground - Logo Scene.mat.meta
+++ b/JoystickVisualizer/Assets/Devices/Saitek Combat Rudder Pedals.prefab.meta
@@ -1,6 +1,7 @@
fileFormatVersion: 2
-guid: 504ae362e57fc464b847f1e9fd0e4035
-NativeFormatImporter:
+guid: b223e0fae2a25a147aee5de0dd6a0381
+PrefabImporter:
+ externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:
diff --git a/JoystickVisualizer/Assets/Devices/Saitek Pro Flight Throttle Quadrant.prefab b/JoystickVisualizer/Assets/Devices/Saitek Pro Flight Throttle Quadrant.prefab
new file mode 100644
index 0000000..4644074
Binary files /dev/null and b/JoystickVisualizer/Assets/Devices/Saitek Pro Flight Throttle Quadrant.prefab differ
diff --git a/JoystickVisualizer/Assets/TextMesh Pro/Editor Resources/TMPro_DarkSkin.guiskin.meta b/JoystickVisualizer/Assets/Devices/Saitek Pro Flight Throttle Quadrant.prefab.meta
similarity index 50%
rename from JoystickVisualizer/Assets/TextMesh Pro/Editor Resources/TMPro_DarkSkin.guiskin.meta
rename to JoystickVisualizer/Assets/Devices/Saitek Pro Flight Throttle Quadrant.prefab.meta
index 24f596b..3b582b6 100644
--- a/JoystickVisualizer/Assets/TextMesh Pro/Editor Resources/TMPro_DarkSkin.guiskin.meta
+++ b/JoystickVisualizer/Assets/Devices/Saitek Pro Flight Throttle Quadrant.prefab.meta
@@ -1,6 +1,7 @@
fileFormatVersion: 2
-guid: eea6ec55e77d406479dac17d76595b27
-NativeFormatImporter:
+guid: 2cc4aeac3ec601d449ea072003d33a30
+PrefabImporter:
+ externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:
diff --git a/JoystickVisualizer/Assets/Devices/Saitek Rudder Pedals.prefab b/JoystickVisualizer/Assets/Devices/Saitek Rudder Pedals.prefab
new file mode 100644
index 0000000..619ff62
Binary files /dev/null and b/JoystickVisualizer/Assets/Devices/Saitek Rudder Pedals.prefab differ
diff --git a/JoystickVisualizer/Assets/Devices/Saitek Rudder Pedals.prefab.meta b/JoystickVisualizer/Assets/Devices/Saitek Rudder Pedals.prefab.meta
new file mode 100644
index 0000000..c59318e
--- /dev/null
+++ b/JoystickVisualizer/Assets/Devices/Saitek Rudder Pedals.prefab.meta
@@ -0,0 +1,7 @@
+fileFormatVersion: 2
+guid: da28047a2a122d04ebc9f0e9e693f695
+PrefabImporter:
+ externalObjects: {}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/JoystickVisualizer/Assets/Devices/Saitek X52 Throttle.prefab b/JoystickVisualizer/Assets/Devices/Saitek X52 Throttle.prefab
new file mode 100644
index 0000000..b8d1126
Binary files /dev/null and b/JoystickVisualizer/Assets/Devices/Saitek X52 Throttle.prefab differ
diff --git a/JoystickVisualizer/Assets/Devices/Saitek X52 Throttle.prefab.meta b/JoystickVisualizer/Assets/Devices/Saitek X52 Throttle.prefab.meta
new file mode 100644
index 0000000..f8285ee
--- /dev/null
+++ b/JoystickVisualizer/Assets/Devices/Saitek X52 Throttle.prefab.meta
@@ -0,0 +1,7 @@
+fileFormatVersion: 2
+guid: 2e9e363c0e1aec74b90a0c27e72e699c
+PrefabImporter:
+ externalObjects: {}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/JoystickVisualizer/Assets/Devices/Saitek X55 Throttle.prefab b/JoystickVisualizer/Assets/Devices/Saitek X55 Throttle.prefab
new file mode 100644
index 0000000..54c00d0
Binary files /dev/null and b/JoystickVisualizer/Assets/Devices/Saitek X55 Throttle.prefab differ
diff --git a/JoystickVisualizer/Assets/Devices/Saitek X55 Throttle.prefab.meta b/JoystickVisualizer/Assets/Devices/Saitek X55 Throttle.prefab.meta
new file mode 100644
index 0000000..dcfdf83
--- /dev/null
+++ b/JoystickVisualizer/Assets/Devices/Saitek X55 Throttle.prefab.meta
@@ -0,0 +1,7 @@
+fileFormatVersion: 2
+guid: b1f06620055c8bf4ebbab1f5977c0279
+PrefabImporter:
+ externalObjects: {}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/JoystickVisualizer/Assets/Devices/T-160000M.prefab b/JoystickVisualizer/Assets/Devices/T-160000M.prefab
new file mode 100644
index 0000000..af9bb1d
Binary files /dev/null and b/JoystickVisualizer/Assets/Devices/T-160000M.prefab differ
diff --git a/JoystickVisualizer/Assets/Devices/T-160000M.prefab.meta b/JoystickVisualizer/Assets/Devices/T-160000M.prefab.meta
new file mode 100644
index 0000000..bb26561
--- /dev/null
+++ b/JoystickVisualizer/Assets/Devices/T-160000M.prefab.meta
@@ -0,0 +1,7 @@
+fileFormatVersion: 2
+guid: d57ad5d9327668f4e9cca5e62dbeaddf
+PrefabImporter:
+ externalObjects: {}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/JoystickVisualizer/Assets/Devices/Thrustmaster T.Flight Rudder.prefab b/JoystickVisualizer/Assets/Devices/Thrustmaster T.Flight Rudder.prefab
new file mode 100644
index 0000000..5b2a0ee
Binary files /dev/null and b/JoystickVisualizer/Assets/Devices/Thrustmaster T.Flight Rudder.prefab differ
diff --git a/JoystickVisualizer/Assets/Devices/Thrustmaster T.Flight Rudder.prefab.meta b/JoystickVisualizer/Assets/Devices/Thrustmaster T.Flight Rudder.prefab.meta
new file mode 100644
index 0000000..2df88ee
--- /dev/null
+++ b/JoystickVisualizer/Assets/Devices/Thrustmaster T.Flight Rudder.prefab.meta
@@ -0,0 +1,7 @@
+fileFormatVersion: 2
+guid: e87de83c3a0e1f843902aaeffb94fbe6
+PrefabImporter:
+ externalObjects: {}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/JoystickVisualizer/Assets/Devices/Thrustmaster T.Flight Stick X.prefab b/JoystickVisualizer/Assets/Devices/Thrustmaster T.Flight Stick X.prefab
new file mode 100644
index 0000000..1e83bc6
Binary files /dev/null and b/JoystickVisualizer/Assets/Devices/Thrustmaster T.Flight Stick X.prefab differ
diff --git a/JoystickVisualizer/Assets/Devices/Thrustmaster T.Flight Stick X.prefab.meta b/JoystickVisualizer/Assets/Devices/Thrustmaster T.Flight Stick X.prefab.meta
new file mode 100644
index 0000000..69cc156
--- /dev/null
+++ b/JoystickVisualizer/Assets/Devices/Thrustmaster T.Flight Stick X.prefab.meta
@@ -0,0 +1,7 @@
+fileFormatVersion: 2
+guid: 409f26366d29fce4db3e5bcd335fc79d
+PrefabImporter:
+ externalObjects: {}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/JoystickVisualizer/Assets/Devices/Thrustmaster Warthog Joystick.meta b/JoystickVisualizer/Assets/Devices/Thrustmaster Warthog Joystick.meta
index 0b940a4..739a01e 100644
--- a/JoystickVisualizer/Assets/Devices/Thrustmaster Warthog Joystick.meta
+++ b/JoystickVisualizer/Assets/Devices/Thrustmaster Warthog Joystick.meta
@@ -1,8 +1,6 @@
fileFormatVersion: 2
-guid: 23ae40d4b7dcbd3418c6e4ae0e90666e
+guid: e97e62be04f78f142a40ac5d6969854a
folderAsset: yes
-timeCreated: 1521375811
-licenseType: Free
DefaultImporter:
externalObjects: {}
userData:
diff --git a/JoystickVisualizer/Assets/Devices/Thrustmaster Warthog Joystick/Thrustmaster Warthog Joystick.prefab b/JoystickVisualizer/Assets/Devices/Thrustmaster Warthog Joystick/Thrustmaster Warthog Joystick.prefab
new file mode 100644
index 0000000..d119143
Binary files /dev/null and b/JoystickVisualizer/Assets/Devices/Thrustmaster Warthog Joystick/Thrustmaster Warthog Joystick.prefab differ
diff --git a/JoystickVisualizer/Assets/Devices/Thrustmaster Warthog Joystick/Thrustmaster Warthog Joystick.prefab.meta b/JoystickVisualizer/Assets/Devices/Thrustmaster Warthog Joystick/Thrustmaster Warthog Joystick.prefab.meta
new file mode 100644
index 0000000..af8f527
--- /dev/null
+++ b/JoystickVisualizer/Assets/Devices/Thrustmaster Warthog Joystick/Thrustmaster Warthog Joystick.prefab.meta
@@ -0,0 +1,7 @@
+fileFormatVersion: 2
+guid: 21169271929fc6145b28a8b8efd89be4
+PrefabImporter:
+ externalObjects: {}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/JoystickVisualizer/Assets/Devices/Thrustmaster Warthog Joystick/ThrustmasterWarthogJoystick.cs b/JoystickVisualizer/Assets/Devices/Thrustmaster Warthog Joystick/ThrustmasterWarthogJoystick.cs
new file mode 100644
index 0000000..e7c35bc
--- /dev/null
+++ b/JoystickVisualizer/Assets/Devices/Thrustmaster Warthog Joystick/ThrustmasterWarthogJoystick.cs
@@ -0,0 +1,133 @@
+using Helpers;
+using UnityEngine;
+
+public class ThrustmasterWarthogJoystick: MonoBehaviour, IDeviceEventMessage
+{
+ private float ButtonDistance = 10.0f;
+
+ public GameObject Handle;
+
+ public GameObject Trigger;
+ public GameObject DMS;
+ public GameObject CMS;
+ public GameObject MasterMode;
+ public GameObject Pickle;
+ public GameObject PinkyButton;
+ public GameObject PinkyLever;
+ public GameObject TMS;
+ public GameObject Trim;
+
+ public void HandleEvent(string input, int value)
+ {
+ switch (input)
+ {
+ case "X":
+ Handle.transform.localEulerAngles = new Vector3(Handle.transform.localEulerAngles.x, Handle.transform.localEulerAngles.y, Convert.Range(value, 0, 65535, 20, -20));
+ break;
+ case "Y":
+ Handle.transform.localEulerAngles = new Vector3(Convert.Range(value, 0, 65535, 20, -20), Handle.transform.localEulerAngles.y, Handle.transform.localEulerAngles.z);
+ break;
+ case "Buttons0":
+ Trigger.transform.localEulerAngles = new Vector3(((value == 0) ? 0.0f : -ButtonDistance), Trigger.transform.localEulerAngles.y, Trigger.transform.localEulerAngles.z);
+ break;
+ case "Buttons5":
+ Trigger.transform.localEulerAngles = new Vector3(((value == 0) ? -ButtonDistance : -20.0f), Trigger.transform.localEulerAngles.y, Trigger.transform.localEulerAngles.z);
+ break;
+
+ case "Buttons10":
+ DMS.transform.localEulerAngles = new Vector3(((value == 0) ? 0.0f : ButtonDistance), DMS.transform.localEulerAngles.y, DMS.transform.localEulerAngles.z);
+ break;
+ case "Buttons11":
+ DMS.transform.localEulerAngles = new Vector3(DMS.transform.localEulerAngles.x, ((value == 0) ? 0.0f : -ButtonDistance), DMS.transform.localEulerAngles.z);
+ break;
+ case "Buttons12":
+ DMS.transform.localEulerAngles = new Vector3(((value == 0) ? 0.0f : -ButtonDistance), DMS.transform.localEulerAngles.y, DMS.transform.localEulerAngles.z);
+ break;
+ case "Buttons13":
+ DMS.transform.localEulerAngles = new Vector3(DMS.transform.localEulerAngles.x, ((value == 0) ? 0.0f : ButtonDistance), DMS.transform.localEulerAngles.z);
+ break;
+
+ case "Buttons14":
+ CMS.transform.localEulerAngles = new Vector3(((value == 0) ? 0.0f : ButtonDistance), CMS.transform.localEulerAngles.y, CMS.transform.localEulerAngles.z);
+ break;
+ case "Buttons15":
+ CMS.transform.localEulerAngles = new Vector3(CMS.transform.localEulerAngles.x, CMS.transform.localEulerAngles.y, ((value == 0) ? 0.0f : -ButtonDistance));
+ break;
+ case "Buttons16":
+ CMS.transform.localEulerAngles = new Vector3(((value == 0) ? 0.0f : -ButtonDistance), CMS.transform.localEulerAngles.y, CMS.transform.localEulerAngles.z);
+ break;
+ case "Buttons17":
+ CMS.transform.localEulerAngles = new Vector3(CMS.transform.localEulerAngles.x, CMS.transform.localEulerAngles.y, ((value == 0) ? 0.0f : ButtonDistance));
+ break;
+ case "Buttons18":
+ CMS.transform.localPosition = new Vector3(CMS.transform.localPosition.x, ((value == 0) ? 0.0f : -0.10f), CMS.transform.localPosition.z);
+ break;
+
+ case "Buttons6":
+ TMS.transform.localEulerAngles = new Vector3(((value == 0) ? 0.0f : ButtonDistance), TMS.transform.localEulerAngles.y, TMS.transform.localEulerAngles.z);
+ break;
+ case "Buttons7":
+ TMS.transform.localEulerAngles = new Vector3(TMS.transform.localEulerAngles.x, ((value == 0) ? 0.0f : -ButtonDistance), TMS.transform.localEulerAngles.z);
+ break;
+ case "Buttons8":
+ TMS.transform.localEulerAngles = new Vector3(((value == 0) ? 0.0f : -ButtonDistance), TMS.transform.localEulerAngles.y, TMS.transform.localEulerAngles.z);
+ break;
+ case "Buttons9":
+ TMS.transform.localEulerAngles = new Vector3(TMS.transform.localEulerAngles.x, ((value == 0) ? 0.0f : ButtonDistance), TMS.transform.localEulerAngles.z);
+ break;
+
+ case "Buttons1":
+ Pickle.transform.localPosition = new Vector3(Pickle.transform.localPosition.x, Pickle.transform.localPosition.y, ((value == 0) ? 0.0f : 0.25f));
+ break;
+
+ case "Buttons4":
+ MasterMode.transform.localPosition = new Vector3(((value == 0) ? 0.0f : -0.20f), MasterMode.transform.localPosition.y, MasterMode.transform.localPosition.z);
+ break;
+
+ case "Buttons2":
+ PinkyButton.transform.localPosition = new Vector3(PinkyButton.transform.localPosition.x, PinkyButton.transform.localPosition.y, ((value == 0) ? 0.0f : -0.20f));
+ break;
+
+ case "Buttons3":
+ PinkyLever.transform.localEulerAngles = new Vector3(((value == 0) ? 0.0f : ButtonDistance), PinkyLever.transform.localEulerAngles.y, PinkyLever.transform.localEulerAngles.z);
+ break;
+
+ case "PointOfViewControllers0":
+ switch (value)
+ {
+ case -1: // zero
+ Trim.transform.localEulerAngles = Vector3.zero;
+ break;
+ case 0: // up
+ Trim.transform.localEulerAngles = Vector3.right * ButtonDistance;
+ break;
+ case 4500: // up/right
+ Trim.transform.localEulerAngles = Vector3.right * ButtonDistance + Vector3.down * ButtonDistance;
+ break;
+ case 9000: // right
+ Trim.transform.localEulerAngles = Vector3.down * ButtonDistance;
+ break;
+ case 13500: // down/right
+ Trim.transform.localEulerAngles = Vector3.down * ButtonDistance + Vector3.left * ButtonDistance;
+ break;
+ case 18000: // down
+ Trim.transform.localEulerAngles = Vector3.left * ButtonDistance;
+ break;
+ case 22500: // down/left
+ Trim.transform.localEulerAngles = Vector3.left * ButtonDistance + Vector3.up * ButtonDistance;
+ break;
+ case 27000: // left
+ Trim.transform.localEulerAngles = Vector3.up * ButtonDistance;
+ break;
+ case 31500: // up/left
+ Trim.transform.localEulerAngles = Vector3.up * ButtonDistance + Vector3.right * ButtonDistance;
+ break;
+ }
+ break;
+
+ default:
+ Debug.Log("Unhandled input " + input);
+ break;
+ }
+ }
+}
diff --git a/JoystickVisualizer/Assets/TextMesh Pro/Examples & Extras/Scripts/Benchmark01.cs.meta b/JoystickVisualizer/Assets/Devices/Thrustmaster Warthog Joystick/ThrustmasterWarthogJoystick.cs.meta
similarity index 74%
rename from JoystickVisualizer/Assets/TextMesh Pro/Examples & Extras/Scripts/Benchmark01.cs.meta
rename to JoystickVisualizer/Assets/Devices/Thrustmaster Warthog Joystick/ThrustmasterWarthogJoystick.cs.meta
index e56a693..b59460c 100644
--- a/JoystickVisualizer/Assets/TextMesh Pro/Examples & Extras/Scripts/Benchmark01.cs.meta
+++ b/JoystickVisualizer/Assets/Devices/Thrustmaster Warthog Joystick/ThrustmasterWarthogJoystick.cs.meta
@@ -1,6 +1,7 @@
fileFormatVersion: 2
-guid: c5fb1b5c24460f745be29cc0eb06a58c
+guid: b40ce5c17fc4ba245adca5fcf4d60ea6
MonoImporter:
+ externalObjects: {}
serializedVersion: 2
defaultReferences: []
executionOrder: 0
diff --git a/JoystickVisualizer/Assets/Devices/Thrustmaster Warthog Throttle.meta b/JoystickVisualizer/Assets/Devices/Thrustmaster Warthog Throttle.meta
index 8618408..2f5999e 100644
--- a/JoystickVisualizer/Assets/Devices/Thrustmaster Warthog Throttle.meta
+++ b/JoystickVisualizer/Assets/Devices/Thrustmaster Warthog Throttle.meta
@@ -1,8 +1,6 @@
fileFormatVersion: 2
-guid: 6ba23add0ee623549b173e80646e3b9e
+guid: 70ff8385e2742bc4c872b2bf1dad6c2d
folderAsset: yes
-timeCreated: 1520539946
-licenseType: Free
DefaultImporter:
externalObjects: {}
userData:
diff --git a/JoystickVisualizer/Assets/Devices/Thrustmaster Warthog Throttle/Thrustmaster Warthog Throttle.prefab b/JoystickVisualizer/Assets/Devices/Thrustmaster Warthog Throttle/Thrustmaster Warthog Throttle.prefab
new file mode 100644
index 0000000..46b37e5
Binary files /dev/null and b/JoystickVisualizer/Assets/Devices/Thrustmaster Warthog Throttle/Thrustmaster Warthog Throttle.prefab differ
diff --git a/JoystickVisualizer/Assets/Devices/Thrustmaster Warthog Throttle/Thrustmaster Warthog Throttle.prefab.meta b/JoystickVisualizer/Assets/Devices/Thrustmaster Warthog Throttle/Thrustmaster Warthog Throttle.prefab.meta
new file mode 100644
index 0000000..b5a899e
--- /dev/null
+++ b/JoystickVisualizer/Assets/Devices/Thrustmaster Warthog Throttle/Thrustmaster Warthog Throttle.prefab.meta
@@ -0,0 +1,7 @@
+fileFormatVersion: 2
+guid: 0e619f9f078a52e41b81c7e91fb78117
+PrefabImporter:
+ externalObjects: {}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/JoystickVisualizer/Assets/Devices/Thrustmaster Warthog Throttle/ThrustmasterWarthogThrottle.cs b/JoystickVisualizer/Assets/Devices/Thrustmaster Warthog Throttle/ThrustmasterWarthogThrottle.cs
new file mode 100644
index 0000000..b56ec6d
--- /dev/null
+++ b/JoystickVisualizer/Assets/Devices/Thrustmaster Warthog Throttle/ThrustmasterWarthogThrottle.cs
@@ -0,0 +1,224 @@
+using Helpers;
+using UnityEngine;
+
+public class ThrustmasterWarthogThrottle : MonoBehaviour, IDeviceEventMessage
+{
+ private static float FlipSwitchRotation = 20.0f;
+
+ public GameObject ThrottleLeft;
+ public GameObject ThrottleRight;
+
+ public GameObject FrictionLever;
+
+ public GameObject MicSwitch;
+ public GameObject SpeedBrake;
+ public GameObject BoatSwitch;
+ public GameObject ChinaHat;
+ public GameObject CoolieHat;
+
+ public GameObject FlowL;
+ public GameObject FlowR;
+ public GameObject IgnL;
+ public GameObject IgnR;
+ public GameObject Flaps;
+ public GameObject APU;
+ public GameObject LG;
+ public GameObject EAC;
+ public GameObject RDR;
+ public GameObject AutopilotEngage;
+ public GameObject AutopilotLaste;
+
+ public GameObject PinkySwitch;
+ public GameObject LeftThrottleButton;
+
+ public void HandleEvent(string input, int value)
+ {
+ switch (input)
+ {
+ case "RotationZ":
+ ThrottleLeft.transform.eulerAngles = new Vector3(
+ Convert.Range(value, 0, 65535, 40, -25),
+ ThrottleLeft.transform.eulerAngles.y,
+ ThrottleLeft.transform.eulerAngles.z);
+ break;
+ case "Z":
+ ThrottleRight.transform.eulerAngles = new Vector3(
+ Convert.Range(value, 0, 65535, 40, -25),
+ ThrottleRight.transform.eulerAngles.y,
+ ThrottleRight.transform.eulerAngles.z);
+ break;
+
+ case "Buttons28": // Right Throttle Idle/Off
+ if (value == 0)
+ ThrottleRight.transform.eulerAngles = new Vector3(
+ -25,
+ ThrottleRight.transform.eulerAngles.y,
+ ThrottleRight.transform.eulerAngles.z);
+ else
+ ThrottleRight.transform.eulerAngles = new Vector3(
+ -35,
+ ThrottleRight.transform.eulerAngles.y,
+ ThrottleRight.transform.eulerAngles.z);
+ break;
+
+ case "Buttons29": // Left Throttle Idle/Off
+ if (value == 0)
+ ThrottleLeft.transform.eulerAngles = new Vector3(
+ -25,
+ ThrottleLeft.transform.eulerAngles.y,
+ ThrottleLeft.transform.eulerAngles.z);
+ else
+ ThrottleLeft.transform.eulerAngles = new Vector3(
+ -35,
+ ThrottleLeft.transform.eulerAngles.y,
+ ThrottleLeft.transform.eulerAngles.z);
+ break;
+
+ case "Sliders0": // Friction
+ FrictionLever.transform.eulerAngles = new Vector3(
+ Convert.Range(value, 0, 65535, 40, -40),
+ FrictionLever.transform.eulerAngles.y,
+ FrictionLever.transform.eulerAngles.z);
+ break;
+
+ case "Buttons5":
+ MicSwitch.transform.localEulerAngles = Vector3.up * ((value == 0) ? 0.0f : 10.0f);
+ break;
+ case "Buttons3":
+ MicSwitch.transform.localEulerAngles = Vector3.down * ((value == 0) ? 0.0f : 10.0f);
+ break;
+ case "Buttons2":
+ MicSwitch.transform.localEulerAngles = Vector3.forward * ((value == 0) ? 0.0f : 10.0f);
+ break;
+ case "Buttons4":
+ MicSwitch.transform.localEulerAngles = Vector3.back * ((value == 0) ? 0.0f : 10.0f);
+ break;
+
+
+ case "Buttons6":
+ SpeedBrake.transform.localPosition = Vector3.forward * ((value == 0) ? 0.0f : 0.4f);
+ break;
+ case "Buttons7":
+ SpeedBrake.transform.localPosition = Vector3.back * ((value == 0) ? 0.0f : 0.4f);
+ break;
+
+ case "Buttons8":
+ BoatSwitch.transform.localEulerAngles = Vector3.down * ((value == 0) ? 0.0f : FlipSwitchRotation);
+ break;
+ case "Buttons9":
+ BoatSwitch.transform.localEulerAngles = Vector3.up * ((value == 0) ? 0.0f : FlipSwitchRotation);
+ break;
+
+ case "Buttons10":
+ ChinaHat.transform.localEulerAngles = Vector3.down * ((value == 0) ? 0.0f : FlipSwitchRotation);
+ break;
+ case "Buttons11":
+ ChinaHat.transform.localEulerAngles = Vector3.up * ((value == 0) ? 0.0f : FlipSwitchRotation);
+ break;
+
+ case "PointOfViewControllers0":
+ switch (value)
+ {
+ case -1: // zero
+ CoolieHat.transform.localEulerAngles = Vector3.zero;
+ break;
+ case 0: // up
+ CoolieHat.transform.localEulerAngles = Vector3.left * 10.0f;
+ break;
+ case 4500: // up/right
+ CoolieHat.transform.localEulerAngles = Vector3.left * 10.0f + Vector3.up * 10.0f;
+ break;
+ case 9000: // right
+ CoolieHat.transform.localEulerAngles = Vector3.up * 10.0f;
+ break;
+ case 13500: // down/right
+ CoolieHat.transform.localEulerAngles = Vector3.up * 10.0f + Vector3.right * 10.0f;
+ break;
+ case 18000: // down
+ CoolieHat.transform.localEulerAngles = Vector3.right * 10.0f;
+ break;
+ case 22500: // down/left
+ CoolieHat.transform.localEulerAngles = Vector3.right * 10.0f + Vector3.down * 10.0f;
+ break;
+ case 27000: // left
+ CoolieHat.transform.localEulerAngles = Vector3.down * 10.0f;
+ break;
+ case 31500: // up/left
+ CoolieHat.transform.localEulerAngles = Vector3.down * 10.0f + Vector3.left * 10.0f;
+ break;
+ }
+ break;
+
+ case "Buttons14":
+ LeftThrottleButton.transform.localPosition = Vector3.back * ((value == 0) ? 0.0f : 0.003f);
+ break;
+
+ case "Buttons15":
+ FlowL.transform.eulerAngles = Vector3.right * ((value == 0) ? 0.0f : 40.0f);
+ break;
+
+ case "Buttons16":
+ FlowR.transform.eulerAngles = Vector3.right * ((value == 0) ? 0.0f : 40.0f);
+ break;
+
+ case "Buttons17":
+ IgnL.transform.eulerAngles = Vector3.right * ((value == 0) ? 0.0f : -FlipSwitchRotation);
+ break;
+ case "Buttons30":
+ IgnL.transform.eulerAngles = Vector3.right * ((value == 0) ? 0.0f : FlipSwitchRotation);
+ break;
+
+ case "Buttons18":
+ IgnR.transform.eulerAngles = Vector3.right * ((value == 0) ? 0.0f : -FlipSwitchRotation);
+ break;
+ case "Buttons31":
+ IgnR.transform.eulerAngles = Vector3.right * ((value == 0) ? 0.0f : FlipSwitchRotation);
+ break;
+
+ case "Buttons19":
+ APU.transform.eulerAngles = Vector3.right * ((value == 0) ? 0.0f : 40.0f);
+ break;
+
+ case "Buttons20":
+ LG.transform.localPosition = Vector3.down * ((value == 0) ? 0.0f : 0.0035f);
+ break;
+
+ case "Buttons25":
+ AutopilotEngage.transform.localPosition = Vector3.down * ((value == 0) ? 0.0f : 0.0035f);
+ break;
+
+ case "Buttons23":
+ EAC.transform.eulerAngles = Vector3.right * ((value == 0) ? 0.0f : 40.0f);
+ break;
+
+ case "Buttons24":
+ RDR.transform.eulerAngles = Vector3.right * ((value == 0) ? 0.0f : 40.0f);
+ break;
+
+ case "Buttons26":
+ AutopilotLaste.transform.eulerAngles = Vector3.right * ((value == 0) ? 0.0f : FlipSwitchRotation);
+ break;
+ case "Buttons27":
+ AutopilotLaste.transform.eulerAngles = Vector3.right * ((value == 0) ? 0.0f : -FlipSwitchRotation);
+ break;
+
+ case "Buttons21":
+ Flaps.transform.eulerAngles = Vector3.right * ((value == 0) ? 0.0f : FlipSwitchRotation);
+ break;
+ case "Buttons22":
+ Flaps.transform.eulerAngles = Vector3.right * ((value == 0) ? 0.0f : -FlipSwitchRotation);
+ break;
+
+ case "Buttons12":
+ PinkySwitch.transform.localEulerAngles = Vector3.up * ((value == 0) ? 0.0f : FlipSwitchRotation);
+ break;
+ case "Buttons13":
+ PinkySwitch.transform.localEulerAngles = Vector3.up * ((value == 0) ? 0.0f : -FlipSwitchRotation);
+ break;
+
+ default:
+ Debug.Log("Unhandled input " + input);
+ break;
+ }
+ }
+}
diff --git a/JoystickVisualizer/Assets/TextMesh Pro/Examples & Extras/Scripts/Benchmark01_UGUI.cs.meta b/JoystickVisualizer/Assets/Devices/Thrustmaster Warthog Throttle/ThrustmasterWarthogThrottle.cs.meta
similarity index 74%
rename from JoystickVisualizer/Assets/TextMesh Pro/Examples & Extras/Scripts/Benchmark01_UGUI.cs.meta
rename to JoystickVisualizer/Assets/Devices/Thrustmaster Warthog Throttle/ThrustmasterWarthogThrottle.cs.meta
index fe4e1fb..aaa265c 100644
--- a/JoystickVisualizer/Assets/TextMesh Pro/Examples & Extras/Scripts/Benchmark01_UGUI.cs.meta
+++ b/JoystickVisualizer/Assets/Devices/Thrustmaster Warthog Throttle/ThrustmasterWarthogThrottle.cs.meta
@@ -1,6 +1,7 @@
fileFormatVersion: 2
-guid: 5e6abf300e36c0a4eb43969c3f2172f8
+guid: 84a32b2f8a758aa478af99ba03e08f2c
MonoImporter:
+ externalObjects: {}
serializedVersion: 2
defaultReferences: []
executionOrder: 0
diff --git a/JoystickVisualizer/Assets/UnityHDRI.meta b/JoystickVisualizer/Assets/Fonts.meta
similarity index 62%
rename from JoystickVisualizer/Assets/UnityHDRI.meta
rename to JoystickVisualizer/Assets/Fonts.meta
index 5ddda4c..6a92a30 100644
--- a/JoystickVisualizer/Assets/UnityHDRI.meta
+++ b/JoystickVisualizer/Assets/Fonts.meta
@@ -1,8 +1,6 @@
fileFormatVersion: 2
-guid: cb8636d6ebd5fa64db59462e913e4e45
+guid: 8d6fdccdc03ab5a4e877903ad823b2aa
folderAsset: yes
-timeCreated: 1510079443
-licenseType: Free
DefaultImporter:
externalObjects: {}
userData:
diff --git a/JoystickVisualizer/Assets/Fonts/Roboto-Black.ttf b/JoystickVisualizer/Assets/Fonts/Roboto-Black.ttf
new file mode 100644
index 0000000..2d45238
Binary files /dev/null and b/JoystickVisualizer/Assets/Fonts/Roboto-Black.ttf differ
diff --git a/JoystickVisualizer/Assets/Fonts/Roboto-Black.ttf.meta b/JoystickVisualizer/Assets/Fonts/Roboto-Black.ttf.meta
new file mode 100644
index 0000000..3a3edf3
--- /dev/null
+++ b/JoystickVisualizer/Assets/Fonts/Roboto-Black.ttf.meta
@@ -0,0 +1,24 @@
+fileFormatVersion: 2
+guid: 6e368184811e79640aa1cf50b6bec34d
+TrueTypeFontImporter:
+ externalObjects: {}
+ serializedVersion: 4
+ fontSize: 16
+ forceTextureCase: -2
+ characterSpacing: 0
+ characterPadding: 1
+ includeFontData: 1
+ fontNames:
+ - Roboto
+ fallbackFontReferences:
+ - {fileID: 12800000, guid: 96d11855424ee8f40b4c6b0901170316, type: 3}
+ - {fileID: 12800000, guid: cd4309189348bc847ab82bb17e7ec94a, type: 3}
+ - {fileID: 12800000, guid: da545e565369dc640a5fe9468442dee7, type: 3}
+ customCharacters:
+ fontRenderingMode: 0
+ ascentCalculationMode: 1
+ useLegacyBoundsCalculation: 0
+ shouldRoundAdvanceValue: 1
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/JoystickVisualizer/Assets/Fonts/Roboto-Light.ttf b/JoystickVisualizer/Assets/Fonts/Roboto-Light.ttf
new file mode 100644
index 0000000..3526798
Binary files /dev/null and b/JoystickVisualizer/Assets/Fonts/Roboto-Light.ttf differ
diff --git a/JoystickVisualizer/Assets/Fonts/Roboto-Light.ttf.meta b/JoystickVisualizer/Assets/Fonts/Roboto-Light.ttf.meta
new file mode 100644
index 0000000..82ca558
--- /dev/null
+++ b/JoystickVisualizer/Assets/Fonts/Roboto-Light.ttf.meta
@@ -0,0 +1,22 @@
+fileFormatVersion: 2
+guid: da545e565369dc640a5fe9468442dee7
+TrueTypeFontImporter:
+ externalObjects: {}
+ serializedVersion: 4
+ fontSize: 16
+ forceTextureCase: -2
+ characterSpacing: 0
+ characterPadding: 1
+ includeFontData: 1
+ fontNames:
+ - Roboto
+ fallbackFontReferences:
+ - {fileID: 12800000, guid: 96d11855424ee8f40b4c6b0901170316, type: 3}
+ customCharacters:
+ fontRenderingMode: 0
+ ascentCalculationMode: 1
+ useLegacyBoundsCalculation: 0
+ shouldRoundAdvanceValue: 1
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/JoystickVisualizer/Assets/Fonts/Roboto-Medium.ttf b/JoystickVisualizer/Assets/Fonts/Roboto-Medium.ttf
new file mode 100644
index 0000000..f714a51
Binary files /dev/null and b/JoystickVisualizer/Assets/Fonts/Roboto-Medium.ttf differ
diff --git a/JoystickVisualizer/Assets/Fonts/Roboto-Medium.ttf.meta b/JoystickVisualizer/Assets/Fonts/Roboto-Medium.ttf.meta
new file mode 100644
index 0000000..a42ee94
--- /dev/null
+++ b/JoystickVisualizer/Assets/Fonts/Roboto-Medium.ttf.meta
@@ -0,0 +1,23 @@
+fileFormatVersion: 2
+guid: cd4309189348bc847ab82bb17e7ec94a
+TrueTypeFontImporter:
+ externalObjects: {}
+ serializedVersion: 4
+ fontSize: 16
+ forceTextureCase: -2
+ characterSpacing: 0
+ characterPadding: 1
+ includeFontData: 1
+ fontNames:
+ - Roboto
+ fallbackFontReferences:
+ - {fileID: 12800000, guid: 96d11855424ee8f40b4c6b0901170316, type: 3}
+ - {fileID: 12800000, guid: da545e565369dc640a5fe9468442dee7, type: 3}
+ customCharacters:
+ fontRenderingMode: 0
+ ascentCalculationMode: 1
+ useLegacyBoundsCalculation: 0
+ shouldRoundAdvanceValue: 1
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/JoystickVisualizer/Assets/Fonts/Roboto-Thin.ttf b/JoystickVisualizer/Assets/Fonts/Roboto-Thin.ttf
new file mode 100644
index 0000000..4e797cf
Binary files /dev/null and b/JoystickVisualizer/Assets/Fonts/Roboto-Thin.ttf differ
diff --git a/JoystickVisualizer/Assets/TextMesh Pro/Examples & Extras/Fonts/LiberationSans.ttf.meta b/JoystickVisualizer/Assets/Fonts/Roboto-Thin.ttf.meta
similarity index 71%
rename from JoystickVisualizer/Assets/TextMesh Pro/Examples & Extras/Fonts/LiberationSans.ttf.meta
rename to JoystickVisualizer/Assets/Fonts/Roboto-Thin.ttf.meta
index a706a54..bb739b6 100644
--- a/JoystickVisualizer/Assets/TextMesh Pro/Examples & Extras/Fonts/LiberationSans.ttf.meta
+++ b/JoystickVisualizer/Assets/Fonts/Roboto-Thin.ttf.meta
@@ -1,21 +1,21 @@
fileFormatVersion: 2
-guid: 02b8041c6ddcee3428810c7e7a438e0e
-timeCreated: 1484171297
-licenseType: Store
+guid: 96d11855424ee8f40b4c6b0901170316
TrueTypeFontImporter:
+ externalObjects: {}
serializedVersion: 4
fontSize: 16
forceTextureCase: -2
characterSpacing: 0
characterPadding: 1
includeFontData: 1
- fontName: Liberation Sans
fontNames:
- - Liberation Sans
+ - Roboto
fallbackFontReferences: []
customCharacters:
fontRenderingMode: 0
ascentCalculationMode: 1
+ useLegacyBoundsCalculation: 0
+ shouldRoundAdvanceValue: 1
userData:
assetBundleName:
assetBundleVariant:
diff --git a/JoystickVisualizer/Assets/UnityHDRI/TreasureIsland.meta b/JoystickVisualizer/Assets/Images.meta
similarity index 62%
rename from JoystickVisualizer/Assets/UnityHDRI/TreasureIsland.meta
rename to JoystickVisualizer/Assets/Images.meta
index a5a6ee7..306337a 100644
--- a/JoystickVisualizer/Assets/UnityHDRI/TreasureIsland.meta
+++ b/JoystickVisualizer/Assets/Images.meta
@@ -1,8 +1,6 @@
fileFormatVersion: 2
-guid: ca039db05fcdf204dbe8605f5a485494
+guid: ac280fc78170df54ebef1ff430e599ff
folderAsset: yes
-timeCreated: 1510079443
-licenseType: Free
DefaultImporter:
externalObjects: {}
userData:
diff --git a/JoystickVisualizer/Assets/Images/Bluegreen Gradient.png b/JoystickVisualizer/Assets/Images/Bluegreen Gradient.png
new file mode 100644
index 0000000..963d811
Binary files /dev/null and b/JoystickVisualizer/Assets/Images/Bluegreen Gradient.png differ
diff --git a/JoystickVisualizer/Assets/TextMesh Pro/Sprites/EmojiOne.png.meta b/JoystickVisualizer/Assets/Images/Bluegreen Gradient.png.meta
similarity index 61%
rename from JoystickVisualizer/Assets/TextMesh Pro/Sprites/EmojiOne.png.meta
rename to JoystickVisualizer/Assets/Images/Bluegreen Gradient.png.meta
index b8a3558..78eca9e 100644
--- a/JoystickVisualizer/Assets/TextMesh Pro/Sprites/EmojiOne.png.meta
+++ b/JoystickVisualizer/Assets/Images/Bluegreen Gradient.png.meta
@@ -1,14 +1,12 @@
fileFormatVersion: 2
-guid: 6ec706981a919c3489f0b061a40054e2
-timeCreated: 1480316860
-licenseType: Store
+guid: b2252cfcd08984f488ab4e84cff8892f
TextureImporter:
- fileIDToRecycleName: {}
+ internalIDToNameTable: []
externalObjects: {}
- serializedVersion: 4
+ serializedVersion: 11
mipmaps:
mipMapMode: 0
- enableMipMap: 1
+ enableMipMap: 0
sRGBTexture: 1
linearTexture: 0
fadeOut: 0
@@ -23,20 +21,23 @@ TextureImporter:
heightScale: 0.25
normalMapFilter: 0
isReadable: 0
+ streamingMipmaps: 0
+ streamingMipmapsPriority: 0
+ vTOnly: 0
grayScaleToAlpha: 0
generateCubemap: 6
cubemapConvolution: 0
seamlessCubemap: 0
- textureFormat: -1
+ textureFormat: 1
maxTextureSize: 2048
textureSettings:
serializedVersion: 2
filterMode: -1
aniso: -1
- mipBias: -1
+ mipBias: -100
wrapU: 1
wrapV: 1
- wrapW: 1
+ wrapW: -1
nPOTScale: 0
lightmap: 0
compressionQuality: 50
@@ -45,48 +46,25 @@ TextureImporter:
spriteMeshType: 1
alignment: 0
spritePivot: {x: 0.5, y: 0.5}
- spriteBorder: {x: 0, y: 0, z: 0, w: 0}
spritePixelsToUnits: 100
+ spriteBorder: {x: 0, y: 0, z: 0, w: 0}
+ spriteGenerateFallbackPhysicsShape: 1
alphaUsage: 1
alphaIsTransparency: 1
spriteTessellationDetail: -1
- textureType: 0
+ textureType: 8
textureShape: 1
+ singleChannelComponent: 0
+ flipbookRows: 1
+ flipbookColumns: 1
maxTextureSizeSet: 0
compressionQualitySet: 0
textureFormatSet: 0
+ ignorePngGamma: 0
+ applyGammaDecoding: 0
platformSettings:
- - buildTarget: DefaultTexturePlatform
- maxTextureSize: 2048
- resizeAlgorithm: 0
- textureFormat: -1
- textureCompression: 1
- compressionQuality: 50
- crunchedCompression: 0
- allowsAlphaSplitting: 0
- overridden: 0
- androidETC2FallbackOverride: 0
- - buildTarget: Standalone
- maxTextureSize: 2048
- resizeAlgorithm: 0
- textureFormat: -1
- textureCompression: 1
- compressionQuality: 50
- crunchedCompression: 0
- allowsAlphaSplitting: 0
- overridden: 0
- androidETC2FallbackOverride: 0
- - buildTarget: Android
- maxTextureSize: 2048
- resizeAlgorithm: 0
- textureFormat: -1
- textureCompression: 1
- compressionQuality: 50
- crunchedCompression: 0
- allowsAlphaSplitting: 0
- overridden: 0
- androidETC2FallbackOverride: 0
- - buildTarget: Windows Store Apps
+ - serializedVersion: 3
+ buildTarget: DefaultTexturePlatform
maxTextureSize: 2048
resizeAlgorithm: 0
textureFormat: -1
@@ -96,7 +74,9 @@ TextureImporter:
allowsAlphaSplitting: 0
overridden: 0
androidETC2FallbackOverride: 0
- - buildTarget: WebGL
+ forceMaximumCompressionQuality_BC6H_BC7: 0
+ - serializedVersion: 3
+ buildTarget: Standalone
maxTextureSize: 2048
resizeAlgorithm: 0
textureFormat: -1
@@ -106,12 +86,23 @@ TextureImporter:
allowsAlphaSplitting: 0
overridden: 0
androidETC2FallbackOverride: 0
+ forceMaximumCompressionQuality_BC6H_BC7: 0
spriteSheet:
serializedVersion: 2
sprites: []
outline: []
physicsShape: []
+ bones: []
+ spriteID: 5e97eb03825dee720800000000000000
+ internalID: 0
+ vertices: []
+ indices:
+ edges: []
+ weights: []
+ secondaryTextures: []
spritePackingTag:
+ pSDRemoveMatte: 0
+ pSDShowRemoveMatteOption: 0
userData:
assetBundleName:
assetBundleVariant:
diff --git a/JoystickVisualizer/Assets/InputSystem.inputsettings.asset b/JoystickVisualizer/Assets/InputSystem.inputsettings.asset
new file mode 100644
index 0000000..11ba6d2
Binary files /dev/null and b/JoystickVisualizer/Assets/InputSystem.inputsettings.asset differ
diff --git a/JoystickVisualizer/Assets/PostProcessing/New Post-Processing Profile.asset.meta b/JoystickVisualizer/Assets/InputSystem.inputsettings.asset.meta
similarity index 61%
rename from JoystickVisualizer/Assets/PostProcessing/New Post-Processing Profile.asset.meta
rename to JoystickVisualizer/Assets/InputSystem.inputsettings.asset.meta
index f27d702..a648d4b 100644
--- a/JoystickVisualizer/Assets/PostProcessing/New Post-Processing Profile.asset.meta
+++ b/JoystickVisualizer/Assets/InputSystem.inputsettings.asset.meta
@@ -1,8 +1,7 @@
fileFormatVersion: 2
-guid: b73467decb04d3d43bc068c97988b999
-timeCreated: 1496689217
-licenseType: Free
+guid: 8507e6e8f35a1414f8b2e2a3f9243e20
NativeFormatImporter:
+ externalObjects: {}
mainObjectFileID: 11400000
userData:
assetBundleName:
diff --git a/JoystickVisualizer/Assets/JoystickVisualizer.unity b/JoystickVisualizer/Assets/JoystickVisualizer.unity
deleted file mode 100644
index 6bb838d..0000000
Binary files a/JoystickVisualizer/Assets/JoystickVisualizer.unity and /dev/null differ
diff --git a/JoystickVisualizer/Assets/JoystickVisualizerSettings.lighting b/JoystickVisualizer/Assets/JoystickVisualizerSettings.lighting
new file mode 100644
index 0000000..dadf06c
Binary files /dev/null and b/JoystickVisualizer/Assets/JoystickVisualizerSettings.lighting differ
diff --git a/JoystickVisualizer/Assets/UnityHDRI/TreasureIsland/TreasureIslandWhiteBalanced.mat.meta b/JoystickVisualizer/Assets/JoystickVisualizerSettings.lighting.meta
similarity index 63%
rename from JoystickVisualizer/Assets/UnityHDRI/TreasureIsland/TreasureIslandWhiteBalanced.mat.meta
rename to JoystickVisualizer/Assets/JoystickVisualizerSettings.lighting.meta
index 4cda1cd..7c443f1 100644
--- a/JoystickVisualizer/Assets/UnityHDRI/TreasureIsland/TreasureIslandWhiteBalanced.mat.meta
+++ b/JoystickVisualizer/Assets/JoystickVisualizerSettings.lighting.meta
@@ -1,7 +1,5 @@
fileFormatVersion: 2
-guid: fdf0dcd1ae78f8c4e93fcd2ab73dc512
-timeCreated: 1510079450
-licenseType: Free
+guid: 1775584d646a02a41b42e94309e2d645
NativeFormatImporter:
externalObjects: {}
mainObjectFileID: 0
diff --git a/JoystickVisualizer/Assets/LightweightAsset.asset b/JoystickVisualizer/Assets/LightweightAsset.asset
new file mode 100644
index 0000000..bbc1897
Binary files /dev/null and b/JoystickVisualizer/Assets/LightweightAsset.asset differ
diff --git a/JoystickVisualizer/Assets/LightweightAsset.asset.meta b/JoystickVisualizer/Assets/LightweightAsset.asset.meta
new file mode 100644
index 0000000..4bb87e4
--- /dev/null
+++ b/JoystickVisualizer/Assets/LightweightAsset.asset.meta
@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: 191ff21e35218604dad3d4187cb1d716
+NativeFormatImporter:
+ externalObjects: {}
+ mainObjectFileID: 11400000
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/JoystickVisualizer/Assets/Materials/Black Plastic.ShaderGraph b/JoystickVisualizer/Assets/Materials/Black Plastic.ShaderGraph
new file mode 100644
index 0000000..c6083a4
--- /dev/null
+++ b/JoystickVisualizer/Assets/Materials/Black Plastic.ShaderGraph
@@ -0,0 +1,64 @@
+{
+ "m_SerializedProperties": [],
+ "m_GUID": {
+ "m_GuidSerialized": "bce20288-6e93-44e3-ad87-3bd9cad7bad8"
+ },
+ "m_SerializableNodes": [
+ {
+ "typeInfo": {
+ "fullName": "UnityEditor.ShaderGraph.PBRMasterNode"
+ },
+ "JSONnodeData": "{\n \"m_GuidSerialized\": \"a39c0ca8-8a67-4f96-af03-c495b67f9808\",\n \"m_Name\": \"PBR Master\",\n \"m_DrawState\": {\n \"m_Expanded\": true,\n \"m_Position\": {\n \"serializedVersion\": \"2\",\n \"x\": 189.0,\n \"y\": -180.07998657226563,\n \"width\": 208.0,\n \"height\": 479.0\n }\n },\n \"m_SerializableSlots\": [\n {\n \"typeInfo\": {\n \"fullName\": \"UnityEditor.ShaderGraph.ColorRGBMaterialSlot\"\n },\n \"JSONnodeData\": \"{\\n \\\"m_Id\\\": 0,\\n \\\"m_DisplayName\\\": \\\"Albedo\\\",\\n \\\"m_SlotType\\\": 0,\\n \\\"m_Priority\\\": 2147483647,\\n \\\"m_Hidden\\\": false,\\n \\\"m_ShaderOutputName\\\": \\\"Albedo\\\",\\n \\\"m_ShaderStage\\\": 2,\\n \\\"m_Value\\\": {\\n \\\"x\\\": 0.0,\\n \\\"y\\\": 0.0,\\n \\\"z\\\": 0.0\\n },\\n \\\"m_DefaultValue\\\": {\\n \\\"x\\\": 0.0,\\n \\\"y\\\": 0.0,\\n \\\"z\\\": 0.0\\n }\\n}\"\n },\n {\n \"typeInfo\": {\n \"fullName\": \"UnityEditor.ShaderGraph.NormalMaterialSlot\"\n },\n \"JSONnodeData\": \"{\\n \\\"m_Id\\\": 1,\\n \\\"m_DisplayName\\\": \\\"Normal\\\",\\n \\\"m_SlotType\\\": 0,\\n \\\"m_Priority\\\": 2147483647,\\n \\\"m_Hidden\\\": false,\\n \\\"m_ShaderOutputName\\\": \\\"Normal\\\",\\n \\\"m_ShaderStage\\\": 2,\\n \\\"m_Value\\\": {\\n \\\"x\\\": 0.0,\\n \\\"y\\\": 0.0,\\n \\\"z\\\": 0.0\\n },\\n \\\"m_DefaultValue\\\": {\\n \\\"x\\\": 0.0,\\n \\\"y\\\": 0.0,\\n \\\"z\\\": 0.0\\n },\\n \\\"m_Space\\\": 3\\n}\"\n },\n {\n \"typeInfo\": {\n \"fullName\": \"UnityEditor.ShaderGraph.ColorRGBMaterialSlot\"\n },\n \"JSONnodeData\": \"{\\n \\\"m_Id\\\": 4,\\n \\\"m_DisplayName\\\": \\\"Emission\\\",\\n \\\"m_SlotType\\\": 0,\\n \\\"m_Priority\\\": 2147483647,\\n \\\"m_Hidden\\\": false,\\n \\\"m_ShaderOutputName\\\": \\\"Emission\\\",\\n \\\"m_ShaderStage\\\": 2,\\n \\\"m_Value\\\": {\\n \\\"x\\\": 0.0,\\n \\\"y\\\": 0.0,\\n \\\"z\\\": 0.0\\n },\\n \\\"m_DefaultValue\\\": {\\n \\\"x\\\": 0.0,\\n \\\"y\\\": 0.0,\\n \\\"z\\\": 0.0\\n }\\n}\"\n },\n {\n \"typeInfo\": {\n \"fullName\": \"UnityEditor.ShaderGraph.Vector1MaterialSlot\"\n },\n \"JSONnodeData\": \"{\\n \\\"m_Id\\\": 2,\\n \\\"m_DisplayName\\\": \\\"Metallic\\\",\\n \\\"m_SlotType\\\": 0,\\n \\\"m_Priority\\\": 2147483647,\\n \\\"m_Hidden\\\": false,\\n \\\"m_ShaderOutputName\\\": \\\"Metallic\\\",\\n \\\"m_ShaderStage\\\": 2,\\n \\\"m_Value\\\": 0.0,\\n \\\"m_DefaultValue\\\": 0.0\\n}\"\n },\n {\n \"typeInfo\": {\n \"fullName\": \"UnityEditor.ShaderGraph.Vector1MaterialSlot\"\n },\n \"JSONnodeData\": \"{\\n \\\"m_Id\\\": 5,\\n \\\"m_DisplayName\\\": \\\"Smoothness\\\",\\n \\\"m_SlotType\\\": 0,\\n \\\"m_Priority\\\": 2147483647,\\n \\\"m_Hidden\\\": false,\\n \\\"m_ShaderOutputName\\\": \\\"Smoothness\\\",\\n \\\"m_ShaderStage\\\": 2,\\n \\\"m_Value\\\": 0.5,\\n \\\"m_DefaultValue\\\": 0.5\\n}\"\n },\n {\n \"typeInfo\": {\n \"fullName\": \"UnityEditor.ShaderGraph.Vector1MaterialSlot\"\n },\n \"JSONnodeData\": \"{\\n \\\"m_Id\\\": 6,\\n \\\"m_DisplayName\\\": \\\"Occlusion\\\",\\n \\\"m_SlotType\\\": 0,\\n \\\"m_Priority\\\": 2147483647,\\n \\\"m_Hidden\\\": false,\\n \\\"m_ShaderOutputName\\\": \\\"Occlusion\\\",\\n \\\"m_ShaderStage\\\": 2,\\n \\\"m_Value\\\": 0.2800000011920929,\\n \\\"m_DefaultValue\\\": 1.0\\n}\"\n },\n {\n \"typeInfo\": {\n \"fullName\": \"UnityEditor.ShaderGraph.Vector1MaterialSlot\"\n },\n \"JSONnodeData\": \"{\\n \\\"m_Id\\\": 7,\\n \\\"m_DisplayName\\\": \\\"Alpha\\\",\\n \\\"m_SlotType\\\": 0,\\n \\\"m_Priority\\\": 2147483647,\\n \\\"m_Hidden\\\": false,\\n \\\"m_ShaderOutputName\\\": \\\"Alpha\\\",\\n \\\"m_ShaderStage\\\": 2,\\n \\\"m_Value\\\": 0.0,\\n \\\"m_DefaultValue\\\": 1.0\\n}\"\n },\n {\n \"typeInfo\": {\n \"fullName\": \"UnityEditor.ShaderGraph.Vector1MaterialSlot\"\n },\n \"JSONnodeData\": \"{\\n \\\"m_Id\\\": 8,\\n \\\"m_DisplayName\\\": \\\"AlphaClipThreshold\\\",\\n \\\"m_SlotType\\\": 0,\\n \\\"m_Priority\\\": 2147483647,\\n \\\"m_Hidden\\\": false,\\n \\\"m_ShaderOutputName\\\": \\\"AlphaClipThreshold\\\",\\n \\\"m_ShaderStage\\\": 2,\\n \\\"m_Value\\\": 0.0,\\n \\\"m_DefaultValue\\\": 0.0\\n}\"\n }\n ],\n \"m_PreviewExpanded\": true,\n \"m_SerializableSubShaders\": [\n {\n \"typeInfo\": {\n \"fullName\": \"UnityEditor.Experimental.Rendering.LightweightPipeline.LightWeightPBRSubShader\"\n },\n \"JSONnodeData\": \"{}\"\n }\n ],\n \"m_Model\": 1,\n \"m_SurfaceType\": 0,\n \"m_AlphaMode\": 0,\n \"m_TwoSided\": false\n}"
+ },
+ {
+ "typeInfo": {
+ "fullName": "UnityEditor.ShaderGraph.SampleTexture2DNode"
+ },
+ "JSONnodeData": "{\n \"m_GuidSerialized\": \"3ec7ed53-039b-4471-a2b3-26b71911b0c8\",\n \"m_Name\": \"Sample Texture 2D\",\n \"m_DrawState\": {\n \"m_Expanded\": true,\n \"m_Position\": {\n \"serializedVersion\": \"2\",\n \"x\": -277.3974914550781,\n \"y\": 25.428672790527345,\n \"width\": 208.0,\n \"height\": 407.0\n }\n },\n \"m_SerializableSlots\": [\n {\n \"typeInfo\": {\n \"fullName\": \"UnityEditor.ShaderGraph.Vector4MaterialSlot\"\n },\n \"JSONnodeData\": \"{\\n \\\"m_Id\\\": 0,\\n \\\"m_DisplayName\\\": \\\"RGBA\\\",\\n \\\"m_SlotType\\\": 1,\\n \\\"m_Priority\\\": 2147483647,\\n \\\"m_Hidden\\\": false,\\n \\\"m_ShaderOutputName\\\": \\\"RGBA\\\",\\n \\\"m_ShaderStage\\\": 0,\\n \\\"m_Value\\\": {\\n \\\"x\\\": 0.0,\\n \\\"y\\\": 0.0,\\n \\\"z\\\": 0.0,\\n \\\"w\\\": 0.0\\n },\\n \\\"m_DefaultValue\\\": {\\n \\\"x\\\": 0.0,\\n \\\"y\\\": 0.0,\\n \\\"z\\\": 0.0,\\n \\\"w\\\": 0.0\\n }\\n}\"\n },\n {\n \"typeInfo\": {\n \"fullName\": \"UnityEditor.ShaderGraph.Vector1MaterialSlot\"\n },\n \"JSONnodeData\": \"{\\n \\\"m_Id\\\": 4,\\n \\\"m_DisplayName\\\": \\\"R\\\",\\n \\\"m_SlotType\\\": 1,\\n \\\"m_Priority\\\": 2147483647,\\n \\\"m_Hidden\\\": false,\\n \\\"m_ShaderOutputName\\\": \\\"R\\\",\\n \\\"m_ShaderStage\\\": 0,\\n \\\"m_Value\\\": 0.0,\\n \\\"m_DefaultValue\\\": 0.0\\n}\"\n },\n {\n \"typeInfo\": {\n \"fullName\": \"UnityEditor.ShaderGraph.Vector1MaterialSlot\"\n },\n \"JSONnodeData\": \"{\\n \\\"m_Id\\\": 5,\\n \\\"m_DisplayName\\\": \\\"G\\\",\\n \\\"m_SlotType\\\": 1,\\n \\\"m_Priority\\\": 2147483647,\\n \\\"m_Hidden\\\": false,\\n \\\"m_ShaderOutputName\\\": \\\"G\\\",\\n \\\"m_ShaderStage\\\": 0,\\n \\\"m_Value\\\": 0.0,\\n \\\"m_DefaultValue\\\": 0.0\\n}\"\n },\n {\n \"typeInfo\": {\n \"fullName\": \"UnityEditor.ShaderGraph.Vector1MaterialSlot\"\n },\n \"JSONnodeData\": \"{\\n \\\"m_Id\\\": 6,\\n \\\"m_DisplayName\\\": \\\"B\\\",\\n \\\"m_SlotType\\\": 1,\\n \\\"m_Priority\\\": 2147483647,\\n \\\"m_Hidden\\\": false,\\n \\\"m_ShaderOutputName\\\": \\\"B\\\",\\n \\\"m_ShaderStage\\\": 0,\\n \\\"m_Value\\\": 0.0,\\n \\\"m_DefaultValue\\\": 0.0\\n}\"\n },\n {\n \"typeInfo\": {\n \"fullName\": \"UnityEditor.ShaderGraph.Vector1MaterialSlot\"\n },\n \"JSONnodeData\": \"{\\n \\\"m_Id\\\": 7,\\n \\\"m_DisplayName\\\": \\\"A\\\",\\n \\\"m_SlotType\\\": 1,\\n \\\"m_Priority\\\": 2147483647,\\n \\\"m_Hidden\\\": false,\\n \\\"m_ShaderOutputName\\\": \\\"A\\\",\\n \\\"m_ShaderStage\\\": 0,\\n \\\"m_Value\\\": 0.0,\\n \\\"m_DefaultValue\\\": 0.0\\n}\"\n },\n {\n \"typeInfo\": {\n \"fullName\": \"UnityEditor.ShaderGraph.Texture2DInputMaterialSlot\"\n },\n \"JSONnodeData\": \"{\\n \\\"m_Id\\\": 1,\\n \\\"m_DisplayName\\\": \\\"Texture\\\",\\n \\\"m_SlotType\\\": 0,\\n \\\"m_Priority\\\": 2147483647,\\n \\\"m_Hidden\\\": false,\\n \\\"m_ShaderOutputName\\\": \\\"Texture\\\",\\n \\\"m_ShaderStage\\\": 0,\\n \\\"m_Texture\\\": {\\n \\\"m_SerializedTexture\\\": \\\"\\\",\\n \\\"m_Guid\\\": \\\"addeb7d1e8c74f24784429ea02afe53d\\\"\\n }\\n}\"\n },\n {\n \"typeInfo\": {\n \"fullName\": \"UnityEditor.ShaderGraph.UVMaterialSlot\"\n },\n \"JSONnodeData\": \"{\\n \\\"m_Id\\\": 2,\\n \\\"m_DisplayName\\\": \\\"UV\\\",\\n \\\"m_SlotType\\\": 0,\\n \\\"m_Priority\\\": 2147483647,\\n \\\"m_Hidden\\\": false,\\n \\\"m_ShaderOutputName\\\": \\\"UV\\\",\\n \\\"m_ShaderStage\\\": 0,\\n \\\"m_Value\\\": {\\n \\\"x\\\": 0.0,\\n \\\"y\\\": 0.0\\n },\\n \\\"m_DefaultValue\\\": {\\n \\\"x\\\": 0.0,\\n \\\"y\\\": 0.0\\n },\\n \\\"m_Channel\\\": 0\\n}\"\n },\n {\n \"typeInfo\": {\n \"fullName\": \"UnityEditor.ShaderGraph.SamplerStateMaterialSlot\"\n },\n \"JSONnodeData\": \"{\\n \\\"m_Id\\\": 3,\\n \\\"m_DisplayName\\\": \\\"Sampler\\\",\\n \\\"m_SlotType\\\": 0,\\n \\\"m_Priority\\\": 2147483647,\\n \\\"m_Hidden\\\": false,\\n \\\"m_ShaderOutputName\\\": \\\"Sampler\\\",\\n \\\"m_ShaderStage\\\": 0\\n}\"\n }\n ],\n \"m_PreviewExpanded\": true,\n \"m_TextureType\": 0\n}"
+ },
+ {
+ "typeInfo": {
+ "fullName": "UnityEditor.ShaderGraph.SampleTexture2DNode"
+ },
+ "JSONnodeData": "{\n \"m_GuidSerialized\": \"e57b3b7f-e56e-420d-b732-afc7125d91c2\",\n \"m_Name\": \"Sample Texture 2D\",\n \"m_DrawState\": {\n \"m_Expanded\": false,\n \"m_Position\": {\n \"serializedVersion\": \"2\",\n \"x\": -192.04750061035157,\n \"y\": -295.65899658203127,\n \"width\": 143.0,\n \"height\": 76.0\n }\n },\n \"m_SerializableSlots\": [\n {\n \"typeInfo\": {\n \"fullName\": \"UnityEditor.ShaderGraph.Vector4MaterialSlot\"\n },\n \"JSONnodeData\": \"{\\n \\\"m_Id\\\": 0,\\n \\\"m_DisplayName\\\": \\\"RGBA\\\",\\n \\\"m_SlotType\\\": 1,\\n \\\"m_Priority\\\": 2147483647,\\n \\\"m_Hidden\\\": false,\\n \\\"m_ShaderOutputName\\\": \\\"RGBA\\\",\\n \\\"m_ShaderStage\\\": 0,\\n \\\"m_Value\\\": {\\n \\\"x\\\": 0.0,\\n \\\"y\\\": 0.0,\\n \\\"z\\\": 0.0,\\n \\\"w\\\": 0.0\\n },\\n \\\"m_DefaultValue\\\": {\\n \\\"x\\\": 0.0,\\n \\\"y\\\": 0.0,\\n \\\"z\\\": 0.0,\\n \\\"w\\\": 0.0\\n }\\n}\"\n },\n {\n \"typeInfo\": {\n \"fullName\": \"UnityEditor.ShaderGraph.Vector1MaterialSlot\"\n },\n \"JSONnodeData\": \"{\\n \\\"m_Id\\\": 4,\\n \\\"m_DisplayName\\\": \\\"R\\\",\\n \\\"m_SlotType\\\": 1,\\n \\\"m_Priority\\\": 2147483647,\\n \\\"m_Hidden\\\": false,\\n \\\"m_ShaderOutputName\\\": \\\"R\\\",\\n \\\"m_ShaderStage\\\": 0,\\n \\\"m_Value\\\": 0.0,\\n \\\"m_DefaultValue\\\": 0.0\\n}\"\n },\n {\n \"typeInfo\": {\n \"fullName\": \"UnityEditor.ShaderGraph.Vector1MaterialSlot\"\n },\n \"JSONnodeData\": \"{\\n \\\"m_Id\\\": 5,\\n \\\"m_DisplayName\\\": \\\"G\\\",\\n \\\"m_SlotType\\\": 1,\\n \\\"m_Priority\\\": 2147483647,\\n \\\"m_Hidden\\\": false,\\n \\\"m_ShaderOutputName\\\": \\\"G\\\",\\n \\\"m_ShaderStage\\\": 0,\\n \\\"m_Value\\\": 0.0,\\n \\\"m_DefaultValue\\\": 0.0\\n}\"\n },\n {\n \"typeInfo\": {\n \"fullName\": \"UnityEditor.ShaderGraph.Vector1MaterialSlot\"\n },\n \"JSONnodeData\": \"{\\n \\\"m_Id\\\": 6,\\n \\\"m_DisplayName\\\": \\\"B\\\",\\n \\\"m_SlotType\\\": 1,\\n \\\"m_Priority\\\": 2147483647,\\n \\\"m_Hidden\\\": false,\\n \\\"m_ShaderOutputName\\\": \\\"B\\\",\\n \\\"m_ShaderStage\\\": 0,\\n \\\"m_Value\\\": 0.0,\\n \\\"m_DefaultValue\\\": 0.0\\n}\"\n },\n {\n \"typeInfo\": {\n \"fullName\": \"UnityEditor.ShaderGraph.Vector1MaterialSlot\"\n },\n \"JSONnodeData\": \"{\\n \\\"m_Id\\\": 7,\\n \\\"m_DisplayName\\\": \\\"A\\\",\\n \\\"m_SlotType\\\": 1,\\n \\\"m_Priority\\\": 2147483647,\\n \\\"m_Hidden\\\": false,\\n \\\"m_ShaderOutputName\\\": \\\"A\\\",\\n \\\"m_ShaderStage\\\": 0,\\n \\\"m_Value\\\": 0.0,\\n \\\"m_DefaultValue\\\": 0.0\\n}\"\n },\n {\n \"typeInfo\": {\n \"fullName\": \"UnityEditor.ShaderGraph.Texture2DInputMaterialSlot\"\n },\n \"JSONnodeData\": \"{\\n \\\"m_Id\\\": 1,\\n \\\"m_DisplayName\\\": \\\"Texture\\\",\\n \\\"m_SlotType\\\": 0,\\n \\\"m_Priority\\\": 2147483647,\\n \\\"m_Hidden\\\": false,\\n \\\"m_ShaderOutputName\\\": \\\"Texture\\\",\\n \\\"m_ShaderStage\\\": 0,\\n \\\"m_Texture\\\": {\\n \\\"m_SerializedTexture\\\": \\\"\\\",\\n \\\"m_Guid\\\": \\\"305582412258c6a4fb33329850f68028\\\"\\n }\\n}\"\n },\n {\n \"typeInfo\": {\n \"fullName\": \"UnityEditor.ShaderGraph.UVMaterialSlot\"\n },\n \"JSONnodeData\": \"{\\n \\\"m_Id\\\": 2,\\n \\\"m_DisplayName\\\": \\\"UV\\\",\\n \\\"m_SlotType\\\": 0,\\n \\\"m_Priority\\\": 2147483647,\\n \\\"m_Hidden\\\": false,\\n \\\"m_ShaderOutputName\\\": \\\"UV\\\",\\n \\\"m_ShaderStage\\\": 0,\\n \\\"m_Value\\\": {\\n \\\"x\\\": 0.0,\\n \\\"y\\\": 0.0\\n },\\n \\\"m_DefaultValue\\\": {\\n \\\"x\\\": 0.0,\\n \\\"y\\\": 0.0\\n },\\n \\\"m_Channel\\\": 0\\n}\"\n },\n {\n \"typeInfo\": {\n \"fullName\": \"UnityEditor.ShaderGraph.SamplerStateMaterialSlot\"\n },\n \"JSONnodeData\": \"{\\n \\\"m_Id\\\": 3,\\n \\\"m_DisplayName\\\": \\\"Sampler\\\",\\n \\\"m_SlotType\\\": 0,\\n \\\"m_Priority\\\": 2147483647,\\n \\\"m_Hidden\\\": false,\\n \\\"m_ShaderOutputName\\\": \\\"Sampler\\\",\\n \\\"m_ShaderStage\\\": 0\\n}\"\n }\n ],\n \"m_PreviewExpanded\": true,\n \"m_TextureType\": 0\n}"
+ },
+ {
+ "typeInfo": {
+ "fullName": "UnityEditor.ShaderGraph.SampleTexture2DNode"
+ },
+ "JSONnodeData": "{\n \"m_GuidSerialized\": \"ae7db68d-ef16-4ccf-89b8-9b900b587eb6\",\n \"m_Name\": \"Sample Texture 2D\",\n \"m_DrawState\": {\n \"m_Expanded\": false,\n \"m_Position\": {\n \"serializedVersion\": \"2\",\n \"x\": -451.80682373046877,\n \"y\": -419.368408203125,\n \"width\": 208.0,\n \"height\": 310.0\n }\n },\n \"m_SerializableSlots\": [\n {\n \"typeInfo\": {\n \"fullName\": \"UnityEditor.ShaderGraph.Vector4MaterialSlot\"\n },\n \"JSONnodeData\": \"{\\n \\\"m_Id\\\": 0,\\n \\\"m_DisplayName\\\": \\\"RGBA\\\",\\n \\\"m_SlotType\\\": 1,\\n \\\"m_Priority\\\": 2147483647,\\n \\\"m_Hidden\\\": false,\\n \\\"m_ShaderOutputName\\\": \\\"RGBA\\\",\\n \\\"m_ShaderStage\\\": 0,\\n \\\"m_Value\\\": {\\n \\\"x\\\": 0.0,\\n \\\"y\\\": 0.0,\\n \\\"z\\\": 0.0,\\n \\\"w\\\": 0.0\\n },\\n \\\"m_DefaultValue\\\": {\\n \\\"x\\\": 0.0,\\n \\\"y\\\": 0.0,\\n \\\"z\\\": 0.0,\\n \\\"w\\\": 0.0\\n }\\n}\"\n },\n {\n \"typeInfo\": {\n \"fullName\": \"UnityEditor.ShaderGraph.Vector1MaterialSlot\"\n },\n \"JSONnodeData\": \"{\\n \\\"m_Id\\\": 4,\\n \\\"m_DisplayName\\\": \\\"R\\\",\\n \\\"m_SlotType\\\": 1,\\n \\\"m_Priority\\\": 2147483647,\\n \\\"m_Hidden\\\": false,\\n \\\"m_ShaderOutputName\\\": \\\"R\\\",\\n \\\"m_ShaderStage\\\": 0,\\n \\\"m_Value\\\": 0.0,\\n \\\"m_DefaultValue\\\": 0.0\\n}\"\n },\n {\n \"typeInfo\": {\n \"fullName\": \"UnityEditor.ShaderGraph.Vector1MaterialSlot\"\n },\n \"JSONnodeData\": \"{\\n \\\"m_Id\\\": 5,\\n \\\"m_DisplayName\\\": \\\"G\\\",\\n \\\"m_SlotType\\\": 1,\\n \\\"m_Priority\\\": 2147483647,\\n \\\"m_Hidden\\\": false,\\n \\\"m_ShaderOutputName\\\": \\\"G\\\",\\n \\\"m_ShaderStage\\\": 0,\\n \\\"m_Value\\\": 0.0,\\n \\\"m_DefaultValue\\\": 0.0\\n}\"\n },\n {\n \"typeInfo\": {\n \"fullName\": \"UnityEditor.ShaderGraph.Vector1MaterialSlot\"\n },\n \"JSONnodeData\": \"{\\n \\\"m_Id\\\": 6,\\n \\\"m_DisplayName\\\": \\\"B\\\",\\n \\\"m_SlotType\\\": 1,\\n \\\"m_Priority\\\": 2147483647,\\n \\\"m_Hidden\\\": false,\\n \\\"m_ShaderOutputName\\\": \\\"B\\\",\\n \\\"m_ShaderStage\\\": 0,\\n \\\"m_Value\\\": 0.0,\\n \\\"m_DefaultValue\\\": 0.0\\n}\"\n },\n {\n \"typeInfo\": {\n \"fullName\": \"UnityEditor.ShaderGraph.Vector1MaterialSlot\"\n },\n \"JSONnodeData\": \"{\\n \\\"m_Id\\\": 7,\\n \\\"m_DisplayName\\\": \\\"A\\\",\\n \\\"m_SlotType\\\": 1,\\n \\\"m_Priority\\\": 2147483647,\\n \\\"m_Hidden\\\": false,\\n \\\"m_ShaderOutputName\\\": \\\"A\\\",\\n \\\"m_ShaderStage\\\": 0,\\n \\\"m_Value\\\": 0.0,\\n \\\"m_DefaultValue\\\": 0.0\\n}\"\n },\n {\n \"typeInfo\": {\n \"fullName\": \"UnityEditor.ShaderGraph.Texture2DInputMaterialSlot\"\n },\n \"JSONnodeData\": \"{\\n \\\"m_Id\\\": 1,\\n \\\"m_DisplayName\\\": \\\"Texture\\\",\\n \\\"m_SlotType\\\": 0,\\n \\\"m_Priority\\\": 2147483647,\\n \\\"m_Hidden\\\": false,\\n \\\"m_ShaderOutputName\\\": \\\"Texture\\\",\\n \\\"m_ShaderStage\\\": 0,\\n \\\"m_Texture\\\": {\\n \\\"m_SerializedTexture\\\": \\\"\\\",\\n \\\"m_Guid\\\": \\\"d7aef28ced32f4d45875d21a62a50290\\\"\\n }\\n}\"\n },\n {\n \"typeInfo\": {\n \"fullName\": \"UnityEditor.ShaderGraph.UVMaterialSlot\"\n },\n \"JSONnodeData\": \"{\\n \\\"m_Id\\\": 2,\\n \\\"m_DisplayName\\\": \\\"UV\\\",\\n \\\"m_SlotType\\\": 0,\\n \\\"m_Priority\\\": 2147483647,\\n \\\"m_Hidden\\\": false,\\n \\\"m_ShaderOutputName\\\": \\\"UV\\\",\\n \\\"m_ShaderStage\\\": 0,\\n \\\"m_Value\\\": {\\n \\\"x\\\": 0.0,\\n \\\"y\\\": 0.0\\n },\\n \\\"m_DefaultValue\\\": {\\n \\\"x\\\": 0.0,\\n \\\"y\\\": 0.0\\n },\\n \\\"m_Channel\\\": 0\\n}\"\n },\n {\n \"typeInfo\": {\n \"fullName\": \"UnityEditor.ShaderGraph.SamplerStateMaterialSlot\"\n },\n \"JSONnodeData\": \"{\\n \\\"m_Id\\\": 3,\\n \\\"m_DisplayName\\\": \\\"Sampler\\\",\\n \\\"m_SlotType\\\": 0,\\n \\\"m_Priority\\\": 2147483647,\\n \\\"m_Hidden\\\": false,\\n \\\"m_ShaderOutputName\\\": \\\"Sampler\\\",\\n \\\"m_ShaderStage\\\": 0\\n}\"\n }\n ],\n \"m_PreviewExpanded\": true,\n \"m_TextureType\": 1\n}"
+ },
+ {
+ "typeInfo": {
+ "fullName": "UnityEditor.ShaderGraph.SampleTexture2DNode"
+ },
+ "JSONnodeData": "{\n \"m_GuidSerialized\": \"6086ab21-84e7-4ac2-8894-cfc22f90109e\",\n \"m_Name\": \"Sample Texture 2D\",\n \"m_DrawState\": {\n \"m_Expanded\": false,\n \"m_Position\": {\n \"serializedVersion\": \"2\",\n \"x\": -37.10557556152344,\n \"y\": 351.18292236328127,\n \"width\": 208.0,\n \"height\": 278.0\n }\n },\n \"m_SerializableSlots\": [\n {\n \"typeInfo\": {\n \"fullName\": \"UnityEditor.ShaderGraph.Vector4MaterialSlot\"\n },\n \"JSONnodeData\": \"{\\n \\\"m_Id\\\": 0,\\n \\\"m_DisplayName\\\": \\\"RGBA\\\",\\n \\\"m_SlotType\\\": 1,\\n \\\"m_Priority\\\": 2147483647,\\n \\\"m_Hidden\\\": false,\\n \\\"m_ShaderOutputName\\\": \\\"RGBA\\\",\\n \\\"m_ShaderStage\\\": 0,\\n \\\"m_Value\\\": {\\n \\\"x\\\": 0.0,\\n \\\"y\\\": 0.0,\\n \\\"z\\\": 0.0,\\n \\\"w\\\": 0.0\\n },\\n \\\"m_DefaultValue\\\": {\\n \\\"x\\\": 0.0,\\n \\\"y\\\": 0.0,\\n \\\"z\\\": 0.0,\\n \\\"w\\\": 0.0\\n }\\n}\"\n },\n {\n \"typeInfo\": {\n \"fullName\": \"UnityEditor.ShaderGraph.Vector1MaterialSlot\"\n },\n \"JSONnodeData\": \"{\\n \\\"m_Id\\\": 4,\\n \\\"m_DisplayName\\\": \\\"R\\\",\\n \\\"m_SlotType\\\": 1,\\n \\\"m_Priority\\\": 2147483647,\\n \\\"m_Hidden\\\": false,\\n \\\"m_ShaderOutputName\\\": \\\"R\\\",\\n \\\"m_ShaderStage\\\": 0,\\n \\\"m_Value\\\": 0.0,\\n \\\"m_DefaultValue\\\": 0.0\\n}\"\n },\n {\n \"typeInfo\": {\n \"fullName\": \"UnityEditor.ShaderGraph.Vector1MaterialSlot\"\n },\n \"JSONnodeData\": \"{\\n \\\"m_Id\\\": 5,\\n \\\"m_DisplayName\\\": \\\"G\\\",\\n \\\"m_SlotType\\\": 1,\\n \\\"m_Priority\\\": 2147483647,\\n \\\"m_Hidden\\\": false,\\n \\\"m_ShaderOutputName\\\": \\\"G\\\",\\n \\\"m_ShaderStage\\\": 0,\\n \\\"m_Value\\\": 0.0,\\n \\\"m_DefaultValue\\\": 0.0\\n}\"\n },\n {\n \"typeInfo\": {\n \"fullName\": \"UnityEditor.ShaderGraph.Vector1MaterialSlot\"\n },\n \"JSONnodeData\": \"{\\n \\\"m_Id\\\": 6,\\n \\\"m_DisplayName\\\": \\\"B\\\",\\n \\\"m_SlotType\\\": 1,\\n \\\"m_Priority\\\": 2147483647,\\n \\\"m_Hidden\\\": false,\\n \\\"m_ShaderOutputName\\\": \\\"B\\\",\\n \\\"m_ShaderStage\\\": 0,\\n \\\"m_Value\\\": 0.0,\\n \\\"m_DefaultValue\\\": 0.0\\n}\"\n },\n {\n \"typeInfo\": {\n \"fullName\": \"UnityEditor.ShaderGraph.Vector1MaterialSlot\"\n },\n \"JSONnodeData\": \"{\\n \\\"m_Id\\\": 7,\\n \\\"m_DisplayName\\\": \\\"A\\\",\\n \\\"m_SlotType\\\": 1,\\n \\\"m_Priority\\\": 2147483647,\\n \\\"m_Hidden\\\": false,\\n \\\"m_ShaderOutputName\\\": \\\"A\\\",\\n \\\"m_ShaderStage\\\": 0,\\n \\\"m_Value\\\": 0.0,\\n \\\"m_DefaultValue\\\": 0.0\\n}\"\n },\n {\n \"typeInfo\": {\n \"fullName\": \"UnityEditor.ShaderGraph.Texture2DInputMaterialSlot\"\n },\n \"JSONnodeData\": \"{\\n \\\"m_Id\\\": 1,\\n \\\"m_DisplayName\\\": \\\"Texture\\\",\\n \\\"m_SlotType\\\": 0,\\n \\\"m_Priority\\\": 2147483647,\\n \\\"m_Hidden\\\": false,\\n \\\"m_ShaderOutputName\\\": \\\"Texture\\\",\\n \\\"m_ShaderStage\\\": 0,\\n \\\"m_Texture\\\": {\\n \\\"m_SerializedTexture\\\": \\\"\\\",\\n \\\"m_Guid\\\": \\\"b9cbfc15493439f4c9a60a20799bbea4\\\"\\n }\\n}\"\n },\n {\n \"typeInfo\": {\n \"fullName\": \"UnityEditor.ShaderGraph.UVMaterialSlot\"\n },\n \"JSONnodeData\": \"{\\n \\\"m_Id\\\": 2,\\n \\\"m_DisplayName\\\": \\\"UV\\\",\\n \\\"m_SlotType\\\": 0,\\n \\\"m_Priority\\\": 2147483647,\\n \\\"m_Hidden\\\": false,\\n \\\"m_ShaderOutputName\\\": \\\"UV\\\",\\n \\\"m_ShaderStage\\\": 0,\\n \\\"m_Value\\\": {\\n \\\"x\\\": 0.0,\\n \\\"y\\\": 0.0\\n },\\n \\\"m_DefaultValue\\\": {\\n \\\"x\\\": 0.0,\\n \\\"y\\\": 0.0\\n },\\n \\\"m_Channel\\\": 0\\n}\"\n },\n {\n \"typeInfo\": {\n \"fullName\": \"UnityEditor.ShaderGraph.SamplerStateMaterialSlot\"\n },\n \"JSONnodeData\": \"{\\n \\\"m_Id\\\": 3,\\n \\\"m_DisplayName\\\": \\\"Sampler\\\",\\n \\\"m_SlotType\\\": 0,\\n \\\"m_Priority\\\": 2147483647,\\n \\\"m_Hidden\\\": false,\\n \\\"m_ShaderOutputName\\\": \\\"Sampler\\\",\\n \\\"m_ShaderStage\\\": 0\\n}\"\n }\n ],\n \"m_PreviewExpanded\": true,\n \"m_TextureType\": 0\n}"
+ }
+ ],
+ "m_SerializableEdges": [
+ {
+ "typeInfo": {
+ "fullName": "UnityEditor.Graphing.Edge"
+ },
+ "JSONnodeData": "{\n \"m_OutputSlot\": {\n \"m_SlotId\": 0,\n \"m_NodeGUIDSerialized\": \"e57b3b7f-e56e-420d-b732-afc7125d91c2\"\n },\n \"m_InputSlot\": {\n \"m_SlotId\": 0,\n \"m_NodeGUIDSerialized\": \"a39c0ca8-8a67-4f96-af03-c495b67f9808\"\n }\n}"
+ },
+ {
+ "typeInfo": {
+ "fullName": "UnityEditor.Graphing.Edge"
+ },
+ "JSONnodeData": "{\n \"m_OutputSlot\": {\n \"m_SlotId\": 0,\n \"m_NodeGUIDSerialized\": \"ae7db68d-ef16-4ccf-89b8-9b900b587eb6\"\n },\n \"m_InputSlot\": {\n \"m_SlotId\": 1,\n \"m_NodeGUIDSerialized\": \"a39c0ca8-8a67-4f96-af03-c495b67f9808\"\n }\n}"
+ },
+ {
+ "typeInfo": {
+ "fullName": "UnityEditor.Graphing.Edge"
+ },
+ "JSONnodeData": "{\n \"m_OutputSlot\": {\n \"m_SlotId\": 0,\n \"m_NodeGUIDSerialized\": \"3ec7ed53-039b-4471-a2b3-26b71911b0c8\"\n },\n \"m_InputSlot\": {\n \"m_SlotId\": 6,\n \"m_NodeGUIDSerialized\": \"a39c0ca8-8a67-4f96-af03-c495b67f9808\"\n }\n}"
+ }
+ ],
+ "m_PreviewData": {
+ "serializedMesh": {
+ "m_SerializedMesh": "",
+ "m_Guid": "c8574dba2fc61b843b90393d20a8927c"
+ }
+ }
+}
\ No newline at end of file
diff --git a/JoystickVisualizer/Assets/Materials/Black Plastic.ShaderGraph.meta b/JoystickVisualizer/Assets/Materials/Black Plastic.ShaderGraph.meta
new file mode 100644
index 0000000..b9a2bb2
--- /dev/null
+++ b/JoystickVisualizer/Assets/Materials/Black Plastic.ShaderGraph.meta
@@ -0,0 +1,10 @@
+fileFormatVersion: 2
+guid: 1a289178ac4e90f4aa5dce4cedb9a74c
+ScriptedImporter:
+ fileIDToRecycleName:
+ 4800000: MainAsset
+ externalObjects: {}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
+ script: {fileID: 11500000, guid: 625f186215c104763be7675aa2d941aa, type: 3}
diff --git a/JoystickVisualizer/Assets/Materials/Black Plastic.mat b/JoystickVisualizer/Assets/Materials/Black Plastic.mat
index d438e7a..fd77031 100644
Binary files a/JoystickVisualizer/Assets/Materials/Black Plastic.mat and b/JoystickVisualizer/Assets/Materials/Black Plastic.mat differ
diff --git a/JoystickVisualizer/Assets/Materials/Blue Plastic.ShaderGraph b/JoystickVisualizer/Assets/Materials/Blue Plastic.ShaderGraph
new file mode 100644
index 0000000..05a297c
--- /dev/null
+++ b/JoystickVisualizer/Assets/Materials/Blue Plastic.ShaderGraph
@@ -0,0 +1,12 @@
+{
+ "m_SerializableNodes": [
+ {
+ "typeInfo": {
+ "fullName": "UnityEditor.ShaderGraph.PBRMasterNode"
+ },
+ "JSONnodeData": "{\n \"m_GuidSerialized\": \"961926f7-790c-4cac-a8c8-0a8932e9b0ae\",\n \"m_Name\": \"PBR Master\",\n \"m_DrawState\": {\n \"m_Expanded\": true,\n \"m_Position\": {\n \"serializedVersion\": \"2\",\n \"x\": 0.0,\n \"y\": 0.0,\n \"width\": 0.0,\n \"height\": 0.0\n }\n },\n \"m_SerializableSlots\": [\n {\n \"typeInfo\": {\n \"fullName\": \"UnityEditor.ShaderGraph.ColorRGBMaterialSlot\"\n },\n \"JSONnodeData\": \"{\\n \\\"m_Id\\\": 0,\\n \\\"m_DisplayName\\\": \\\"Albedo\\\",\\n \\\"m_SlotType\\\": 0,\\n \\\"m_Priority\\\": 2147483647,\\n \\\"m_Hidden\\\": false,\\n \\\"m_ShaderOutputName\\\": \\\"Albedo\\\",\\n \\\"m_ShaderStage\\\": 2,\\n \\\"m_Value\\\": {\\n \\\"x\\\": 0.10345719754695893,\\n \\\"y\\\": 0.06657174229621887,\\n \\\"z\\\": 0.8301886916160584\\n },\\n \\\"m_DefaultValue\\\": {\\n \\\"x\\\": 0.0,\\n \\\"y\\\": 0.0,\\n \\\"z\\\": 0.0\\n }\\n}\"\n },\n {\n \"typeInfo\": {\n \"fullName\": \"UnityEditor.ShaderGraph.Vector3MaterialSlot\"\n },\n \"JSONnodeData\": \"{\\n \\\"m_Id\\\": 1,\\n \\\"m_DisplayName\\\": \\\"Normal\\\",\\n \\\"m_SlotType\\\": 0,\\n \\\"m_Priority\\\": 2147483647,\\n \\\"m_Hidden\\\": false,\\n \\\"m_ShaderOutputName\\\": \\\"Normal\\\",\\n \\\"m_ShaderStage\\\": 2,\\n \\\"m_Value\\\": {\\n \\\"x\\\": 0.0,\\n \\\"y\\\": 0.0,\\n \\\"z\\\": 1.0\\n },\\n \\\"m_DefaultValue\\\": {\\n \\\"x\\\": 0.0,\\n \\\"y\\\": 0.0,\\n \\\"z\\\": 0.0\\n }\\n}\"\n },\n {\n \"typeInfo\": {\n \"fullName\": \"UnityEditor.ShaderGraph.ColorRGBMaterialSlot\"\n },\n \"JSONnodeData\": \"{\\n \\\"m_Id\\\": 4,\\n \\\"m_DisplayName\\\": \\\"Emission\\\",\\n \\\"m_SlotType\\\": 0,\\n \\\"m_Priority\\\": 2147483647,\\n \\\"m_Hidden\\\": false,\\n \\\"m_ShaderOutputName\\\": \\\"Emission\\\",\\n \\\"m_ShaderStage\\\": 2,\\n \\\"m_Value\\\": {\\n \\\"x\\\": 0.0,\\n \\\"y\\\": 0.0,\\n \\\"z\\\": 0.0\\n },\\n \\\"m_DefaultValue\\\": {\\n \\\"x\\\": 0.0,\\n \\\"y\\\": 0.0,\\n \\\"z\\\": 0.0\\n }\\n}\"\n },\n {\n \"typeInfo\": {\n \"fullName\": \"UnityEditor.ShaderGraph.Vector1MaterialSlot\"\n },\n \"JSONnodeData\": \"{\\n \\\"m_Id\\\": 2,\\n \\\"m_DisplayName\\\": \\\"Metallic\\\",\\n \\\"m_SlotType\\\": 0,\\n \\\"m_Priority\\\": 2147483647,\\n \\\"m_Hidden\\\": false,\\n \\\"m_ShaderOutputName\\\": \\\"Metallic\\\",\\n \\\"m_ShaderStage\\\": 2,\\n \\\"m_Value\\\": 0.0,\\n \\\"m_DefaultValue\\\": 0.0\\n}\"\n },\n {\n \"typeInfo\": {\n \"fullName\": \"UnityEditor.ShaderGraph.Vector1MaterialSlot\"\n },\n \"JSONnodeData\": \"{\\n \\\"m_Id\\\": 5,\\n \\\"m_DisplayName\\\": \\\"Smoothness\\\",\\n \\\"m_SlotType\\\": 0,\\n \\\"m_Priority\\\": 2147483647,\\n \\\"m_Hidden\\\": false,\\n \\\"m_ShaderOutputName\\\": \\\"Smoothness\\\",\\n \\\"m_ShaderStage\\\": 2,\\n \\\"m_Value\\\": 0.5,\\n \\\"m_DefaultValue\\\": 0.5\\n}\"\n },\n {\n \"typeInfo\": {\n \"fullName\": \"UnityEditor.ShaderGraph.Vector1MaterialSlot\"\n },\n \"JSONnodeData\": \"{\\n \\\"m_Id\\\": 6,\\n \\\"m_DisplayName\\\": \\\"Occlusion\\\",\\n \\\"m_SlotType\\\": 0,\\n \\\"m_Priority\\\": 2147483647,\\n \\\"m_Hidden\\\": false,\\n \\\"m_ShaderOutputName\\\": \\\"Occlusion\\\",\\n \\\"m_ShaderStage\\\": 2,\\n \\\"m_Value\\\": 1.0,\\n \\\"m_DefaultValue\\\": 1.0\\n}\"\n },\n {\n \"typeInfo\": {\n \"fullName\": \"UnityEditor.ShaderGraph.Vector1MaterialSlot\"\n },\n \"JSONnodeData\": \"{\\n \\\"m_Id\\\": 7,\\n \\\"m_DisplayName\\\": \\\"Alpha\\\",\\n \\\"m_SlotType\\\": 0,\\n \\\"m_Priority\\\": 2147483647,\\n \\\"m_Hidden\\\": false,\\n \\\"m_ShaderOutputName\\\": \\\"Alpha\\\",\\n \\\"m_ShaderStage\\\": 2,\\n \\\"m_Value\\\": 1.0,\\n \\\"m_DefaultValue\\\": 1.0\\n}\"\n }\n ],\n \"m_PreviewExpanded\": true,\n \"m_MaterialOptions\": {\n \"m_SrcBlend\": 0,\n \"m_DstBlend\": 1,\n \"m_CullMode\": 0,\n \"m_ZTest\": 2,\n \"m_ZWrite\": 0,\n \"m_RenderQueue\": 1,\n \"m_RenderType\": 0,\n \"m_LOD\": 200\n },\n \"m_Model\": 1,\n \"m_AlphaMode\": 0\n}"
+ }
+ ],
+ "m_SerializableEdges": [],
+ "m_SerializedProperties": []
+}
\ No newline at end of file
diff --git a/JoystickVisualizer/Assets/Materials/Blue Plastic.ShaderGraph.meta b/JoystickVisualizer/Assets/Materials/Blue Plastic.ShaderGraph.meta
new file mode 100644
index 0000000..66bb0df
--- /dev/null
+++ b/JoystickVisualizer/Assets/Materials/Blue Plastic.ShaderGraph.meta
@@ -0,0 +1,10 @@
+fileFormatVersion: 2
+guid: b3dc495bc7747934c8224365293840fc
+ScriptedImporter:
+ fileIDToRecycleName:
+ 4800000: MainAsset
+ externalObjects: {}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
+ script: {fileID: 11500000, guid: 625f186215c104763be7675aa2d941aa, type: 3}
diff --git a/JoystickVisualizer/Assets/Materials/Blue Plastic.mat b/JoystickVisualizer/Assets/Materials/Blue Plastic.mat
index 2807449..527c315 100644
Binary files a/JoystickVisualizer/Assets/Materials/Blue Plastic.mat and b/JoystickVisualizer/Assets/Materials/Blue Plastic.mat differ
diff --git a/JoystickVisualizer/Assets/Materials/Brushed Metal.ShaderGraph b/JoystickVisualizer/Assets/Materials/Brushed Metal.ShaderGraph
new file mode 100644
index 0000000..4852a67
--- /dev/null
+++ b/JoystickVisualizer/Assets/Materials/Brushed Metal.ShaderGraph
@@ -0,0 +1,58 @@
+{
+ "m_SerializedProperties": [],
+ "m_GUID": {
+ "m_GuidSerialized": "e93466a5-b95d-4086-83d5-ca3fb44dd959"
+ },
+ "m_SerializableNodes": [
+ {
+ "typeInfo": {
+ "fullName": "UnityEditor.ShaderGraph.SampleTexture2DNode"
+ },
+ "JSONnodeData": "{\n \"m_GuidSerialized\": \"43bf5098-e3a4-472f-8306-4434d520ba56\",\n \"m_Name\": \"Sample Texture 2D\",\n \"m_DrawState\": {\n \"m_Expanded\": true,\n \"m_Position\": {\n \"serializedVersion\": \"2\",\n \"x\": -455.1174621582031,\n \"y\": 318.86492919921877,\n \"width\": 208.0,\n \"height\": 407.0\n }\n },\n \"m_SerializableSlots\": [\n {\n \"typeInfo\": {\n \"fullName\": \"UnityEditor.ShaderGraph.Vector4MaterialSlot\"\n },\n \"JSONnodeData\": \"{\\n \\\"m_Id\\\": 0,\\n \\\"m_DisplayName\\\": \\\"RGBA\\\",\\n \\\"m_SlotType\\\": 1,\\n \\\"m_Priority\\\": 2147483647,\\n \\\"m_Hidden\\\": false,\\n \\\"m_ShaderOutputName\\\": \\\"RGBA\\\",\\n \\\"m_ShaderStage\\\": 0,\\n \\\"m_Value\\\": {\\n \\\"x\\\": 0.0,\\n \\\"y\\\": 0.0,\\n \\\"z\\\": 0.0,\\n \\\"w\\\": 0.0\\n },\\n \\\"m_DefaultValue\\\": {\\n \\\"x\\\": 0.0,\\n \\\"y\\\": 0.0,\\n \\\"z\\\": 0.0,\\n \\\"w\\\": 0.0\\n }\\n}\"\n },\n {\n \"typeInfo\": {\n \"fullName\": \"UnityEditor.ShaderGraph.Vector1MaterialSlot\"\n },\n \"JSONnodeData\": \"{\\n \\\"m_Id\\\": 4,\\n \\\"m_DisplayName\\\": \\\"R\\\",\\n \\\"m_SlotType\\\": 1,\\n \\\"m_Priority\\\": 2147483647,\\n \\\"m_Hidden\\\": false,\\n \\\"m_ShaderOutputName\\\": \\\"R\\\",\\n \\\"m_ShaderStage\\\": 0,\\n \\\"m_Value\\\": 0.0,\\n \\\"m_DefaultValue\\\": 0.0\\n}\"\n },\n {\n \"typeInfo\": {\n \"fullName\": \"UnityEditor.ShaderGraph.Vector1MaterialSlot\"\n },\n \"JSONnodeData\": \"{\\n \\\"m_Id\\\": 5,\\n \\\"m_DisplayName\\\": \\\"G\\\",\\n \\\"m_SlotType\\\": 1,\\n \\\"m_Priority\\\": 2147483647,\\n \\\"m_Hidden\\\": false,\\n \\\"m_ShaderOutputName\\\": \\\"G\\\",\\n \\\"m_ShaderStage\\\": 0,\\n \\\"m_Value\\\": 0.0,\\n \\\"m_DefaultValue\\\": 0.0\\n}\"\n },\n {\n \"typeInfo\": {\n \"fullName\": \"UnityEditor.ShaderGraph.Vector1MaterialSlot\"\n },\n \"JSONnodeData\": \"{\\n \\\"m_Id\\\": 6,\\n \\\"m_DisplayName\\\": \\\"B\\\",\\n \\\"m_SlotType\\\": 1,\\n \\\"m_Priority\\\": 2147483647,\\n \\\"m_Hidden\\\": false,\\n \\\"m_ShaderOutputName\\\": \\\"B\\\",\\n \\\"m_ShaderStage\\\": 0,\\n \\\"m_Value\\\": 0.0,\\n \\\"m_DefaultValue\\\": 0.0\\n}\"\n },\n {\n \"typeInfo\": {\n \"fullName\": \"UnityEditor.ShaderGraph.Vector1MaterialSlot\"\n },\n \"JSONnodeData\": \"{\\n \\\"m_Id\\\": 7,\\n \\\"m_DisplayName\\\": \\\"A\\\",\\n \\\"m_SlotType\\\": 1,\\n \\\"m_Priority\\\": 2147483647,\\n \\\"m_Hidden\\\": false,\\n \\\"m_ShaderOutputName\\\": \\\"A\\\",\\n \\\"m_ShaderStage\\\": 0,\\n \\\"m_Value\\\": 0.0,\\n \\\"m_DefaultValue\\\": 0.0\\n}\"\n },\n {\n \"typeInfo\": {\n \"fullName\": \"UnityEditor.ShaderGraph.Texture2DInputMaterialSlot\"\n },\n \"JSONnodeData\": \"{\\n \\\"m_Id\\\": 1,\\n \\\"m_DisplayName\\\": \\\"Texture\\\",\\n \\\"m_SlotType\\\": 0,\\n \\\"m_Priority\\\": 2147483647,\\n \\\"m_Hidden\\\": false,\\n \\\"m_ShaderOutputName\\\": \\\"Texture\\\",\\n \\\"m_ShaderStage\\\": 0,\\n \\\"m_Texture\\\": {\\n \\\"m_SerializedTexture\\\": \\\"\\\",\\n \\\"m_Guid\\\": \\\"531ae62a2e07e464d89245112b4774d4\\\"\\n }\\n}\"\n },\n {\n \"typeInfo\": {\n \"fullName\": \"UnityEditor.ShaderGraph.UVMaterialSlot\"\n },\n \"JSONnodeData\": \"{\\n \\\"m_Id\\\": 2,\\n \\\"m_DisplayName\\\": \\\"UV\\\",\\n \\\"m_SlotType\\\": 0,\\n \\\"m_Priority\\\": 2147483647,\\n \\\"m_Hidden\\\": false,\\n \\\"m_ShaderOutputName\\\": \\\"UV\\\",\\n \\\"m_ShaderStage\\\": 0,\\n \\\"m_Value\\\": {\\n \\\"x\\\": 0.0,\\n \\\"y\\\": 0.0\\n },\\n \\\"m_DefaultValue\\\": {\\n \\\"x\\\": 0.0,\\n \\\"y\\\": 0.0\\n },\\n \\\"m_Channel\\\": 0\\n}\"\n },\n {\n \"typeInfo\": {\n \"fullName\": \"UnityEditor.ShaderGraph.SamplerStateMaterialSlot\"\n },\n \"JSONnodeData\": \"{\\n \\\"m_Id\\\": 3,\\n \\\"m_DisplayName\\\": \\\"Sampler\\\",\\n \\\"m_SlotType\\\": 0,\\n \\\"m_Priority\\\": 2147483647,\\n \\\"m_Hidden\\\": false,\\n \\\"m_ShaderOutputName\\\": \\\"Sampler\\\",\\n \\\"m_ShaderStage\\\": 0\\n}\"\n }\n ],\n \"m_PreviewExpanded\": true,\n \"m_TextureType\": 0\n}"
+ },
+ {
+ "typeInfo": {
+ "fullName": "UnityEditor.ShaderGraph.RemapNode"
+ },
+ "JSONnodeData": "{\n \"m_GuidSerialized\": \"3126a9eb-dcef-485e-88c1-ff8eec353d7b\",\n \"m_Name\": \"Remap\",\n \"m_DrawState\": {\n \"m_Expanded\": true,\n \"m_Position\": {\n \"serializedVersion\": \"2\",\n \"x\": -61.71746063232422,\n \"y\": 315.16497802734377,\n \"width\": 208.0,\n \"height\": 326.0\n }\n },\n \"m_SerializableSlots\": [\n {\n \"typeInfo\": {\n \"fullName\": \"UnityEditor.ShaderGraph.DynamicVectorMaterialSlot\"\n },\n \"JSONnodeData\": \"{\\n \\\"m_Id\\\": 0,\\n \\\"m_DisplayName\\\": \\\"In\\\",\\n \\\"m_SlotType\\\": 0,\\n \\\"m_Priority\\\": 2147483647,\\n \\\"m_Hidden\\\": false,\\n \\\"m_ShaderOutputName\\\": \\\"In\\\",\\n \\\"m_ShaderStage\\\": 0,\\n \\\"m_Value\\\": {\\n \\\"x\\\": -1.0,\\n \\\"y\\\": -1.0,\\n \\\"z\\\": -1.0,\\n \\\"w\\\": -1.0\\n },\\n \\\"m_DefaultValue\\\": {\\n \\\"x\\\": 0.0,\\n \\\"y\\\": 0.0,\\n \\\"z\\\": 0.0,\\n \\\"w\\\": 0.0\\n }\\n}\"\n },\n {\n \"typeInfo\": {\n \"fullName\": \"UnityEditor.ShaderGraph.Vector2MaterialSlot\"\n },\n \"JSONnodeData\": \"{\\n \\\"m_Id\\\": 1,\\n \\\"m_DisplayName\\\": \\\"In Min Max\\\",\\n \\\"m_SlotType\\\": 0,\\n \\\"m_Priority\\\": 2147483647,\\n \\\"m_Hidden\\\": false,\\n \\\"m_ShaderOutputName\\\": \\\"InMinMax\\\",\\n \\\"m_ShaderStage\\\": 0,\\n \\\"m_Value\\\": {\\n \\\"x\\\": 0.0,\\n \\\"y\\\": 1.0\\n },\\n \\\"m_DefaultValue\\\": {\\n \\\"x\\\": 0.0,\\n \\\"y\\\": 0.0\\n }\\n}\"\n },\n {\n \"typeInfo\": {\n \"fullName\": \"UnityEditor.ShaderGraph.Vector2MaterialSlot\"\n },\n \"JSONnodeData\": \"{\\n \\\"m_Id\\\": 2,\\n \\\"m_DisplayName\\\": \\\"Out Min Max\\\",\\n \\\"m_SlotType\\\": 0,\\n \\\"m_Priority\\\": 2147483647,\\n \\\"m_Hidden\\\": false,\\n \\\"m_ShaderOutputName\\\": \\\"OutMinMax\\\",\\n \\\"m_ShaderStage\\\": 0,\\n \\\"m_Value\\\": {\\n \\\"x\\\": 1.0,\\n \\\"y\\\": 0.0\\n },\\n \\\"m_DefaultValue\\\": {\\n \\\"x\\\": 0.0,\\n \\\"y\\\": 0.0\\n }\\n}\"\n },\n {\n \"typeInfo\": {\n \"fullName\": \"UnityEditor.ShaderGraph.DynamicVectorMaterialSlot\"\n },\n \"JSONnodeData\": \"{\\n \\\"m_Id\\\": 3,\\n \\\"m_DisplayName\\\": \\\"Out\\\",\\n \\\"m_SlotType\\\": 1,\\n \\\"m_Priority\\\": 2147483647,\\n \\\"m_Hidden\\\": false,\\n \\\"m_ShaderOutputName\\\": \\\"Out\\\",\\n \\\"m_ShaderStage\\\": 0,\\n \\\"m_Value\\\": {\\n \\\"x\\\": 0.0,\\n \\\"y\\\": 0.0,\\n \\\"z\\\": 0.0,\\n \\\"w\\\": 0.0\\n },\\n \\\"m_DefaultValue\\\": {\\n \\\"x\\\": 0.0,\\n \\\"y\\\": 0.0,\\n \\\"z\\\": 0.0,\\n \\\"w\\\": 0.0\\n }\\n}\"\n }\n ],\n \"m_PreviewExpanded\": true\n}"
+ },
+ {
+ "typeInfo": {
+ "fullName": "UnityEditor.ShaderGraph.SampleTexture2DNode"
+ },
+ "JSONnodeData": "{\n \"m_GuidSerialized\": \"f65b32c2-0f07-44bb-be97-525b9fb8e564\",\n \"m_Name\": \"Sample Texture 2D\",\n \"m_DrawState\": {\n \"m_Expanded\": true,\n \"m_Position\": {\n \"serializedVersion\": \"2\",\n \"x\": -204.76739501953126,\n \"y\": -367.2130432128906,\n \"width\": 208.0,\n \"height\": 407.0\n }\n },\n \"m_SerializableSlots\": [\n {\n \"typeInfo\": {\n \"fullName\": \"UnityEditor.ShaderGraph.Vector4MaterialSlot\"\n },\n \"JSONnodeData\": \"{\\n \\\"m_Id\\\": 0,\\n \\\"m_DisplayName\\\": \\\"RGBA\\\",\\n \\\"m_SlotType\\\": 1,\\n \\\"m_Priority\\\": 2147483647,\\n \\\"m_Hidden\\\": false,\\n \\\"m_ShaderOutputName\\\": \\\"RGBA\\\",\\n \\\"m_ShaderStage\\\": 0,\\n \\\"m_Value\\\": {\\n \\\"x\\\": 0.0,\\n \\\"y\\\": 0.0,\\n \\\"z\\\": 0.0,\\n \\\"w\\\": 0.0\\n },\\n \\\"m_DefaultValue\\\": {\\n \\\"x\\\": 0.0,\\n \\\"y\\\": 0.0,\\n \\\"z\\\": 0.0,\\n \\\"w\\\": 0.0\\n }\\n}\"\n },\n {\n \"typeInfo\": {\n \"fullName\": \"UnityEditor.ShaderGraph.Vector1MaterialSlot\"\n },\n \"JSONnodeData\": \"{\\n \\\"m_Id\\\": 4,\\n \\\"m_DisplayName\\\": \\\"R\\\",\\n \\\"m_SlotType\\\": 1,\\n \\\"m_Priority\\\": 2147483647,\\n \\\"m_Hidden\\\": false,\\n \\\"m_ShaderOutputName\\\": \\\"R\\\",\\n \\\"m_ShaderStage\\\": 0,\\n \\\"m_Value\\\": 0.0,\\n \\\"m_DefaultValue\\\": 0.0\\n}\"\n },\n {\n \"typeInfo\": {\n \"fullName\": \"UnityEditor.ShaderGraph.Vector1MaterialSlot\"\n },\n \"JSONnodeData\": \"{\\n \\\"m_Id\\\": 5,\\n \\\"m_DisplayName\\\": \\\"G\\\",\\n \\\"m_SlotType\\\": 1,\\n \\\"m_Priority\\\": 2147483647,\\n \\\"m_Hidden\\\": false,\\n \\\"m_ShaderOutputName\\\": \\\"G\\\",\\n \\\"m_ShaderStage\\\": 0,\\n \\\"m_Value\\\": 0.0,\\n \\\"m_DefaultValue\\\": 0.0\\n}\"\n },\n {\n \"typeInfo\": {\n \"fullName\": \"UnityEditor.ShaderGraph.Vector1MaterialSlot\"\n },\n \"JSONnodeData\": \"{\\n \\\"m_Id\\\": 6,\\n \\\"m_DisplayName\\\": \\\"B\\\",\\n \\\"m_SlotType\\\": 1,\\n \\\"m_Priority\\\": 2147483647,\\n \\\"m_Hidden\\\": false,\\n \\\"m_ShaderOutputName\\\": \\\"B\\\",\\n \\\"m_ShaderStage\\\": 0,\\n \\\"m_Value\\\": 0.0,\\n \\\"m_DefaultValue\\\": 0.0\\n}\"\n },\n {\n \"typeInfo\": {\n \"fullName\": \"UnityEditor.ShaderGraph.Vector1MaterialSlot\"\n },\n \"JSONnodeData\": \"{\\n \\\"m_Id\\\": 7,\\n \\\"m_DisplayName\\\": \\\"A\\\",\\n \\\"m_SlotType\\\": 1,\\n \\\"m_Priority\\\": 2147483647,\\n \\\"m_Hidden\\\": false,\\n \\\"m_ShaderOutputName\\\": \\\"A\\\",\\n \\\"m_ShaderStage\\\": 0,\\n \\\"m_Value\\\": 0.0,\\n \\\"m_DefaultValue\\\": 0.0\\n}\"\n },\n {\n \"typeInfo\": {\n \"fullName\": \"UnityEditor.ShaderGraph.Texture2DInputMaterialSlot\"\n },\n \"JSONnodeData\": \"{\\n \\\"m_Id\\\": 1,\\n \\\"m_DisplayName\\\": \\\"Texture\\\",\\n \\\"m_SlotType\\\": 0,\\n \\\"m_Priority\\\": 2147483647,\\n \\\"m_Hidden\\\": false,\\n \\\"m_ShaderOutputName\\\": \\\"Texture\\\",\\n \\\"m_ShaderStage\\\": 0,\\n \\\"m_Texture\\\": {\\n \\\"m_SerializedTexture\\\": \\\"\\\",\\n \\\"m_Guid\\\": \\\"5fb519ac0a84af74b97dcd47ac9cc6d5\\\"\\n }\\n}\"\n },\n {\n \"typeInfo\": {\n \"fullName\": \"UnityEditor.ShaderGraph.UVMaterialSlot\"\n },\n \"JSONnodeData\": \"{\\n \\\"m_Id\\\": 2,\\n \\\"m_DisplayName\\\": \\\"UV\\\",\\n \\\"m_SlotType\\\": 0,\\n \\\"m_Priority\\\": 2147483647,\\n \\\"m_Hidden\\\": false,\\n \\\"m_ShaderOutputName\\\": \\\"UV\\\",\\n \\\"m_ShaderStage\\\": 0,\\n \\\"m_Value\\\": {\\n \\\"x\\\": 0.0,\\n \\\"y\\\": 0.0\\n },\\n \\\"m_DefaultValue\\\": {\\n \\\"x\\\": 0.0,\\n \\\"y\\\": 0.0\\n },\\n \\\"m_Channel\\\": 0\\n}\"\n },\n {\n \"typeInfo\": {\n \"fullName\": \"UnityEditor.ShaderGraph.SamplerStateMaterialSlot\"\n },\n \"JSONnodeData\": \"{\\n \\\"m_Id\\\": 3,\\n \\\"m_DisplayName\\\": \\\"Sampler\\\",\\n \\\"m_SlotType\\\": 0,\\n \\\"m_Priority\\\": 2147483647,\\n \\\"m_Hidden\\\": false,\\n \\\"m_ShaderOutputName\\\": \\\"Sampler\\\",\\n \\\"m_ShaderStage\\\": 0\\n}\"\n }\n ],\n \"m_PreviewExpanded\": true,\n \"m_TextureType\": 0\n}"
+ },
+ {
+ "typeInfo": {
+ "fullName": "UnityEditor.ShaderGraph.PBRMasterNode"
+ },
+ "JSONnodeData": "{\n \"m_GuidSerialized\": \"8aea11a4-d77e-4212-b779-0cf31e7c4518\",\n \"m_Name\": \"PBR Master\",\n \"m_DrawState\": {\n \"m_Expanded\": true,\n \"m_Position\": {\n \"serializedVersion\": \"2\",\n \"x\": 302.874755859375,\n \"y\": -69.16700744628906,\n \"width\": 208.0,\n \"height\": 550.0\n }\n },\n \"m_SerializableSlots\": [\n {\n \"typeInfo\": {\n \"fullName\": \"UnityEditor.ShaderGraph.ColorRGBMaterialSlot\"\n },\n \"JSONnodeData\": \"{\\n \\\"m_Id\\\": 0,\\n \\\"m_DisplayName\\\": \\\"Albedo\\\",\\n \\\"m_SlotType\\\": 0,\\n \\\"m_Priority\\\": 2147483647,\\n \\\"m_Hidden\\\": false,\\n \\\"m_ShaderOutputName\\\": \\\"Albedo\\\",\\n \\\"m_ShaderStage\\\": 2,\\n \\\"m_Value\\\": {\\n \\\"x\\\": 0.5,\\n \\\"y\\\": 0.5,\\n \\\"z\\\": 0.5\\n },\\n \\\"m_DefaultValue\\\": {\\n \\\"x\\\": 0.0,\\n \\\"y\\\": 0.0,\\n \\\"z\\\": 0.0\\n }\\n}\"\n },\n {\n \"typeInfo\": {\n \"fullName\": \"UnityEditor.ShaderGraph.NormalMaterialSlot\"\n },\n \"JSONnodeData\": \"{\\n \\\"m_Id\\\": 1,\\n \\\"m_DisplayName\\\": \\\"Normal\\\",\\n \\\"m_SlotType\\\": 0,\\n \\\"m_Priority\\\": 2147483647,\\n \\\"m_Hidden\\\": false,\\n \\\"m_ShaderOutputName\\\": \\\"Normal\\\",\\n \\\"m_ShaderStage\\\": 2,\\n \\\"m_Value\\\": {\\n \\\"x\\\": 0.0,\\n \\\"y\\\": 0.0,\\n \\\"z\\\": 0.0\\n },\\n \\\"m_DefaultValue\\\": {\\n \\\"x\\\": 0.0,\\n \\\"y\\\": 0.0,\\n \\\"z\\\": 0.0\\n },\\n \\\"m_Space\\\": 3\\n}\"\n },\n {\n \"typeInfo\": {\n \"fullName\": \"UnityEditor.ShaderGraph.ColorRGBMaterialSlot\"\n },\n \"JSONnodeData\": \"{\\n \\\"m_Id\\\": 4,\\n \\\"m_DisplayName\\\": \\\"Emission\\\",\\n \\\"m_SlotType\\\": 0,\\n \\\"m_Priority\\\": 2147483647,\\n \\\"m_Hidden\\\": false,\\n \\\"m_ShaderOutputName\\\": \\\"Emission\\\",\\n \\\"m_ShaderStage\\\": 2,\\n \\\"m_Value\\\": {\\n \\\"x\\\": 0.0,\\n \\\"y\\\": 0.0,\\n \\\"z\\\": 0.0\\n },\\n \\\"m_DefaultValue\\\": {\\n \\\"x\\\": 0.0,\\n \\\"y\\\": 0.0,\\n \\\"z\\\": 0.0\\n }\\n}\"\n },\n {\n \"typeInfo\": {\n \"fullName\": \"UnityEditor.ShaderGraph.Vector1MaterialSlot\"\n },\n \"JSONnodeData\": \"{\\n \\\"m_Id\\\": 2,\\n \\\"m_DisplayName\\\": \\\"Metallic\\\",\\n \\\"m_SlotType\\\": 0,\\n \\\"m_Priority\\\": 2147483647,\\n \\\"m_Hidden\\\": false,\\n \\\"m_ShaderOutputName\\\": \\\"Metallic\\\",\\n \\\"m_ShaderStage\\\": 2,\\n \\\"m_Value\\\": 0.5600000023841858,\\n \\\"m_DefaultValue\\\": 0.0\\n}\"\n },\n {\n \"typeInfo\": {\n \"fullName\": \"UnityEditor.ShaderGraph.Vector1MaterialSlot\"\n },\n \"JSONnodeData\": \"{\\n \\\"m_Id\\\": 5,\\n \\\"m_DisplayName\\\": \\\"Smoothness\\\",\\n \\\"m_SlotType\\\": 0,\\n \\\"m_Priority\\\": 2147483647,\\n \\\"m_Hidden\\\": false,\\n \\\"m_ShaderOutputName\\\": \\\"Smoothness\\\",\\n \\\"m_ShaderStage\\\": 2,\\n \\\"m_Value\\\": 0.5,\\n \\\"m_DefaultValue\\\": 0.5\\n}\"\n },\n {\n \"typeInfo\": {\n \"fullName\": \"UnityEditor.ShaderGraph.Vector1MaterialSlot\"\n },\n \"JSONnodeData\": \"{\\n \\\"m_Id\\\": 6,\\n \\\"m_DisplayName\\\": \\\"Occlusion\\\",\\n \\\"m_SlotType\\\": 0,\\n \\\"m_Priority\\\": 2147483647,\\n \\\"m_Hidden\\\": false,\\n \\\"m_ShaderOutputName\\\": \\\"Occlusion\\\",\\n \\\"m_ShaderStage\\\": 2,\\n \\\"m_Value\\\": 1.0,\\n \\\"m_DefaultValue\\\": 1.0\\n}\"\n },\n {\n \"typeInfo\": {\n \"fullName\": \"UnityEditor.ShaderGraph.Vector1MaterialSlot\"\n },\n \"JSONnodeData\": \"{\\n \\\"m_Id\\\": 7,\\n \\\"m_DisplayName\\\": \\\"Alpha\\\",\\n \\\"m_SlotType\\\": 0,\\n \\\"m_Priority\\\": 2147483647,\\n \\\"m_Hidden\\\": false,\\n \\\"m_ShaderOutputName\\\": \\\"Alpha\\\",\\n \\\"m_ShaderStage\\\": 2,\\n \\\"m_Value\\\": 1.0,\\n \\\"m_DefaultValue\\\": 1.0\\n}\"\n },\n {\n \"typeInfo\": {\n \"fullName\": \"UnityEditor.ShaderGraph.Vector1MaterialSlot\"\n },\n \"JSONnodeData\": \"{\\n \\\"m_Id\\\": 8,\\n \\\"m_DisplayName\\\": \\\"AlphaClipThreshold\\\",\\n \\\"m_SlotType\\\": 0,\\n \\\"m_Priority\\\": 2147483647,\\n \\\"m_Hidden\\\": false,\\n \\\"m_ShaderOutputName\\\": \\\"AlphaClipThreshold\\\",\\n \\\"m_ShaderStage\\\": 2,\\n \\\"m_Value\\\": 0.0,\\n \\\"m_DefaultValue\\\": 0.0\\n}\"\n }\n ],\n \"m_PreviewExpanded\": true,\n \"m_SerializableSubShaders\": [\n {\n \"typeInfo\": {\n \"fullName\": \"UnityEditor.Experimental.Rendering.LightweightPipeline.LightWeightPBRSubShader\"\n },\n \"JSONnodeData\": \"{}\"\n }\n ],\n \"m_Model\": 1,\n \"m_SurfaceType\": 0,\n \"m_AlphaMode\": 0,\n \"m_TwoSided\": false\n}"
+ }
+ ],
+ "m_SerializableEdges": [
+ {
+ "typeInfo": {
+ "fullName": "UnityEditor.Graphing.Edge"
+ },
+ "JSONnodeData": "{\n \"m_OutputSlot\": {\n \"m_SlotId\": 0,\n \"m_NodeGUIDSerialized\": \"f65b32c2-0f07-44bb-be97-525b9fb8e564\"\n },\n \"m_InputSlot\": {\n \"m_SlotId\": 1,\n \"m_NodeGUIDSerialized\": \"8aea11a4-d77e-4212-b779-0cf31e7c4518\"\n }\n}"
+ },
+ {
+ "typeInfo": {
+ "fullName": "UnityEditor.Graphing.Edge"
+ },
+ "JSONnodeData": "{\n \"m_OutputSlot\": {\n \"m_SlotId\": 0,\n \"m_NodeGUIDSerialized\": \"43bf5098-e3a4-472f-8306-4434d520ba56\"\n },\n \"m_InputSlot\": {\n \"m_SlotId\": 0,\n \"m_NodeGUIDSerialized\": \"3126a9eb-dcef-485e-88c1-ff8eec353d7b\"\n }\n}"
+ },
+ {
+ "typeInfo": {
+ "fullName": "UnityEditor.Graphing.Edge"
+ },
+ "JSONnodeData": "{\n \"m_OutputSlot\": {\n \"m_SlotId\": 3,\n \"m_NodeGUIDSerialized\": \"3126a9eb-dcef-485e-88c1-ff8eec353d7b\"\n },\n \"m_InputSlot\": {\n \"m_SlotId\": 5,\n \"m_NodeGUIDSerialized\": \"8aea11a4-d77e-4212-b779-0cf31e7c4518\"\n }\n}"
+ }
+ ],
+ "m_PreviewData": {
+ "serializedMesh": {
+ "m_SerializedMesh": "",
+ "m_Guid": ""
+ }
+ }
+}
\ No newline at end of file
diff --git a/JoystickVisualizer/Assets/Materials/Brushed Metal.ShaderGraph.meta b/JoystickVisualizer/Assets/Materials/Brushed Metal.ShaderGraph.meta
new file mode 100644
index 0000000..33be7cc
--- /dev/null
+++ b/JoystickVisualizer/Assets/Materials/Brushed Metal.ShaderGraph.meta
@@ -0,0 +1,10 @@
+fileFormatVersion: 2
+guid: e4bd9c9031072e64aa8f7bc5e5cfe0b2
+ScriptedImporter:
+ fileIDToRecycleName:
+ 4800000: MainAsset
+ externalObjects: {}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
+ script: {fileID: 11500000, guid: 625f186215c104763be7675aa2d941aa, type: 3}
diff --git a/JoystickVisualizer/Assets/Materials/Brushed Metal.mat b/JoystickVisualizer/Assets/Materials/Brushed Metal.mat
index abc09b4..9083b58 100644
Binary files a/JoystickVisualizer/Assets/Materials/Brushed Metal.mat and b/JoystickVisualizer/Assets/Materials/Brushed Metal.mat differ
diff --git a/JoystickVisualizer/Assets/Materials/Grey Plastic.ShaderGraph b/JoystickVisualizer/Assets/Materials/Grey Plastic.ShaderGraph
new file mode 100644
index 0000000..80cff46
--- /dev/null
+++ b/JoystickVisualizer/Assets/Materials/Grey Plastic.ShaderGraph
@@ -0,0 +1,49 @@
+{
+ "m_SerializableNodes": [
+ {
+ "typeInfo": {
+ "fullName": "UnityEditor.ShaderGraph.PBRMasterNode"
+ },
+ "JSONnodeData": "{\n \"m_GuidSerialized\": \"ff2e6f1d-e54c-4f7a-887b-eadc059557c7\",\n \"m_Name\": \"PBR Master\",\n \"m_DrawState\": {\n \"m_Expanded\": true,\n \"m_Position\": {\n \"serializedVersion\": \"2\",\n \"x\": 173.0,\n \"y\": 28.0,\n \"width\": 208.0,\n \"height\": 479.0\n }\n },\n \"m_SerializableSlots\": [\n {\n \"typeInfo\": {\n \"fullName\": \"UnityEditor.ShaderGraph.ColorRGBMaterialSlot\"\n },\n \"JSONnodeData\": \"{\\n \\\"m_Id\\\": 0,\\n \\\"m_DisplayName\\\": \\\"Albedo\\\",\\n \\\"m_SlotType\\\": 0,\\n \\\"m_Priority\\\": 2147483647,\\n \\\"m_Hidden\\\": false,\\n \\\"m_ShaderOutputName\\\": \\\"Albedo\\\",\\n \\\"m_ShaderStage\\\": 2,\\n \\\"m_Value\\\": {\\n \\\"x\\\": 0.5,\\n \\\"y\\\": 0.5,\\n \\\"z\\\": 0.5\\n },\\n \\\"m_DefaultValue\\\": {\\n \\\"x\\\": 0.0,\\n \\\"y\\\": 0.0,\\n \\\"z\\\": 0.0\\n }\\n}\"\n },\n {\n \"typeInfo\": {\n \"fullName\": \"UnityEditor.ShaderGraph.Vector3MaterialSlot\"\n },\n \"JSONnodeData\": \"{\\n \\\"m_Id\\\": 1,\\n \\\"m_DisplayName\\\": \\\"Normal\\\",\\n \\\"m_SlotType\\\": 0,\\n \\\"m_Priority\\\": 2147483647,\\n \\\"m_Hidden\\\": false,\\n \\\"m_ShaderOutputName\\\": \\\"Normal\\\",\\n \\\"m_ShaderStage\\\": 2,\\n \\\"m_Value\\\": {\\n \\\"x\\\": 0.0,\\n \\\"y\\\": 0.0,\\n \\\"z\\\": 1.0\\n },\\n \\\"m_DefaultValue\\\": {\\n \\\"x\\\": 0.0,\\n \\\"y\\\": 0.0,\\n \\\"z\\\": 0.0\\n }\\n}\"\n },\n {\n \"typeInfo\": {\n \"fullName\": \"UnityEditor.ShaderGraph.ColorRGBMaterialSlot\"\n },\n \"JSONnodeData\": \"{\\n \\\"m_Id\\\": 4,\\n \\\"m_DisplayName\\\": \\\"Emission\\\",\\n \\\"m_SlotType\\\": 0,\\n \\\"m_Priority\\\": 2147483647,\\n \\\"m_Hidden\\\": false,\\n \\\"m_ShaderOutputName\\\": \\\"Emission\\\",\\n \\\"m_ShaderStage\\\": 2,\\n \\\"m_Value\\\": {\\n \\\"x\\\": 0.0,\\n \\\"y\\\": 0.0,\\n \\\"z\\\": 0.0\\n },\\n \\\"m_DefaultValue\\\": {\\n \\\"x\\\": 0.0,\\n \\\"y\\\": 0.0,\\n \\\"z\\\": 0.0\\n }\\n}\"\n },\n {\n \"typeInfo\": {\n \"fullName\": \"UnityEditor.ShaderGraph.Vector1MaterialSlot\"\n },\n \"JSONnodeData\": \"{\\n \\\"m_Id\\\": 2,\\n \\\"m_DisplayName\\\": \\\"Metallic\\\",\\n \\\"m_SlotType\\\": 0,\\n \\\"m_Priority\\\": 2147483647,\\n \\\"m_Hidden\\\": false,\\n \\\"m_ShaderOutputName\\\": \\\"Metallic\\\",\\n \\\"m_ShaderStage\\\": 2,\\n \\\"m_Value\\\": 0.0,\\n \\\"m_DefaultValue\\\": 0.0\\n}\"\n },\n {\n \"typeInfo\": {\n \"fullName\": \"UnityEditor.ShaderGraph.Vector1MaterialSlot\"\n },\n \"JSONnodeData\": \"{\\n \\\"m_Id\\\": 5,\\n \\\"m_DisplayName\\\": \\\"Smoothness\\\",\\n \\\"m_SlotType\\\": 0,\\n \\\"m_Priority\\\": 2147483647,\\n \\\"m_Hidden\\\": false,\\n \\\"m_ShaderOutputName\\\": \\\"Smoothness\\\",\\n \\\"m_ShaderStage\\\": 2,\\n \\\"m_Value\\\": 0.5,\\n \\\"m_DefaultValue\\\": 0.5\\n}\"\n },\n {\n \"typeInfo\": {\n \"fullName\": \"UnityEditor.ShaderGraph.Vector1MaterialSlot\"\n },\n \"JSONnodeData\": \"{\\n \\\"m_Id\\\": 6,\\n \\\"m_DisplayName\\\": \\\"Occlusion\\\",\\n \\\"m_SlotType\\\": 0,\\n \\\"m_Priority\\\": 2147483647,\\n \\\"m_Hidden\\\": false,\\n \\\"m_ShaderOutputName\\\": \\\"Occlusion\\\",\\n \\\"m_ShaderStage\\\": 2,\\n \\\"m_Value\\\": 1.0,\\n \\\"m_DefaultValue\\\": 1.0\\n}\"\n },\n {\n \"typeInfo\": {\n \"fullName\": \"UnityEditor.ShaderGraph.Vector1MaterialSlot\"\n },\n \"JSONnodeData\": \"{\\n \\\"m_Id\\\": 7,\\n \\\"m_DisplayName\\\": \\\"Alpha\\\",\\n \\\"m_SlotType\\\": 0,\\n \\\"m_Priority\\\": 2147483647,\\n \\\"m_Hidden\\\": false,\\n \\\"m_ShaderOutputName\\\": \\\"Alpha\\\",\\n \\\"m_ShaderStage\\\": 2,\\n \\\"m_Value\\\": 1.0,\\n \\\"m_DefaultValue\\\": 1.0\\n}\"\n }\n ],\n \"m_PreviewExpanded\": true,\n \"m_MaterialOptions\": {\n \"m_SrcBlend\": 0,\n \"m_DstBlend\": 1,\n \"m_CullMode\": 0,\n \"m_ZTest\": 2,\n \"m_ZWrite\": 0,\n \"m_RenderQueue\": 1,\n \"m_RenderType\": 0,\n \"m_LOD\": 200\n },\n \"m_Model\": 1,\n \"m_AlphaMode\": 0\n}"
+ },
+ {
+ "typeInfo": {
+ "fullName": "UnityEditor.ShaderGraph.SampleTexture2DNode"
+ },
+ "JSONnodeData": "{\n \"m_GuidSerialized\": \"6db7725c-9045-4c5c-b4d5-259301f1f3a1\",\n \"m_Name\": \"Sample Texture 2D\",\n \"m_DrawState\": {\n \"m_Expanded\": false,\n \"m_Position\": {\n \"serializedVersion\": \"2\",\n \"x\": -199.3800048828125,\n \"y\": 206.0,\n \"width\": 143.0,\n \"height\": 77.0\n }\n },\n \"m_SerializableSlots\": [\n {\n \"typeInfo\": {\n \"fullName\": \"UnityEditor.ShaderGraph.Vector4MaterialSlot\"\n },\n \"JSONnodeData\": \"{\\n \\\"m_Id\\\": 0,\\n \\\"m_DisplayName\\\": \\\"RGBA\\\",\\n \\\"m_SlotType\\\": 1,\\n \\\"m_Priority\\\": 2147483647,\\n \\\"m_Hidden\\\": false,\\n \\\"m_ShaderOutputName\\\": \\\"RGBA\\\",\\n \\\"m_ShaderStage\\\": 0,\\n \\\"m_Value\\\": {\\n \\\"x\\\": 0.0,\\n \\\"y\\\": 0.0,\\n \\\"z\\\": 0.0,\\n \\\"w\\\": 0.0\\n },\\n \\\"m_DefaultValue\\\": {\\n \\\"x\\\": 0.0,\\n \\\"y\\\": 0.0,\\n \\\"z\\\": 0.0,\\n \\\"w\\\": 0.0\\n }\\n}\"\n },\n {\n \"typeInfo\": {\n \"fullName\": \"UnityEditor.ShaderGraph.Vector1MaterialSlot\"\n },\n \"JSONnodeData\": \"{\\n \\\"m_Id\\\": 4,\\n \\\"m_DisplayName\\\": \\\"R\\\",\\n \\\"m_SlotType\\\": 1,\\n \\\"m_Priority\\\": 2147483647,\\n \\\"m_Hidden\\\": false,\\n \\\"m_ShaderOutputName\\\": \\\"R\\\",\\n \\\"m_ShaderStage\\\": 0,\\n \\\"m_Value\\\": 0.0,\\n \\\"m_DefaultValue\\\": 0.0\\n}\"\n },\n {\n \"typeInfo\": {\n \"fullName\": \"UnityEditor.ShaderGraph.Vector1MaterialSlot\"\n },\n \"JSONnodeData\": \"{\\n \\\"m_Id\\\": 5,\\n \\\"m_DisplayName\\\": \\\"G\\\",\\n \\\"m_SlotType\\\": 1,\\n \\\"m_Priority\\\": 2147483647,\\n \\\"m_Hidden\\\": false,\\n \\\"m_ShaderOutputName\\\": \\\"G\\\",\\n \\\"m_ShaderStage\\\": 0,\\n \\\"m_Value\\\": 0.0,\\n \\\"m_DefaultValue\\\": 0.0\\n}\"\n },\n {\n \"typeInfo\": {\n \"fullName\": \"UnityEditor.ShaderGraph.Vector1MaterialSlot\"\n },\n \"JSONnodeData\": \"{\\n \\\"m_Id\\\": 6,\\n \\\"m_DisplayName\\\": \\\"B\\\",\\n \\\"m_SlotType\\\": 1,\\n \\\"m_Priority\\\": 2147483647,\\n \\\"m_Hidden\\\": false,\\n \\\"m_ShaderOutputName\\\": \\\"B\\\",\\n \\\"m_ShaderStage\\\": 0,\\n \\\"m_Value\\\": 0.0,\\n \\\"m_DefaultValue\\\": 0.0\\n}\"\n },\n {\n \"typeInfo\": {\n \"fullName\": \"UnityEditor.ShaderGraph.Vector1MaterialSlot\"\n },\n \"JSONnodeData\": \"{\\n \\\"m_Id\\\": 7,\\n \\\"m_DisplayName\\\": \\\"A\\\",\\n \\\"m_SlotType\\\": 1,\\n \\\"m_Priority\\\": 2147483647,\\n \\\"m_Hidden\\\": false,\\n \\\"m_ShaderOutputName\\\": \\\"A\\\",\\n \\\"m_ShaderStage\\\": 0,\\n \\\"m_Value\\\": 0.0,\\n \\\"m_DefaultValue\\\": 0.0\\n}\"\n },\n {\n \"typeInfo\": {\n \"fullName\": \"UnityEditor.ShaderGraph.Texture2DInputMaterialSlot\"\n },\n \"JSONnodeData\": \"{\\n \\\"m_Id\\\": 1,\\n \\\"m_DisplayName\\\": \\\"Tex\\\",\\n \\\"m_SlotType\\\": 0,\\n \\\"m_Priority\\\": 2147483647,\\n \\\"m_Hidden\\\": false,\\n \\\"m_ShaderOutputName\\\": \\\"Tex\\\",\\n \\\"m_ShaderStage\\\": 0,\\n \\\"m_Texture\\\": {\\n \\\"m_SerializedTexture\\\": \\\"{\\\\n \\\\\\\"texture\\\\\\\": {\\\\n \\\\\\\"fileID\\\\\\\": 2800000,\\\\n \\\\\\\"guid\\\\\\\": \\\\\\\"addeb7d1e8c74f24784429ea02afe53d\\\\\\\",\\\\n \\\\\\\"type\\\\\\\": 3\\\\n }\\\\n}\\\"\\n }\\n}\"\n },\n {\n \"typeInfo\": {\n \"fullName\": \"UnityEditor.ShaderGraph.UVMaterialSlot\"\n },\n \"JSONnodeData\": \"{\\n \\\"m_Id\\\": 2,\\n \\\"m_DisplayName\\\": \\\"UV\\\",\\n \\\"m_SlotType\\\": 0,\\n \\\"m_Priority\\\": 2147483647,\\n \\\"m_Hidden\\\": false,\\n \\\"m_ShaderOutputName\\\": \\\"UV\\\",\\n \\\"m_ShaderStage\\\": 0,\\n \\\"m_Value\\\": {\\n \\\"x\\\": 0.0,\\n \\\"y\\\": 0.0\\n },\\n \\\"m_DefaultValue\\\": {\\n \\\"x\\\": 0.0,\\n \\\"y\\\": 0.0\\n }\\n}\"\n },\n {\n \"typeInfo\": {\n \"fullName\": \"UnityEditor.ShaderGraph.SamplerStateMaterialSlot\"\n },\n \"JSONnodeData\": \"{\\n \\\"m_Id\\\": 3,\\n \\\"m_DisplayName\\\": \\\"Sampler\\\",\\n \\\"m_SlotType\\\": 0,\\n \\\"m_Priority\\\": 2147483647,\\n \\\"m_Hidden\\\": false,\\n \\\"m_ShaderOutputName\\\": \\\"Sampler\\\",\\n \\\"m_ShaderStage\\\": 0\\n}\"\n }\n ],\n \"m_PreviewExpanded\": true,\n \"m_TextureType\": 0\n}"
+ },
+ {
+ "typeInfo": {
+ "fullName": "UnityEditor.ShaderGraph.SampleTexture2DNode"
+ },
+ "JSONnodeData": "{\n \"m_GuidSerialized\": \"c9d88b36-d5a6-4abb-ba47-8f3bc108556c\",\n \"m_Name\": \"Sample Texture 2D\",\n \"m_DrawState\": {\n \"m_Expanded\": false,\n \"m_Position\": {\n \"serializedVersion\": \"2\",\n \"x\": -206.3800048828125,\n \"y\": 34.0,\n \"width\": 143.0,\n \"height\": 77.0\n }\n },\n \"m_SerializableSlots\": [\n {\n \"typeInfo\": {\n \"fullName\": \"UnityEditor.ShaderGraph.Vector4MaterialSlot\"\n },\n \"JSONnodeData\": \"{\\n \\\"m_Id\\\": 0,\\n \\\"m_DisplayName\\\": \\\"RGBA\\\",\\n \\\"m_SlotType\\\": 1,\\n \\\"m_Priority\\\": 2147483647,\\n \\\"m_Hidden\\\": false,\\n \\\"m_ShaderOutputName\\\": \\\"RGBA\\\",\\n \\\"m_ShaderStage\\\": 0,\\n \\\"m_Value\\\": {\\n \\\"x\\\": 0.0,\\n \\\"y\\\": 0.0,\\n \\\"z\\\": 0.0,\\n \\\"w\\\": 0.0\\n },\\n \\\"m_DefaultValue\\\": {\\n \\\"x\\\": 0.0,\\n \\\"y\\\": 0.0,\\n \\\"z\\\": 0.0,\\n \\\"w\\\": 0.0\\n }\\n}\"\n },\n {\n \"typeInfo\": {\n \"fullName\": \"UnityEditor.ShaderGraph.Vector1MaterialSlot\"\n },\n \"JSONnodeData\": \"{\\n \\\"m_Id\\\": 4,\\n \\\"m_DisplayName\\\": \\\"R\\\",\\n \\\"m_SlotType\\\": 1,\\n \\\"m_Priority\\\": 2147483647,\\n \\\"m_Hidden\\\": false,\\n \\\"m_ShaderOutputName\\\": \\\"R\\\",\\n \\\"m_ShaderStage\\\": 0,\\n \\\"m_Value\\\": 0.0,\\n \\\"m_DefaultValue\\\": 0.0\\n}\"\n },\n {\n \"typeInfo\": {\n \"fullName\": \"UnityEditor.ShaderGraph.Vector1MaterialSlot\"\n },\n \"JSONnodeData\": \"{\\n \\\"m_Id\\\": 5,\\n \\\"m_DisplayName\\\": \\\"G\\\",\\n \\\"m_SlotType\\\": 1,\\n \\\"m_Priority\\\": 2147483647,\\n \\\"m_Hidden\\\": false,\\n \\\"m_ShaderOutputName\\\": \\\"G\\\",\\n \\\"m_ShaderStage\\\": 0,\\n \\\"m_Value\\\": 0.0,\\n \\\"m_DefaultValue\\\": 0.0\\n}\"\n },\n {\n \"typeInfo\": {\n \"fullName\": \"UnityEditor.ShaderGraph.Vector1MaterialSlot\"\n },\n \"JSONnodeData\": \"{\\n \\\"m_Id\\\": 6,\\n \\\"m_DisplayName\\\": \\\"B\\\",\\n \\\"m_SlotType\\\": 1,\\n \\\"m_Priority\\\": 2147483647,\\n \\\"m_Hidden\\\": false,\\n \\\"m_ShaderOutputName\\\": \\\"B\\\",\\n \\\"m_ShaderStage\\\": 0,\\n \\\"m_Value\\\": 0.0,\\n \\\"m_DefaultValue\\\": 0.0\\n}\"\n },\n {\n \"typeInfo\": {\n \"fullName\": \"UnityEditor.ShaderGraph.Vector1MaterialSlot\"\n },\n \"JSONnodeData\": \"{\\n \\\"m_Id\\\": 7,\\n \\\"m_DisplayName\\\": \\\"A\\\",\\n \\\"m_SlotType\\\": 1,\\n \\\"m_Priority\\\": 2147483647,\\n \\\"m_Hidden\\\": false,\\n \\\"m_ShaderOutputName\\\": \\\"A\\\",\\n \\\"m_ShaderStage\\\": 0,\\n \\\"m_Value\\\": 0.0,\\n \\\"m_DefaultValue\\\": 0.0\\n}\"\n },\n {\n \"typeInfo\": {\n \"fullName\": \"UnityEditor.ShaderGraph.Texture2DInputMaterialSlot\"\n },\n \"JSONnodeData\": \"{\\n \\\"m_Id\\\": 1,\\n \\\"m_DisplayName\\\": \\\"Tex\\\",\\n \\\"m_SlotType\\\": 0,\\n \\\"m_Priority\\\": 2147483647,\\n \\\"m_Hidden\\\": false,\\n \\\"m_ShaderOutputName\\\": \\\"Tex\\\",\\n \\\"m_ShaderStage\\\": 0,\\n \\\"m_Texture\\\": {\\n \\\"m_SerializedTexture\\\": \\\"{\\\\n \\\\\\\"texture\\\\\\\": {\\\\n \\\\\\\"fileID\\\\\\\": 2800000,\\\\n \\\\\\\"guid\\\\\\\": \\\\\\\"06172de8d962e124cb019893c0c5dfd8\\\\\\\",\\\\n \\\\\\\"type\\\\\\\": 3\\\\n }\\\\n}\\\"\\n }\\n}\"\n },\n {\n \"typeInfo\": {\n \"fullName\": \"UnityEditor.ShaderGraph.UVMaterialSlot\"\n },\n \"JSONnodeData\": \"{\\n \\\"m_Id\\\": 2,\\n \\\"m_DisplayName\\\": \\\"UV\\\",\\n \\\"m_SlotType\\\": 0,\\n \\\"m_Priority\\\": 2147483647,\\n \\\"m_Hidden\\\": false,\\n \\\"m_ShaderOutputName\\\": \\\"UV\\\",\\n \\\"m_ShaderStage\\\": 0,\\n \\\"m_Value\\\": {\\n \\\"x\\\": 0.0,\\n \\\"y\\\": 0.0\\n },\\n \\\"m_DefaultValue\\\": {\\n \\\"x\\\": 0.0,\\n \\\"y\\\": 0.0\\n }\\n}\"\n },\n {\n \"typeInfo\": {\n \"fullName\": \"UnityEditor.ShaderGraph.SamplerStateMaterialSlot\"\n },\n \"JSONnodeData\": \"{\\n \\\"m_Id\\\": 3,\\n \\\"m_DisplayName\\\": \\\"Sampler\\\",\\n \\\"m_SlotType\\\": 0,\\n \\\"m_Priority\\\": 2147483647,\\n \\\"m_Hidden\\\": false,\\n \\\"m_ShaderOutputName\\\": \\\"Sampler\\\",\\n \\\"m_ShaderStage\\\": 0\\n}\"\n }\n ],\n \"m_PreviewExpanded\": true,\n \"m_TextureType\": 0\n}"
+ },
+ {
+ "typeInfo": {
+ "fullName": "UnityEditor.ShaderGraph.SampleTexture2DNode"
+ },
+ "JSONnodeData": "{\n \"m_GuidSerialized\": \"602b4526-4629-4573-a255-2bb8e2ad88d7\",\n \"m_Name\": \"Sample Texture 2D\",\n \"m_DrawState\": {\n \"m_Expanded\": false,\n \"m_Position\": {\n \"serializedVersion\": \"2\",\n \"x\": -200.3800048828125,\n \"y\": 116.0,\n \"width\": 143.0,\n \"height\": 77.0\n }\n },\n \"m_SerializableSlots\": [\n {\n \"typeInfo\": {\n \"fullName\": \"UnityEditor.ShaderGraph.Vector4MaterialSlot\"\n },\n \"JSONnodeData\": \"{\\n \\\"m_Id\\\": 0,\\n \\\"m_DisplayName\\\": \\\"RGBA\\\",\\n \\\"m_SlotType\\\": 1,\\n \\\"m_Priority\\\": 2147483647,\\n \\\"m_Hidden\\\": false,\\n \\\"m_ShaderOutputName\\\": \\\"RGBA\\\",\\n \\\"m_ShaderStage\\\": 0,\\n \\\"m_Value\\\": {\\n \\\"x\\\": 0.0,\\n \\\"y\\\": 0.0,\\n \\\"z\\\": 0.0,\\n \\\"w\\\": 0.0\\n },\\n \\\"m_DefaultValue\\\": {\\n \\\"x\\\": 0.0,\\n \\\"y\\\": 0.0,\\n \\\"z\\\": 0.0,\\n \\\"w\\\": 0.0\\n }\\n}\"\n },\n {\n \"typeInfo\": {\n \"fullName\": \"UnityEditor.ShaderGraph.Vector1MaterialSlot\"\n },\n \"JSONnodeData\": \"{\\n \\\"m_Id\\\": 4,\\n \\\"m_DisplayName\\\": \\\"R\\\",\\n \\\"m_SlotType\\\": 1,\\n \\\"m_Priority\\\": 2147483647,\\n \\\"m_Hidden\\\": false,\\n \\\"m_ShaderOutputName\\\": \\\"R\\\",\\n \\\"m_ShaderStage\\\": 0,\\n \\\"m_Value\\\": 0.0,\\n \\\"m_DefaultValue\\\": 0.0\\n}\"\n },\n {\n \"typeInfo\": {\n \"fullName\": \"UnityEditor.ShaderGraph.Vector1MaterialSlot\"\n },\n \"JSONnodeData\": \"{\\n \\\"m_Id\\\": 5,\\n \\\"m_DisplayName\\\": \\\"G\\\",\\n \\\"m_SlotType\\\": 1,\\n \\\"m_Priority\\\": 2147483647,\\n \\\"m_Hidden\\\": false,\\n \\\"m_ShaderOutputName\\\": \\\"G\\\",\\n \\\"m_ShaderStage\\\": 0,\\n \\\"m_Value\\\": 0.0,\\n \\\"m_DefaultValue\\\": 0.0\\n}\"\n },\n {\n \"typeInfo\": {\n \"fullName\": \"UnityEditor.ShaderGraph.Vector1MaterialSlot\"\n },\n \"JSONnodeData\": \"{\\n \\\"m_Id\\\": 6,\\n \\\"m_DisplayName\\\": \\\"B\\\",\\n \\\"m_SlotType\\\": 1,\\n \\\"m_Priority\\\": 2147483647,\\n \\\"m_Hidden\\\": false,\\n \\\"m_ShaderOutputName\\\": \\\"B\\\",\\n \\\"m_ShaderStage\\\": 0,\\n \\\"m_Value\\\": 0.0,\\n \\\"m_DefaultValue\\\": 0.0\\n}\"\n },\n {\n \"typeInfo\": {\n \"fullName\": \"UnityEditor.ShaderGraph.Vector1MaterialSlot\"\n },\n \"JSONnodeData\": \"{\\n \\\"m_Id\\\": 7,\\n \\\"m_DisplayName\\\": \\\"A\\\",\\n \\\"m_SlotType\\\": 1,\\n \\\"m_Priority\\\": 2147483647,\\n \\\"m_Hidden\\\": false,\\n \\\"m_ShaderOutputName\\\": \\\"A\\\",\\n \\\"m_ShaderStage\\\": 0,\\n \\\"m_Value\\\": 0.0,\\n \\\"m_DefaultValue\\\": 0.0\\n}\"\n },\n {\n \"typeInfo\": {\n \"fullName\": \"UnityEditor.ShaderGraph.Texture2DInputMaterialSlot\"\n },\n \"JSONnodeData\": \"{\\n \\\"m_Id\\\": 1,\\n \\\"m_DisplayName\\\": \\\"Tex\\\",\\n \\\"m_SlotType\\\": 0,\\n \\\"m_Priority\\\": 2147483647,\\n \\\"m_Hidden\\\": false,\\n \\\"m_ShaderOutputName\\\": \\\"Tex\\\",\\n \\\"m_ShaderStage\\\": 0,\\n \\\"m_Texture\\\": {\\n \\\"m_SerializedTexture\\\": \\\"{\\\\n \\\\\\\"texture\\\\\\\": {\\\\n \\\\\\\"fileID\\\\\\\": 2800000,\\\\n \\\\\\\"guid\\\\\\\": \\\\\\\"d7aef28ced32f4d45875d21a62a50290\\\\\\\",\\\\n \\\\\\\"type\\\\\\\": 3\\\\n }\\\\n}\\\"\\n }\\n}\"\n },\n {\n \"typeInfo\": {\n \"fullName\": \"UnityEditor.ShaderGraph.UVMaterialSlot\"\n },\n \"JSONnodeData\": \"{\\n \\\"m_Id\\\": 2,\\n \\\"m_DisplayName\\\": \\\"UV\\\",\\n \\\"m_SlotType\\\": 0,\\n \\\"m_Priority\\\": 2147483647,\\n \\\"m_Hidden\\\": false,\\n \\\"m_ShaderOutputName\\\": \\\"UV\\\",\\n \\\"m_ShaderStage\\\": 0,\\n \\\"m_Value\\\": {\\n \\\"x\\\": 0.0,\\n \\\"y\\\": 0.0\\n },\\n \\\"m_DefaultValue\\\": {\\n \\\"x\\\": 0.0,\\n \\\"y\\\": 0.0\\n }\\n}\"\n },\n {\n \"typeInfo\": {\n \"fullName\": \"UnityEditor.ShaderGraph.SamplerStateMaterialSlot\"\n },\n \"JSONnodeData\": \"{\\n \\\"m_Id\\\": 3,\\n \\\"m_DisplayName\\\": \\\"Sampler\\\",\\n \\\"m_SlotType\\\": 0,\\n \\\"m_Priority\\\": 2147483647,\\n \\\"m_Hidden\\\": false,\\n \\\"m_ShaderOutputName\\\": \\\"Sampler\\\",\\n \\\"m_ShaderStage\\\": 0\\n}\"\n }\n ],\n \"m_PreviewExpanded\": true,\n \"m_TextureType\": 1\n}"
+ }
+ ],
+ "m_SerializableEdges": [
+ {
+ "typeInfo": {
+ "fullName": "UnityEditor.Graphing.Edge"
+ },
+ "JSONnodeData": "{\n \"m_OutputSlot\": {\n \"m_SlotId\": 0,\n \"m_NodeGUIDSerialized\": \"6db7725c-9045-4c5c-b4d5-259301f1f3a1\"\n },\n \"m_InputSlot\": {\n \"m_SlotId\": 6,\n \"m_NodeGUIDSerialized\": \"ff2e6f1d-e54c-4f7a-887b-eadc059557c7\"\n }\n}"
+ },
+ {
+ "typeInfo": {
+ "fullName": "UnityEditor.Graphing.Edge"
+ },
+ "JSONnodeData": "{\n \"m_OutputSlot\": {\n \"m_SlotId\": 0,\n \"m_NodeGUIDSerialized\": \"c9d88b36-d5a6-4abb-ba47-8f3bc108556c\"\n },\n \"m_InputSlot\": {\n \"m_SlotId\": 0,\n \"m_NodeGUIDSerialized\": \"ff2e6f1d-e54c-4f7a-887b-eadc059557c7\"\n }\n}"
+ },
+ {
+ "typeInfo": {
+ "fullName": "UnityEditor.Graphing.Edge"
+ },
+ "JSONnodeData": "{\n \"m_OutputSlot\": {\n \"m_SlotId\": 0,\n \"m_NodeGUIDSerialized\": \"602b4526-4629-4573-a255-2bb8e2ad88d7\"\n },\n \"m_InputSlot\": {\n \"m_SlotId\": 1,\n \"m_NodeGUIDSerialized\": \"ff2e6f1d-e54c-4f7a-887b-eadc059557c7\"\n }\n}"
+ }
+ ],
+ "m_SerializedProperties": []
+}
\ No newline at end of file
diff --git a/JoystickVisualizer/Assets/Materials/Grey Plastic.ShaderGraph.meta b/JoystickVisualizer/Assets/Materials/Grey Plastic.ShaderGraph.meta
new file mode 100644
index 0000000..6034309
--- /dev/null
+++ b/JoystickVisualizer/Assets/Materials/Grey Plastic.ShaderGraph.meta
@@ -0,0 +1,10 @@
+fileFormatVersion: 2
+guid: 3e683c202ce519b498218169dc3a26ce
+ScriptedImporter:
+ fileIDToRecycleName:
+ 4800000: MainAsset
+ externalObjects: {}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
+ script: {fileID: 11500000, guid: 625f186215c104763be7675aa2d941aa, type: 3}
diff --git a/JoystickVisualizer/Assets/Materials/Grey Plastic.mat b/JoystickVisualizer/Assets/Materials/Grey Plastic.mat
index 2998626..2632d3a 100644
Binary files a/JoystickVisualizer/Assets/Materials/Grey Plastic.mat and b/JoystickVisualizer/Assets/Materials/Grey Plastic.mat differ
diff --git a/JoystickVisualizer/Assets/Materials/Red Plastic.ShaderGraph b/JoystickVisualizer/Assets/Materials/Red Plastic.ShaderGraph
new file mode 100644
index 0000000..e7fc004
--- /dev/null
+++ b/JoystickVisualizer/Assets/Materials/Red Plastic.ShaderGraph
@@ -0,0 +1,12 @@
+{
+ "m_SerializableNodes": [
+ {
+ "typeInfo": {
+ "fullName": "UnityEditor.ShaderGraph.PBRMasterNode"
+ },
+ "JSONnodeData": "{\n \"m_GuidSerialized\": \"ff2e6f1d-e54c-4f7a-887b-eadc059557c7\",\n \"m_Name\": \"PBR Master\",\n \"m_DrawState\": {\n \"m_Expanded\": true,\n \"m_Position\": {\n \"serializedVersion\": \"2\",\n \"x\": 0.0,\n \"y\": 0.0,\n \"width\": 0.0,\n \"height\": 0.0\n }\n },\n \"m_SerializableSlots\": [\n {\n \"typeInfo\": {\n \"fullName\": \"UnityEditor.ShaderGraph.ColorRGBMaterialSlot\"\n },\n \"JSONnodeData\": \"{\\n \\\"m_Id\\\": 0,\\n \\\"m_DisplayName\\\": \\\"Albedo\\\",\\n \\\"m_SlotType\\\": 0,\\n \\\"m_Priority\\\": 2147483647,\\n \\\"m_Hidden\\\": false,\\n \\\"m_ShaderOutputName\\\": \\\"Albedo\\\",\\n \\\"m_ShaderStage\\\": 2,\\n \\\"m_Value\\\": {\\n \\\"x\\\": 0.7169811725616455,\\n \\\"y\\\": 0.07778570801019669,\\n \\\"z\\\": 0.07778570801019669\\n },\\n \\\"m_DefaultValue\\\": {\\n \\\"x\\\": 0.0,\\n \\\"y\\\": 0.0,\\n \\\"z\\\": 0.0\\n }\\n}\"\n },\n {\n \"typeInfo\": {\n \"fullName\": \"UnityEditor.ShaderGraph.Vector3MaterialSlot\"\n },\n \"JSONnodeData\": \"{\\n \\\"m_Id\\\": 1,\\n \\\"m_DisplayName\\\": \\\"Normal\\\",\\n \\\"m_SlotType\\\": 0,\\n \\\"m_Priority\\\": 2147483647,\\n \\\"m_Hidden\\\": false,\\n \\\"m_ShaderOutputName\\\": \\\"Normal\\\",\\n \\\"m_ShaderStage\\\": 2,\\n \\\"m_Value\\\": {\\n \\\"x\\\": 0.0,\\n \\\"y\\\": 0.0,\\n \\\"z\\\": 1.0\\n },\\n \\\"m_DefaultValue\\\": {\\n \\\"x\\\": 0.0,\\n \\\"y\\\": 0.0,\\n \\\"z\\\": 0.0\\n }\\n}\"\n },\n {\n \"typeInfo\": {\n \"fullName\": \"UnityEditor.ShaderGraph.ColorRGBMaterialSlot\"\n },\n \"JSONnodeData\": \"{\\n \\\"m_Id\\\": 4,\\n \\\"m_DisplayName\\\": \\\"Emission\\\",\\n \\\"m_SlotType\\\": 0,\\n \\\"m_Priority\\\": 2147483647,\\n \\\"m_Hidden\\\": false,\\n \\\"m_ShaderOutputName\\\": \\\"Emission\\\",\\n \\\"m_ShaderStage\\\": 2,\\n \\\"m_Value\\\": {\\n \\\"x\\\": 0.0,\\n \\\"y\\\": 0.0,\\n \\\"z\\\": 0.0\\n },\\n \\\"m_DefaultValue\\\": {\\n \\\"x\\\": 0.0,\\n \\\"y\\\": 0.0,\\n \\\"z\\\": 0.0\\n }\\n}\"\n },\n {\n \"typeInfo\": {\n \"fullName\": \"UnityEditor.ShaderGraph.Vector1MaterialSlot\"\n },\n \"JSONnodeData\": \"{\\n \\\"m_Id\\\": 2,\\n \\\"m_DisplayName\\\": \\\"Metallic\\\",\\n \\\"m_SlotType\\\": 0,\\n \\\"m_Priority\\\": 2147483647,\\n \\\"m_Hidden\\\": false,\\n \\\"m_ShaderOutputName\\\": \\\"Metallic\\\",\\n \\\"m_ShaderStage\\\": 2,\\n \\\"m_Value\\\": 0.0,\\n \\\"m_DefaultValue\\\": 0.0\\n}\"\n },\n {\n \"typeInfo\": {\n \"fullName\": \"UnityEditor.ShaderGraph.Vector1MaterialSlot\"\n },\n \"JSONnodeData\": \"{\\n \\\"m_Id\\\": 5,\\n \\\"m_DisplayName\\\": \\\"Smoothness\\\",\\n \\\"m_SlotType\\\": 0,\\n \\\"m_Priority\\\": 2147483647,\\n \\\"m_Hidden\\\": false,\\n \\\"m_ShaderOutputName\\\": \\\"Smoothness\\\",\\n \\\"m_ShaderStage\\\": 2,\\n \\\"m_Value\\\": 0.699999988079071,\\n \\\"m_DefaultValue\\\": 0.5\\n}\"\n },\n {\n \"typeInfo\": {\n \"fullName\": \"UnityEditor.ShaderGraph.Vector1MaterialSlot\"\n },\n \"JSONnodeData\": \"{\\n \\\"m_Id\\\": 6,\\n \\\"m_DisplayName\\\": \\\"Occlusion\\\",\\n \\\"m_SlotType\\\": 0,\\n \\\"m_Priority\\\": 2147483647,\\n \\\"m_Hidden\\\": false,\\n \\\"m_ShaderOutputName\\\": \\\"Occlusion\\\",\\n \\\"m_ShaderStage\\\": 2,\\n \\\"m_Value\\\": 1.0,\\n \\\"m_DefaultValue\\\": 1.0\\n}\"\n },\n {\n \"typeInfo\": {\n \"fullName\": \"UnityEditor.ShaderGraph.Vector1MaterialSlot\"\n },\n \"JSONnodeData\": \"{\\n \\\"m_Id\\\": 7,\\n \\\"m_DisplayName\\\": \\\"Alpha\\\",\\n \\\"m_SlotType\\\": 0,\\n \\\"m_Priority\\\": 2147483647,\\n \\\"m_Hidden\\\": false,\\n \\\"m_ShaderOutputName\\\": \\\"Alpha\\\",\\n \\\"m_ShaderStage\\\": 2,\\n \\\"m_Value\\\": 1.0,\\n \\\"m_DefaultValue\\\": 1.0\\n}\"\n }\n ],\n \"m_PreviewExpanded\": true,\n \"m_MaterialOptions\": {\n \"m_SrcBlend\": 0,\n \"m_DstBlend\": 1,\n \"m_CullMode\": 0,\n \"m_ZTest\": 2,\n \"m_ZWrite\": 0,\n \"m_RenderQueue\": 1,\n \"m_RenderType\": 0,\n \"m_LOD\": 200\n },\n \"m_Model\": 1,\n \"m_AlphaMode\": 0\n}"
+ }
+ ],
+ "m_SerializableEdges": [],
+ "m_SerializedProperties": []
+}
\ No newline at end of file
diff --git a/JoystickVisualizer/Assets/Materials/Red Plastic.ShaderGraph.meta b/JoystickVisualizer/Assets/Materials/Red Plastic.ShaderGraph.meta
new file mode 100644
index 0000000..a5d84f7
--- /dev/null
+++ b/JoystickVisualizer/Assets/Materials/Red Plastic.ShaderGraph.meta
@@ -0,0 +1,10 @@
+fileFormatVersion: 2
+guid: 22fc6f67fae0b2a419a83b1e9b56064d
+ScriptedImporter:
+ fileIDToRecycleName:
+ 4800000: MainAsset
+ externalObjects: {}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
+ script: {fileID: 11500000, guid: 625f186215c104763be7675aa2d941aa, type: 3}
diff --git a/JoystickVisualizer/Assets/Materials/Red Plastic.mat b/JoystickVisualizer/Assets/Materials/Red Plastic.mat
new file mode 100644
index 0000000..d8bc72d
Binary files /dev/null and b/JoystickVisualizer/Assets/Materials/Red Plastic.mat differ
diff --git a/JoystickVisualizer/Assets/UnityHDRI/TreasureIsland/TreasureIslandWhiteBalancedNoSun.mat.meta b/JoystickVisualizer/Assets/Materials/Red Plastic.mat.meta
similarity index 63%
rename from JoystickVisualizer/Assets/UnityHDRI/TreasureIsland/TreasureIslandWhiteBalancedNoSun.mat.meta
rename to JoystickVisualizer/Assets/Materials/Red Plastic.mat.meta
index d2cc990..fa08d0f 100644
--- a/JoystickVisualizer/Assets/UnityHDRI/TreasureIsland/TreasureIslandWhiteBalancedNoSun.mat.meta
+++ b/JoystickVisualizer/Assets/Materials/Red Plastic.mat.meta
@@ -1,7 +1,5 @@
fileFormatVersion: 2
-guid: d44a1ce463447b14baa321d68495ce0c
-timeCreated: 1510079449
-licenseType: Free
+guid: b342895d0efc4a747b84ccd120edd23c
NativeFormatImporter:
externalObjects: {}
mainObjectFileID: 0
diff --git a/JoystickVisualizer/Assets/Materials/Textures/Metal Brushed Long/MetalBrushedLong001_COL_1K.jpg.meta b/JoystickVisualizer/Assets/Materials/Textures/Metal Brushed Long/MetalBrushedLong001_COL_1K.jpg.meta
index 2f13700..5fbef53 100644
--- a/JoystickVisualizer/Assets/Materials/Textures/Metal Brushed Long/MetalBrushedLong001_COL_1K.jpg.meta
+++ b/JoystickVisualizer/Assets/Materials/Textures/Metal Brushed Long/MetalBrushedLong001_COL_1K.jpg.meta
@@ -1,11 +1,9 @@
fileFormatVersion: 2
guid: 4e6153bfb6f7f8348992a969dcebb569
-timeCreated: 1522173786
-licenseType: Free
TextureImporter:
fileIDToRecycleName: {}
externalObjects: {}
- serializedVersion: 4
+ serializedVersion: 5
mipmaps:
mipMapMode: 0
enableMipMap: 1
@@ -45,19 +43,33 @@ TextureImporter:
spriteMeshType: 1
alignment: 0
spritePivot: {x: 0.5, y: 0.5}
- spriteBorder: {x: 0, y: 0, z: 0, w: 0}
spritePixelsToUnits: 100
+ spriteBorder: {x: 0, y: 0, z: 0, w: 0}
+ spriteGenerateFallbackPhysicsShape: 1
alphaUsage: 1
alphaIsTransparency: 0
spriteTessellationDetail: -1
textureType: 0
textureShape: 1
+ singleChannelComponent: 0
maxTextureSizeSet: 0
compressionQualitySet: 0
textureFormatSet: 0
platformSettings:
- - buildTarget: DefaultTexturePlatform
- maxTextureSize: 2048
+ - serializedVersion: 2
+ buildTarget: DefaultTexturePlatform
+ maxTextureSize: 1024
+ resizeAlgorithm: 0
+ textureFormat: -1
+ textureCompression: 1
+ compressionQuality: 50
+ crunchedCompression: 0
+ allowsAlphaSplitting: 0
+ overridden: 0
+ androidETC2FallbackOverride: 0
+ - serializedVersion: 2
+ buildTarget: Standalone
+ maxTextureSize: 1024
resizeAlgorithm: 0
textureFormat: -1
textureCompression: 1
@@ -71,6 +83,12 @@ TextureImporter:
sprites: []
outline: []
physicsShape: []
+ bones: []
+ spriteID:
+ vertices: []
+ indices:
+ edges: []
+ weights: []
spritePackingTag:
userData:
assetBundleName:
diff --git a/JoystickVisualizer/Assets/PostProcessing.meta b/JoystickVisualizer/Assets/Models.meta
similarity index 67%
rename from JoystickVisualizer/Assets/PostProcessing.meta
rename to JoystickVisualizer/Assets/Models.meta
index e4a80ac..310ec64 100644
--- a/JoystickVisualizer/Assets/PostProcessing.meta
+++ b/JoystickVisualizer/Assets/Models.meta
@@ -1,7 +1,7 @@
fileFormatVersion: 2
-guid: 63e28547c90c1fc44aba0687a73537a3
+guid: da151936bcd663f4183cbabf84c9bc7e
folderAsset: yes
-timeCreated: 1496683003
+timeCreated: 1509547912
licenseType: Free
DefaultImporter:
userData:
diff --git a/JoystickVisualizer/Assets/Devices/CH Pro Pedals.meta b/JoystickVisualizer/Assets/Models/CH Pro Pedals.meta
similarity index 100%
rename from JoystickVisualizer/Assets/Devices/CH Pro Pedals.meta
rename to JoystickVisualizer/Assets/Models/CH Pro Pedals.meta
diff --git a/JoystickVisualizer/Assets/Devices/CH Pro Pedals/CH Pro Pedals.blend b/JoystickVisualizer/Assets/Models/CH Pro Pedals/CH Pro Pedals.blend
similarity index 100%
rename from JoystickVisualizer/Assets/Devices/CH Pro Pedals/CH Pro Pedals.blend
rename to JoystickVisualizer/Assets/Models/CH Pro Pedals/CH Pro Pedals.blend
diff --git a/JoystickVisualizer/Assets/Devices/CH Pro Pedals/CH Pro Pedals.blend.meta b/JoystickVisualizer/Assets/Models/CH Pro Pedals/CH Pro Pedals.blend.meta
similarity index 100%
rename from JoystickVisualizer/Assets/Devices/CH Pro Pedals/CH Pro Pedals.blend.meta
rename to JoystickVisualizer/Assets/Models/CH Pro Pedals/CH Pro Pedals.blend.meta
diff --git a/JoystickVisualizer/Assets/Devices/CH Pro Pedals/CH Pro Pedals.blend1 b/JoystickVisualizer/Assets/Models/CH Pro Pedals/CH Pro Pedals.blend1
similarity index 100%
rename from JoystickVisualizer/Assets/Devices/CH Pro Pedals/CH Pro Pedals.blend1
rename to JoystickVisualizer/Assets/Models/CH Pro Pedals/CH Pro Pedals.blend1
diff --git a/JoystickVisualizer/Assets/Devices/CH Pro Pedals/CH Pro Pedals.blend1.meta b/JoystickVisualizer/Assets/Models/CH Pro Pedals/CH Pro Pedals.blend1.meta
similarity index 100%
rename from JoystickVisualizer/Assets/Devices/CH Pro Pedals/CH Pro Pedals.blend1.meta
rename to JoystickVisualizer/Assets/Models/CH Pro Pedals/CH Pro Pedals.blend1.meta
diff --git a/JoystickVisualizer/Assets/Devices/CH Pro Pedals/CHProPedals.cs b/JoystickVisualizer/Assets/Models/CH Pro Pedals/CHProPedals.cs
similarity index 100%
rename from JoystickVisualizer/Assets/Devices/CH Pro Pedals/CHProPedals.cs
rename to JoystickVisualizer/Assets/Models/CH Pro Pedals/CHProPedals.cs
diff --git a/JoystickVisualizer/Assets/Devices/CH Pro Pedals/CHProPedals.cs.meta b/JoystickVisualizer/Assets/Models/CH Pro Pedals/CHProPedals.cs.meta
similarity index 100%
rename from JoystickVisualizer/Assets/Devices/CH Pro Pedals/CHProPedals.cs.meta
rename to JoystickVisualizer/Assets/Models/CH Pro Pedals/CHProPedals.cs.meta
diff --git a/JoystickVisualizer/Assets/Devices/CH Pro Pedals/Materials.meta b/JoystickVisualizer/Assets/Models/CH Pro Pedals/Materials.meta
similarity index 100%
rename from JoystickVisualizer/Assets/Devices/CH Pro Pedals/Materials.meta
rename to JoystickVisualizer/Assets/Models/CH Pro Pedals/Materials.meta
diff --git a/JoystickVisualizer/Assets/Devices/CH Pro Pedals/Materials/Black_Plastic.mat b/JoystickVisualizer/Assets/Models/CH Pro Pedals/Materials/Black_Plastic.mat
similarity index 100%
rename from JoystickVisualizer/Assets/Devices/CH Pro Pedals/Materials/Black_Plastic.mat
rename to JoystickVisualizer/Assets/Models/CH Pro Pedals/Materials/Black_Plastic.mat
diff --git a/JoystickVisualizer/Assets/Devices/CH Pro Pedals/Materials/Black_Plastic.mat.meta b/JoystickVisualizer/Assets/Models/CH Pro Pedals/Materials/Black_Plastic.mat.meta
similarity index 100%
rename from JoystickVisualizer/Assets/Devices/CH Pro Pedals/Materials/Black_Plastic.mat.meta
rename to JoystickVisualizer/Assets/Models/CH Pro Pedals/Materials/Black_Plastic.mat.meta
diff --git a/JoystickVisualizer/Assets/Models/CH Pro Pedals/Materials/Dark Grey Plastic.mat b/JoystickVisualizer/Assets/Models/CH Pro Pedals/Materials/Dark Grey Plastic.mat
new file mode 100644
index 0000000..d4b8cdc
Binary files /dev/null and b/JoystickVisualizer/Assets/Models/CH Pro Pedals/Materials/Dark Grey Plastic.mat differ
diff --git a/JoystickVisualizer/Assets/PostProcessing/Utilities/CustomMotionTexture/CustomMotionVectorDebugProfile.asset.meta b/JoystickVisualizer/Assets/Models/CH Pro Pedals/Materials/Dark Grey Plastic.mat.meta
similarity index 54%
rename from JoystickVisualizer/Assets/PostProcessing/Utilities/CustomMotionTexture/CustomMotionVectorDebugProfile.asset.meta
rename to JoystickVisualizer/Assets/Models/CH Pro Pedals/Materials/Dark Grey Plastic.mat.meta
index 5ece9be..c628f74 100644
--- a/JoystickVisualizer/Assets/PostProcessing/Utilities/CustomMotionTexture/CustomMotionVectorDebugProfile.asset.meta
+++ b/JoystickVisualizer/Assets/Models/CH Pro Pedals/Materials/Dark Grey Plastic.mat.meta
@@ -1,8 +1,8 @@
fileFormatVersion: 2
-guid: d982e879ff67b4d3fb6522d08c3cd5af
-timeCreated: 1487341088
-licenseType: Store
+guid: 12008ba9f72d7b843ba653a9c3f67c94
NativeFormatImporter:
+ externalObjects: {}
+ mainObjectFileID: 0
userData:
assetBundleName:
assetBundleVariant:
diff --git a/JoystickVisualizer/Assets/Devices/CH Pro Pedals/Materials/Dark_Grey_Plastic.mat b/JoystickVisualizer/Assets/Models/CH Pro Pedals/Materials/Dark_Grey_Plastic.mat
similarity index 100%
rename from JoystickVisualizer/Assets/Devices/CH Pro Pedals/Materials/Dark_Grey_Plastic.mat
rename to JoystickVisualizer/Assets/Models/CH Pro Pedals/Materials/Dark_Grey_Plastic.mat
diff --git a/JoystickVisualizer/Assets/Devices/CH Pro Pedals/Materials/Dark_Grey_Plastic.mat.meta b/JoystickVisualizer/Assets/Models/CH Pro Pedals/Materials/Dark_Grey_Plastic.mat.meta
similarity index 100%
rename from JoystickVisualizer/Assets/Devices/CH Pro Pedals/Materials/Dark_Grey_Plastic.mat.meta
rename to JoystickVisualizer/Assets/Models/CH Pro Pedals/Materials/Dark_Grey_Plastic.mat.meta
diff --git a/JoystickVisualizer/Assets/Models/CH Pro Pedals/Materials/Light Grey Plastic.mat b/JoystickVisualizer/Assets/Models/CH Pro Pedals/Materials/Light Grey Plastic.mat
new file mode 100644
index 0000000..8c0cf33
Binary files /dev/null and b/JoystickVisualizer/Assets/Models/CH Pro Pedals/Materials/Light Grey Plastic.mat differ
diff --git a/JoystickVisualizer/Assets/PostProcessing/Utilities/CustomMotionTexture/Materials/DebugQuad.mat.meta b/JoystickVisualizer/Assets/Models/CH Pro Pedals/Materials/Light Grey Plastic.mat.meta
similarity index 54%
rename from JoystickVisualizer/Assets/PostProcessing/Utilities/CustomMotionTexture/Materials/DebugQuad.mat.meta
rename to JoystickVisualizer/Assets/Models/CH Pro Pedals/Materials/Light Grey Plastic.mat.meta
index a08b218..b56655e 100644
--- a/JoystickVisualizer/Assets/PostProcessing/Utilities/CustomMotionTexture/Materials/DebugQuad.mat.meta
+++ b/JoystickVisualizer/Assets/Models/CH Pro Pedals/Materials/Light Grey Plastic.mat.meta
@@ -1,8 +1,8 @@
fileFormatVersion: 2
-guid: 3c40c8fdc50a841579d7cb15882ac9d9
-timeCreated: 1479896287
-licenseType: Store
+guid: ed72771ef5ac3cb45bc6adfbeeecd0f9
NativeFormatImporter:
+ externalObjects: {}
+ mainObjectFileID: 0
userData:
assetBundleName:
assetBundleVariant:
diff --git a/JoystickVisualizer/Assets/Devices/CH Pro Pedals/Materials/Light_Grey_Plastic.mat b/JoystickVisualizer/Assets/Models/CH Pro Pedals/Materials/Light_Grey_Plastic.mat
similarity index 100%
rename from JoystickVisualizer/Assets/Devices/CH Pro Pedals/Materials/Light_Grey_Plastic.mat
rename to JoystickVisualizer/Assets/Models/CH Pro Pedals/Materials/Light_Grey_Plastic.mat
diff --git a/JoystickVisualizer/Assets/Devices/CH Pro Pedals/Materials/Light_Grey_Plastic.mat.meta b/JoystickVisualizer/Assets/Models/CH Pro Pedals/Materials/Light_Grey_Plastic.mat.meta
similarity index 100%
rename from JoystickVisualizer/Assets/Devices/CH Pro Pedals/Materials/Light_Grey_Plastic.mat.meta
rename to JoystickVisualizer/Assets/Models/CH Pro Pedals/Materials/Light_Grey_Plastic.mat.meta
diff --git a/JoystickVisualizer/Assets/Devices/Generic Stick.meta b/JoystickVisualizer/Assets/Models/Generic Stick.meta
similarity index 100%
rename from JoystickVisualizer/Assets/Devices/Generic Stick.meta
rename to JoystickVisualizer/Assets/Models/Generic Stick.meta
diff --git a/JoystickVisualizer/Assets/Devices/Generic Stick/Generic Stick.blend b/JoystickVisualizer/Assets/Models/Generic Stick/Generic Stick.blend
similarity index 100%
rename from JoystickVisualizer/Assets/Devices/Generic Stick/Generic Stick.blend
rename to JoystickVisualizer/Assets/Models/Generic Stick/Generic Stick.blend
diff --git a/JoystickVisualizer/Assets/Devices/Generic Stick/Generic Stick.blend.meta b/JoystickVisualizer/Assets/Models/Generic Stick/Generic Stick.blend.meta
similarity index 100%
rename from JoystickVisualizer/Assets/Devices/Generic Stick/Generic Stick.blend.meta
rename to JoystickVisualizer/Assets/Models/Generic Stick/Generic Stick.blend.meta
diff --git a/JoystickVisualizer/Assets/Devices/Generic Stick/Generic Stick.blend1 b/JoystickVisualizer/Assets/Models/Generic Stick/Generic Stick.blend1
similarity index 100%
rename from JoystickVisualizer/Assets/Devices/Generic Stick/Generic Stick.blend1
rename to JoystickVisualizer/Assets/Models/Generic Stick/Generic Stick.blend1
diff --git a/JoystickVisualizer/Assets/Devices/Generic Stick/Generic Stick.blend1.meta b/JoystickVisualizer/Assets/Models/Generic Stick/Generic Stick.blend1.meta
similarity index 100%
rename from JoystickVisualizer/Assets/Devices/Generic Stick/Generic Stick.blend1.meta
rename to JoystickVisualizer/Assets/Models/Generic Stick/Generic Stick.blend1.meta
diff --git a/JoystickVisualizer/Assets/Devices/Generic Stick/Materials.meta b/JoystickVisualizer/Assets/Models/Generic Stick/Materials.meta
similarity index 100%
rename from JoystickVisualizer/Assets/Devices/Generic Stick/Materials.meta
rename to JoystickVisualizer/Assets/Models/Generic Stick/Materials.meta
diff --git a/JoystickVisualizer/Assets/Devices/Generic Stick/Materials/Black Plastic.mat b/JoystickVisualizer/Assets/Models/Generic Stick/Materials/Black Plastic.mat
similarity index 100%
rename from JoystickVisualizer/Assets/Devices/Generic Stick/Materials/Black Plastic.mat
rename to JoystickVisualizer/Assets/Models/Generic Stick/Materials/Black Plastic.mat
diff --git a/JoystickVisualizer/Assets/Devices/Generic Stick/Materials/Black Plastic.mat.meta b/JoystickVisualizer/Assets/Models/Generic Stick/Materials/Black Plastic.mat.meta
similarity index 100%
rename from JoystickVisualizer/Assets/Devices/Generic Stick/Materials/Black Plastic.mat.meta
rename to JoystickVisualizer/Assets/Models/Generic Stick/Materials/Black Plastic.mat.meta
diff --git a/JoystickVisualizer/Assets/Devices/Generic Stick/Materials/Black_Plastic.mat b/JoystickVisualizer/Assets/Models/Generic Stick/Materials/Black_Plastic.mat
similarity index 100%
rename from JoystickVisualizer/Assets/Devices/Generic Stick/Materials/Black_Plastic.mat
rename to JoystickVisualizer/Assets/Models/Generic Stick/Materials/Black_Plastic.mat
diff --git a/JoystickVisualizer/Assets/Devices/Generic Stick/Materials/Black_Plastic.mat.meta b/JoystickVisualizer/Assets/Models/Generic Stick/Materials/Black_Plastic.mat.meta
similarity index 100%
rename from JoystickVisualizer/Assets/Devices/Generic Stick/Materials/Black_Plastic.mat.meta
rename to JoystickVisualizer/Assets/Models/Generic Stick/Materials/Black_Plastic.mat.meta
diff --git a/JoystickVisualizer/Assets/Devices/Generic Stick/Materials/Brushed Metal.mat b/JoystickVisualizer/Assets/Models/Generic Stick/Materials/Brushed Metal.mat
similarity index 100%
rename from JoystickVisualizer/Assets/Devices/Generic Stick/Materials/Brushed Metal.mat
rename to JoystickVisualizer/Assets/Models/Generic Stick/Materials/Brushed Metal.mat
diff --git a/JoystickVisualizer/Assets/Devices/Generic Stick/Materials/Brushed Metal.mat.meta b/JoystickVisualizer/Assets/Models/Generic Stick/Materials/Brushed Metal.mat.meta
similarity index 100%
rename from JoystickVisualizer/Assets/Devices/Generic Stick/Materials/Brushed Metal.mat.meta
rename to JoystickVisualizer/Assets/Models/Generic Stick/Materials/Brushed Metal.mat.meta
diff --git a/JoystickVisualizer/Assets/Devices/Generic Stick/Materials/Brushed_Metal.mat b/JoystickVisualizer/Assets/Models/Generic Stick/Materials/Brushed_Metal.mat
similarity index 100%
rename from JoystickVisualizer/Assets/Devices/Generic Stick/Materials/Brushed_Metal.mat
rename to JoystickVisualizer/Assets/Models/Generic Stick/Materials/Brushed_Metal.mat
diff --git a/JoystickVisualizer/Assets/Devices/Generic Stick/Materials/Brushed_Metal.mat.meta b/JoystickVisualizer/Assets/Models/Generic Stick/Materials/Brushed_Metal.mat.meta
similarity index 100%
rename from JoystickVisualizer/Assets/Devices/Generic Stick/Materials/Brushed_Metal.mat.meta
rename to JoystickVisualizer/Assets/Models/Generic Stick/Materials/Brushed_Metal.mat.meta
diff --git a/JoystickVisualizer/Assets/Devices/Generic Stick/Materials/Red Plastic.mat b/JoystickVisualizer/Assets/Models/Generic Stick/Materials/Red Plastic.mat
similarity index 100%
rename from JoystickVisualizer/Assets/Devices/Generic Stick/Materials/Red Plastic.mat
rename to JoystickVisualizer/Assets/Models/Generic Stick/Materials/Red Plastic.mat
diff --git a/JoystickVisualizer/Assets/Devices/Generic Stick/Materials/Red Plastic.mat.meta b/JoystickVisualizer/Assets/Models/Generic Stick/Materials/Red Plastic.mat.meta
similarity index 100%
rename from JoystickVisualizer/Assets/Devices/Generic Stick/Materials/Red Plastic.mat.meta
rename to JoystickVisualizer/Assets/Models/Generic Stick/Materials/Red Plastic.mat.meta
diff --git a/JoystickVisualizer/Assets/Devices/Generic Stick/Materials/Red_Plastic.mat b/JoystickVisualizer/Assets/Models/Generic Stick/Materials/Red_Plastic.mat
similarity index 100%
rename from JoystickVisualizer/Assets/Devices/Generic Stick/Materials/Red_Plastic.mat
rename to JoystickVisualizer/Assets/Models/Generic Stick/Materials/Red_Plastic.mat
diff --git a/JoystickVisualizer/Assets/Devices/Generic Stick/Materials/Red_Plastic.mat.meta b/JoystickVisualizer/Assets/Models/Generic Stick/Materials/Red_Plastic.mat.meta
similarity index 100%
rename from JoystickVisualizer/Assets/Devices/Generic Stick/Materials/Red_Plastic.mat.meta
rename to JoystickVisualizer/Assets/Models/Generic Stick/Materials/Red_Plastic.mat.meta
diff --git a/JoystickVisualizer/Assets/Devices/HOTAS Warthog.meta b/JoystickVisualizer/Assets/Models/HOTAS Warthog.meta
similarity index 100%
rename from JoystickVisualizer/Assets/Devices/HOTAS Warthog.meta
rename to JoystickVisualizer/Assets/Models/HOTAS Warthog.meta
diff --git a/JoystickVisualizer/Assets/Devices/HOTAS Warthog/Joystick - HOTAS Warthog.meta b/JoystickVisualizer/Assets/Models/HOTAS Warthog/Joystick - HOTAS Warthog.meta
similarity index 100%
rename from JoystickVisualizer/Assets/Devices/HOTAS Warthog/Joystick - HOTAS Warthog.meta
rename to JoystickVisualizer/Assets/Models/HOTAS Warthog/Joystick - HOTAS Warthog.meta
diff --git a/JoystickVisualizer/Assets/Devices/HOTAS Warthog/Joystick - HOTAS Warthog.skp b/JoystickVisualizer/Assets/Models/HOTAS Warthog/Joystick - HOTAS Warthog.skp
similarity index 100%
rename from JoystickVisualizer/Assets/Devices/HOTAS Warthog/Joystick - HOTAS Warthog.skp
rename to JoystickVisualizer/Assets/Models/HOTAS Warthog/Joystick - HOTAS Warthog.skp
diff --git a/JoystickVisualizer/Assets/Devices/HOTAS Warthog/Joystick - HOTAS Warthog.skp.meta b/JoystickVisualizer/Assets/Models/HOTAS Warthog/Joystick - HOTAS Warthog.skp.meta
similarity index 100%
rename from JoystickVisualizer/Assets/Devices/HOTAS Warthog/Joystick - HOTAS Warthog.skp.meta
rename to JoystickVisualizer/Assets/Models/HOTAS Warthog/Joystick - HOTAS Warthog.skp.meta
diff --git a/JoystickVisualizer/Assets/Devices/HOTAS Warthog/Joystick - HOTAS Warthog/Metal_Aluminum_Anodized.jpg b/JoystickVisualizer/Assets/Models/HOTAS Warthog/Joystick - HOTAS Warthog/Metal_Aluminum_Anodized.jpg
similarity index 100%
rename from JoystickVisualizer/Assets/Devices/HOTAS Warthog/Joystick - HOTAS Warthog/Metal_Aluminum_Anodized.jpg
rename to JoystickVisualizer/Assets/Models/HOTAS Warthog/Joystick - HOTAS Warthog/Metal_Aluminum_Anodized.jpg
diff --git a/JoystickVisualizer/Assets/Devices/HOTAS Warthog/Joystick - HOTAS Warthog/Metal_Aluminum_Anodized.jpg.meta b/JoystickVisualizer/Assets/Models/HOTAS Warthog/Joystick - HOTAS Warthog/Metal_Aluminum_Anodized.jpg.meta
similarity index 100%
rename from JoystickVisualizer/Assets/Devices/HOTAS Warthog/Joystick - HOTAS Warthog/Metal_Aluminum_Anodized.jpg.meta
rename to JoystickVisualizer/Assets/Models/HOTAS Warthog/Joystick - HOTAS Warthog/Metal_Aluminum_Anodized.jpg.meta
diff --git a/JoystickVisualizer/Assets/Devices/HOTAS Warthog/Materials.meta b/JoystickVisualizer/Assets/Models/HOTAS Warthog/Materials.meta
similarity index 100%
rename from JoystickVisualizer/Assets/Devices/HOTAS Warthog/Materials.meta
rename to JoystickVisualizer/Assets/Models/HOTAS Warthog/Materials.meta
diff --git a/JoystickVisualizer/Assets/Devices/HOTAS Warthog/Materials/Joystick - HOTAS Warthog-Metal_Aluminum_Anodized.mat b/JoystickVisualizer/Assets/Models/HOTAS Warthog/Materials/Joystick - HOTAS Warthog-Metal_Aluminum_Anodized.mat
similarity index 100%
rename from JoystickVisualizer/Assets/Devices/HOTAS Warthog/Materials/Joystick - HOTAS Warthog-Metal_Aluminum_Anodized.mat
rename to JoystickVisualizer/Assets/Models/HOTAS Warthog/Materials/Joystick - HOTAS Warthog-Metal_Aluminum_Anodized.mat
diff --git a/JoystickVisualizer/Assets/Devices/HOTAS Warthog/Materials/Joystick - HOTAS Warthog-Metal_Aluminum_Anodized.mat.meta b/JoystickVisualizer/Assets/Models/HOTAS Warthog/Materials/Joystick - HOTAS Warthog-Metal_Aluminum_Anodized.mat.meta
similarity index 100%
rename from JoystickVisualizer/Assets/Devices/HOTAS Warthog/Materials/Joystick - HOTAS Warthog-Metal_Aluminum_Anodized.mat.meta
rename to JoystickVisualizer/Assets/Models/HOTAS Warthog/Materials/Joystick - HOTAS Warthog-Metal_Aluminum_Anodized.mat.meta
diff --git a/JoystickVisualizer/Assets/Devices/HOTAS Warthog/Materials/Joystick - HOTAS Warthog-[Metal_Aluminum_Anodized].mat b/JoystickVisualizer/Assets/Models/HOTAS Warthog/Materials/Joystick - HOTAS Warthog-[Metal_Aluminum_Anodized].mat
similarity index 100%
rename from JoystickVisualizer/Assets/Devices/HOTAS Warthog/Materials/Joystick - HOTAS Warthog-[Metal_Aluminum_Anodized].mat
rename to JoystickVisualizer/Assets/Models/HOTAS Warthog/Materials/Joystick - HOTAS Warthog-[Metal_Aluminum_Anodized].mat
diff --git a/JoystickVisualizer/Assets/Devices/HOTAS Warthog/Materials/Joystick - HOTAS Warthog-[Metal_Aluminum_Anodized].mat.meta b/JoystickVisualizer/Assets/Models/HOTAS Warthog/Materials/Joystick - HOTAS Warthog-[Metal_Aluminum_Anodized].mat.meta
similarity index 100%
rename from JoystickVisualizer/Assets/Devices/HOTAS Warthog/Materials/Joystick - HOTAS Warthog-[Metal_Aluminum_Anodized].mat.meta
rename to JoystickVisualizer/Assets/Models/HOTAS Warthog/Materials/Joystick - HOTAS Warthog-[Metal_Aluminum_Anodized].mat.meta
diff --git a/JoystickVisualizer/Assets/Devices/HOTAS Warthog/Materials/Joystick - HOTAS Warthog-_1.mat b/JoystickVisualizer/Assets/Models/HOTAS Warthog/Materials/Joystick - HOTAS Warthog-_1.mat
similarity index 100%
rename from JoystickVisualizer/Assets/Devices/HOTAS Warthog/Materials/Joystick - HOTAS Warthog-_1.mat
rename to JoystickVisualizer/Assets/Models/HOTAS Warthog/Materials/Joystick - HOTAS Warthog-_1.mat
diff --git a/JoystickVisualizer/Assets/Devices/HOTAS Warthog/Materials/Joystick - HOTAS Warthog-_1.mat.meta b/JoystickVisualizer/Assets/Models/HOTAS Warthog/Materials/Joystick - HOTAS Warthog-_1.mat.meta
similarity index 100%
rename from JoystickVisualizer/Assets/Devices/HOTAS Warthog/Materials/Joystick - HOTAS Warthog-_1.mat.meta
rename to JoystickVisualizer/Assets/Models/HOTAS Warthog/Materials/Joystick - HOTAS Warthog-_1.mat.meta
diff --git a/JoystickVisualizer/Assets/Devices/HOTAS Warthog/Materials/Joystick - HOTAS Warthog-_2.mat b/JoystickVisualizer/Assets/Models/HOTAS Warthog/Materials/Joystick - HOTAS Warthog-_2.mat
similarity index 100%
rename from JoystickVisualizer/Assets/Devices/HOTAS Warthog/Materials/Joystick - HOTAS Warthog-_2.mat
rename to JoystickVisualizer/Assets/Models/HOTAS Warthog/Materials/Joystick - HOTAS Warthog-_2.mat
diff --git a/JoystickVisualizer/Assets/Devices/HOTAS Warthog/Materials/Joystick - HOTAS Warthog-_2.mat.meta b/JoystickVisualizer/Assets/Models/HOTAS Warthog/Materials/Joystick - HOTAS Warthog-_2.mat.meta
similarity index 100%
rename from JoystickVisualizer/Assets/Devices/HOTAS Warthog/Materials/Joystick - HOTAS Warthog-_2.mat.meta
rename to JoystickVisualizer/Assets/Models/HOTAS Warthog/Materials/Joystick - HOTAS Warthog-_2.mat.meta
diff --git a/JoystickVisualizer/Assets/Devices/HOTAS Warthog/Materials/Joystick - HOTAS Warthog-_3.mat b/JoystickVisualizer/Assets/Models/HOTAS Warthog/Materials/Joystick - HOTAS Warthog-_3.mat
similarity index 100%
rename from JoystickVisualizer/Assets/Devices/HOTAS Warthog/Materials/Joystick - HOTAS Warthog-_3.mat
rename to JoystickVisualizer/Assets/Models/HOTAS Warthog/Materials/Joystick - HOTAS Warthog-_3.mat
diff --git a/JoystickVisualizer/Assets/Devices/HOTAS Warthog/Materials/Joystick - HOTAS Warthog-_3.mat.meta b/JoystickVisualizer/Assets/Models/HOTAS Warthog/Materials/Joystick - HOTAS Warthog-_3.mat.meta
similarity index 100%
rename from JoystickVisualizer/Assets/Devices/HOTAS Warthog/Materials/Joystick - HOTAS Warthog-_3.mat.meta
rename to JoystickVisualizer/Assets/Models/HOTAS Warthog/Materials/Joystick - HOTAS Warthog-_3.mat.meta
diff --git a/JoystickVisualizer/Assets/Devices/HOTAS Warthog/Materials/Joystick - HOTAS Warthog-_4.mat b/JoystickVisualizer/Assets/Models/HOTAS Warthog/Materials/Joystick - HOTAS Warthog-_4.mat
similarity index 100%
rename from JoystickVisualizer/Assets/Devices/HOTAS Warthog/Materials/Joystick - HOTAS Warthog-_4.mat
rename to JoystickVisualizer/Assets/Models/HOTAS Warthog/Materials/Joystick - HOTAS Warthog-_4.mat
diff --git a/JoystickVisualizer/Assets/Devices/HOTAS Warthog/Materials/Joystick - HOTAS Warthog-_4.mat.meta b/JoystickVisualizer/Assets/Models/HOTAS Warthog/Materials/Joystick - HOTAS Warthog-_4.mat.meta
similarity index 100%
rename from JoystickVisualizer/Assets/Devices/HOTAS Warthog/Materials/Joystick - HOTAS Warthog-_4.mat.meta
rename to JoystickVisualizer/Assets/Models/HOTAS Warthog/Materials/Joystick - HOTAS Warthog-_4.mat.meta
diff --git a/JoystickVisualizer/Assets/Devices/HOTAS Warthog/Materials/Joystick - HOTAS Warthog-_5.mat b/JoystickVisualizer/Assets/Models/HOTAS Warthog/Materials/Joystick - HOTAS Warthog-_5.mat
similarity index 100%
rename from JoystickVisualizer/Assets/Devices/HOTAS Warthog/Materials/Joystick - HOTAS Warthog-_5.mat
rename to JoystickVisualizer/Assets/Models/HOTAS Warthog/Materials/Joystick - HOTAS Warthog-_5.mat
diff --git a/JoystickVisualizer/Assets/Devices/HOTAS Warthog/Materials/Joystick - HOTAS Warthog-_5.mat.meta b/JoystickVisualizer/Assets/Models/HOTAS Warthog/Materials/Joystick - HOTAS Warthog-_5.mat.meta
similarity index 100%
rename from JoystickVisualizer/Assets/Devices/HOTAS Warthog/Materials/Joystick - HOTAS Warthog-_5.mat.meta
rename to JoystickVisualizer/Assets/Models/HOTAS Warthog/Materials/Joystick - HOTAS Warthog-_5.mat.meta
diff --git a/JoystickVisualizer/Assets/Devices/HOTAS Warthog/Materials/Joystick - HOTAS Warthog-_6.mat b/JoystickVisualizer/Assets/Models/HOTAS Warthog/Materials/Joystick - HOTAS Warthog-_6.mat
similarity index 100%
rename from JoystickVisualizer/Assets/Devices/HOTAS Warthog/Materials/Joystick - HOTAS Warthog-_6.mat
rename to JoystickVisualizer/Assets/Models/HOTAS Warthog/Materials/Joystick - HOTAS Warthog-_6.mat
diff --git a/JoystickVisualizer/Assets/Devices/HOTAS Warthog/Materials/Joystick - HOTAS Warthog-_6.mat.meta b/JoystickVisualizer/Assets/Models/HOTAS Warthog/Materials/Joystick - HOTAS Warthog-_6.mat.meta
similarity index 100%
rename from JoystickVisualizer/Assets/Devices/HOTAS Warthog/Materials/Joystick - HOTAS Warthog-_6.mat.meta
rename to JoystickVisualizer/Assets/Models/HOTAS Warthog/Materials/Joystick - HOTAS Warthog-_6.mat.meta
diff --git a/JoystickVisualizer/Assets/Devices/HOTAS Warthog/Materials/Joystick - HOTAS Warthog-_defaultMat.mat b/JoystickVisualizer/Assets/Models/HOTAS Warthog/Materials/Joystick - HOTAS Warthog-_defaultMat.mat
similarity index 100%
rename from JoystickVisualizer/Assets/Devices/HOTAS Warthog/Materials/Joystick - HOTAS Warthog-_defaultMat.mat
rename to JoystickVisualizer/Assets/Models/HOTAS Warthog/Materials/Joystick - HOTAS Warthog-_defaultMat.mat
diff --git a/JoystickVisualizer/Assets/Devices/HOTAS Warthog/Materials/Joystick - HOTAS Warthog-_defaultMat.mat.meta b/JoystickVisualizer/Assets/Models/HOTAS Warthog/Materials/Joystick - HOTAS Warthog-_defaultMat.mat.meta
similarity index 100%
rename from JoystickVisualizer/Assets/Devices/HOTAS Warthog/Materials/Joystick - HOTAS Warthog-_defaultMat.mat.meta
rename to JoystickVisualizer/Assets/Models/HOTAS Warthog/Materials/Joystick - HOTAS Warthog-_defaultMat.mat.meta
diff --git a/JoystickVisualizer/Assets/Devices/HOTAS Warthog/Materials/Throttle - HOTAS Warthog-Color_002.mat b/JoystickVisualizer/Assets/Models/HOTAS Warthog/Materials/Throttle - HOTAS Warthog-Color_002.mat
similarity index 100%
rename from JoystickVisualizer/Assets/Devices/HOTAS Warthog/Materials/Throttle - HOTAS Warthog-Color_002.mat
rename to JoystickVisualizer/Assets/Models/HOTAS Warthog/Materials/Throttle - HOTAS Warthog-Color_002.mat
diff --git a/JoystickVisualizer/Assets/Devices/HOTAS Warthog/Materials/Throttle - HOTAS Warthog-Color_002.mat.meta b/JoystickVisualizer/Assets/Models/HOTAS Warthog/Materials/Throttle - HOTAS Warthog-Color_002.mat.meta
similarity index 100%
rename from JoystickVisualizer/Assets/Devices/HOTAS Warthog/Materials/Throttle - HOTAS Warthog-Color_002.mat.meta
rename to JoystickVisualizer/Assets/Models/HOTAS Warthog/Materials/Throttle - HOTAS Warthog-Color_002.mat.meta
diff --git a/JoystickVisualizer/Assets/Devices/HOTAS Warthog/Materials/Throttle - HOTAS Warthog-Color_008.mat b/JoystickVisualizer/Assets/Models/HOTAS Warthog/Materials/Throttle - HOTAS Warthog-Color_008.mat
similarity index 100%
rename from JoystickVisualizer/Assets/Devices/HOTAS Warthog/Materials/Throttle - HOTAS Warthog-Color_008.mat
rename to JoystickVisualizer/Assets/Models/HOTAS Warthog/Materials/Throttle - HOTAS Warthog-Color_008.mat
diff --git a/JoystickVisualizer/Assets/Devices/HOTAS Warthog/Materials/Throttle - HOTAS Warthog-Color_008.mat.meta b/JoystickVisualizer/Assets/Models/HOTAS Warthog/Materials/Throttle - HOTAS Warthog-Color_008.mat.meta
similarity index 100%
rename from JoystickVisualizer/Assets/Devices/HOTAS Warthog/Materials/Throttle - HOTAS Warthog-Color_008.mat.meta
rename to JoystickVisualizer/Assets/Models/HOTAS Warthog/Materials/Throttle - HOTAS Warthog-Color_008.mat.meta
diff --git a/JoystickVisualizer/Assets/Devices/HOTAS Warthog/Materials/Throttle - HOTAS Warthog-Color_009.mat b/JoystickVisualizer/Assets/Models/HOTAS Warthog/Materials/Throttle - HOTAS Warthog-Color_009.mat
similarity index 100%
rename from JoystickVisualizer/Assets/Devices/HOTAS Warthog/Materials/Throttle - HOTAS Warthog-Color_009.mat
rename to JoystickVisualizer/Assets/Models/HOTAS Warthog/Materials/Throttle - HOTAS Warthog-Color_009.mat
diff --git a/JoystickVisualizer/Assets/Devices/HOTAS Warthog/Materials/Throttle - HOTAS Warthog-Color_009.mat.meta b/JoystickVisualizer/Assets/Models/HOTAS Warthog/Materials/Throttle - HOTAS Warthog-Color_009.mat.meta
similarity index 100%
rename from JoystickVisualizer/Assets/Devices/HOTAS Warthog/Materials/Throttle - HOTAS Warthog-Color_009.mat.meta
rename to JoystickVisualizer/Assets/Models/HOTAS Warthog/Materials/Throttle - HOTAS Warthog-Color_009.mat.meta
diff --git a/JoystickVisualizer/Assets/Devices/HOTAS Warthog/Materials/Throttle - HOTAS Warthog-Color_A06.mat b/JoystickVisualizer/Assets/Models/HOTAS Warthog/Materials/Throttle - HOTAS Warthog-Color_A06.mat
similarity index 100%
rename from JoystickVisualizer/Assets/Devices/HOTAS Warthog/Materials/Throttle - HOTAS Warthog-Color_A06.mat
rename to JoystickVisualizer/Assets/Models/HOTAS Warthog/Materials/Throttle - HOTAS Warthog-Color_A06.mat
diff --git a/JoystickVisualizer/Assets/Devices/HOTAS Warthog/Materials/Throttle - HOTAS Warthog-Color_A06.mat.meta b/JoystickVisualizer/Assets/Models/HOTAS Warthog/Materials/Throttle - HOTAS Warthog-Color_A06.mat.meta
similarity index 100%
rename from JoystickVisualizer/Assets/Devices/HOTAS Warthog/Materials/Throttle - HOTAS Warthog-Color_A06.mat.meta
rename to JoystickVisualizer/Assets/Models/HOTAS Warthog/Materials/Throttle - HOTAS Warthog-Color_A06.mat.meta
diff --git a/JoystickVisualizer/Assets/Devices/HOTAS Warthog/Materials/Throttle - HOTAS Warthog-Metal_Corrogated_Shiny.mat b/JoystickVisualizer/Assets/Models/HOTAS Warthog/Materials/Throttle - HOTAS Warthog-Metal_Corrogated_Shiny.mat
similarity index 100%
rename from JoystickVisualizer/Assets/Devices/HOTAS Warthog/Materials/Throttle - HOTAS Warthog-Metal_Corrogated_Shiny.mat
rename to JoystickVisualizer/Assets/Models/HOTAS Warthog/Materials/Throttle - HOTAS Warthog-Metal_Corrogated_Shiny.mat
diff --git a/JoystickVisualizer/Assets/Devices/HOTAS Warthog/Materials/Throttle - HOTAS Warthog-Metal_Corrogated_Shiny.mat.meta b/JoystickVisualizer/Assets/Models/HOTAS Warthog/Materials/Throttle - HOTAS Warthog-Metal_Corrogated_Shiny.mat.meta
similarity index 100%
rename from JoystickVisualizer/Assets/Devices/HOTAS Warthog/Materials/Throttle - HOTAS Warthog-Metal_Corrogated_Shiny.mat.meta
rename to JoystickVisualizer/Assets/Models/HOTAS Warthog/Materials/Throttle - HOTAS Warthog-Metal_Corrogated_Shiny.mat.meta
diff --git a/JoystickVisualizer/Assets/Devices/HOTAS Warthog/Materials/Throttle - HOTAS Warthog-Metal_Embossed.mat b/JoystickVisualizer/Assets/Models/HOTAS Warthog/Materials/Throttle - HOTAS Warthog-Metal_Embossed.mat
similarity index 100%
rename from JoystickVisualizer/Assets/Devices/HOTAS Warthog/Materials/Throttle - HOTAS Warthog-Metal_Embossed.mat
rename to JoystickVisualizer/Assets/Models/HOTAS Warthog/Materials/Throttle - HOTAS Warthog-Metal_Embossed.mat
diff --git a/JoystickVisualizer/Assets/Devices/HOTAS Warthog/Materials/Throttle - HOTAS Warthog-Metal_Embossed.mat.meta b/JoystickVisualizer/Assets/Models/HOTAS Warthog/Materials/Throttle - HOTAS Warthog-Metal_Embossed.mat.meta
similarity index 100%
rename from JoystickVisualizer/Assets/Devices/HOTAS Warthog/Materials/Throttle - HOTAS Warthog-Metal_Embossed.mat.meta
rename to JoystickVisualizer/Assets/Models/HOTAS Warthog/Materials/Throttle - HOTAS Warthog-Metal_Embossed.mat.meta
diff --git a/JoystickVisualizer/Assets/Devices/HOTAS Warthog/Materials/Throttle - HOTAS Warthog-TM Warthog Trottle.mat b/JoystickVisualizer/Assets/Models/HOTAS Warthog/Materials/Throttle - HOTAS Warthog-TM Warthog Trottle.mat
similarity index 100%
rename from JoystickVisualizer/Assets/Devices/HOTAS Warthog/Materials/Throttle - HOTAS Warthog-TM Warthog Trottle.mat
rename to JoystickVisualizer/Assets/Models/HOTAS Warthog/Materials/Throttle - HOTAS Warthog-TM Warthog Trottle.mat
diff --git a/JoystickVisualizer/Assets/Devices/HOTAS Warthog/Materials/Throttle - HOTAS Warthog-TM Warthog Trottle.mat.meta b/JoystickVisualizer/Assets/Models/HOTAS Warthog/Materials/Throttle - HOTAS Warthog-TM Warthog Trottle.mat.meta
similarity index 100%
rename from JoystickVisualizer/Assets/Devices/HOTAS Warthog/Materials/Throttle - HOTAS Warthog-TM Warthog Trottle.mat.meta
rename to JoystickVisualizer/Assets/Models/HOTAS Warthog/Materials/Throttle - HOTAS Warthog-TM Warthog Trottle.mat.meta
diff --git a/JoystickVisualizer/Assets/Devices/HOTAS Warthog/Materials/Throttle - HOTAS Warthog-[Color_002].mat b/JoystickVisualizer/Assets/Models/HOTAS Warthog/Materials/Throttle - HOTAS Warthog-[Color_002].mat
similarity index 100%
rename from JoystickVisualizer/Assets/Devices/HOTAS Warthog/Materials/Throttle - HOTAS Warthog-[Color_002].mat
rename to JoystickVisualizer/Assets/Models/HOTAS Warthog/Materials/Throttle - HOTAS Warthog-[Color_002].mat
diff --git a/JoystickVisualizer/Assets/Devices/HOTAS Warthog/Materials/Throttle - HOTAS Warthog-[Color_002].mat.meta b/JoystickVisualizer/Assets/Models/HOTAS Warthog/Materials/Throttle - HOTAS Warthog-[Color_002].mat.meta
similarity index 100%
rename from JoystickVisualizer/Assets/Devices/HOTAS Warthog/Materials/Throttle - HOTAS Warthog-[Color_002].mat.meta
rename to JoystickVisualizer/Assets/Models/HOTAS Warthog/Materials/Throttle - HOTAS Warthog-[Color_002].mat.meta
diff --git a/JoystickVisualizer/Assets/Devices/HOTAS Warthog/Materials/Throttle - HOTAS Warthog-[Color_007]1.mat b/JoystickVisualizer/Assets/Models/HOTAS Warthog/Materials/Throttle - HOTAS Warthog-[Color_007]1.mat
similarity index 100%
rename from JoystickVisualizer/Assets/Devices/HOTAS Warthog/Materials/Throttle - HOTAS Warthog-[Color_007]1.mat
rename to JoystickVisualizer/Assets/Models/HOTAS Warthog/Materials/Throttle - HOTAS Warthog-[Color_007]1.mat
diff --git a/JoystickVisualizer/Assets/Devices/HOTAS Warthog/Materials/Throttle - HOTAS Warthog-[Color_007]1.mat.meta b/JoystickVisualizer/Assets/Models/HOTAS Warthog/Materials/Throttle - HOTAS Warthog-[Color_007]1.mat.meta
similarity index 100%
rename from JoystickVisualizer/Assets/Devices/HOTAS Warthog/Materials/Throttle - HOTAS Warthog-[Color_007]1.mat.meta
rename to JoystickVisualizer/Assets/Models/HOTAS Warthog/Materials/Throttle - HOTAS Warthog-[Color_007]1.mat.meta
diff --git a/JoystickVisualizer/Assets/Devices/HOTAS Warthog/Materials/Throttle - HOTAS Warthog-[Color_008].mat b/JoystickVisualizer/Assets/Models/HOTAS Warthog/Materials/Throttle - HOTAS Warthog-[Color_008].mat
similarity index 100%
rename from JoystickVisualizer/Assets/Devices/HOTAS Warthog/Materials/Throttle - HOTAS Warthog-[Color_008].mat
rename to JoystickVisualizer/Assets/Models/HOTAS Warthog/Materials/Throttle - HOTAS Warthog-[Color_008].mat
diff --git a/JoystickVisualizer/Assets/Devices/HOTAS Warthog/Materials/Throttle - HOTAS Warthog-[Color_008].mat.meta b/JoystickVisualizer/Assets/Models/HOTAS Warthog/Materials/Throttle - HOTAS Warthog-[Color_008].mat.meta
similarity index 100%
rename from JoystickVisualizer/Assets/Devices/HOTAS Warthog/Materials/Throttle - HOTAS Warthog-[Color_008].mat.meta
rename to JoystickVisualizer/Assets/Models/HOTAS Warthog/Materials/Throttle - HOTAS Warthog-[Color_008].mat.meta
diff --git a/JoystickVisualizer/Assets/Devices/HOTAS Warthog/Materials/Throttle - HOTAS Warthog-[Color_009].mat b/JoystickVisualizer/Assets/Models/HOTAS Warthog/Materials/Throttle - HOTAS Warthog-[Color_009].mat
similarity index 100%
rename from JoystickVisualizer/Assets/Devices/HOTAS Warthog/Materials/Throttle - HOTAS Warthog-[Color_009].mat
rename to JoystickVisualizer/Assets/Models/HOTAS Warthog/Materials/Throttle - HOTAS Warthog-[Color_009].mat
diff --git a/JoystickVisualizer/Assets/Devices/HOTAS Warthog/Materials/Throttle - HOTAS Warthog-[Color_009].mat.meta b/JoystickVisualizer/Assets/Models/HOTAS Warthog/Materials/Throttle - HOTAS Warthog-[Color_009].mat.meta
similarity index 100%
rename from JoystickVisualizer/Assets/Devices/HOTAS Warthog/Materials/Throttle - HOTAS Warthog-[Color_009].mat.meta
rename to JoystickVisualizer/Assets/Models/HOTAS Warthog/Materials/Throttle - HOTAS Warthog-[Color_009].mat.meta
diff --git a/JoystickVisualizer/Assets/Devices/HOTAS Warthog/Materials/Throttle - HOTAS Warthog-[Color_A06].mat b/JoystickVisualizer/Assets/Models/HOTAS Warthog/Materials/Throttle - HOTAS Warthog-[Color_A06].mat
similarity index 100%
rename from JoystickVisualizer/Assets/Devices/HOTAS Warthog/Materials/Throttle - HOTAS Warthog-[Color_A06].mat
rename to JoystickVisualizer/Assets/Models/HOTAS Warthog/Materials/Throttle - HOTAS Warthog-[Color_A06].mat
diff --git a/JoystickVisualizer/Assets/Devices/HOTAS Warthog/Materials/Throttle - HOTAS Warthog-[Color_A06].mat.meta b/JoystickVisualizer/Assets/Models/HOTAS Warthog/Materials/Throttle - HOTAS Warthog-[Color_A06].mat.meta
similarity index 100%
rename from JoystickVisualizer/Assets/Devices/HOTAS Warthog/Materials/Throttle - HOTAS Warthog-[Color_A06].mat.meta
rename to JoystickVisualizer/Assets/Models/HOTAS Warthog/Materials/Throttle - HOTAS Warthog-[Color_A06].mat.meta
diff --git a/JoystickVisualizer/Assets/Devices/HOTAS Warthog/Materials/Throttle - HOTAS Warthog-[Metal_Corrogated_Shiny].mat b/JoystickVisualizer/Assets/Models/HOTAS Warthog/Materials/Throttle - HOTAS Warthog-[Metal_Corrogated_Shiny].mat
similarity index 100%
rename from JoystickVisualizer/Assets/Devices/HOTAS Warthog/Materials/Throttle - HOTAS Warthog-[Metal_Corrogated_Shiny].mat
rename to JoystickVisualizer/Assets/Models/HOTAS Warthog/Materials/Throttle - HOTAS Warthog-[Metal_Corrogated_Shiny].mat
diff --git a/JoystickVisualizer/Assets/Devices/HOTAS Warthog/Materials/Throttle - HOTAS Warthog-[Metal_Corrogated_Shiny].mat.meta b/JoystickVisualizer/Assets/Models/HOTAS Warthog/Materials/Throttle - HOTAS Warthog-[Metal_Corrogated_Shiny].mat.meta
similarity index 100%
rename from JoystickVisualizer/Assets/Devices/HOTAS Warthog/Materials/Throttle - HOTAS Warthog-[Metal_Corrogated_Shiny].mat.meta
rename to JoystickVisualizer/Assets/Models/HOTAS Warthog/Materials/Throttle - HOTAS Warthog-[Metal_Corrogated_Shiny].mat.meta
diff --git a/JoystickVisualizer/Assets/Devices/HOTAS Warthog/Materials/Throttle - HOTAS Warthog-[Metal_Corrogated_Shiny]1.mat b/JoystickVisualizer/Assets/Models/HOTAS Warthog/Materials/Throttle - HOTAS Warthog-[Metal_Corrogated_Shiny]1.mat
similarity index 100%
rename from JoystickVisualizer/Assets/Devices/HOTAS Warthog/Materials/Throttle - HOTAS Warthog-[Metal_Corrogated_Shiny]1.mat
rename to JoystickVisualizer/Assets/Models/HOTAS Warthog/Materials/Throttle - HOTAS Warthog-[Metal_Corrogated_Shiny]1.mat
diff --git a/JoystickVisualizer/Assets/Devices/HOTAS Warthog/Materials/Throttle - HOTAS Warthog-[Metal_Corrogated_Shiny]1.mat.meta b/JoystickVisualizer/Assets/Models/HOTAS Warthog/Materials/Throttle - HOTAS Warthog-[Metal_Corrogated_Shiny]1.mat.meta
similarity index 100%
rename from JoystickVisualizer/Assets/Devices/HOTAS Warthog/Materials/Throttle - HOTAS Warthog-[Metal_Corrogated_Shiny]1.mat.meta
rename to JoystickVisualizer/Assets/Models/HOTAS Warthog/Materials/Throttle - HOTAS Warthog-[Metal_Corrogated_Shiny]1.mat.meta
diff --git a/JoystickVisualizer/Assets/Devices/HOTAS Warthog/Materials/Throttle - HOTAS Warthog-[Metal_Embossed].mat b/JoystickVisualizer/Assets/Models/HOTAS Warthog/Materials/Throttle - HOTAS Warthog-[Metal_Embossed].mat
similarity index 100%
rename from JoystickVisualizer/Assets/Devices/HOTAS Warthog/Materials/Throttle - HOTAS Warthog-[Metal_Embossed].mat
rename to JoystickVisualizer/Assets/Models/HOTAS Warthog/Materials/Throttle - HOTAS Warthog-[Metal_Embossed].mat
diff --git a/JoystickVisualizer/Assets/Devices/HOTAS Warthog/Materials/Throttle - HOTAS Warthog-[Metal_Embossed].mat.meta b/JoystickVisualizer/Assets/Models/HOTAS Warthog/Materials/Throttle - HOTAS Warthog-[Metal_Embossed].mat.meta
similarity index 100%
rename from JoystickVisualizer/Assets/Devices/HOTAS Warthog/Materials/Throttle - HOTAS Warthog-[Metal_Embossed].mat.meta
rename to JoystickVisualizer/Assets/Models/HOTAS Warthog/Materials/Throttle - HOTAS Warthog-[Metal_Embossed].mat.meta
diff --git a/JoystickVisualizer/Assets/Devices/HOTAS Warthog/Materials/Throttle - HOTAS Warthog-_defaultMat.mat b/JoystickVisualizer/Assets/Models/HOTAS Warthog/Materials/Throttle - HOTAS Warthog-_defaultMat.mat
similarity index 100%
rename from JoystickVisualizer/Assets/Devices/HOTAS Warthog/Materials/Throttle - HOTAS Warthog-_defaultMat.mat
rename to JoystickVisualizer/Assets/Models/HOTAS Warthog/Materials/Throttle - HOTAS Warthog-_defaultMat.mat
diff --git a/JoystickVisualizer/Assets/Devices/HOTAS Warthog/Materials/Throttle - HOTAS Warthog-_defaultMat.mat.meta b/JoystickVisualizer/Assets/Models/HOTAS Warthog/Materials/Throttle - HOTAS Warthog-_defaultMat.mat.meta
similarity index 100%
rename from JoystickVisualizer/Assets/Devices/HOTAS Warthog/Materials/Throttle - HOTAS Warthog-_defaultMat.mat.meta
rename to JoystickVisualizer/Assets/Models/HOTAS Warthog/Materials/Throttle - HOTAS Warthog-_defaultMat.mat.meta
diff --git a/JoystickVisualizer/Assets/Devices/HOTAS Warthog/TMWarthogJoystick.cs b/JoystickVisualizer/Assets/Models/HOTAS Warthog/TMWarthogJoystick.cs
similarity index 100%
rename from JoystickVisualizer/Assets/Devices/HOTAS Warthog/TMWarthogJoystick.cs
rename to JoystickVisualizer/Assets/Models/HOTAS Warthog/TMWarthogJoystick.cs
diff --git a/JoystickVisualizer/Assets/Devices/HOTAS Warthog/TMWarthogJoystick.cs.meta b/JoystickVisualizer/Assets/Models/HOTAS Warthog/TMWarthogJoystick.cs.meta
similarity index 100%
rename from JoystickVisualizer/Assets/Devices/HOTAS Warthog/TMWarthogJoystick.cs.meta
rename to JoystickVisualizer/Assets/Models/HOTAS Warthog/TMWarthogJoystick.cs.meta
diff --git a/JoystickVisualizer/Assets/Devices/HOTAS Warthog/TMWarthogThrottle.cs b/JoystickVisualizer/Assets/Models/HOTAS Warthog/TMWarthogThrottle.cs
similarity index 100%
rename from JoystickVisualizer/Assets/Devices/HOTAS Warthog/TMWarthogThrottle.cs
rename to JoystickVisualizer/Assets/Models/HOTAS Warthog/TMWarthogThrottle.cs
diff --git a/JoystickVisualizer/Assets/Devices/HOTAS Warthog/TMWarthogThrottle.cs.meta b/JoystickVisualizer/Assets/Models/HOTAS Warthog/TMWarthogThrottle.cs.meta
similarity index 100%
rename from JoystickVisualizer/Assets/Devices/HOTAS Warthog/TMWarthogThrottle.cs.meta
rename to JoystickVisualizer/Assets/Models/HOTAS Warthog/TMWarthogThrottle.cs.meta
diff --git a/JoystickVisualizer/Assets/Devices/HOTAS Warthog/Textures.meta b/JoystickVisualizer/Assets/Models/HOTAS Warthog/Textures.meta
similarity index 100%
rename from JoystickVisualizer/Assets/Devices/HOTAS Warthog/Textures.meta
rename to JoystickVisualizer/Assets/Models/HOTAS Warthog/Textures.meta
diff --git a/JoystickVisualizer/Assets/Models/HOTAS Warthog/Textures/Metal_Aluminum_Anodized.jpg b/JoystickVisualizer/Assets/Models/HOTAS Warthog/Textures/Metal_Aluminum_Anodized.jpg
new file mode 100644
index 0000000..852e7b0
Binary files /dev/null and b/JoystickVisualizer/Assets/Models/HOTAS Warthog/Textures/Metal_Aluminum_Anodized.jpg differ
diff --git a/JoystickVisualizer/Assets/Devices/HOTAS Warthog/Textures/Metal_Aluminum_Anodized.jpg.meta b/JoystickVisualizer/Assets/Models/HOTAS Warthog/Textures/Metal_Aluminum_Anodized.jpg.meta
similarity index 100%
rename from JoystickVisualizer/Assets/Devices/HOTAS Warthog/Textures/Metal_Aluminum_Anodized.jpg.meta
rename to JoystickVisualizer/Assets/Models/HOTAS Warthog/Textures/Metal_Aluminum_Anodized.jpg.meta
diff --git a/JoystickVisualizer/Assets/Devices/HOTAS Warthog/Textures/Metal_Corrogated_Shiny.jpg b/JoystickVisualizer/Assets/Models/HOTAS Warthog/Textures/Metal_Corrogated_Shiny.jpg
similarity index 100%
rename from JoystickVisualizer/Assets/Devices/HOTAS Warthog/Textures/Metal_Corrogated_Shiny.jpg
rename to JoystickVisualizer/Assets/Models/HOTAS Warthog/Textures/Metal_Corrogated_Shiny.jpg
diff --git a/JoystickVisualizer/Assets/Devices/HOTAS Warthog/Textures/Metal_Corrogated_Shiny.jpg.meta b/JoystickVisualizer/Assets/Models/HOTAS Warthog/Textures/Metal_Corrogated_Shiny.jpg.meta
similarity index 100%
rename from JoystickVisualizer/Assets/Devices/HOTAS Warthog/Textures/Metal_Corrogated_Shiny.jpg.meta
rename to JoystickVisualizer/Assets/Models/HOTAS Warthog/Textures/Metal_Corrogated_Shiny.jpg.meta
diff --git a/JoystickVisualizer/Assets/Models/HOTAS Warthog/Textures/Metal_Corrogated_Shiny_tint0x343535FF.jpg b/JoystickVisualizer/Assets/Models/HOTAS Warthog/Textures/Metal_Corrogated_Shiny_tint0x343535FF.jpg
new file mode 100644
index 0000000..81a10bb
Binary files /dev/null and b/JoystickVisualizer/Assets/Models/HOTAS Warthog/Textures/Metal_Corrogated_Shiny_tint0x343535FF.jpg differ
diff --git a/JoystickVisualizer/Assets/PostProcessing/Utilities/CustomMotionTexture/Textures/UVChecker.png.meta b/JoystickVisualizer/Assets/Models/HOTAS Warthog/Textures/Metal_Corrogated_Shiny_tint0x343535FF.jpg.meta
similarity index 64%
rename from JoystickVisualizer/Assets/PostProcessing/Utilities/CustomMotionTexture/Textures/UVChecker.png.meta
rename to JoystickVisualizer/Assets/Models/HOTAS Warthog/Textures/Metal_Corrogated_Shiny_tint0x343535FF.jpg.meta
index 1114b26..7749fb2 100644
--- a/JoystickVisualizer/Assets/PostProcessing/Utilities/CustomMotionTexture/Textures/UVChecker.png.meta
+++ b/JoystickVisualizer/Assets/Models/HOTAS Warthog/Textures/Metal_Corrogated_Shiny_tint0x343535FF.jpg.meta
@@ -1,10 +1,9 @@
fileFormatVersion: 2
-guid: a08960dd6e8274e7f8fca616e09c48ed
-timeCreated: 1487340672
-licenseType: Store
+guid: 5b4ff4fb8e14b7e478ab630bd1c782de
TextureImporter:
- fileIDToRecycleName: {}
- serializedVersion: 4
+ internalIDToNameTable: []
+ externalObjects: {}
+ serializedVersion: 10
mipmaps:
mipMapMode: 0
enableMipMap: 1
@@ -12,6 +11,8 @@ TextureImporter:
linearTexture: 0
fadeOut: 0
borderMipMap: 0
+ mipMapsPreserveCoverage: 0
+ alphaTestReferenceValue: 0.5
mipMapFadeDistanceStart: 1
mipMapFadeDistanceEnd: 3
bumpmap:
@@ -20,6 +21,8 @@ TextureImporter:
heightScale: 0.25
normalMapFilter: 0
isReadable: 0
+ streamingMipmaps: 0
+ streamingMipmapsPriority: 0
grayScaleToAlpha: 0
generateCubemap: 6
cubemapConvolution: 0
@@ -27,10 +30,13 @@ TextureImporter:
textureFormat: 1
maxTextureSize: 2048
textureSettings:
+ serializedVersion: 2
filterMode: -1
aniso: -1
- mipBias: -1
- wrapMode: -1
+ mipBias: -100
+ wrapU: -1
+ wrapV: -1
+ wrapW: -1
nPOTScale: 1
lightmap: 0
compressionQuality: 50
@@ -39,30 +45,46 @@ TextureImporter:
spriteMeshType: 1
alignment: 0
spritePivot: {x: 0.5, y: 0.5}
- spriteBorder: {x: 0, y: 0, z: 0, w: 0}
spritePixelsToUnits: 100
+ spriteBorder: {x: 0, y: 0, z: 0, w: 0}
+ spriteGenerateFallbackPhysicsShape: 1
alphaUsage: 1
alphaIsTransparency: 0
spriteTessellationDetail: -1
textureType: 0
textureShape: 1
+ singleChannelComponent: 0
maxTextureSizeSet: 0
compressionQualitySet: 0
textureFormatSet: 0
platformSettings:
- - buildTarget: DefaultTexturePlatform
+ - serializedVersion: 2
+ buildTarget: DefaultTexturePlatform
maxTextureSize: 2048
+ resizeAlgorithm: 0
textureFormat: -1
textureCompression: 1
compressionQuality: 50
crunchedCompression: 0
allowsAlphaSplitting: 0
overridden: 0
+ androidETC2FallbackOverride: 0
spriteSheet:
serializedVersion: 2
sprites: []
outline: []
+ physicsShape: []
+ bones: []
+ spriteID:
+ internalID: 0
+ vertices: []
+ indices:
+ edges: []
+ weights: []
+ secondaryTextures: []
spritePackingTag:
+ pSDRemoveMatte: 0
+ pSDShowRemoveMatteOption: 0
userData:
assetBundleName:
assetBundleVariant:
diff --git a/JoystickVisualizer/Assets/Models/HOTAS Warthog/Textures/Metal_Corrogated_Shiny_tint0x8C8C8CFF.jpg b/JoystickVisualizer/Assets/Models/HOTAS Warthog/Textures/Metal_Corrogated_Shiny_tint0x8C8C8CFF.jpg
new file mode 100644
index 0000000..cf4e570
Binary files /dev/null and b/JoystickVisualizer/Assets/Models/HOTAS Warthog/Textures/Metal_Corrogated_Shiny_tint0x8C8C8CFF.jpg differ
diff --git a/JoystickVisualizer/Assets/PostProcessing/Utilities/CustomMotionTexture/Textures/WheelMotionVectors.png.meta b/JoystickVisualizer/Assets/Models/HOTAS Warthog/Textures/Metal_Corrogated_Shiny_tint0x8C8C8CFF.jpg.meta
similarity index 64%
rename from JoystickVisualizer/Assets/PostProcessing/Utilities/CustomMotionTexture/Textures/WheelMotionVectors.png.meta
rename to JoystickVisualizer/Assets/Models/HOTAS Warthog/Textures/Metal_Corrogated_Shiny_tint0x8C8C8CFF.jpg.meta
index c141bb9..eb21b95 100644
--- a/JoystickVisualizer/Assets/PostProcessing/Utilities/CustomMotionTexture/Textures/WheelMotionVectors.png.meta
+++ b/JoystickVisualizer/Assets/Models/HOTAS Warthog/Textures/Metal_Corrogated_Shiny_tint0x8C8C8CFF.jpg.meta
@@ -1,10 +1,9 @@
fileFormatVersion: 2
-guid: d1cc06458fe724df8837423c0a2f8f93
-timeCreated: 1487348028
-licenseType: Store
+guid: c8741b2cd6eda5443a498d1996746aa4
TextureImporter:
- fileIDToRecycleName: {}
- serializedVersion: 4
+ internalIDToNameTable: []
+ externalObjects: {}
+ serializedVersion: 10
mipmaps:
mipMapMode: 0
enableMipMap: 1
@@ -12,6 +11,8 @@ TextureImporter:
linearTexture: 0
fadeOut: 0
borderMipMap: 0
+ mipMapsPreserveCoverage: 0
+ alphaTestReferenceValue: 0.5
mipMapFadeDistanceStart: 1
mipMapFadeDistanceEnd: 3
bumpmap:
@@ -20,6 +21,8 @@ TextureImporter:
heightScale: 0.25
normalMapFilter: 0
isReadable: 0
+ streamingMipmaps: 0
+ streamingMipmapsPriority: 0
grayScaleToAlpha: 0
generateCubemap: 6
cubemapConvolution: 0
@@ -27,10 +30,13 @@ TextureImporter:
textureFormat: 1
maxTextureSize: 2048
textureSettings:
+ serializedVersion: 2
filterMode: -1
aniso: -1
- mipBias: -1
- wrapMode: -1
+ mipBias: -100
+ wrapU: -1
+ wrapV: -1
+ wrapW: -1
nPOTScale: 1
lightmap: 0
compressionQuality: 50
@@ -39,30 +45,46 @@ TextureImporter:
spriteMeshType: 1
alignment: 0
spritePivot: {x: 0.5, y: 0.5}
- spriteBorder: {x: 0, y: 0, z: 0, w: 0}
spritePixelsToUnits: 100
+ spriteBorder: {x: 0, y: 0, z: 0, w: 0}
+ spriteGenerateFallbackPhysicsShape: 1
alphaUsage: 1
alphaIsTransparency: 0
spriteTessellationDetail: -1
textureType: 0
textureShape: 1
+ singleChannelComponent: 0
maxTextureSizeSet: 0
compressionQualitySet: 0
textureFormatSet: 0
platformSettings:
- - buildTarget: DefaultTexturePlatform
+ - serializedVersion: 2
+ buildTarget: DefaultTexturePlatform
maxTextureSize: 2048
+ resizeAlgorithm: 0
textureFormat: -1
textureCompression: 1
compressionQuality: 50
crunchedCompression: 0
allowsAlphaSplitting: 0
overridden: 0
+ androidETC2FallbackOverride: 0
spriteSheet:
serializedVersion: 2
sprites: []
outline: []
+ physicsShape: []
+ bones: []
+ spriteID:
+ internalID: 0
+ vertices: []
+ indices:
+ edges: []
+ weights: []
+ secondaryTextures: []
spritePackingTag:
+ pSDRemoveMatte: 0
+ pSDShowRemoveMatteOption: 0
userData:
assetBundleName:
assetBundleVariant:
diff --git a/JoystickVisualizer/Assets/Devices/HOTAS Warthog/Textures/Metal_Embossed.jpg b/JoystickVisualizer/Assets/Models/HOTAS Warthog/Textures/Metal_Embossed.jpg
similarity index 100%
rename from JoystickVisualizer/Assets/Devices/HOTAS Warthog/Textures/Metal_Embossed.jpg
rename to JoystickVisualizer/Assets/Models/HOTAS Warthog/Textures/Metal_Embossed.jpg
diff --git a/JoystickVisualizer/Assets/Devices/HOTAS Warthog/Textures/Metal_Embossed.jpg.meta b/JoystickVisualizer/Assets/Models/HOTAS Warthog/Textures/Metal_Embossed.jpg.meta
similarity index 100%
rename from JoystickVisualizer/Assets/Devices/HOTAS Warthog/Textures/Metal_Embossed.jpg.meta
rename to JoystickVisualizer/Assets/Models/HOTAS Warthog/Textures/Metal_Embossed.jpg.meta
diff --git a/JoystickVisualizer/Assets/Models/HOTAS Warthog/Textures/Metal_Embossed_tint0x404040FF.jpg b/JoystickVisualizer/Assets/Models/HOTAS Warthog/Textures/Metal_Embossed_tint0x404040FF.jpg
new file mode 100644
index 0000000..1b60827
Binary files /dev/null and b/JoystickVisualizer/Assets/Models/HOTAS Warthog/Textures/Metal_Embossed_tint0x404040FF.jpg differ
diff --git a/JoystickVisualizer/Assets/PostProcessing/Utilities/CustomMotionTexture/Textures/DebugMotionVectors.png.meta b/JoystickVisualizer/Assets/Models/HOTAS Warthog/Textures/Metal_Embossed_tint0x404040FF.jpg.meta
similarity index 62%
rename from JoystickVisualizer/Assets/PostProcessing/Utilities/CustomMotionTexture/Textures/DebugMotionVectors.png.meta
rename to JoystickVisualizer/Assets/Models/HOTAS Warthog/Textures/Metal_Embossed_tint0x404040FF.jpg.meta
index f0580fc..912b567 100644
--- a/JoystickVisualizer/Assets/PostProcessing/Utilities/CustomMotionTexture/Textures/DebugMotionVectors.png.meta
+++ b/JoystickVisualizer/Assets/Models/HOTAS Warthog/Textures/Metal_Embossed_tint0x404040FF.jpg.meta
@@ -1,17 +1,18 @@
fileFormatVersion: 2
-guid: 3aac3087967ea4fae858ec0494fd24d9
-timeCreated: 1479828550
-licenseType: Store
+guid: b06fe71c23820754ba97452dbbd87c45
TextureImporter:
- fileIDToRecycleName: {}
- serializedVersion: 4
+ internalIDToNameTable: []
+ externalObjects: {}
+ serializedVersion: 10
mipmaps:
mipMapMode: 0
- enableMipMap: 0
- sRGBTexture: 0
+ enableMipMap: 1
+ sRGBTexture: 1
linearTexture: 0
fadeOut: 0
borderMipMap: 0
+ mipMapsPreserveCoverage: 0
+ alphaTestReferenceValue: 0.5
mipMapFadeDistanceStart: 1
mipMapFadeDistanceEnd: 3
bumpmap:
@@ -20,6 +21,8 @@ TextureImporter:
heightScale: 0.25
normalMapFilter: 0
isReadable: 0
+ streamingMipmaps: 0
+ streamingMipmapsPriority: 0
grayScaleToAlpha: 0
generateCubemap: 6
cubemapConvolution: 0
@@ -27,10 +30,13 @@ TextureImporter:
textureFormat: 1
maxTextureSize: 2048
textureSettings:
+ serializedVersion: 2
filterMode: -1
aniso: -1
- mipBias: -1
- wrapMode: 1
+ mipBias: -100
+ wrapU: -1
+ wrapV: -1
+ wrapW: -1
nPOTScale: 1
lightmap: 0
compressionQuality: 50
@@ -39,38 +45,46 @@ TextureImporter:
spriteMeshType: 1
alignment: 0
spritePivot: {x: 0.5, y: 0.5}
- spriteBorder: {x: 0, y: 0, z: 0, w: 0}
spritePixelsToUnits: 100
+ spriteBorder: {x: 0, y: 0, z: 0, w: 0}
+ spriteGenerateFallbackPhysicsShape: 1
alphaUsage: 1
alphaIsTransparency: 0
spriteTessellationDetail: -1
textureType: 0
textureShape: 1
+ singleChannelComponent: 0
maxTextureSizeSet: 0
compressionQualitySet: 0
textureFormatSet: 0
platformSettings:
- - buildTarget: DefaultTexturePlatform
- maxTextureSize: 2048
- textureFormat: -1
- textureCompression: 1
- compressionQuality: 50
- crunchedCompression: 0
- allowsAlphaSplitting: 0
- overridden: 0
- - buildTarget: Standalone
+ - serializedVersion: 2
+ buildTarget: DefaultTexturePlatform
maxTextureSize: 2048
+ resizeAlgorithm: 0
textureFormat: -1
textureCompression: 1
compressionQuality: 50
crunchedCompression: 0
allowsAlphaSplitting: 0
overridden: 0
+ androidETC2FallbackOverride: 0
spriteSheet:
serializedVersion: 2
sprites: []
outline: []
+ physicsShape: []
+ bones: []
+ spriteID:
+ internalID: 0
+ vertices: []
+ indices:
+ edges: []
+ weights: []
+ secondaryTextures: []
spritePackingTag:
+ pSDRemoveMatte: 0
+ pSDShowRemoveMatteOption: 0
userData:
assetBundleName:
assetBundleVariant:
diff --git a/JoystickVisualizer/Assets/Devices/HOTAS Warthog/Textures/TMwarthogbase.png b/JoystickVisualizer/Assets/Models/HOTAS Warthog/Textures/TMwarthogbase.png
similarity index 100%
rename from JoystickVisualizer/Assets/Devices/HOTAS Warthog/Textures/TMwarthogbase.png
rename to JoystickVisualizer/Assets/Models/HOTAS Warthog/Textures/TMwarthogbase.png
diff --git a/JoystickVisualizer/Assets/Devices/HOTAS Warthog/Textures/TMwarthogbase.png.meta b/JoystickVisualizer/Assets/Models/HOTAS Warthog/Textures/TMwarthogbase.png.meta
similarity index 100%
rename from JoystickVisualizer/Assets/Devices/HOTAS Warthog/Textures/TMwarthogbase.png.meta
rename to JoystickVisualizer/Assets/Models/HOTAS Warthog/Textures/TMwarthogbase.png.meta
diff --git a/JoystickVisualizer/Assets/Models/HOTAS Warthog/Textures/warthog-up-tex.jpg b/JoystickVisualizer/Assets/Models/HOTAS Warthog/Textures/warthog-up-tex.jpg
new file mode 100644
index 0000000..2bb53d7
Binary files /dev/null and b/JoystickVisualizer/Assets/Models/HOTAS Warthog/Textures/warthog-up-tex.jpg differ
diff --git a/JoystickVisualizer/Assets/Devices/HOTAS Warthog/Textures/warthog-up-tex.jpg.meta b/JoystickVisualizer/Assets/Models/HOTAS Warthog/Textures/warthog-up-tex.jpg.meta
similarity index 100%
rename from JoystickVisualizer/Assets/Devices/HOTAS Warthog/Textures/warthog-up-tex.jpg.meta
rename to JoystickVisualizer/Assets/Models/HOTAS Warthog/Textures/warthog-up-tex.jpg.meta
diff --git a/JoystickVisualizer/Assets/Devices/HOTAS Warthog/Throttle - HOTAS Warthog.skp b/JoystickVisualizer/Assets/Models/HOTAS Warthog/Throttle - HOTAS Warthog.skp
similarity index 100%
rename from JoystickVisualizer/Assets/Devices/HOTAS Warthog/Throttle - HOTAS Warthog.skp
rename to JoystickVisualizer/Assets/Models/HOTAS Warthog/Throttle - HOTAS Warthog.skp
diff --git a/JoystickVisualizer/Assets/Devices/HOTAS Warthog/Throttle - HOTAS Warthog.skp.meta b/JoystickVisualizer/Assets/Models/HOTAS Warthog/Throttle - HOTAS Warthog.skp.meta
similarity index 100%
rename from JoystickVisualizer/Assets/Devices/HOTAS Warthog/Throttle - HOTAS Warthog.skp.meta
rename to JoystickVisualizer/Assets/Models/HOTAS Warthog/Throttle - HOTAS Warthog.skp.meta
diff --git a/JoystickVisualizer/Assets/Devices/Logitech 3D Pro.meta b/JoystickVisualizer/Assets/Models/Logitech 3D Pro.meta
similarity index 100%
rename from JoystickVisualizer/Assets/Devices/Logitech 3D Pro.meta
rename to JoystickVisualizer/Assets/Models/Logitech 3D Pro.meta
diff --git a/JoystickVisualizer/Assets/Devices/Logitech 3D Pro/Black_Plastic.mat b/JoystickVisualizer/Assets/Models/Logitech 3D Pro/Black_Plastic.mat
similarity index 100%
rename from JoystickVisualizer/Assets/Devices/Logitech 3D Pro/Black_Plastic.mat
rename to JoystickVisualizer/Assets/Models/Logitech 3D Pro/Black_Plastic.mat
diff --git a/JoystickVisualizer/Assets/Devices/Logitech 3D Pro/Black_Plastic.mat.meta b/JoystickVisualizer/Assets/Models/Logitech 3D Pro/Black_Plastic.mat.meta
similarity index 100%
rename from JoystickVisualizer/Assets/Devices/Logitech 3D Pro/Black_Plastic.mat.meta
rename to JoystickVisualizer/Assets/Models/Logitech 3D Pro/Black_Plastic.mat.meta
diff --git a/JoystickVisualizer/Assets/Devices/Logitech 3D Pro/Grey_Plastic.mat b/JoystickVisualizer/Assets/Models/Logitech 3D Pro/Grey_Plastic.mat
similarity index 100%
rename from JoystickVisualizer/Assets/Devices/Logitech 3D Pro/Grey_Plastic.mat
rename to JoystickVisualizer/Assets/Models/Logitech 3D Pro/Grey_Plastic.mat
diff --git a/JoystickVisualizer/Assets/Devices/Logitech 3D Pro/Grey_Plastic.mat.meta b/JoystickVisualizer/Assets/Models/Logitech 3D Pro/Grey_Plastic.mat.meta
similarity index 100%
rename from JoystickVisualizer/Assets/Devices/Logitech 3D Pro/Grey_Plastic.mat.meta
rename to JoystickVisualizer/Assets/Models/Logitech 3D Pro/Grey_Plastic.mat.meta
diff --git a/JoystickVisualizer/Assets/Devices/Logitech 3D Pro/Logitech Extreme 3D Pro.blend b/JoystickVisualizer/Assets/Models/Logitech 3D Pro/Logitech Extreme 3D Pro.blend
similarity index 100%
rename from JoystickVisualizer/Assets/Devices/Logitech 3D Pro/Logitech Extreme 3D Pro.blend
rename to JoystickVisualizer/Assets/Models/Logitech 3D Pro/Logitech Extreme 3D Pro.blend
diff --git a/JoystickVisualizer/Assets/Devices/Logitech 3D Pro/Logitech Extreme 3D Pro.blend.meta b/JoystickVisualizer/Assets/Models/Logitech 3D Pro/Logitech Extreme 3D Pro.blend.meta
similarity index 100%
rename from JoystickVisualizer/Assets/Devices/Logitech 3D Pro/Logitech Extreme 3D Pro.blend.meta
rename to JoystickVisualizer/Assets/Models/Logitech 3D Pro/Logitech Extreme 3D Pro.blend.meta
diff --git a/JoystickVisualizer/Assets/Devices/Logitech 3D Pro/Logitech Extreme 3D Pro.blend1 b/JoystickVisualizer/Assets/Models/Logitech 3D Pro/Logitech Extreme 3D Pro.blend1
similarity index 100%
rename from JoystickVisualizer/Assets/Devices/Logitech 3D Pro/Logitech Extreme 3D Pro.blend1
rename to JoystickVisualizer/Assets/Models/Logitech 3D Pro/Logitech Extreme 3D Pro.blend1
diff --git a/JoystickVisualizer/Assets/Devices/Logitech 3D Pro/Logitech Extreme 3D Pro.blend1.meta b/JoystickVisualizer/Assets/Models/Logitech 3D Pro/Logitech Extreme 3D Pro.blend1.meta
similarity index 100%
rename from JoystickVisualizer/Assets/Devices/Logitech 3D Pro/Logitech Extreme 3D Pro.blend1.meta
rename to JoystickVisualizer/Assets/Models/Logitech 3D Pro/Logitech Extreme 3D Pro.blend1.meta
diff --git a/JoystickVisualizer/Assets/Devices/Logitech 3D Pro/Logitech3DPro.cs b/JoystickVisualizer/Assets/Models/Logitech 3D Pro/Logitech3DPro.cs
similarity index 100%
rename from JoystickVisualizer/Assets/Devices/Logitech 3D Pro/Logitech3DPro.cs
rename to JoystickVisualizer/Assets/Models/Logitech 3D Pro/Logitech3DPro.cs
diff --git a/JoystickVisualizer/Assets/Devices/Logitech 3D Pro/Logitech3DPro.cs.meta b/JoystickVisualizer/Assets/Models/Logitech 3D Pro/Logitech3DPro.cs.meta
similarity index 100%
rename from JoystickVisualizer/Assets/Devices/Logitech 3D Pro/Logitech3DPro.cs.meta
rename to JoystickVisualizer/Assets/Models/Logitech 3D Pro/Logitech3DPro.cs.meta
diff --git a/JoystickVisualizer/Assets/Devices/Logitech 3D Pro/Very_Black_Plastic.mat b/JoystickVisualizer/Assets/Models/Logitech 3D Pro/Very_Black_Plastic.mat
similarity index 100%
rename from JoystickVisualizer/Assets/Devices/Logitech 3D Pro/Very_Black_Plastic.mat
rename to JoystickVisualizer/Assets/Models/Logitech 3D Pro/Very_Black_Plastic.mat
diff --git a/JoystickVisualizer/Assets/Devices/Logitech 3D Pro/Very_Black_Plastic.mat.meta b/JoystickVisualizer/Assets/Models/Logitech 3D Pro/Very_Black_Plastic.mat.meta
similarity index 100%
rename from JoystickVisualizer/Assets/Devices/Logitech 3D Pro/Very_Black_Plastic.mat.meta
rename to JoystickVisualizer/Assets/Models/Logitech 3D Pro/Very_Black_Plastic.mat.meta
diff --git a/JoystickVisualizer/Assets/Devices/MFG Crosswind.meta b/JoystickVisualizer/Assets/Models/MFG Crosswind.meta
similarity index 100%
rename from JoystickVisualizer/Assets/Devices/MFG Crosswind.meta
rename to JoystickVisualizer/Assets/Models/MFG Crosswind.meta
diff --git a/JoystickVisualizer/Assets/Devices/MFG Crosswind/MFG Crosswind.blend b/JoystickVisualizer/Assets/Models/MFG Crosswind/MFG Crosswind.blend
similarity index 100%
rename from JoystickVisualizer/Assets/Devices/MFG Crosswind/MFG Crosswind.blend
rename to JoystickVisualizer/Assets/Models/MFG Crosswind/MFG Crosswind.blend
diff --git a/JoystickVisualizer/Assets/Devices/MFG Crosswind/MFG Crosswind.blend.meta b/JoystickVisualizer/Assets/Models/MFG Crosswind/MFG Crosswind.blend.meta
similarity index 100%
rename from JoystickVisualizer/Assets/Devices/MFG Crosswind/MFG Crosswind.blend.meta
rename to JoystickVisualizer/Assets/Models/MFG Crosswind/MFG Crosswind.blend.meta
diff --git a/JoystickVisualizer/Assets/Devices/MFG Crosswind/MFG Crosswind.blend1 b/JoystickVisualizer/Assets/Models/MFG Crosswind/MFG Crosswind.blend1
similarity index 100%
rename from JoystickVisualizer/Assets/Devices/MFG Crosswind/MFG Crosswind.blend1
rename to JoystickVisualizer/Assets/Models/MFG Crosswind/MFG Crosswind.blend1
diff --git a/JoystickVisualizer/Assets/Devices/MFG Crosswind/MFG Crosswind.blend1.meta b/JoystickVisualizer/Assets/Models/MFG Crosswind/MFG Crosswind.blend1.meta
similarity index 100%
rename from JoystickVisualizer/Assets/Devices/MFG Crosswind/MFG Crosswind.blend1.meta
rename to JoystickVisualizer/Assets/Models/MFG Crosswind/MFG Crosswind.blend1.meta
diff --git a/JoystickVisualizer/Assets/Devices/MFG Crosswind/MFGCrosswind.cs b/JoystickVisualizer/Assets/Models/MFG Crosswind/MFGCrosswind.cs
similarity index 100%
rename from JoystickVisualizer/Assets/Devices/MFG Crosswind/MFGCrosswind.cs
rename to JoystickVisualizer/Assets/Models/MFG Crosswind/MFGCrosswind.cs
diff --git a/JoystickVisualizer/Assets/Devices/MFG Crosswind/MFGCrosswind.cs.meta b/JoystickVisualizer/Assets/Models/MFG Crosswind/MFGCrosswind.cs.meta
similarity index 100%
rename from JoystickVisualizer/Assets/Devices/MFG Crosswind/MFGCrosswind.cs.meta
rename to JoystickVisualizer/Assets/Models/MFG Crosswind/MFGCrosswind.cs.meta
diff --git a/JoystickVisualizer/Assets/Devices/MFG Crosswind/Materials.meta b/JoystickVisualizer/Assets/Models/MFG Crosswind/Materials.meta
similarity index 100%
rename from JoystickVisualizer/Assets/Devices/MFG Crosswind/Materials.meta
rename to JoystickVisualizer/Assets/Models/MFG Crosswind/Materials.meta
diff --git a/JoystickVisualizer/Assets/Devices/MFG Crosswind/Materials/Composite.mat b/JoystickVisualizer/Assets/Models/MFG Crosswind/Materials/Composite.mat
similarity index 100%
rename from JoystickVisualizer/Assets/Devices/MFG Crosswind/Materials/Composite.mat
rename to JoystickVisualizer/Assets/Models/MFG Crosswind/Materials/Composite.mat
diff --git a/JoystickVisualizer/Assets/Devices/MFG Crosswind/Materials/Composite.mat.meta b/JoystickVisualizer/Assets/Models/MFG Crosswind/Materials/Composite.mat.meta
similarity index 100%
rename from JoystickVisualizer/Assets/Devices/MFG Crosswind/Materials/Composite.mat.meta
rename to JoystickVisualizer/Assets/Models/MFG Crosswind/Materials/Composite.mat.meta
diff --git a/JoystickVisualizer/Assets/Devices/MFG Crosswind/Materials/CompositeSides.mat b/JoystickVisualizer/Assets/Models/MFG Crosswind/Materials/CompositeSides.mat
similarity index 100%
rename from JoystickVisualizer/Assets/Devices/MFG Crosswind/Materials/CompositeSides.mat
rename to JoystickVisualizer/Assets/Models/MFG Crosswind/Materials/CompositeSides.mat
diff --git a/JoystickVisualizer/Assets/Devices/MFG Crosswind/Materials/CompositeSides.mat.meta b/JoystickVisualizer/Assets/Models/MFG Crosswind/Materials/CompositeSides.mat.meta
similarity index 100%
rename from JoystickVisualizer/Assets/Devices/MFG Crosswind/Materials/CompositeSides.mat.meta
rename to JoystickVisualizer/Assets/Models/MFG Crosswind/Materials/CompositeSides.mat.meta
diff --git a/JoystickVisualizer/Assets/Devices/MFG Crosswind/Materials/Metal.mat b/JoystickVisualizer/Assets/Models/MFG Crosswind/Materials/Metal.mat
similarity index 100%
rename from JoystickVisualizer/Assets/Devices/MFG Crosswind/Materials/Metal.mat
rename to JoystickVisualizer/Assets/Models/MFG Crosswind/Materials/Metal.mat
diff --git a/JoystickVisualizer/Assets/Devices/MFG Crosswind/Materials/Metal.mat.meta b/JoystickVisualizer/Assets/Models/MFG Crosswind/Materials/Metal.mat.meta
similarity index 100%
rename from JoystickVisualizer/Assets/Devices/MFG Crosswind/Materials/Metal.mat.meta
rename to JoystickVisualizer/Assets/Models/MFG Crosswind/Materials/Metal.mat.meta
diff --git a/JoystickVisualizer/Assets/Devices/MFG Crosswind/Materials/MetalSpring.mat b/JoystickVisualizer/Assets/Models/MFG Crosswind/Materials/MetalSpring.mat
similarity index 100%
rename from JoystickVisualizer/Assets/Devices/MFG Crosswind/Materials/MetalSpring.mat
rename to JoystickVisualizer/Assets/Models/MFG Crosswind/Materials/MetalSpring.mat
diff --git a/JoystickVisualizer/Assets/Devices/MFG Crosswind/Materials/MetalSpring.mat.meta b/JoystickVisualizer/Assets/Models/MFG Crosswind/Materials/MetalSpring.mat.meta
similarity index 100%
rename from JoystickVisualizer/Assets/Devices/MFG Crosswind/Materials/MetalSpring.mat.meta
rename to JoystickVisualizer/Assets/Models/MFG Crosswind/Materials/MetalSpring.mat.meta
diff --git a/JoystickVisualizer/Assets/Devices/MFG Crosswind/Materials/SpringAmbientOcclusionMap.png b/JoystickVisualizer/Assets/Models/MFG Crosswind/Materials/SpringAmbientOcclusionMap.png
similarity index 100%
rename from JoystickVisualizer/Assets/Devices/MFG Crosswind/Materials/SpringAmbientOcclusionMap.png
rename to JoystickVisualizer/Assets/Models/MFG Crosswind/Materials/SpringAmbientOcclusionMap.png
diff --git a/JoystickVisualizer/Assets/Devices/MFG Crosswind/Materials/SpringAmbientOcclusionMap.png.meta b/JoystickVisualizer/Assets/Models/MFG Crosswind/Materials/SpringAmbientOcclusionMap.png.meta
similarity index 100%
rename from JoystickVisualizer/Assets/Devices/MFG Crosswind/Materials/SpringAmbientOcclusionMap.png.meta
rename to JoystickVisualizer/Assets/Models/MFG Crosswind/Materials/SpringAmbientOcclusionMap.png.meta
diff --git a/JoystickVisualizer/Assets/Devices/MFG Crosswind/Materials/SpringDisplacementMap.png b/JoystickVisualizer/Assets/Models/MFG Crosswind/Materials/SpringDisplacementMap.png
similarity index 100%
rename from JoystickVisualizer/Assets/Devices/MFG Crosswind/Materials/SpringDisplacementMap.png
rename to JoystickVisualizer/Assets/Models/MFG Crosswind/Materials/SpringDisplacementMap.png
diff --git a/JoystickVisualizer/Assets/Devices/MFG Crosswind/Materials/SpringDisplacementMap.png.meta b/JoystickVisualizer/Assets/Models/MFG Crosswind/Materials/SpringDisplacementMap.png.meta
similarity index 100%
rename from JoystickVisualizer/Assets/Devices/MFG Crosswind/Materials/SpringDisplacementMap.png.meta
rename to JoystickVisualizer/Assets/Models/MFG Crosswind/Materials/SpringDisplacementMap.png.meta
diff --git a/JoystickVisualizer/Assets/Devices/MFG Crosswind/Materials/SpringNormalMap.png b/JoystickVisualizer/Assets/Models/MFG Crosswind/Materials/SpringNormalMap.png
similarity index 100%
rename from JoystickVisualizer/Assets/Devices/MFG Crosswind/Materials/SpringNormalMap.png
rename to JoystickVisualizer/Assets/Models/MFG Crosswind/Materials/SpringNormalMap.png
diff --git a/JoystickVisualizer/Assets/Devices/MFG Crosswind/Materials/SpringNormalMap.png.meta b/JoystickVisualizer/Assets/Models/MFG Crosswind/Materials/SpringNormalMap.png.meta
similarity index 100%
rename from JoystickVisualizer/Assets/Devices/MFG Crosswind/Materials/SpringNormalMap.png.meta
rename to JoystickVisualizer/Assets/Models/MFG Crosswind/Materials/SpringNormalMap.png.meta
diff --git a/JoystickVisualizer/Assets/Devices/MFG Crosswind/Materials/SpringSpecularMap.png b/JoystickVisualizer/Assets/Models/MFG Crosswind/Materials/SpringSpecularMap.png
similarity index 100%
rename from JoystickVisualizer/Assets/Devices/MFG Crosswind/Materials/SpringSpecularMap.png
rename to JoystickVisualizer/Assets/Models/MFG Crosswind/Materials/SpringSpecularMap.png
diff --git a/JoystickVisualizer/Assets/Devices/MFG Crosswind/Materials/SpringSpecularMap.png.meta b/JoystickVisualizer/Assets/Models/MFG Crosswind/Materials/SpringSpecularMap.png.meta
similarity index 100%
rename from JoystickVisualizer/Assets/Devices/MFG Crosswind/Materials/SpringSpecularMap.png.meta
rename to JoystickVisualizer/Assets/Models/MFG Crosswind/Materials/SpringSpecularMap.png.meta
diff --git a/JoystickVisualizer/Assets/Devices/MFG Crosswind/Materials/SpringTexture.png b/JoystickVisualizer/Assets/Models/MFG Crosswind/Materials/SpringTexture.png
similarity index 100%
rename from JoystickVisualizer/Assets/Devices/MFG Crosswind/Materials/SpringTexture.png
rename to JoystickVisualizer/Assets/Models/MFG Crosswind/Materials/SpringTexture.png
diff --git a/JoystickVisualizer/Assets/Devices/MFG Crosswind/Materials/SpringTexture.png.meta b/JoystickVisualizer/Assets/Models/MFG Crosswind/Materials/SpringTexture.png.meta
similarity index 100%
rename from JoystickVisualizer/Assets/Devices/MFG Crosswind/Materials/SpringTexture.png.meta
rename to JoystickVisualizer/Assets/Models/MFG Crosswind/Materials/SpringTexture.png.meta
diff --git a/JoystickVisualizer/Assets/Devices/Saitek Combat Rudder.meta b/JoystickVisualizer/Assets/Models/Saitek Combat Rudder.meta
similarity index 100%
rename from JoystickVisualizer/Assets/Devices/Saitek Combat Rudder.meta
rename to JoystickVisualizer/Assets/Models/Saitek Combat Rudder.meta
diff --git a/JoystickVisualizer/Assets/Devices/Saitek Combat Rudder/Saitek Combat Rudder Pedals.blend b/JoystickVisualizer/Assets/Models/Saitek Combat Rudder/Saitek Combat Rudder Pedals.blend
similarity index 100%
rename from JoystickVisualizer/Assets/Devices/Saitek Combat Rudder/Saitek Combat Rudder Pedals.blend
rename to JoystickVisualizer/Assets/Models/Saitek Combat Rudder/Saitek Combat Rudder Pedals.blend
diff --git a/JoystickVisualizer/Assets/Devices/Saitek Combat Rudder/Saitek Combat Rudder Pedals.blend.meta b/JoystickVisualizer/Assets/Models/Saitek Combat Rudder/Saitek Combat Rudder Pedals.blend.meta
similarity index 100%
rename from JoystickVisualizer/Assets/Devices/Saitek Combat Rudder/Saitek Combat Rudder Pedals.blend.meta
rename to JoystickVisualizer/Assets/Models/Saitek Combat Rudder/Saitek Combat Rudder Pedals.blend.meta
diff --git a/JoystickVisualizer/Assets/Devices/Saitek Combat Rudder/Saitek Combat Rudder Pedals.blend1 b/JoystickVisualizer/Assets/Models/Saitek Combat Rudder/Saitek Combat Rudder Pedals.blend1
similarity index 100%
rename from JoystickVisualizer/Assets/Devices/Saitek Combat Rudder/Saitek Combat Rudder Pedals.blend1
rename to JoystickVisualizer/Assets/Models/Saitek Combat Rudder/Saitek Combat Rudder Pedals.blend1
diff --git a/JoystickVisualizer/Assets/Devices/Saitek Combat Rudder/Saitek Combat Rudder Pedals.blend1.meta b/JoystickVisualizer/Assets/Models/Saitek Combat Rudder/Saitek Combat Rudder Pedals.blend1.meta
similarity index 100%
rename from JoystickVisualizer/Assets/Devices/Saitek Combat Rudder/Saitek Combat Rudder Pedals.blend1.meta
rename to JoystickVisualizer/Assets/Models/Saitek Combat Rudder/Saitek Combat Rudder Pedals.blend1.meta
diff --git a/JoystickVisualizer/Assets/Devices/Saitek Combat Rudder/SaitekCombatRudder.cs b/JoystickVisualizer/Assets/Models/Saitek Combat Rudder/SaitekCombatRudder.cs
similarity index 100%
rename from JoystickVisualizer/Assets/Devices/Saitek Combat Rudder/SaitekCombatRudder.cs
rename to JoystickVisualizer/Assets/Models/Saitek Combat Rudder/SaitekCombatRudder.cs
diff --git a/JoystickVisualizer/Assets/Devices/Saitek Combat Rudder/SaitekCombatRudder.cs.meta b/JoystickVisualizer/Assets/Models/Saitek Combat Rudder/SaitekCombatRudder.cs.meta
similarity index 100%
rename from JoystickVisualizer/Assets/Devices/Saitek Combat Rudder/SaitekCombatRudder.cs.meta
rename to JoystickVisualizer/Assets/Models/Saitek Combat Rudder/SaitekCombatRudder.cs.meta
diff --git a/JoystickVisualizer/Assets/Devices/Saitek Pro Flight Throttle Quadrant.meta b/JoystickVisualizer/Assets/Models/Saitek Pro Flight Throttle Quadrant.meta
similarity index 100%
rename from JoystickVisualizer/Assets/Devices/Saitek Pro Flight Throttle Quadrant.meta
rename to JoystickVisualizer/Assets/Models/Saitek Pro Flight Throttle Quadrant.meta
diff --git a/JoystickVisualizer/Assets/Devices/Saitek Pro Flight Throttle Quadrant/Black_Plastic.mat b/JoystickVisualizer/Assets/Models/Saitek Pro Flight Throttle Quadrant/Black_Plastic.mat
similarity index 100%
rename from JoystickVisualizer/Assets/Devices/Saitek Pro Flight Throttle Quadrant/Black_Plastic.mat
rename to JoystickVisualizer/Assets/Models/Saitek Pro Flight Throttle Quadrant/Black_Plastic.mat
diff --git a/JoystickVisualizer/Assets/Devices/Saitek Pro Flight Throttle Quadrant/Black_Plastic.mat.meta b/JoystickVisualizer/Assets/Models/Saitek Pro Flight Throttle Quadrant/Black_Plastic.mat.meta
similarity index 100%
rename from JoystickVisualizer/Assets/Devices/Saitek Pro Flight Throttle Quadrant/Black_Plastic.mat.meta
rename to JoystickVisualizer/Assets/Models/Saitek Pro Flight Throttle Quadrant/Black_Plastic.mat.meta
diff --git a/JoystickVisualizer/Assets/Devices/Saitek Pro Flight Throttle Quadrant/Blue_Plastic.mat b/JoystickVisualizer/Assets/Models/Saitek Pro Flight Throttle Quadrant/Blue_Plastic.mat
similarity index 100%
rename from JoystickVisualizer/Assets/Devices/Saitek Pro Flight Throttle Quadrant/Blue_Plastic.mat
rename to JoystickVisualizer/Assets/Models/Saitek Pro Flight Throttle Quadrant/Blue_Plastic.mat
diff --git a/JoystickVisualizer/Assets/Devices/Saitek Pro Flight Throttle Quadrant/Blue_Plastic.mat.meta b/JoystickVisualizer/Assets/Models/Saitek Pro Flight Throttle Quadrant/Blue_Plastic.mat.meta
similarity index 100%
rename from JoystickVisualizer/Assets/Devices/Saitek Pro Flight Throttle Quadrant/Blue_Plastic.mat.meta
rename to JoystickVisualizer/Assets/Models/Saitek Pro Flight Throttle Quadrant/Blue_Plastic.mat.meta
diff --git a/JoystickVisualizer/Assets/Devices/Saitek Pro Flight Throttle Quadrant/Glossy_Black.mat b/JoystickVisualizer/Assets/Models/Saitek Pro Flight Throttle Quadrant/Glossy_Black.mat
similarity index 100%
rename from JoystickVisualizer/Assets/Devices/Saitek Pro Flight Throttle Quadrant/Glossy_Black.mat
rename to JoystickVisualizer/Assets/Models/Saitek Pro Flight Throttle Quadrant/Glossy_Black.mat
diff --git a/JoystickVisualizer/Assets/Devices/Saitek Pro Flight Throttle Quadrant/Glossy_Black.mat.meta b/JoystickVisualizer/Assets/Models/Saitek Pro Flight Throttle Quadrant/Glossy_Black.mat.meta
similarity index 100%
rename from JoystickVisualizer/Assets/Devices/Saitek Pro Flight Throttle Quadrant/Glossy_Black.mat.meta
rename to JoystickVisualizer/Assets/Models/Saitek Pro Flight Throttle Quadrant/Glossy_Black.mat.meta
diff --git a/JoystickVisualizer/Assets/Devices/Saitek Pro Flight Throttle Quadrant/Red_Plastic.mat b/JoystickVisualizer/Assets/Models/Saitek Pro Flight Throttle Quadrant/Red_Plastic.mat
similarity index 100%
rename from JoystickVisualizer/Assets/Devices/Saitek Pro Flight Throttle Quadrant/Red_Plastic.mat
rename to JoystickVisualizer/Assets/Models/Saitek Pro Flight Throttle Quadrant/Red_Plastic.mat
diff --git a/JoystickVisualizer/Assets/Devices/Saitek Pro Flight Throttle Quadrant/Red_Plastic.mat.meta b/JoystickVisualizer/Assets/Models/Saitek Pro Flight Throttle Quadrant/Red_Plastic.mat.meta
similarity index 100%
rename from JoystickVisualizer/Assets/Devices/Saitek Pro Flight Throttle Quadrant/Red_Plastic.mat.meta
rename to JoystickVisualizer/Assets/Models/Saitek Pro Flight Throttle Quadrant/Red_Plastic.mat.meta
diff --git a/JoystickVisualizer/Assets/Devices/Saitek Pro Flight Throttle Quadrant/Saitek Pro Flight Throttle Quadrant.blend b/JoystickVisualizer/Assets/Models/Saitek Pro Flight Throttle Quadrant/Saitek Pro Flight Throttle Quadrant.blend
similarity index 100%
rename from JoystickVisualizer/Assets/Devices/Saitek Pro Flight Throttle Quadrant/Saitek Pro Flight Throttle Quadrant.blend
rename to JoystickVisualizer/Assets/Models/Saitek Pro Flight Throttle Quadrant/Saitek Pro Flight Throttle Quadrant.blend
diff --git a/JoystickVisualizer/Assets/Devices/Saitek Pro Flight Throttle Quadrant/Saitek Pro Flight Throttle Quadrant.blend.meta b/JoystickVisualizer/Assets/Models/Saitek Pro Flight Throttle Quadrant/Saitek Pro Flight Throttle Quadrant.blend.meta
similarity index 100%
rename from JoystickVisualizer/Assets/Devices/Saitek Pro Flight Throttle Quadrant/Saitek Pro Flight Throttle Quadrant.blend.meta
rename to JoystickVisualizer/Assets/Models/Saitek Pro Flight Throttle Quadrant/Saitek Pro Flight Throttle Quadrant.blend.meta
diff --git a/JoystickVisualizer/Assets/Devices/Saitek Pro Flight Throttle Quadrant/Saitek Pro Flight Throttle Quadrant.blend1 b/JoystickVisualizer/Assets/Models/Saitek Pro Flight Throttle Quadrant/Saitek Pro Flight Throttle Quadrant.blend1
similarity index 100%
rename from JoystickVisualizer/Assets/Devices/Saitek Pro Flight Throttle Quadrant/Saitek Pro Flight Throttle Quadrant.blend1
rename to JoystickVisualizer/Assets/Models/Saitek Pro Flight Throttle Quadrant/Saitek Pro Flight Throttle Quadrant.blend1
diff --git a/JoystickVisualizer/Assets/Devices/Saitek Pro Flight Throttle Quadrant/Saitek Pro Flight Throttle Quadrant.blend1.meta b/JoystickVisualizer/Assets/Models/Saitek Pro Flight Throttle Quadrant/Saitek Pro Flight Throttle Quadrant.blend1.meta
similarity index 100%
rename from JoystickVisualizer/Assets/Devices/Saitek Pro Flight Throttle Quadrant/Saitek Pro Flight Throttle Quadrant.blend1.meta
rename to JoystickVisualizer/Assets/Models/Saitek Pro Flight Throttle Quadrant/Saitek Pro Flight Throttle Quadrant.blend1.meta
diff --git a/JoystickVisualizer/Assets/Devices/Saitek Pro Flight Throttle Quadrant/SaitekProFlightThrottleQuadrant.cs b/JoystickVisualizer/Assets/Models/Saitek Pro Flight Throttle Quadrant/SaitekProFlightThrottleQuadrant.cs
similarity index 100%
rename from JoystickVisualizer/Assets/Devices/Saitek Pro Flight Throttle Quadrant/SaitekProFlightThrottleQuadrant.cs
rename to JoystickVisualizer/Assets/Models/Saitek Pro Flight Throttle Quadrant/SaitekProFlightThrottleQuadrant.cs
diff --git a/JoystickVisualizer/Assets/Devices/Saitek Pro Flight Throttle Quadrant/SaitekProFlightThrottleQuadrant.cs.meta b/JoystickVisualizer/Assets/Models/Saitek Pro Flight Throttle Quadrant/SaitekProFlightThrottleQuadrant.cs.meta
similarity index 100%
rename from JoystickVisualizer/Assets/Devices/Saitek Pro Flight Throttle Quadrant/SaitekProFlightThrottleQuadrant.cs.meta
rename to JoystickVisualizer/Assets/Models/Saitek Pro Flight Throttle Quadrant/SaitekProFlightThrottleQuadrant.cs.meta
diff --git a/JoystickVisualizer/Assets/Devices/Saitek Rudder Pedals.meta b/JoystickVisualizer/Assets/Models/Saitek Rudder Pedals.meta
similarity index 100%
rename from JoystickVisualizer/Assets/Devices/Saitek Rudder Pedals.meta
rename to JoystickVisualizer/Assets/Models/Saitek Rudder Pedals.meta
diff --git a/JoystickVisualizer/Assets/Devices/Saitek Rudder Pedals/Saitek Rudder Pedals.blend b/JoystickVisualizer/Assets/Models/Saitek Rudder Pedals/Saitek Rudder Pedals.blend
similarity index 100%
rename from JoystickVisualizer/Assets/Devices/Saitek Rudder Pedals/Saitek Rudder Pedals.blend
rename to JoystickVisualizer/Assets/Models/Saitek Rudder Pedals/Saitek Rudder Pedals.blend
diff --git a/JoystickVisualizer/Assets/Devices/Saitek Rudder Pedals/Saitek Rudder Pedals.blend.meta b/JoystickVisualizer/Assets/Models/Saitek Rudder Pedals/Saitek Rudder Pedals.blend.meta
similarity index 100%
rename from JoystickVisualizer/Assets/Devices/Saitek Rudder Pedals/Saitek Rudder Pedals.blend.meta
rename to JoystickVisualizer/Assets/Models/Saitek Rudder Pedals/Saitek Rudder Pedals.blend.meta
diff --git a/JoystickVisualizer/Assets/Devices/Saitek Rudder Pedals/Saitek Rudder Pedals.blend1 b/JoystickVisualizer/Assets/Models/Saitek Rudder Pedals/Saitek Rudder Pedals.blend1
similarity index 100%
rename from JoystickVisualizer/Assets/Devices/Saitek Rudder Pedals/Saitek Rudder Pedals.blend1
rename to JoystickVisualizer/Assets/Models/Saitek Rudder Pedals/Saitek Rudder Pedals.blend1
diff --git a/JoystickVisualizer/Assets/Devices/Saitek Rudder Pedals/Saitek Rudder Pedals.blend1.meta b/JoystickVisualizer/Assets/Models/Saitek Rudder Pedals/Saitek Rudder Pedals.blend1.meta
similarity index 100%
rename from JoystickVisualizer/Assets/Devices/Saitek Rudder Pedals/Saitek Rudder Pedals.blend1.meta
rename to JoystickVisualizer/Assets/Models/Saitek Rudder Pedals/Saitek Rudder Pedals.blend1.meta
diff --git a/JoystickVisualizer/Assets/Devices/Saitek Rudder Pedals/SaitekRudderPedals.cs b/JoystickVisualizer/Assets/Models/Saitek Rudder Pedals/SaitekRudderPedals.cs
similarity index 100%
rename from JoystickVisualizer/Assets/Devices/Saitek Rudder Pedals/SaitekRudderPedals.cs
rename to JoystickVisualizer/Assets/Models/Saitek Rudder Pedals/SaitekRudderPedals.cs
diff --git a/JoystickVisualizer/Assets/Devices/Saitek Rudder Pedals/SaitekRudderPedals.cs.meta b/JoystickVisualizer/Assets/Models/Saitek Rudder Pedals/SaitekRudderPedals.cs.meta
similarity index 100%
rename from JoystickVisualizer/Assets/Devices/Saitek Rudder Pedals/SaitekRudderPedals.cs.meta
rename to JoystickVisualizer/Assets/Models/Saitek Rudder Pedals/SaitekRudderPedals.cs.meta
diff --git a/JoystickVisualizer/Assets/Devices/Saitek X45 HOTAS.meta b/JoystickVisualizer/Assets/Models/Saitek X45 HOTAS.meta
similarity index 100%
rename from JoystickVisualizer/Assets/Devices/Saitek X45 HOTAS.meta
rename to JoystickVisualizer/Assets/Models/Saitek X45 HOTAS.meta
diff --git a/JoystickVisualizer/Assets/Devices/Saitek X45 HOTAS/SaitekX45Joystick.cs b/JoystickVisualizer/Assets/Models/Saitek X45 HOTAS/SaitekX45Joystick.cs
similarity index 100%
rename from JoystickVisualizer/Assets/Devices/Saitek X45 HOTAS/SaitekX45Joystick.cs
rename to JoystickVisualizer/Assets/Models/Saitek X45 HOTAS/SaitekX45Joystick.cs
diff --git a/JoystickVisualizer/Assets/Devices/Saitek X45 HOTAS/SaitekX45Joystick.cs.meta b/JoystickVisualizer/Assets/Models/Saitek X45 HOTAS/SaitekX45Joystick.cs.meta
similarity index 100%
rename from JoystickVisualizer/Assets/Devices/Saitek X45 HOTAS/SaitekX45Joystick.cs.meta
rename to JoystickVisualizer/Assets/Models/Saitek X45 HOTAS/SaitekX45Joystick.cs.meta
diff --git a/JoystickVisualizer/Assets/Devices/Saitek X45 HOTAS/SaitekX45Throttle.cs b/JoystickVisualizer/Assets/Models/Saitek X45 HOTAS/SaitekX45Throttle.cs
similarity index 100%
rename from JoystickVisualizer/Assets/Devices/Saitek X45 HOTAS/SaitekX45Throttle.cs
rename to JoystickVisualizer/Assets/Models/Saitek X45 HOTAS/SaitekX45Throttle.cs
diff --git a/JoystickVisualizer/Assets/Devices/Saitek X45 HOTAS/SaitekX45Throttle.cs.meta b/JoystickVisualizer/Assets/Models/Saitek X45 HOTAS/SaitekX45Throttle.cs.meta
similarity index 100%
rename from JoystickVisualizer/Assets/Devices/Saitek X45 HOTAS/SaitekX45Throttle.cs.meta
rename to JoystickVisualizer/Assets/Models/Saitek X45 HOTAS/SaitekX45Throttle.cs.meta
diff --git a/JoystickVisualizer/Assets/Devices/Saitek X52 Joystick.meta b/JoystickVisualizer/Assets/Models/Saitek X52 Joystick.meta
similarity index 100%
rename from JoystickVisualizer/Assets/Devices/Saitek X52 Joystick.meta
rename to JoystickVisualizer/Assets/Models/Saitek X52 Joystick.meta
diff --git a/JoystickVisualizer/Assets/Devices/Saitek X52 Joystick/SaitekX52Joystick.cs b/JoystickVisualizer/Assets/Models/Saitek X52 Joystick/SaitekX52Joystick.cs
similarity index 100%
rename from JoystickVisualizer/Assets/Devices/Saitek X52 Joystick/SaitekX52Joystick.cs
rename to JoystickVisualizer/Assets/Models/Saitek X52 Joystick/SaitekX52Joystick.cs
diff --git a/JoystickVisualizer/Assets/Devices/Saitek X52 Joystick/SaitekX52Joystick.cs.meta b/JoystickVisualizer/Assets/Models/Saitek X52 Joystick/SaitekX52Joystick.cs.meta
similarity index 100%
rename from JoystickVisualizer/Assets/Devices/Saitek X52 Joystick/SaitekX52Joystick.cs.meta
rename to JoystickVisualizer/Assets/Models/Saitek X52 Joystick/SaitekX52Joystick.cs.meta
diff --git a/JoystickVisualizer/Assets/Devices/Saitek X52 Pro Joystick.meta b/JoystickVisualizer/Assets/Models/Saitek X52 Pro Joystick.meta
similarity index 100%
rename from JoystickVisualizer/Assets/Devices/Saitek X52 Pro Joystick.meta
rename to JoystickVisualizer/Assets/Models/Saitek X52 Pro Joystick.meta
diff --git a/JoystickVisualizer/Assets/Devices/Saitek X52 Pro Joystick/SaitekX52ProJoystick.cs b/JoystickVisualizer/Assets/Models/Saitek X52 Pro Joystick/SaitekX52ProJoystick.cs
similarity index 100%
rename from JoystickVisualizer/Assets/Devices/Saitek X52 Pro Joystick/SaitekX52ProJoystick.cs
rename to JoystickVisualizer/Assets/Models/Saitek X52 Pro Joystick/SaitekX52ProJoystick.cs
diff --git a/JoystickVisualizer/Assets/Devices/Saitek X52 Pro Joystick/SaitekX52ProJoystick.cs.meta b/JoystickVisualizer/Assets/Models/Saitek X52 Pro Joystick/SaitekX52ProJoystick.cs.meta
similarity index 100%
rename from JoystickVisualizer/Assets/Devices/Saitek X52 Pro Joystick/SaitekX52ProJoystick.cs.meta
rename to JoystickVisualizer/Assets/Models/Saitek X52 Pro Joystick/SaitekX52ProJoystick.cs.meta
diff --git a/JoystickVisualizer/Assets/Devices/Saitek X52 Pro Throttle.meta b/JoystickVisualizer/Assets/Models/Saitek X52 Pro Throttle.meta
similarity index 100%
rename from JoystickVisualizer/Assets/Devices/Saitek X52 Pro Throttle.meta
rename to JoystickVisualizer/Assets/Models/Saitek X52 Pro Throttle.meta
diff --git a/JoystickVisualizer/Assets/Devices/Saitek X52 Pro Throttle/SaitekX52ProThrottle.cs b/JoystickVisualizer/Assets/Models/Saitek X52 Pro Throttle/SaitekX52ProThrottle.cs
similarity index 100%
rename from JoystickVisualizer/Assets/Devices/Saitek X52 Pro Throttle/SaitekX52ProThrottle.cs
rename to JoystickVisualizer/Assets/Models/Saitek X52 Pro Throttle/SaitekX52ProThrottle.cs
diff --git a/JoystickVisualizer/Assets/Devices/Saitek X52 Pro Throttle/SaitekX52ProThrottle.cs.meta b/JoystickVisualizer/Assets/Models/Saitek X52 Pro Throttle/SaitekX52ProThrottle.cs.meta
similarity index 100%
rename from JoystickVisualizer/Assets/Devices/Saitek X52 Pro Throttle/SaitekX52ProThrottle.cs.meta
rename to JoystickVisualizer/Assets/Models/Saitek X52 Pro Throttle/SaitekX52ProThrottle.cs.meta
diff --git a/JoystickVisualizer/Assets/Devices/Saitek X52 Pro Throttle/X52 Pro Throttle.blend b/JoystickVisualizer/Assets/Models/Saitek X52 Pro Throttle/X52 Pro Throttle.blend
similarity index 100%
rename from JoystickVisualizer/Assets/Devices/Saitek X52 Pro Throttle/X52 Pro Throttle.blend
rename to JoystickVisualizer/Assets/Models/Saitek X52 Pro Throttle/X52 Pro Throttle.blend
diff --git a/JoystickVisualizer/Assets/Devices/Saitek X52 Pro Throttle/X52 Pro Throttle.blend.meta b/JoystickVisualizer/Assets/Models/Saitek X52 Pro Throttle/X52 Pro Throttle.blend.meta
similarity index 100%
rename from JoystickVisualizer/Assets/Devices/Saitek X52 Pro Throttle/X52 Pro Throttle.blend.meta
rename to JoystickVisualizer/Assets/Models/Saitek X52 Pro Throttle/X52 Pro Throttle.blend.meta
diff --git a/JoystickVisualizer/Assets/Devices/Saitek X52 Pro Throttle/X52 Pro Throttle.blend1 b/JoystickVisualizer/Assets/Models/Saitek X52 Pro Throttle/X52 Pro Throttle.blend1
similarity index 100%
rename from JoystickVisualizer/Assets/Devices/Saitek X52 Pro Throttle/X52 Pro Throttle.blend1
rename to JoystickVisualizer/Assets/Models/Saitek X52 Pro Throttle/X52 Pro Throttle.blend1
diff --git a/JoystickVisualizer/Assets/Devices/Saitek X52 Pro Throttle/X52 Pro Throttle.blend1.meta b/JoystickVisualizer/Assets/Models/Saitek X52 Pro Throttle/X52 Pro Throttle.blend1.meta
similarity index 100%
rename from JoystickVisualizer/Assets/Devices/Saitek X52 Pro Throttle/X52 Pro Throttle.blend1.meta
rename to JoystickVisualizer/Assets/Models/Saitek X52 Pro Throttle/X52 Pro Throttle.blend1.meta
diff --git a/JoystickVisualizer/Assets/Devices/Saitek X52 Throttle.meta b/JoystickVisualizer/Assets/Models/Saitek X52 Throttle.meta
similarity index 100%
rename from JoystickVisualizer/Assets/Devices/Saitek X52 Throttle.meta
rename to JoystickVisualizer/Assets/Models/Saitek X52 Throttle.meta
diff --git a/JoystickVisualizer/Assets/Devices/Saitek X52 Throttle/SaitekX52Throttle.cs b/JoystickVisualizer/Assets/Models/Saitek X52 Throttle/SaitekX52Throttle.cs
similarity index 100%
rename from JoystickVisualizer/Assets/Devices/Saitek X52 Throttle/SaitekX52Throttle.cs
rename to JoystickVisualizer/Assets/Models/Saitek X52 Throttle/SaitekX52Throttle.cs
diff --git a/JoystickVisualizer/Assets/Devices/Saitek X52 Throttle/SaitekX52Throttle.cs.meta b/JoystickVisualizer/Assets/Models/Saitek X52 Throttle/SaitekX52Throttle.cs.meta
similarity index 100%
rename from JoystickVisualizer/Assets/Devices/Saitek X52 Throttle/SaitekX52Throttle.cs.meta
rename to JoystickVisualizer/Assets/Models/Saitek X52 Throttle/SaitekX52Throttle.cs.meta
diff --git a/JoystickVisualizer/Assets/Devices/Saitek X55 Stick.meta b/JoystickVisualizer/Assets/Models/Saitek X55 Stick.meta
similarity index 100%
rename from JoystickVisualizer/Assets/Devices/Saitek X55 Stick.meta
rename to JoystickVisualizer/Assets/Models/Saitek X55 Stick.meta
diff --git a/JoystickVisualizer/Assets/Devices/Saitek X55 Stick/Materials.meta b/JoystickVisualizer/Assets/Models/Saitek X55 Stick/Materials.meta
similarity index 100%
rename from JoystickVisualizer/Assets/Devices/Saitek X55 Stick/Materials.meta
rename to JoystickVisualizer/Assets/Models/Saitek X55 Stick/Materials.meta
diff --git a/JoystickVisualizer/Assets/Devices/Saitek X55 Stick/Materials/Saitek X55 Stick Base.mat b/JoystickVisualizer/Assets/Models/Saitek X55 Stick/Materials/Saitek X55 Stick Base.mat
similarity index 100%
rename from JoystickVisualizer/Assets/Devices/Saitek X55 Stick/Materials/Saitek X55 Stick Base.mat
rename to JoystickVisualizer/Assets/Models/Saitek X55 Stick/Materials/Saitek X55 Stick Base.mat
diff --git a/JoystickVisualizer/Assets/Devices/Saitek X55 Stick/Materials/Saitek X55 Stick Base.mat.meta b/JoystickVisualizer/Assets/Models/Saitek X55 Stick/Materials/Saitek X55 Stick Base.mat.meta
similarity index 100%
rename from JoystickVisualizer/Assets/Devices/Saitek X55 Stick/Materials/Saitek X55 Stick Base.mat.meta
rename to JoystickVisualizer/Assets/Models/Saitek X55 Stick/Materials/Saitek X55 Stick Base.mat.meta
diff --git a/JoystickVisualizer/Assets/Devices/Saitek X55 Stick/SaitekX55Stick.cs b/JoystickVisualizer/Assets/Models/Saitek X55 Stick/SaitekX55Stick.cs
similarity index 100%
rename from JoystickVisualizer/Assets/Devices/Saitek X55 Stick/SaitekX55Stick.cs
rename to JoystickVisualizer/Assets/Models/Saitek X55 Stick/SaitekX55Stick.cs
diff --git a/JoystickVisualizer/Assets/Devices/Saitek X55 Stick/SaitekX55Stick.cs.meta b/JoystickVisualizer/Assets/Models/Saitek X55 Stick/SaitekX55Stick.cs.meta
similarity index 100%
rename from JoystickVisualizer/Assets/Devices/Saitek X55 Stick/SaitekX55Stick.cs.meta
rename to JoystickVisualizer/Assets/Models/Saitek X55 Stick/SaitekX55Stick.cs.meta
diff --git a/JoystickVisualizer/Assets/Devices/Saitek X55 Stick/stick.png b/JoystickVisualizer/Assets/Models/Saitek X55 Stick/stick.png
similarity index 100%
rename from JoystickVisualizer/Assets/Devices/Saitek X55 Stick/stick.png
rename to JoystickVisualizer/Assets/Models/Saitek X55 Stick/stick.png
diff --git a/JoystickVisualizer/Assets/Devices/Saitek X55 Stick/stick.png.meta b/JoystickVisualizer/Assets/Models/Saitek X55 Stick/stick.png.meta
similarity index 100%
rename from JoystickVisualizer/Assets/Devices/Saitek X55 Stick/stick.png.meta
rename to JoystickVisualizer/Assets/Models/Saitek X55 Stick/stick.png.meta
diff --git a/JoystickVisualizer/Assets/Devices/Saitek X55 Stick/x55-stick.blend b/JoystickVisualizer/Assets/Models/Saitek X55 Stick/x55-stick.blend
similarity index 100%
rename from JoystickVisualizer/Assets/Devices/Saitek X55 Stick/x55-stick.blend
rename to JoystickVisualizer/Assets/Models/Saitek X55 Stick/x55-stick.blend
diff --git a/JoystickVisualizer/Assets/Devices/Saitek X55 Stick/x55-stick.blend.meta b/JoystickVisualizer/Assets/Models/Saitek X55 Stick/x55-stick.blend.meta
similarity index 100%
rename from JoystickVisualizer/Assets/Devices/Saitek X55 Stick/x55-stick.blend.meta
rename to JoystickVisualizer/Assets/Models/Saitek X55 Stick/x55-stick.blend.meta
diff --git a/JoystickVisualizer/Assets/Devices/Saitek X55 Throttle.meta b/JoystickVisualizer/Assets/Models/Saitek X55 Throttle.meta
similarity index 100%
rename from JoystickVisualizer/Assets/Devices/Saitek X55 Throttle.meta
rename to JoystickVisualizer/Assets/Models/Saitek X55 Throttle.meta
diff --git a/JoystickVisualizer/Assets/Devices/Saitek X55 Throttle/Materials.meta b/JoystickVisualizer/Assets/Models/Saitek X55 Throttle/Materials.meta
similarity index 100%
rename from JoystickVisualizer/Assets/Devices/Saitek X55 Throttle/Materials.meta
rename to JoystickVisualizer/Assets/Models/Saitek X55 Throttle/Materials.meta
diff --git a/JoystickVisualizer/Assets/Devices/Saitek X55 Throttle/Materials/Saitek X55 Throttle Base.mat b/JoystickVisualizer/Assets/Models/Saitek X55 Throttle/Materials/Saitek X55 Throttle Base.mat
similarity index 100%
rename from JoystickVisualizer/Assets/Devices/Saitek X55 Throttle/Materials/Saitek X55 Throttle Base.mat
rename to JoystickVisualizer/Assets/Models/Saitek X55 Throttle/Materials/Saitek X55 Throttle Base.mat
diff --git a/JoystickVisualizer/Assets/Devices/Saitek X55 Throttle/Materials/Saitek X55 Throttle Base.mat.meta b/JoystickVisualizer/Assets/Models/Saitek X55 Throttle/Materials/Saitek X55 Throttle Base.mat.meta
similarity index 100%
rename from JoystickVisualizer/Assets/Devices/Saitek X55 Throttle/Materials/Saitek X55 Throttle Base.mat.meta
rename to JoystickVisualizer/Assets/Models/Saitek X55 Throttle/Materials/Saitek X55 Throttle Base.mat.meta
diff --git a/JoystickVisualizer/Assets/Devices/Saitek X55 Throttle/SaitekX55Throttle.cs b/JoystickVisualizer/Assets/Models/Saitek X55 Throttle/SaitekX55Throttle.cs
similarity index 100%
rename from JoystickVisualizer/Assets/Devices/Saitek X55 Throttle/SaitekX55Throttle.cs
rename to JoystickVisualizer/Assets/Models/Saitek X55 Throttle/SaitekX55Throttle.cs
diff --git a/JoystickVisualizer/Assets/Devices/Saitek X55 Throttle/SaitekX55Throttle.cs.meta b/JoystickVisualizer/Assets/Models/Saitek X55 Throttle/SaitekX55Throttle.cs.meta
similarity index 100%
rename from JoystickVisualizer/Assets/Devices/Saitek X55 Throttle/SaitekX55Throttle.cs.meta
rename to JoystickVisualizer/Assets/Models/Saitek X55 Throttle/SaitekX55Throttle.cs.meta
diff --git a/JoystickVisualizer/Assets/Devices/Saitek X55 Throttle/throttle.png b/JoystickVisualizer/Assets/Models/Saitek X55 Throttle/throttle.png
similarity index 100%
rename from JoystickVisualizer/Assets/Devices/Saitek X55 Throttle/throttle.png
rename to JoystickVisualizer/Assets/Models/Saitek X55 Throttle/throttle.png
diff --git a/JoystickVisualizer/Assets/Devices/Saitek X55 Throttle/throttle.png.meta b/JoystickVisualizer/Assets/Models/Saitek X55 Throttle/throttle.png.meta
similarity index 100%
rename from JoystickVisualizer/Assets/Devices/Saitek X55 Throttle/throttle.png.meta
rename to JoystickVisualizer/Assets/Models/Saitek X55 Throttle/throttle.png.meta
diff --git a/JoystickVisualizer/Assets/Devices/Saitek X55 Throttle/x55-Throttle.blend b/JoystickVisualizer/Assets/Models/Saitek X55 Throttle/x55-Throttle.blend
similarity index 100%
rename from JoystickVisualizer/Assets/Devices/Saitek X55 Throttle/x55-Throttle.blend
rename to JoystickVisualizer/Assets/Models/Saitek X55 Throttle/x55-Throttle.blend
diff --git a/JoystickVisualizer/Assets/Devices/Saitek X55 Throttle/x55-Throttle.blend.meta b/JoystickVisualizer/Assets/Models/Saitek X55 Throttle/x55-Throttle.blend.meta
similarity index 100%
rename from JoystickVisualizer/Assets/Devices/Saitek X55 Throttle/x55-Throttle.blend.meta
rename to JoystickVisualizer/Assets/Models/Saitek X55 Throttle/x55-Throttle.blend.meta
diff --git a/JoystickVisualizer/Assets/Devices/Saitek X56 Stick.meta b/JoystickVisualizer/Assets/Models/Saitek X56 Stick.meta
similarity index 100%
rename from JoystickVisualizer/Assets/Devices/Saitek X56 Stick.meta
rename to JoystickVisualizer/Assets/Models/Saitek X56 Stick.meta
diff --git a/JoystickVisualizer/Assets/Devices/Saitek X56 Stick/SaitekX56Stick.cs b/JoystickVisualizer/Assets/Models/Saitek X56 Stick/SaitekX56Stick.cs
similarity index 100%
rename from JoystickVisualizer/Assets/Devices/Saitek X56 Stick/SaitekX56Stick.cs
rename to JoystickVisualizer/Assets/Models/Saitek X56 Stick/SaitekX56Stick.cs
diff --git a/JoystickVisualizer/Assets/Devices/Saitek X56 Stick/SaitekX56Stick.cs.meta b/JoystickVisualizer/Assets/Models/Saitek X56 Stick/SaitekX56Stick.cs.meta
similarity index 100%
rename from JoystickVisualizer/Assets/Devices/Saitek X56 Stick/SaitekX56Stick.cs.meta
rename to JoystickVisualizer/Assets/Models/Saitek X56 Stick/SaitekX56Stick.cs.meta
diff --git a/JoystickVisualizer/Assets/Devices/Saitek X56 Throttle.meta b/JoystickVisualizer/Assets/Models/Saitek X56 Throttle.meta
similarity index 100%
rename from JoystickVisualizer/Assets/Devices/Saitek X56 Throttle.meta
rename to JoystickVisualizer/Assets/Models/Saitek X56 Throttle.meta
diff --git a/JoystickVisualizer/Assets/Devices/Saitek X56 Throttle/SaitekX56Throttle.cs b/JoystickVisualizer/Assets/Models/Saitek X56 Throttle/SaitekX56Throttle.cs
similarity index 100%
rename from JoystickVisualizer/Assets/Devices/Saitek X56 Throttle/SaitekX56Throttle.cs
rename to JoystickVisualizer/Assets/Models/Saitek X56 Throttle/SaitekX56Throttle.cs
diff --git a/JoystickVisualizer/Assets/Devices/Saitek X56 Throttle/SaitekX56Throttle.cs.meta b/JoystickVisualizer/Assets/Models/Saitek X56 Throttle/SaitekX56Throttle.cs.meta
similarity index 100%
rename from JoystickVisualizer/Assets/Devices/Saitek X56 Throttle/SaitekX56Throttle.cs.meta
rename to JoystickVisualizer/Assets/Models/Saitek X56 Throttle/SaitekX56Throttle.cs.meta
diff --git a/JoystickVisualizer/Assets/Devices/SaitekCyborgEvo.meta b/JoystickVisualizer/Assets/Models/SaitekCyborgEvo.meta
similarity index 100%
rename from JoystickVisualizer/Assets/Devices/SaitekCyborgEvo.meta
rename to JoystickVisualizer/Assets/Models/SaitekCyborgEvo.meta
diff --git a/JoystickVisualizer/Assets/Devices/SaitekCyborgEvo/SaitekCyborgEvoStick.cs b/JoystickVisualizer/Assets/Models/SaitekCyborgEvo/SaitekCyborgEvoStick.cs
similarity index 100%
rename from JoystickVisualizer/Assets/Devices/SaitekCyborgEvo/SaitekCyborgEvoStick.cs
rename to JoystickVisualizer/Assets/Models/SaitekCyborgEvo/SaitekCyborgEvoStick.cs
diff --git a/JoystickVisualizer/Assets/Devices/SaitekCyborgEvo/SaitekCyborgEvoStick.cs.meta b/JoystickVisualizer/Assets/Models/SaitekCyborgEvo/SaitekCyborgEvoStick.cs.meta
similarity index 100%
rename from JoystickVisualizer/Assets/Devices/SaitekCyborgEvo/SaitekCyborgEvoStick.cs.meta
rename to JoystickVisualizer/Assets/Models/SaitekCyborgEvo/SaitekCyborgEvoStick.cs.meta
diff --git a/JoystickVisualizer/Assets/Devices/SaitekCyborgEvo/SaitekCyborgEvoThrottle.cs b/JoystickVisualizer/Assets/Models/SaitekCyborgEvo/SaitekCyborgEvoThrottle.cs
similarity index 100%
rename from JoystickVisualizer/Assets/Devices/SaitekCyborgEvo/SaitekCyborgEvoThrottle.cs
rename to JoystickVisualizer/Assets/Models/SaitekCyborgEvo/SaitekCyborgEvoThrottle.cs
diff --git a/JoystickVisualizer/Assets/Devices/SaitekCyborgEvo/SaitekCyborgEvoThrottle.cs.meta b/JoystickVisualizer/Assets/Models/SaitekCyborgEvo/SaitekCyborgEvoThrottle.cs.meta
similarity index 100%
rename from JoystickVisualizer/Assets/Devices/SaitekCyborgEvo/SaitekCyborgEvoThrottle.cs.meta
rename to JoystickVisualizer/Assets/Models/SaitekCyborgEvo/SaitekCyborgEvoThrottle.cs.meta
diff --git a/JoystickVisualizer/Assets/Devices/T-16000M Throttle.meta b/JoystickVisualizer/Assets/Models/T-16000M Throttle.meta
similarity index 100%
rename from JoystickVisualizer/Assets/Devices/T-16000M Throttle.meta
rename to JoystickVisualizer/Assets/Models/T-16000M Throttle.meta
diff --git a/JoystickVisualizer/Assets/Devices/T-16000M Throttle/T16000MThrottle.cs b/JoystickVisualizer/Assets/Models/T-16000M Throttle/T16000MThrottle.cs
similarity index 100%
rename from JoystickVisualizer/Assets/Devices/T-16000M Throttle/T16000MThrottle.cs
rename to JoystickVisualizer/Assets/Models/T-16000M Throttle/T16000MThrottle.cs
diff --git a/JoystickVisualizer/Assets/Devices/T-16000M Throttle/T16000MThrottle.cs.meta b/JoystickVisualizer/Assets/Models/T-16000M Throttle/T16000MThrottle.cs.meta
similarity index 100%
rename from JoystickVisualizer/Assets/Devices/T-16000M Throttle/T16000MThrottle.cs.meta
rename to JoystickVisualizer/Assets/Models/T-16000M Throttle/T16000MThrottle.cs.meta
diff --git a/JoystickVisualizer/Assets/Devices/T-16000M.meta b/JoystickVisualizer/Assets/Models/T-16000M.meta
similarity index 100%
rename from JoystickVisualizer/Assets/Devices/T-16000M.meta
rename to JoystickVisualizer/Assets/Models/T-16000M.meta
diff --git a/JoystickVisualizer/Assets/Devices/T-16000M/JS.FBX b/JoystickVisualizer/Assets/Models/T-16000M/JS.FBX
similarity index 100%
rename from JoystickVisualizer/Assets/Devices/T-16000M/JS.FBX
rename to JoystickVisualizer/Assets/Models/T-16000M/JS.FBX
diff --git a/JoystickVisualizer/Assets/Devices/T-16000M/JS.FBX.meta b/JoystickVisualizer/Assets/Models/T-16000M/JS.FBX.meta
similarity index 100%
rename from JoystickVisualizer/Assets/Devices/T-16000M/JS.FBX.meta
rename to JoystickVisualizer/Assets/Models/T-16000M/JS.FBX.meta
diff --git a/JoystickVisualizer/Assets/Devices/T-16000M/Materials.meta b/JoystickVisualizer/Assets/Models/T-16000M/Materials.meta
similarity index 100%
rename from JoystickVisualizer/Assets/Devices/T-16000M/Materials.meta
rename to JoystickVisualizer/Assets/Models/T-16000M/Materials.meta
diff --git a/JoystickVisualizer/Assets/Devices/T-16000M/Materials/Black Plastic.mat b/JoystickVisualizer/Assets/Models/T-16000M/Materials/Black Plastic.mat
similarity index 100%
rename from JoystickVisualizer/Assets/Devices/T-16000M/Materials/Black Plastic.mat
rename to JoystickVisualizer/Assets/Models/T-16000M/Materials/Black Plastic.mat
diff --git a/JoystickVisualizer/Assets/Devices/T-16000M/Materials/Black Plastic.mat.meta b/JoystickVisualizer/Assets/Models/T-16000M/Materials/Black Plastic.mat.meta
similarity index 100%
rename from JoystickVisualizer/Assets/Devices/T-16000M/Materials/Black Plastic.mat.meta
rename to JoystickVisualizer/Assets/Models/T-16000M/Materials/Black Plastic.mat.meta
diff --git a/JoystickVisualizer/Assets/Devices/T-16000M/Materials/Grey Plastic.mat b/JoystickVisualizer/Assets/Models/T-16000M/Materials/Grey Plastic.mat
similarity index 100%
rename from JoystickVisualizer/Assets/Devices/T-16000M/Materials/Grey Plastic.mat
rename to JoystickVisualizer/Assets/Models/T-16000M/Materials/Grey Plastic.mat
diff --git a/JoystickVisualizer/Assets/Devices/T-16000M/Materials/Grey Plastic.mat.meta b/JoystickVisualizer/Assets/Models/T-16000M/Materials/Grey Plastic.mat.meta
similarity index 100%
rename from JoystickVisualizer/Assets/Devices/T-16000M/Materials/Grey Plastic.mat.meta
rename to JoystickVisualizer/Assets/Models/T-16000M/Materials/Grey Plastic.mat.meta
diff --git a/JoystickVisualizer/Assets/Devices/T-16000M/Materials/No Name.mat b/JoystickVisualizer/Assets/Models/T-16000M/Materials/No Name.mat
similarity index 100%
rename from JoystickVisualizer/Assets/Devices/T-16000M/Materials/No Name.mat
rename to JoystickVisualizer/Assets/Models/T-16000M/Materials/No Name.mat
diff --git a/JoystickVisualizer/Assets/Devices/T-16000M/Materials/No Name.mat.meta b/JoystickVisualizer/Assets/Models/T-16000M/Materials/No Name.mat.meta
similarity index 100%
rename from JoystickVisualizer/Assets/Devices/T-16000M/Materials/No Name.mat.meta
rename to JoystickVisualizer/Assets/Models/T-16000M/Materials/No Name.mat.meta
diff --git a/JoystickVisualizer/Assets/Devices/T-16000M/Materials/Orange Plastic.mat b/JoystickVisualizer/Assets/Models/T-16000M/Materials/Orange Plastic.mat
similarity index 100%
rename from JoystickVisualizer/Assets/Devices/T-16000M/Materials/Orange Plastic.mat
rename to JoystickVisualizer/Assets/Models/T-16000M/Materials/Orange Plastic.mat
diff --git a/JoystickVisualizer/Assets/Devices/T-16000M/Materials/Orange Plastic.mat.meta b/JoystickVisualizer/Assets/Models/T-16000M/Materials/Orange Plastic.mat.meta
similarity index 100%
rename from JoystickVisualizer/Assets/Devices/T-16000M/Materials/Orange Plastic.mat.meta
rename to JoystickVisualizer/Assets/Models/T-16000M/Materials/Orange Plastic.mat.meta
diff --git a/JoystickVisualizer/Assets/Devices/T-16000M/Materials/WhiteNoise.jpeg b/JoystickVisualizer/Assets/Models/T-16000M/Materials/WhiteNoise.jpeg
similarity index 100%
rename from JoystickVisualizer/Assets/Devices/T-16000M/Materials/WhiteNoise.jpeg
rename to JoystickVisualizer/Assets/Models/T-16000M/Materials/WhiteNoise.jpeg
diff --git a/JoystickVisualizer/Assets/Devices/T-16000M/Materials/WhiteNoise.jpeg.meta b/JoystickVisualizer/Assets/Models/T-16000M/Materials/WhiteNoise.jpeg.meta
similarity index 100%
rename from JoystickVisualizer/Assets/Devices/T-16000M/Materials/WhiteNoise.jpeg.meta
rename to JoystickVisualizer/Assets/Models/T-16000M/Materials/WhiteNoise.jpeg.meta
diff --git a/JoystickVisualizer/Assets/Devices/T-16000M/T16000M.cs b/JoystickVisualizer/Assets/Models/T-16000M/T16000M.cs
similarity index 100%
rename from JoystickVisualizer/Assets/Devices/T-16000M/T16000M.cs
rename to JoystickVisualizer/Assets/Models/T-16000M/T16000M.cs
diff --git a/JoystickVisualizer/Assets/Devices/T-16000M/T16000M.cs.meta b/JoystickVisualizer/Assets/Models/T-16000M/T16000M.cs.meta
similarity index 100%
rename from JoystickVisualizer/Assets/Devices/T-16000M/T16000M.cs.meta
rename to JoystickVisualizer/Assets/Models/T-16000M/T16000M.cs.meta
diff --git a/JoystickVisualizer/Assets/Models/Thrustmaster Pendular Rudder.meta b/JoystickVisualizer/Assets/Models/Thrustmaster Pendular Rudder.meta
new file mode 100644
index 0000000..b534551
--- /dev/null
+++ b/JoystickVisualizer/Assets/Models/Thrustmaster Pendular Rudder.meta
@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: ab20a6163e7bb684aae2d27edfb1a26f
+folderAsset: yes
+DefaultImporter:
+ externalObjects: {}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/JoystickVisualizer/Assets/Models/Thrustmaster Pendular Rudder/ThrustmasterPendularRudder.cs b/JoystickVisualizer/Assets/Models/Thrustmaster Pendular Rudder/ThrustmasterPendularRudder.cs
new file mode 100644
index 0000000..837569a
--- /dev/null
+++ b/JoystickVisualizer/Assets/Models/Thrustmaster Pendular Rudder/ThrustmasterPendularRudder.cs
@@ -0,0 +1,70 @@
+using Assets;
+using System.Collections;
+using System.Collections.Generic;
+using UnityEngine;
+
+public class ThrustmasterPendularRudder : MonoBehaviour {
+ public const string USB_ID = "044f:b68f";
+ // public const string USB_ID = "054c:09cc";
+
+ public GameObject Model;
+
+ public GameObject LeftPedal;
+ public GameObject RightPedal;
+
+ public GameObject LeftPedalBrake;
+ public GameObject RightPedalBrake;
+
+ // Use this for initialization
+ void Start()
+ {
+ UDPListener.StickEventListener += StickEvent;
+ }
+
+ // Update is called once per frame
+ void Update()
+ {
+ }
+
+ void StickEvent(JoystickState state)
+ {
+ if (state.UsbID != USB_ID)
+ {
+ return;
+ }
+
+ Model.SetActive(true);
+
+ foreach (KeyValuePair entry in state.Data)
+ {
+ switch (entry.Key)
+ {
+ case "Connected":
+ if (Model.activeInHierarchy)
+ Model.SetActive(entry.Value == 1);
+ break;
+
+ case "Z": // Rudder
+ LeftPedal.transform.localPosition = new Vector3(LeftPedal.transform.localPosition.x, LeftPedal.transform.localPosition.y, ConvertRange(entry.Value, 0, 65535, -75.0f, 50.0));
+ RightPedal.transform.localPosition = new Vector3(RightPedal.transform.localPosition.x, RightPedal.transform.localPosition.y, ConvertRange(entry.Value, 0, 65535, 50.0f, -75.0f));
+ break;
+ case "Y": // Left brake
+ LeftPedalBrake.transform.localEulerAngles = new Vector3(ConvertRange(entry.Value, 0, 65535, -30, 0), 0, 0);
+ break;
+ case "X": // Right brake
+ RightPedalBrake.transform.localEulerAngles = new Vector3(ConvertRange(entry.Value, 0, 65535, -30, 0), 0, 0);
+ break;
+ }
+ }
+ }
+
+ public static float ConvertRange(
+ double value, // value to convert
+ double originalStart, double originalEnd, // original range
+ double newStart, double newEnd) // desired range
+ {
+ double scale = (double)(newEnd - newStart) / (originalEnd - originalStart);
+ return (float)(newStart + ((value - originalStart) * scale));
+ }
+
+}
diff --git a/JoystickVisualizer/Assets/PostProcessing/Editor/Models/AntialiasingModelEditor.cs.meta b/JoystickVisualizer/Assets/Models/Thrustmaster Pendular Rudder/ThrustmasterPendularRudder.cs.meta
similarity index 63%
rename from JoystickVisualizer/Assets/PostProcessing/Editor/Models/AntialiasingModelEditor.cs.meta
rename to JoystickVisualizer/Assets/Models/Thrustmaster Pendular Rudder/ThrustmasterPendularRudder.cs.meta
index a988444..4cec11e 100644
--- a/JoystickVisualizer/Assets/PostProcessing/Editor/Models/AntialiasingModelEditor.cs.meta
+++ b/JoystickVisualizer/Assets/Models/Thrustmaster Pendular Rudder/ThrustmasterPendularRudder.cs.meta
@@ -1,8 +1,9 @@
fileFormatVersion: 2
-guid: 2451939fe695c1a408ba688219837667
-timeCreated: 1467190133
-licenseType: Store
+guid: b57308fe4ea62774d85b91ce7898b16f
+timeCreated: 1510593092
+licenseType: Free
MonoImporter:
+ externalObjects: {}
serializedVersion: 2
defaultReferences: []
executionOrder: 0
diff --git a/JoystickVisualizer/Assets/Devices/Thrustmaster T.Flight HOTAS X.meta b/JoystickVisualizer/Assets/Models/Thrustmaster T.Flight HOTAS X.meta
similarity index 100%
rename from JoystickVisualizer/Assets/Devices/Thrustmaster T.Flight HOTAS X.meta
rename to JoystickVisualizer/Assets/Models/Thrustmaster T.Flight HOTAS X.meta
diff --git a/JoystickVisualizer/Assets/Devices/Thrustmaster T.Flight HOTAS X/ThrustmasterTFlightHOTASXStick.cs b/JoystickVisualizer/Assets/Models/Thrustmaster T.Flight HOTAS X/ThrustmasterTFlightHOTASXStick.cs
similarity index 100%
rename from JoystickVisualizer/Assets/Devices/Thrustmaster T.Flight HOTAS X/ThrustmasterTFlightHOTASXStick.cs
rename to JoystickVisualizer/Assets/Models/Thrustmaster T.Flight HOTAS X/ThrustmasterTFlightHOTASXStick.cs
diff --git a/JoystickVisualizer/Assets/Devices/Thrustmaster T.Flight HOTAS X/ThrustmasterTFlightHOTASXStick.cs.meta b/JoystickVisualizer/Assets/Models/Thrustmaster T.Flight HOTAS X/ThrustmasterTFlightHOTASXStick.cs.meta
similarity index 100%
rename from JoystickVisualizer/Assets/Devices/Thrustmaster T.Flight HOTAS X/ThrustmasterTFlightHOTASXStick.cs.meta
rename to JoystickVisualizer/Assets/Models/Thrustmaster T.Flight HOTAS X/ThrustmasterTFlightHOTASXStick.cs.meta
diff --git a/JoystickVisualizer/Assets/Devices/Thrustmaster T.Flight HOTAS X/ThrustmasterTFlightHOTASXThrottle.cs b/JoystickVisualizer/Assets/Models/Thrustmaster T.Flight HOTAS X/ThrustmasterTFlightHOTASXThrottle.cs
similarity index 100%
rename from JoystickVisualizer/Assets/Devices/Thrustmaster T.Flight HOTAS X/ThrustmasterTFlightHOTASXThrottle.cs
rename to JoystickVisualizer/Assets/Models/Thrustmaster T.Flight HOTAS X/ThrustmasterTFlightHOTASXThrottle.cs
diff --git a/JoystickVisualizer/Assets/Devices/Thrustmaster T.Flight HOTAS X/ThrustmasterTFlightHOTASXThrottle.cs.meta b/JoystickVisualizer/Assets/Models/Thrustmaster T.Flight HOTAS X/ThrustmasterTFlightHOTASXThrottle.cs.meta
similarity index 100%
rename from JoystickVisualizer/Assets/Devices/Thrustmaster T.Flight HOTAS X/ThrustmasterTFlightHOTASXThrottle.cs.meta
rename to JoystickVisualizer/Assets/Models/Thrustmaster T.Flight HOTAS X/ThrustmasterTFlightHOTASXThrottle.cs.meta
diff --git a/JoystickVisualizer/Assets/Devices/Thrustmaster T.Flight Rudder.meta b/JoystickVisualizer/Assets/Models/Thrustmaster T.Flight Rudder.meta
similarity index 100%
rename from JoystickVisualizer/Assets/Devices/Thrustmaster T.Flight Rudder.meta
rename to JoystickVisualizer/Assets/Models/Thrustmaster T.Flight Rudder.meta
diff --git a/JoystickVisualizer/Assets/Devices/Thrustmaster T.Flight Rudder/Black Plastic Gloss Indicator.mat b/JoystickVisualizer/Assets/Models/Thrustmaster T.Flight Rudder/Black Plastic Gloss Indicator.mat
similarity index 100%
rename from JoystickVisualizer/Assets/Devices/Thrustmaster T.Flight Rudder/Black Plastic Gloss Indicator.mat
rename to JoystickVisualizer/Assets/Models/Thrustmaster T.Flight Rudder/Black Plastic Gloss Indicator.mat
diff --git a/JoystickVisualizer/Assets/Devices/Thrustmaster T.Flight Rudder/Black Plastic Gloss Indicator.mat.meta b/JoystickVisualizer/Assets/Models/Thrustmaster T.Flight Rudder/Black Plastic Gloss Indicator.mat.meta
similarity index 100%
rename from JoystickVisualizer/Assets/Devices/Thrustmaster T.Flight Rudder/Black Plastic Gloss Indicator.mat.meta
rename to JoystickVisualizer/Assets/Models/Thrustmaster T.Flight Rudder/Black Plastic Gloss Indicator.mat.meta
diff --git a/JoystickVisualizer/Assets/Devices/Thrustmaster T.Flight Rudder/IndicatorHeightMap.png b/JoystickVisualizer/Assets/Models/Thrustmaster T.Flight Rudder/IndicatorHeightMap.png
similarity index 100%
rename from JoystickVisualizer/Assets/Devices/Thrustmaster T.Flight Rudder/IndicatorHeightMap.png
rename to JoystickVisualizer/Assets/Models/Thrustmaster T.Flight Rudder/IndicatorHeightMap.png
diff --git a/JoystickVisualizer/Assets/Devices/Thrustmaster T.Flight Rudder/IndicatorHeightMap.png.meta b/JoystickVisualizer/Assets/Models/Thrustmaster T.Flight Rudder/IndicatorHeightMap.png.meta
similarity index 100%
rename from JoystickVisualizer/Assets/Devices/Thrustmaster T.Flight Rudder/IndicatorHeightMap.png.meta
rename to JoystickVisualizer/Assets/Models/Thrustmaster T.Flight Rudder/IndicatorHeightMap.png.meta
diff --git a/JoystickVisualizer/Assets/Devices/Thrustmaster T.Flight Rudder/Thrustmaster Rudder Pedals.blend b/JoystickVisualizer/Assets/Models/Thrustmaster T.Flight Rudder/Thrustmaster Rudder Pedals.blend
similarity index 100%
rename from JoystickVisualizer/Assets/Devices/Thrustmaster T.Flight Rudder/Thrustmaster Rudder Pedals.blend
rename to JoystickVisualizer/Assets/Models/Thrustmaster T.Flight Rudder/Thrustmaster Rudder Pedals.blend
diff --git a/JoystickVisualizer/Assets/Devices/Thrustmaster T.Flight Rudder/Thrustmaster Rudder Pedals.blend.meta b/JoystickVisualizer/Assets/Models/Thrustmaster T.Flight Rudder/Thrustmaster Rudder Pedals.blend.meta
similarity index 100%
rename from JoystickVisualizer/Assets/Devices/Thrustmaster T.Flight Rudder/Thrustmaster Rudder Pedals.blend.meta
rename to JoystickVisualizer/Assets/Models/Thrustmaster T.Flight Rudder/Thrustmaster Rudder Pedals.blend.meta
diff --git a/JoystickVisualizer/Assets/Devices/Thrustmaster T.Flight Rudder/Thrustmaster Rudder Pedals.blend1 b/JoystickVisualizer/Assets/Models/Thrustmaster T.Flight Rudder/Thrustmaster Rudder Pedals.blend1
similarity index 100%
rename from JoystickVisualizer/Assets/Devices/Thrustmaster T.Flight Rudder/Thrustmaster Rudder Pedals.blend1
rename to JoystickVisualizer/Assets/Models/Thrustmaster T.Flight Rudder/Thrustmaster Rudder Pedals.blend1
diff --git a/JoystickVisualizer/Assets/Devices/Thrustmaster T.Flight Rudder/Thrustmaster Rudder Pedals.blend1.meta b/JoystickVisualizer/Assets/Models/Thrustmaster T.Flight Rudder/Thrustmaster Rudder Pedals.blend1.meta
similarity index 100%
rename from JoystickVisualizer/Assets/Devices/Thrustmaster T.Flight Rudder/Thrustmaster Rudder Pedals.blend1.meta
rename to JoystickVisualizer/Assets/Models/Thrustmaster T.Flight Rudder/Thrustmaster Rudder Pedals.blend1.meta
diff --git a/JoystickVisualizer/Assets/Devices/Thrustmaster T.Flight Rudder/ThrustmasterTFlightRudder.cs b/JoystickVisualizer/Assets/Models/Thrustmaster T.Flight Rudder/ThrustmasterTFlightRudder.cs
similarity index 100%
rename from JoystickVisualizer/Assets/Devices/Thrustmaster T.Flight Rudder/ThrustmasterTFlightRudder.cs
rename to JoystickVisualizer/Assets/Models/Thrustmaster T.Flight Rudder/ThrustmasterTFlightRudder.cs
diff --git a/JoystickVisualizer/Assets/Devices/Thrustmaster T.Flight Rudder/ThrustmasterTFlightRudder.cs.meta b/JoystickVisualizer/Assets/Models/Thrustmaster T.Flight Rudder/ThrustmasterTFlightRudder.cs.meta
similarity index 100%
rename from JoystickVisualizer/Assets/Devices/Thrustmaster T.Flight Rudder/ThrustmasterTFlightRudder.cs.meta
rename to JoystickVisualizer/Assets/Models/Thrustmaster T.Flight Rudder/ThrustmasterTFlightRudder.cs.meta
diff --git a/JoystickVisualizer/Assets/Devices/Thrustmaster T.Flight Rudder/ThrustmasterTFlightRudderCarMode.cs b/JoystickVisualizer/Assets/Models/Thrustmaster T.Flight Rudder/ThrustmasterTFlightRudderCarMode.cs
similarity index 100%
rename from JoystickVisualizer/Assets/Devices/Thrustmaster T.Flight Rudder/ThrustmasterTFlightRudderCarMode.cs
rename to JoystickVisualizer/Assets/Models/Thrustmaster T.Flight Rudder/ThrustmasterTFlightRudderCarMode.cs
diff --git a/JoystickVisualizer/Assets/Devices/Thrustmaster T.Flight Rudder/ThrustmasterTFlightRudderCarMode.cs.meta b/JoystickVisualizer/Assets/Models/Thrustmaster T.Flight Rudder/ThrustmasterTFlightRudderCarMode.cs.meta
similarity index 100%
rename from JoystickVisualizer/Assets/Devices/Thrustmaster T.Flight Rudder/ThrustmasterTFlightRudderCarMode.cs.meta
rename to JoystickVisualizer/Assets/Models/Thrustmaster T.Flight Rudder/ThrustmasterTFlightRudderCarMode.cs.meta
diff --git a/JoystickVisualizer/Assets/Devices/Thrustmaster T.Flight Stick X.meta b/JoystickVisualizer/Assets/Models/Thrustmaster T.Flight Stick X.meta
similarity index 100%
rename from JoystickVisualizer/Assets/Devices/Thrustmaster T.Flight Stick X.meta
rename to JoystickVisualizer/Assets/Models/Thrustmaster T.Flight Stick X.meta
diff --git a/JoystickVisualizer/Assets/Devices/Thrustmaster T.Flight Stick X/ThrustmasterTFlightStickX.cs b/JoystickVisualizer/Assets/Models/Thrustmaster T.Flight Stick X/ThrustmasterTFlightStickX.cs
similarity index 100%
rename from JoystickVisualizer/Assets/Devices/Thrustmaster T.Flight Stick X/ThrustmasterTFlightStickX.cs
rename to JoystickVisualizer/Assets/Models/Thrustmaster T.Flight Stick X/ThrustmasterTFlightStickX.cs
diff --git a/JoystickVisualizer/Assets/Devices/Thrustmaster T.Flight Stick X/ThrustmasterTFlightStickX.cs.meta b/JoystickVisualizer/Assets/Models/Thrustmaster T.Flight Stick X/ThrustmasterTFlightStickX.cs.meta
similarity index 100%
rename from JoystickVisualizer/Assets/Devices/Thrustmaster T.Flight Stick X/ThrustmasterTFlightStickX.cs.meta
rename to JoystickVisualizer/Assets/Models/Thrustmaster T.Flight Stick X/ThrustmasterTFlightStickX.cs.meta
diff --git a/JoystickVisualizer/Assets/Device Models.meta b/JoystickVisualizer/Assets/Models/Thrustmaster Warthog Joystick.meta
similarity index 70%
rename from JoystickVisualizer/Assets/Device Models.meta
rename to JoystickVisualizer/Assets/Models/Thrustmaster Warthog Joystick.meta
index 57e89b3..0b940a4 100644
--- a/JoystickVisualizer/Assets/Device Models.meta
+++ b/JoystickVisualizer/Assets/Models/Thrustmaster Warthog Joystick.meta
@@ -1,7 +1,7 @@
fileFormatVersion: 2
-guid: 6f013ecab835bda4597cc7a7ace62a8d
+guid: 23ae40d4b7dcbd3418c6e4ae0e90666e
folderAsset: yes
-timeCreated: 1522435881
+timeCreated: 1521375811
licenseType: Free
DefaultImporter:
externalObjects: {}
diff --git a/JoystickVisualizer/Assets/Devices/Thrustmaster Warthog Joystick/JoystickThrustmasterWarthog.cs b/JoystickVisualizer/Assets/Models/Thrustmaster Warthog Joystick/JoystickThrustmasterWarthog.cs
similarity index 100%
rename from JoystickVisualizer/Assets/Devices/Thrustmaster Warthog Joystick/JoystickThrustmasterWarthog.cs
rename to JoystickVisualizer/Assets/Models/Thrustmaster Warthog Joystick/JoystickThrustmasterWarthog.cs
diff --git a/JoystickVisualizer/Assets/Devices/Thrustmaster Warthog Joystick/JoystickThrustmasterWarthog.cs.meta b/JoystickVisualizer/Assets/Models/Thrustmaster Warthog Joystick/JoystickThrustmasterWarthog.cs.meta
similarity index 100%
rename from JoystickVisualizer/Assets/Devices/Thrustmaster Warthog Joystick/JoystickThrustmasterWarthog.cs.meta
rename to JoystickVisualizer/Assets/Models/Thrustmaster Warthog Joystick/JoystickThrustmasterWarthog.cs.meta
diff --git a/JoystickVisualizer/Assets/Devices/Thrustmaster Warthog Joystick/Thrustmaster Warthog Joystick.blend1 b/JoystickVisualizer/Assets/Models/Thrustmaster Warthog Joystick/Thrustmaster Warthog Joystick.blend
similarity index 67%
rename from JoystickVisualizer/Assets/Devices/Thrustmaster Warthog Joystick/Thrustmaster Warthog Joystick.blend1
rename to JoystickVisualizer/Assets/Models/Thrustmaster Warthog Joystick/Thrustmaster Warthog Joystick.blend
index aadd510..ee3fee1 100644
Binary files a/JoystickVisualizer/Assets/Devices/Thrustmaster Warthog Joystick/Thrustmaster Warthog Joystick.blend1 and b/JoystickVisualizer/Assets/Models/Thrustmaster Warthog Joystick/Thrustmaster Warthog Joystick.blend differ
diff --git a/JoystickVisualizer/Assets/Devices/Thrustmaster Warthog Joystick/Thrustmaster Warthog Joystick.blend.meta b/JoystickVisualizer/Assets/Models/Thrustmaster Warthog Joystick/Thrustmaster Warthog Joystick.blend.meta
similarity index 100%
rename from JoystickVisualizer/Assets/Devices/Thrustmaster Warthog Joystick/Thrustmaster Warthog Joystick.blend.meta
rename to JoystickVisualizer/Assets/Models/Thrustmaster Warthog Joystick/Thrustmaster Warthog Joystick.blend.meta
diff --git a/JoystickVisualizer/Assets/Devices/Thrustmaster Warthog Joystick/Thrustmaster Warthog Joystick.blend b/JoystickVisualizer/Assets/Models/Thrustmaster Warthog Joystick/Thrustmaster Warthog Joystick.blend1
similarity index 70%
rename from JoystickVisualizer/Assets/Devices/Thrustmaster Warthog Joystick/Thrustmaster Warthog Joystick.blend
rename to JoystickVisualizer/Assets/Models/Thrustmaster Warthog Joystick/Thrustmaster Warthog Joystick.blend1
index f1b74e7..852910a 100644
Binary files a/JoystickVisualizer/Assets/Devices/Thrustmaster Warthog Joystick/Thrustmaster Warthog Joystick.blend and b/JoystickVisualizer/Assets/Models/Thrustmaster Warthog Joystick/Thrustmaster Warthog Joystick.blend1 differ
diff --git a/JoystickVisualizer/Assets/Devices/Thrustmaster Warthog Joystick/Thrustmaster Warthog Joystick.blend1.meta b/JoystickVisualizer/Assets/Models/Thrustmaster Warthog Joystick/Thrustmaster Warthog Joystick.blend1.meta
similarity index 100%
rename from JoystickVisualizer/Assets/Devices/Thrustmaster Warthog Joystick/Thrustmaster Warthog Joystick.blend1.meta
rename to JoystickVisualizer/Assets/Models/Thrustmaster Warthog Joystick/Thrustmaster Warthog Joystick.blend1.meta
diff --git a/JoystickVisualizer/Assets/TextMesh Pro.meta b/JoystickVisualizer/Assets/Models/Thrustmaster Warthog Throttle.meta
similarity index 70%
rename from JoystickVisualizer/Assets/TextMesh Pro.meta
rename to JoystickVisualizer/Assets/Models/Thrustmaster Warthog Throttle.meta
index d89e808..8618408 100644
--- a/JoystickVisualizer/Assets/TextMesh Pro.meta
+++ b/JoystickVisualizer/Assets/Models/Thrustmaster Warthog Throttle.meta
@@ -1,7 +1,7 @@
fileFormatVersion: 2
-guid: c5f692ca38c0cc64cac5fe25cfffaf94
+guid: 6ba23add0ee623549b173e80646e3b9e
folderAsset: yes
-timeCreated: 1522005627
+timeCreated: 1520539946
licenseType: Free
DefaultImporter:
externalObjects: {}
diff --git a/JoystickVisualizer/Assets/Devices/Thrustmaster Warthog Throttle/Materials.meta b/JoystickVisualizer/Assets/Models/Thrustmaster Warthog Throttle/Materials.meta
similarity index 100%
rename from JoystickVisualizer/Assets/Devices/Thrustmaster Warthog Throttle/Materials.meta
rename to JoystickVisualizer/Assets/Models/Thrustmaster Warthog Throttle/Materials.meta
diff --git a/JoystickVisualizer/Assets/Devices/Thrustmaster Warthog Throttle/Materials/Black_Plastic.mat b/JoystickVisualizer/Assets/Models/Thrustmaster Warthog Throttle/Materials/Black_Plastic.mat
similarity index 100%
rename from JoystickVisualizer/Assets/Devices/Thrustmaster Warthog Throttle/Materials/Black_Plastic.mat
rename to JoystickVisualizer/Assets/Models/Thrustmaster Warthog Throttle/Materials/Black_Plastic.mat
diff --git a/JoystickVisualizer/Assets/Devices/Thrustmaster Warthog Throttle/Materials/Black_Plastic.mat.meta b/JoystickVisualizer/Assets/Models/Thrustmaster Warthog Throttle/Materials/Black_Plastic.mat.meta
similarity index 100%
rename from JoystickVisualizer/Assets/Devices/Thrustmaster Warthog Throttle/Materials/Black_Plastic.mat.meta
rename to JoystickVisualizer/Assets/Models/Thrustmaster Warthog Throttle/Materials/Black_Plastic.mat.meta
diff --git a/JoystickVisualizer/Assets/Devices/Thrustmaster Warthog Throttle/Materials/Grey_Plastic.mat b/JoystickVisualizer/Assets/Models/Thrustmaster Warthog Throttle/Materials/Grey_Plastic.mat
similarity index 100%
rename from JoystickVisualizer/Assets/Devices/Thrustmaster Warthog Throttle/Materials/Grey_Plastic.mat
rename to JoystickVisualizer/Assets/Models/Thrustmaster Warthog Throttle/Materials/Grey_Plastic.mat
diff --git a/JoystickVisualizer/Assets/Devices/Thrustmaster Warthog Throttle/Materials/Grey_Plastic.mat.meta b/JoystickVisualizer/Assets/Models/Thrustmaster Warthog Throttle/Materials/Grey_Plastic.mat.meta
similarity index 100%
rename from JoystickVisualizer/Assets/Devices/Thrustmaster Warthog Throttle/Materials/Grey_Plastic.mat.meta
rename to JoystickVisualizer/Assets/Models/Thrustmaster Warthog Throttle/Materials/Grey_Plastic.mat.meta
diff --git a/JoystickVisualizer/Assets/Models/Thrustmaster Warthog Throttle/Materials/Metal.001.mat b/JoystickVisualizer/Assets/Models/Thrustmaster Warthog Throttle/Materials/Metal.001.mat
new file mode 100644
index 0000000..28bf15b
Binary files /dev/null and b/JoystickVisualizer/Assets/Models/Thrustmaster Warthog Throttle/Materials/Metal.001.mat differ
diff --git a/JoystickVisualizer/Assets/Models/Thrustmaster Warthog Throttle/Materials/Metal.001.mat.meta b/JoystickVisualizer/Assets/Models/Thrustmaster Warthog Throttle/Materials/Metal.001.mat.meta
new file mode 100644
index 0000000..1af9f2e
--- /dev/null
+++ b/JoystickVisualizer/Assets/Models/Thrustmaster Warthog Throttle/Materials/Metal.001.mat.meta
@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: 736b48382af4b8844b327774d1e0f733
+NativeFormatImporter:
+ externalObjects: {}
+ mainObjectFileID: 0
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/JoystickVisualizer/Assets/Devices/Thrustmaster Warthog Throttle/Materials/Metal.mat b/JoystickVisualizer/Assets/Models/Thrustmaster Warthog Throttle/Materials/Metal.mat
similarity index 100%
rename from JoystickVisualizer/Assets/Devices/Thrustmaster Warthog Throttle/Materials/Metal.mat
rename to JoystickVisualizer/Assets/Models/Thrustmaster Warthog Throttle/Materials/Metal.mat
diff --git a/JoystickVisualizer/Assets/Devices/Thrustmaster Warthog Throttle/Materials/Metal.mat.meta b/JoystickVisualizer/Assets/Models/Thrustmaster Warthog Throttle/Materials/Metal.mat.meta
similarity index 100%
rename from JoystickVisualizer/Assets/Devices/Thrustmaster Warthog Throttle/Materials/Metal.mat.meta
rename to JoystickVisualizer/Assets/Models/Thrustmaster Warthog Throttle/Materials/Metal.mat.meta
diff --git a/JoystickVisualizer/Assets/Devices/Thrustmaster Warthog Throttle/Materials/Metal_001.mat b/JoystickVisualizer/Assets/Models/Thrustmaster Warthog Throttle/Materials/Metal_001.mat
similarity index 100%
rename from JoystickVisualizer/Assets/Devices/Thrustmaster Warthog Throttle/Materials/Metal_001.mat
rename to JoystickVisualizer/Assets/Models/Thrustmaster Warthog Throttle/Materials/Metal_001.mat
diff --git a/JoystickVisualizer/Assets/Devices/Thrustmaster Warthog Throttle/Materials/Metal_001.mat.meta b/JoystickVisualizer/Assets/Models/Thrustmaster Warthog Throttle/Materials/Metal_001.mat.meta
similarity index 100%
rename from JoystickVisualizer/Assets/Devices/Thrustmaster Warthog Throttle/Materials/Metal_001.mat.meta
rename to JoystickVisualizer/Assets/Models/Thrustmaster Warthog Throttle/Materials/Metal_001.mat.meta
diff --git a/JoystickVisualizer/Assets/Models/Thrustmaster Warthog Throttle/Materials/No Name.mat b/JoystickVisualizer/Assets/Models/Thrustmaster Warthog Throttle/Materials/No Name.mat
new file mode 100644
index 0000000..debb881
Binary files /dev/null and b/JoystickVisualizer/Assets/Models/Thrustmaster Warthog Throttle/Materials/No Name.mat differ
diff --git a/JoystickVisualizer/Assets/Models/Thrustmaster Warthog Throttle/Materials/No Name.mat.meta b/JoystickVisualizer/Assets/Models/Thrustmaster Warthog Throttle/Materials/No Name.mat.meta
new file mode 100644
index 0000000..f0f2040
--- /dev/null
+++ b/JoystickVisualizer/Assets/Models/Thrustmaster Warthog Throttle/Materials/No Name.mat.meta
@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: 89a2096f364117743879a7e7434c2dff
+NativeFormatImporter:
+ externalObjects: {}
+ mainObjectFileID: 0
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/JoystickVisualizer/Assets/Devices/Thrustmaster Warthog Throttle/Materials/Red_Plastic.mat b/JoystickVisualizer/Assets/Models/Thrustmaster Warthog Throttle/Materials/Red_Plastic.mat
similarity index 100%
rename from JoystickVisualizer/Assets/Devices/Thrustmaster Warthog Throttle/Materials/Red_Plastic.mat
rename to JoystickVisualizer/Assets/Models/Thrustmaster Warthog Throttle/Materials/Red_Plastic.mat
diff --git a/JoystickVisualizer/Assets/Devices/Thrustmaster Warthog Throttle/Materials/Red_Plastic.mat.meta b/JoystickVisualizer/Assets/Models/Thrustmaster Warthog Throttle/Materials/Red_Plastic.mat.meta
similarity index 100%
rename from JoystickVisualizer/Assets/Devices/Thrustmaster Warthog Throttle/Materials/Red_Plastic.mat.meta
rename to JoystickVisualizer/Assets/Models/Thrustmaster Warthog Throttle/Materials/Red_Plastic.mat.meta
diff --git a/JoystickVisualizer/Assets/Devices/Thrustmaster Warthog Throttle/Materials/unnamed.mat b/JoystickVisualizer/Assets/Models/Thrustmaster Warthog Throttle/Materials/unnamed.mat
similarity index 100%
rename from JoystickVisualizer/Assets/Devices/Thrustmaster Warthog Throttle/Materials/unnamed.mat
rename to JoystickVisualizer/Assets/Models/Thrustmaster Warthog Throttle/Materials/unnamed.mat
diff --git a/JoystickVisualizer/Assets/Devices/Thrustmaster Warthog Throttle/Materials/unnamed.mat.meta b/JoystickVisualizer/Assets/Models/Thrustmaster Warthog Throttle/Materials/unnamed.mat.meta
similarity index 100%
rename from JoystickVisualizer/Assets/Devices/Thrustmaster Warthog Throttle/Materials/unnamed.mat.meta
rename to JoystickVisualizer/Assets/Models/Thrustmaster Warthog Throttle/Materials/unnamed.mat.meta
diff --git a/JoystickVisualizer/Assets/Devices/Thrustmaster Warthog Throttle/ThrottleThrustmasterWarthog.cs b/JoystickVisualizer/Assets/Models/Thrustmaster Warthog Throttle/ThrottleThrustmasterWarthog.cs
similarity index 100%
rename from JoystickVisualizer/Assets/Devices/Thrustmaster Warthog Throttle/ThrottleThrustmasterWarthog.cs
rename to JoystickVisualizer/Assets/Models/Thrustmaster Warthog Throttle/ThrottleThrustmasterWarthog.cs
diff --git a/JoystickVisualizer/Assets/Devices/Thrustmaster Warthog Throttle/ThrottleThrustmasterWarthog.cs.meta b/JoystickVisualizer/Assets/Models/Thrustmaster Warthog Throttle/ThrottleThrustmasterWarthog.cs.meta
similarity index 100%
rename from JoystickVisualizer/Assets/Devices/Thrustmaster Warthog Throttle/ThrottleThrustmasterWarthog.cs.meta
rename to JoystickVisualizer/Assets/Models/Thrustmaster Warthog Throttle/ThrottleThrustmasterWarthog.cs.meta
diff --git a/JoystickVisualizer/Assets/Devices/Thrustmaster Warthog Throttle/Thrustmaster Warthog Throttle.blend b/JoystickVisualizer/Assets/Models/Thrustmaster Warthog Throttle/Thrustmaster Warthog Throttle.blend
similarity index 100%
rename from JoystickVisualizer/Assets/Devices/Thrustmaster Warthog Throttle/Thrustmaster Warthog Throttle.blend
rename to JoystickVisualizer/Assets/Models/Thrustmaster Warthog Throttle/Thrustmaster Warthog Throttle.blend
diff --git a/JoystickVisualizer/Assets/Devices/Thrustmaster Warthog Throttle/Thrustmaster Warthog Throttle.blend.meta b/JoystickVisualizer/Assets/Models/Thrustmaster Warthog Throttle/Thrustmaster Warthog Throttle.blend.meta
similarity index 100%
rename from JoystickVisualizer/Assets/Devices/Thrustmaster Warthog Throttle/Thrustmaster Warthog Throttle.blend.meta
rename to JoystickVisualizer/Assets/Models/Thrustmaster Warthog Throttle/Thrustmaster Warthog Throttle.blend.meta
diff --git a/JoystickVisualizer/Assets/Devices/Thrustmaster Warthog Throttle/Thrustmaster Warthog Throttle.blend1 b/JoystickVisualizer/Assets/Models/Thrustmaster Warthog Throttle/Thrustmaster Warthog Throttle.blend1
similarity index 100%
rename from JoystickVisualizer/Assets/Devices/Thrustmaster Warthog Throttle/Thrustmaster Warthog Throttle.blend1
rename to JoystickVisualizer/Assets/Models/Thrustmaster Warthog Throttle/Thrustmaster Warthog Throttle.blend1
diff --git a/JoystickVisualizer/Assets/Devices/Thrustmaster Warthog Throttle/Thrustmaster Warthog Throttle.blend1.meta b/JoystickVisualizer/Assets/Models/Thrustmaster Warthog Throttle/Thrustmaster Warthog Throttle.blend1.meta
similarity index 100%
rename from JoystickVisualizer/Assets/Devices/Thrustmaster Warthog Throttle/Thrustmaster Warthog Throttle.blend1.meta
rename to JoystickVisualizer/Assets/Models/Thrustmaster Warthog Throttle/Thrustmaster Warthog Throttle.blend1.meta
diff --git a/JoystickVisualizer/Assets/Devices/VKB Gunfighter.meta b/JoystickVisualizer/Assets/Models/VKB Gunfighter.meta
similarity index 100%
rename from JoystickVisualizer/Assets/Devices/VKB Gunfighter.meta
rename to JoystickVisualizer/Assets/Models/VKB Gunfighter.meta
diff --git a/JoystickVisualizer/Assets/Devices/VKB Gunfighter/VKBGunfighter.cs b/JoystickVisualizer/Assets/Models/VKB Gunfighter/VKBGunfighter.cs
similarity index 100%
rename from JoystickVisualizer/Assets/Devices/VKB Gunfighter/VKBGunfighter.cs
rename to JoystickVisualizer/Assets/Models/VKB Gunfighter/VKBGunfighter.cs
diff --git a/JoystickVisualizer/Assets/Devices/VKB Gunfighter/VKBGunfighter.cs.meta b/JoystickVisualizer/Assets/Models/VKB Gunfighter/VKBGunfighter.cs.meta
similarity index 100%
rename from JoystickVisualizer/Assets/Devices/VKB Gunfighter/VKBGunfighter.cs.meta
rename to JoystickVisualizer/Assets/Models/VKB Gunfighter/VKBGunfighter.cs.meta
diff --git a/JoystickVisualizer/Assets/Devices/VPC-Star-Citizen.meta b/JoystickVisualizer/Assets/Models/VPC-Star-Citizen.meta
similarity index 100%
rename from JoystickVisualizer/Assets/Devices/VPC-Star-Citizen.meta
rename to JoystickVisualizer/Assets/Models/VPC-Star-Citizen.meta
diff --git a/JoystickVisualizer/Assets/Devices/VPC-Star-Citizen/VPCStarCitizenL.cs b/JoystickVisualizer/Assets/Models/VPC-Star-Citizen/VPCStarCitizenL.cs
similarity index 100%
rename from JoystickVisualizer/Assets/Devices/VPC-Star-Citizen/VPCStarCitizenL.cs
rename to JoystickVisualizer/Assets/Models/VPC-Star-Citizen/VPCStarCitizenL.cs
diff --git a/JoystickVisualizer/Assets/Devices/VPC-Star-Citizen/VPCStarCitizenL.cs.meta b/JoystickVisualizer/Assets/Models/VPC-Star-Citizen/VPCStarCitizenL.cs.meta
similarity index 100%
rename from JoystickVisualizer/Assets/Devices/VPC-Star-Citizen/VPCStarCitizenL.cs.meta
rename to JoystickVisualizer/Assets/Models/VPC-Star-Citizen/VPCStarCitizenL.cs.meta
diff --git a/JoystickVisualizer/Assets/Devices/VPC-Star-Citizen/VPCStarCitizenR.cs b/JoystickVisualizer/Assets/Models/VPC-Star-Citizen/VPCStarCitizenR.cs
similarity index 100%
rename from JoystickVisualizer/Assets/Devices/VPC-Star-Citizen/VPCStarCitizenR.cs
rename to JoystickVisualizer/Assets/Models/VPC-Star-Citizen/VPCStarCitizenR.cs
diff --git a/JoystickVisualizer/Assets/Devices/VPC-Star-Citizen/VPCStarCitizenR.cs.meta b/JoystickVisualizer/Assets/Models/VPC-Star-Citizen/VPCStarCitizenR.cs.meta
similarity index 100%
rename from JoystickVisualizer/Assets/Devices/VPC-Star-Citizen/VPCStarCitizenR.cs.meta
rename to JoystickVisualizer/Assets/Models/VPC-Star-Citizen/VPCStarCitizenR.cs.meta
diff --git a/JoystickVisualizer/Assets/Devices/Virpil Mongoos T-50.meta b/JoystickVisualizer/Assets/Models/Virpil Mongoos T-50.meta
similarity index 100%
rename from JoystickVisualizer/Assets/Devices/Virpil Mongoos T-50.meta
rename to JoystickVisualizer/Assets/Models/Virpil Mongoos T-50.meta
diff --git a/JoystickVisualizer/Assets/Devices/Virpil Mongoos T-50/VirpilMongoosT50.cs b/JoystickVisualizer/Assets/Models/Virpil Mongoos T-50/VirpilMongoosT50.cs
similarity index 100%
rename from JoystickVisualizer/Assets/Devices/Virpil Mongoos T-50/VirpilMongoosT50.cs
rename to JoystickVisualizer/Assets/Models/Virpil Mongoos T-50/VirpilMongoosT50.cs
diff --git a/JoystickVisualizer/Assets/Devices/Virpil Mongoos T-50/VirpilMongoosT50.cs.meta b/JoystickVisualizer/Assets/Models/Virpil Mongoos T-50/VirpilMongoosT50.cs.meta
similarity index 100%
rename from JoystickVisualizer/Assets/Devices/Virpil Mongoos T-50/VirpilMongoosT50.cs.meta
rename to JoystickVisualizer/Assets/Models/Virpil Mongoos T-50/VirpilMongoosT50.cs.meta
diff --git a/JoystickVisualizer/Assets/NewVisualizer.unity b/JoystickVisualizer/Assets/NewVisualizer.unity
new file mode 100644
index 0000000..27dbd8f
Binary files /dev/null and b/JoystickVisualizer/Assets/NewVisualizer.unity differ
diff --git a/JoystickVisualizer/Assets/TextMesh Pro/Examples & Extras/Scenes/15 - Inline Graphics & Sprites.unity.meta b/JoystickVisualizer/Assets/NewVisualizer.unity.meta
similarity index 60%
rename from JoystickVisualizer/Assets/TextMesh Pro/Examples & Extras/Scenes/15 - Inline Graphics & Sprites.unity.meta
rename to JoystickVisualizer/Assets/NewVisualizer.unity.meta
index 3d95218..fe4e728 100644
--- a/JoystickVisualizer/Assets/TextMesh Pro/Examples & Extras/Scenes/15 - Inline Graphics & Sprites.unity.meta
+++ b/JoystickVisualizer/Assets/NewVisualizer.unity.meta
@@ -1,6 +1,7 @@
fileFormatVersion: 2
-guid: 07b17b490bcf70c49bbc7b17b498a69a
+guid: a1345f1376760414e86dad5432318773
DefaultImporter:
+ externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:
diff --git a/JoystickVisualizer/Assets/PP_Profile.asset b/JoystickVisualizer/Assets/PP_Profile.asset
index 1c00cb2..3eeba8a 100644
Binary files a/JoystickVisualizer/Assets/PP_Profile.asset and b/JoystickVisualizer/Assets/PP_Profile.asset differ
diff --git a/JoystickVisualizer/Assets/PostProcessing/Editor Resources.meta b/JoystickVisualizer/Assets/PostProcessing/Editor Resources.meta
deleted file mode 100644
index fc44a55..0000000
--- a/JoystickVisualizer/Assets/PostProcessing/Editor Resources.meta
+++ /dev/null
@@ -1,9 +0,0 @@
-fileFormatVersion: 2
-guid: 83715878d3a8db441aa5636641db69a3
-folderAsset: yes
-timeCreated: 1476176392
-licenseType: Store
-DefaultImporter:
- userData:
- assetBundleName:
- assetBundleVariant:
diff --git a/JoystickVisualizer/Assets/PostProcessing/Editor Resources/Monitors.meta b/JoystickVisualizer/Assets/PostProcessing/Editor Resources/Monitors.meta
deleted file mode 100644
index 2be84db..0000000
--- a/JoystickVisualizer/Assets/PostProcessing/Editor Resources/Monitors.meta
+++ /dev/null
@@ -1,9 +0,0 @@
-fileFormatVersion: 2
-guid: e7358848dd8737c459f4636f1c075835
-folderAsset: yes
-timeCreated: 1460361782
-licenseType: Store
-DefaultImporter:
- userData:
- assetBundleName:
- assetBundleVariant:
diff --git a/JoystickVisualizer/Assets/PostProcessing/Editor Resources/Monitors/HistogramCompute.compute b/JoystickVisualizer/Assets/PostProcessing/Editor Resources/Monitors/HistogramCompute.compute
deleted file mode 100644
index da7507b..0000000
--- a/JoystickVisualizer/Assets/PostProcessing/Editor Resources/Monitors/HistogramCompute.compute
+++ /dev/null
@@ -1,91 +0,0 @@
-#include "UnityCG.cginc"
-
-RWStructuredBuffer _Histogram;
-Texture2D _Source;
-
-CBUFFER_START (Params)
- uint _IsLinear;
- float4 _Res;
- uint4 _Channels;
-CBUFFER_END
-
-groupshared uint4 gs_histogram[256];
-
-#define GROUP_SIZE 16
-
-#pragma kernel KHistogramGather
-[numthreads(GROUP_SIZE, GROUP_SIZE,1)]
-void KHistogramGather(uint2 dispatchThreadId : SV_DispatchThreadID, uint2 groupThreadId : SV_GroupThreadID)
-{
- const uint localThreadId = groupThreadId.y * GROUP_SIZE + groupThreadId.x;
-
- if (localThreadId < 256)
- gs_histogram[localThreadId] = uint4(0, 0, 0, 0);
-
- GroupMemoryBarrierWithGroupSync();
-
- if (dispatchThreadId.x < (uint)_Res.x && dispatchThreadId.y < (uint)_Res.y)
- {
- // We want a gamma histogram (like Photoshop & all)
- float3 color = saturate(_Source[dispatchThreadId].xyz);
- if (_IsLinear > 0)
- color = LinearToGammaSpace(color);
-
- // Convert color & luminance to histogram bin
- uint3 idx_c = (uint3)(round(color * 255.0));
- uint idx_l = (uint)(round(dot(color.rgb, float3(0.2125, 0.7154, 0.0721)) * 255.0));
-
- // Fill the group shared histogram
- if (_Channels.x > 0u) InterlockedAdd(gs_histogram[idx_c.x].x, 1); // Red
- if (_Channels.y > 0u) InterlockedAdd(gs_histogram[idx_c.y].y, 1); // Green
- if (_Channels.z > 0u) InterlockedAdd(gs_histogram[idx_c.z].z, 1); // Blue
- if (_Channels.w > 0u) InterlockedAdd(gs_histogram[idx_l].w, 1); // Luminance
- }
-
- GroupMemoryBarrierWithGroupSync();
-
- // Merge
- if (localThreadId < 256)
- {
- uint4 h = gs_histogram[localThreadId];
- if (_Channels.x > 0u && h.x > 0) InterlockedAdd(_Histogram[localThreadId].x, h.x); // Red
- if (_Channels.y > 0u && h.y > 0) InterlockedAdd(_Histogram[localThreadId].y, h.y); // Green
- if (_Channels.z > 0u && h.z > 0) InterlockedAdd(_Histogram[localThreadId].z, h.z); // Blue
- if (_Channels.w > 0u && h.w > 0) InterlockedAdd(_Histogram[localThreadId].w, h.w); // Luminance
- }
-}
-
-// Scaling pass
-groupshared uint4 gs_pyramid[256];
-
-#pragma kernel KHistogramScale
-[numthreads(16,16,1)]
-void KHistogramScale(uint2 groupThreadId : SV_GroupThreadID)
-{
- const uint localThreadId = groupThreadId.y * 16 + groupThreadId.x;
- gs_pyramid[localThreadId] = _Histogram[localThreadId];
-
- GroupMemoryBarrierWithGroupSync();
-
- // Parallel reduction to find the max value
- UNITY_UNROLL
- for(uint i = 256 >> 1; i > 0; i >>= 1)
- {
- if(localThreadId < i)
- gs_pyramid[localThreadId] = max(gs_pyramid[localThreadId], gs_pyramid[localThreadId + i]);
-
- GroupMemoryBarrierWithGroupSync();
- }
-
- // Actual scaling
- float4 factor = _Res.y / (float4)gs_pyramid[0];
- _Histogram[localThreadId] = (uint4)round(_Histogram[localThreadId] * factor);
-}
-
-#pragma kernel KHistogramClear
-[numthreads(GROUP_SIZE, GROUP_SIZE, 1)]
-void KHistogramClear(uint2 dispatchThreadId : SV_DispatchThreadID)
-{
- if (dispatchThreadId.x < (uint)_Res.x && dispatchThreadId.y < (uint)_Res.y)
- _Histogram[dispatchThreadId.y * _Res.x + dispatchThreadId.x] = uint4(0u, 0u, 0u, 0u);
-}
diff --git a/JoystickVisualizer/Assets/PostProcessing/Editor Resources/Monitors/HistogramCompute.compute.meta b/JoystickVisualizer/Assets/PostProcessing/Editor Resources/Monitors/HistogramCompute.compute.meta
deleted file mode 100644
index caa08a8..0000000
--- a/JoystickVisualizer/Assets/PostProcessing/Editor Resources/Monitors/HistogramCompute.compute.meta
+++ /dev/null
@@ -1,9 +0,0 @@
-fileFormatVersion: 2
-guid: 51b7e4b4448c98f4a849081110fd6212
-timeCreated: 1459956391
-licenseType: Store
-ComputeShaderImporter:
- currentAPIMask: 4
- userData:
- assetBundleName:
- assetBundleVariant:
diff --git a/JoystickVisualizer/Assets/PostProcessing/Editor Resources/Monitors/HistogramRender.shader b/JoystickVisualizer/Assets/PostProcessing/Editor Resources/Monitors/HistogramRender.shader
deleted file mode 100644
index c69cf75..0000000
--- a/JoystickVisualizer/Assets/PostProcessing/Editor Resources/Monitors/HistogramRender.shader
+++ /dev/null
@@ -1,141 +0,0 @@
-Shader "Hidden/Post FX/Monitors/Histogram Render"
-{
- SubShader
- {
- ZTest Always Cull Off ZWrite Off
- Fog { Mode off }
-
- CGINCLUDE
-
- #pragma fragmentoption ARB_precision_hint_fastest
- #pragma target 5.0
- #include "UnityCG.cginc"
-
- StructuredBuffer _Histogram;
- float2 _Size;
- uint _Channel;
- float4 _ColorR;
- float4 _ColorG;
- float4 _ColorB;
- float4 _ColorL;
-
- float4 FragSingleChannel(v2f_img i) : SV_Target
- {
- const float4 COLORS[4] = { _ColorR, _ColorG, _ColorB, _ColorL };
-
- float remapI = i.uv.x * 255.0;
- uint index = floor(remapI);
- float delta = frac(remapI);
- float v1 = _Histogram[index][_Channel];
- float v2 = _Histogram[min(index + 1, 255)][_Channel];
- float h = v1 * (1.0 - delta) + v2 * delta;
- uint y = (uint)round(i.uv.y * _Size.y);
-
- float4 color = float4(0.1, 0.1, 0.1, 1.0);
- float fill = step(y, h);
- color = lerp(color, COLORS[_Channel], fill);
- return color;
- }
-
- float4 FragRgbMerged(v2f_img i) : SV_Target
- {
- const float4 COLORS[3] = { _ColorR, _ColorG, _ColorB };
-
- float4 targetColor = float4(0.1, 0.1, 0.1, 1.0);
- float4 emptyColor = float4(0.0, 0.0, 0.0, 1.0);
-
- float remapI = i.uv.x * 255.0;
- uint index = floor(remapI);
- float delta = frac(remapI);
-
- for (int j = 0; j < 3; j++)
- {
- float v1 = _Histogram[index][j];
- float v2 = _Histogram[min(index + 1, 255)][j];
- float h = v1 * (1.0 - delta) + v2 * delta;
- uint y = (uint)round(i.uv.y * _Size.y);
- float fill = step(y, h);
- float4 color = lerp(emptyColor, COLORS[j], fill);
- targetColor += color;
- }
-
- return saturate(targetColor);
- }
-
- float4 FragRgbSplitted(v2f_img i) : SV_Target
- {
- const float4 COLORS[3] = {_ColorR, _ColorG, _ColorB};
-
- const float limitB = round(_Size.y / 3.0);
- const float limitG = limitB * 2;
-
- float4 color = float4(0.1, 0.1, 0.1, 1.0);
- uint channel;
- float offset;
-
- if (i.pos.y < limitB)
- {
- channel = 2;
- offset = 0.0;
- }
- else if (i.pos.y < limitG)
- {
- channel = 1;
- offset = limitB;
- }
- else
- {
- channel = 0;
- offset = limitG;
- }
-
- float remapI = i.uv.x * 255.0;
- uint index = floor(remapI);
- float delta = frac(remapI);
- float v1 = offset + _Histogram[index][channel] / 3.0;
- float v2 = offset + _Histogram[min(index + 1, 255)][channel] / 3.0;
- float h = v1 * (1.0 - delta) + v2 * delta;
- uint y = (uint)round(i.uv.y * _Size.y);
-
- float fill = step(y, h);
- color = lerp(color, COLORS[channel], fill);
- return color;
- }
-
- ENDCG
-
- // (0) Channel
- Pass
- {
- CGPROGRAM
-
- #pragma vertex vert_img
- #pragma fragment FragSingleChannel
-
- ENDCG
- }
-
- // (1) RGB merged
- Pass
- {
- CGPROGRAM
-
- #pragma vertex vert_img
- #pragma fragment FragRgbMerged
-
- ENDCG
- }
-
- // (2) RGB splitted
- Pass
- {
- CGPROGRAM
-
- #pragma vertex vert_img
- #pragma fragment FragRgbSplitted
-
- ENDCG
- }
- }
- FallBack off
-}
diff --git a/JoystickVisualizer/Assets/PostProcessing/Editor Resources/Monitors/HistogramRender.shader.meta b/JoystickVisualizer/Assets/PostProcessing/Editor Resources/Monitors/HistogramRender.shader.meta
deleted file mode 100644
index 2b4b4e7..0000000
--- a/JoystickVisualizer/Assets/PostProcessing/Editor Resources/Monitors/HistogramRender.shader.meta
+++ /dev/null
@@ -1,9 +0,0 @@
-fileFormatVersion: 2
-guid: 965efa32cf2345647a1c987546e08f86
-timeCreated: 1459956391
-licenseType: Store
-ShaderImporter:
- defaultTextures: []
- userData:
- assetBundleName:
- assetBundleVariant:
diff --git a/JoystickVisualizer/Assets/PostProcessing/Editor Resources/Monitors/ParadeRender.shader b/JoystickVisualizer/Assets/PostProcessing/Editor Resources/Monitors/ParadeRender.shader
deleted file mode 100644
index 3ff1ca6..0000000
--- a/JoystickVisualizer/Assets/PostProcessing/Editor Resources/Monitors/ParadeRender.shader
+++ /dev/null
@@ -1,76 +0,0 @@
-Shader "Hidden/Post FX/Monitors/Parade Render"
-{
- SubShader
- {
- ZTest Always Cull Off ZWrite Off
- Fog { Mode off }
-
- CGINCLUDE
-
- #pragma fragmentoption ARB_precision_hint_fastest
- #pragma target 5.0
- #include "UnityCG.cginc"
-
- StructuredBuffer _Waveform;
- float4 _Size;
- float _Exposure;
-
- float3 Tonemap(float3 x, float exposure)
- {
- const float a = 6.2;
- const float b = 0.5;
- const float c = 1.7;
- const float d = 0.06;
- x *= exposure;
- x = max((0.0).xxx, x - (0.004).xxx);
- x = (x * (a * x + b)) / (x * (a * x + c) + d);
- return x * x;
- }
-
- float4 FragParade(v2f_img i) : SV_Target
- {
- const float3 red = float3(1.8, 0.03, 0.02);
- const float3 green = float3(0.02, 1.3, 0.05);
- const float3 blue = float3(0.0, 0.45, 1.75);
- float3 color = float3(0.0, 0.0, 0.0);
-
- const uint limitR = _Size.x / 3;
- const uint limitG = limitR * 2;
-
- if (i.pos.x < (float)limitR)
- {
- uint2 uvI = i.pos.xy;
- color = _Waveform[uvI.y + uvI.x * _Size.y].r * red;
- }
- else if (i.pos.x < (float)limitG)
- {
- uint2 uvI = uint2(i.pos.x - limitR, i.pos.y);
- color = _Waveform[uvI.y + uvI.x * _Size.y].g * green;
- }
- else
- {
- uint2 uvI = uint2(i.pos.x - limitG, i.pos.y);
- color = _Waveform[uvI.y + uvI.x * _Size.y].b * blue;
- }
-
- color = Tonemap(color, _Exposure);
- color += (0.1).xxx;
-
- return float4(saturate(color), 1.0);
- }
-
- ENDCG
-
- // (0)
- Pass
- {
- CGPROGRAM
-
- #pragma vertex vert_img
- #pragma fragment FragParade
-
- ENDCG
- }
- }
- FallBack off
-}
diff --git a/JoystickVisualizer/Assets/PostProcessing/Editor Resources/Monitors/ParadeRender.shader.meta b/JoystickVisualizer/Assets/PostProcessing/Editor Resources/Monitors/ParadeRender.shader.meta
deleted file mode 100644
index 9570da9..0000000
--- a/JoystickVisualizer/Assets/PostProcessing/Editor Resources/Monitors/ParadeRender.shader.meta
+++ /dev/null
@@ -1,9 +0,0 @@
-fileFormatVersion: 2
-guid: 5ae1bfc1dd20ac04e8b74aa0f2f12eea
-timeCreated: 1459956391
-licenseType: Store
-ShaderImporter:
- defaultTextures: []
- userData:
- assetBundleName:
- assetBundleVariant:
diff --git a/JoystickVisualizer/Assets/PostProcessing/Editor Resources/Monitors/VectorscopeCompute.compute b/JoystickVisualizer/Assets/PostProcessing/Editor Resources/Monitors/VectorscopeCompute.compute
deleted file mode 100644
index c5c61d0..0000000
--- a/JoystickVisualizer/Assets/PostProcessing/Editor Resources/Monitors/VectorscopeCompute.compute
+++ /dev/null
@@ -1,49 +0,0 @@
-#include "UnityCG.cginc"
-
-RWStructuredBuffer _Vectorscope;
-Texture2D _Source;
-
-CBUFFER_START (Params)
- uint _IsLinear;
- float4 _Res;
-CBUFFER_END
-
-#define GROUP_SIZE 32
-
-float3 RgbToYUV(float3 c)
-{
- float Y = 0.299 * c.r + 0.587 * c.g + 0.114 * c.b;
- float U = -0.169 * c.r - 0.331 * c.g + 0.500 * c.b;
- float V = 0.500 * c.r - 0.419 * c.g - 0.081 * c.b;
- return float3(Y, U, V);
-}
-
-#pragma kernel KVectorscope
-[numthreads(GROUP_SIZE,GROUP_SIZE,1)]
-void KVectorscope(uint2 dispatchThreadId : SV_DispatchThreadID)
-{
- if (dispatchThreadId.x < (uint)_Res.x && dispatchThreadId.y < (uint)_Res.y)
- {
- float3 color = saturate(_Source[dispatchThreadId].xyz);
- if (_IsLinear > 0)
- color = LinearToGammaSpace(color);
-
- float3 yuv = RgbToYUV(color);
-
- if (length(yuv.yz) > 0.49)
- yuv.yz = normalize(yuv.yz) * 0.49;
-
- yuv.yz += (0.5).xx;
- uint u = (uint)floor(yuv.y * _Res.x);
- uint v = (uint)floor(yuv.z * _Res.y);
- InterlockedAdd(_Vectorscope[v * _Res.x + u], 1);
- }
-}
-
-#pragma kernel KVectorscopeClear
-[numthreads(GROUP_SIZE,GROUP_SIZE,1)]
-void KVectorscopeClear(uint2 dispatchThreadId : SV_DispatchThreadID)
-{
- if (dispatchThreadId.x < (uint)_Res.x && dispatchThreadId.y < (uint)_Res.y)
- _Vectorscope[dispatchThreadId.y * _Res.x + dispatchThreadId.x] = 0u;
-}
diff --git a/JoystickVisualizer/Assets/PostProcessing/Editor Resources/Monitors/VectorscopeCompute.compute.meta b/JoystickVisualizer/Assets/PostProcessing/Editor Resources/Monitors/VectorscopeCompute.compute.meta
deleted file mode 100644
index 3d6b3ac..0000000
--- a/JoystickVisualizer/Assets/PostProcessing/Editor Resources/Monitors/VectorscopeCompute.compute.meta
+++ /dev/null
@@ -1,9 +0,0 @@
-fileFormatVersion: 2
-guid: 45de9ff58691e934c9810dc23de2ba50
-timeCreated: 1459956391
-licenseType: Store
-ComputeShaderImporter:
- currentAPIMask: 4
- userData:
- assetBundleName:
- assetBundleVariant:
diff --git a/JoystickVisualizer/Assets/PostProcessing/Editor Resources/Monitors/VectorscopeRender.shader b/JoystickVisualizer/Assets/PostProcessing/Editor Resources/Monitors/VectorscopeRender.shader
deleted file mode 100644
index 62a7a03..0000000
--- a/JoystickVisualizer/Assets/PostProcessing/Editor Resources/Monitors/VectorscopeRender.shader
+++ /dev/null
@@ -1,101 +0,0 @@
-Shader "Hidden/Post FX/Monitors/Vectorscope Render"
-{
- SubShader
- {
- ZTest Always Cull Off ZWrite Off
- Fog { Mode off }
-
- CGINCLUDE
-
- #pragma fragmentoption ARB_precision_hint_fastest
- #pragma target 5.0
- #include "UnityCG.cginc"
-
- StructuredBuffer _Vectorscope;
- float2 _Size;
- float _Exposure;
-
- float Tonemap(float x, float exposure)
- {
- const float a = 6.2;
- const float b = 0.5;
- const float c = 1.7;
- const float d = 0.06;
- x *= exposure;
- x = max(0.0, x - 0.004);
- x = (x * (a * x + b)) / (x * (a * x + c) + d);
- return x * x;
- }
-
- float3 YuvToRgb(float3 c)
- {
- float R = c.x + 0.000 * c.y + 1.403 * c.z;
- float G = c.x - 0.344 * c.y - 0.714 * c.z;
- float B = c.x - 1.773 * c.y + 0.000 * c.z;
- return float3(R, G, B);
- }
-
- float4 FragBackground(v2f_img i) : SV_Target
- {
- i.uv.x = 1.0 - i.uv.x;
- float2 uv = i.uv - (0.5).xx;
- float3 c = YuvToRgb(float3(0.5, uv.x, uv.y));
-
- float dist = sqrt(dot(uv, uv));
- float delta = fwidth(dist);
- float alphaOut = 1.0 - smoothstep(0.5 - delta, 0.5 + delta, dist);
- float alphaIn = smoothstep(0.495 - delta, 0.495 + delta, dist);
-
- uint2 uvI = i.pos.xy;
- uint v = _Vectorscope[uvI.x + uvI.y * _Size.x];
- float vt = saturate(Tonemap(v, _Exposure));
-
- float4 color = float4(lerp(c, (0.0).xxx, vt), alphaOut);
- color.rgb += alphaIn;
- return color;
- }
-
- float4 FragNoBackground(v2f_img i) : SV_Target
- {
- i.uv.x = 1.0 - i.uv.x;
- float2 uv = i.uv - (0.5).xx;
-
- float dist = sqrt(dot(uv, uv));
- float delta = fwidth(dist);
- float alphaOut = 1.0 - smoothstep(0.5 - delta, 0.5 + delta, dist);
- float alphaIn = smoothstep(0.495 - delta, 0.495 + delta, dist);
-
- uint2 uvI = i.pos.xy;
- uint v = _Vectorscope[uvI.x + uvI.y * _Size.x];
- float vt = saturate(Tonemap(v, _Exposure));
-
- float4 color = float4((1.0).xxx, vt + alphaIn * alphaOut);
- return color;
- }
-
- ENDCG
-
- // (0)
- Pass
- {
- CGPROGRAM
-
- #pragma vertex vert_img
- #pragma fragment FragBackground
-
- ENDCG
- }
-
- // (1)
- Pass
- {
- CGPROGRAM
-
- #pragma vertex vert_img
- #pragma fragment FragNoBackground
-
- ENDCG
- }
- }
- FallBack off
-}
diff --git a/JoystickVisualizer/Assets/PostProcessing/Editor Resources/Monitors/VectorscopeRender.shader.meta b/JoystickVisualizer/Assets/PostProcessing/Editor Resources/Monitors/VectorscopeRender.shader.meta
deleted file mode 100644
index 5493b16..0000000
--- a/JoystickVisualizer/Assets/PostProcessing/Editor Resources/Monitors/VectorscopeRender.shader.meta
+++ /dev/null
@@ -1,9 +0,0 @@
-fileFormatVersion: 2
-guid: 1c4298cd35ef7834e892898e49d61ecd
-timeCreated: 1461756159
-licenseType: Store
-ShaderImporter:
- defaultTextures: []
- userData:
- assetBundleName:
- assetBundleVariant:
diff --git a/JoystickVisualizer/Assets/PostProcessing/Editor Resources/Monitors/WaveformCompute.compute b/JoystickVisualizer/Assets/PostProcessing/Editor Resources/Monitors/WaveformCompute.compute
deleted file mode 100644
index cc79b15..0000000
--- a/JoystickVisualizer/Assets/PostProcessing/Editor Resources/Monitors/WaveformCompute.compute
+++ /dev/null
@@ -1,42 +0,0 @@
-#include "UnityCG.cginc"
-
-RWStructuredBuffer _Waveform;
-Texture2D _Source;
-
-CBUFFER_START (Params)
- uint _IsLinear;
- uint4 _Channels;
-CBUFFER_END
-
-#define COLUMNS 384
-
-#pragma kernel KWaveform
-[numthreads(1,COLUMNS,1)]
-void KWaveform(uint2 dispatchThreadId : SV_DispatchThreadID)
-{
- // We want a gamma corrected colors
- float3 color = _Source[dispatchThreadId].rgb;
- if (_IsLinear > 0u)
- color = LinearToGammaSpace(color);
-
- color = saturate(color);
-
- // Convert color & luminance to histogram bins
- const float kColumnsMinusOne = COLUMNS - 1.0;
- uint3 idx_c = (uint3)(round(color * kColumnsMinusOne));
- uint idx_l = (uint)(round(dot(color.rgb, float3(0.2126, 0.7152, 0.0722)) * kColumnsMinusOne));
-
- // A lot of atomic operations will be skipped so there's no need to over-think this one.
- uint j = dispatchThreadId.x * COLUMNS;
- if (_Channels.x > 0u && idx_c.x > 0u) InterlockedAdd(_Waveform[j + idx_c.x].x, 1u); // Red
- if (_Channels.y > 0u && idx_c.y > 0u) InterlockedAdd(_Waveform[j + idx_c.y].y, 1u); // Green
- if (_Channels.z > 0u && idx_c.z > 0u) InterlockedAdd(_Waveform[j + idx_c.z].z, 1u); // Blue
- if (_Channels.w > 0u) InterlockedAdd(_Waveform[j + idx_l].w, 1u); // Luminance
-}
-
-#pragma kernel KWaveformClear
-[numthreads(1, COLUMNS, 1)]
-void KWaveformClear(uint2 dispatchThreadId : SV_DispatchThreadID)
-{
- _Waveform[dispatchThreadId.x * COLUMNS + dispatchThreadId.y] = uint4(0u, 0u, 0u, 0u);
-}
diff --git a/JoystickVisualizer/Assets/PostProcessing/Editor Resources/Monitors/WaveformCompute.compute.meta b/JoystickVisualizer/Assets/PostProcessing/Editor Resources/Monitors/WaveformCompute.compute.meta
deleted file mode 100644
index c85ca93..0000000
--- a/JoystickVisualizer/Assets/PostProcessing/Editor Resources/Monitors/WaveformCompute.compute.meta
+++ /dev/null
@@ -1,9 +0,0 @@
-fileFormatVersion: 2
-guid: 9d9b886f7a8fe7b4baf56624c42e3420
-timeCreated: 1459956392
-licenseType: Store
-ComputeShaderImporter:
- currentAPIMask: 4
- userData:
- assetBundleName:
- assetBundleVariant:
diff --git a/JoystickVisualizer/Assets/PostProcessing/Editor Resources/Monitors/WaveformRender.shader b/JoystickVisualizer/Assets/PostProcessing/Editor Resources/Monitors/WaveformRender.shader
deleted file mode 100644
index 39cffd7..0000000
--- a/JoystickVisualizer/Assets/PostProcessing/Editor Resources/Monitors/WaveformRender.shader
+++ /dev/null
@@ -1,65 +0,0 @@
-Shader "Hidden/Post FX/Monitors/Waveform Render"
-{
- SubShader
- {
- ZTest Always Cull Off ZWrite Off
- Fog { Mode off }
-
- CGINCLUDE
-
- #pragma fragmentoption ARB_precision_hint_fastest
- #pragma target 5.0
- #include "UnityCG.cginc"
-
- StructuredBuffer _Waveform;
- float2 _Size;
- float4 _Channels;
- float _Exposure;
-
- float3 Tonemap(float3 x, float exposure)
- {
- const float a = 6.2;
- const float b = 0.5;
- const float c = 1.7;
- const float d = 0.06;
- x *= exposure;
- x = max((0.0).xxx, x - (0.004).xxx);
- x = (x * (a * x + b)) / (x * (a * x + c) + d);
- return x * x;
- }
-
- float4 FragWaveform(v2f_img i) : SV_Target
- {
- const float3 red = float3(1.4, 0.03, 0.02);
- const float3 green = float3(0.02, 1.1, 0.05);
- const float3 blue = float3(0.0, 0.25, 1.5);
- float3 color = float3(0.0, 0.0, 0.0);
-
- uint2 uvI = i.pos.xy;
- float4 w = _Waveform[uvI.y + uvI.x * _Size.y]; // Waveform data is stored in columns instead of rows
-
- color += red * w.r * _Channels.r;
- color += green * w.g * _Channels.g;
- color += blue * w.b * _Channels.b;
- color += w.aaa * _Channels.a * 1.5;
- color = Tonemap(color, _Exposure);
- color += (0.1).xxx;
-
- return float4(saturate(color), 1.0);
- }
-
- ENDCG
-
- // (0)
- Pass
- {
- CGPROGRAM
-
- #pragma vertex vert_img
- #pragma fragment FragWaveform
-
- ENDCG
- }
- }
- FallBack off
-}
diff --git a/JoystickVisualizer/Assets/PostProcessing/Editor Resources/Monitors/WaveformRender.shader.meta b/JoystickVisualizer/Assets/PostProcessing/Editor Resources/Monitors/WaveformRender.shader.meta
deleted file mode 100644
index 3a6eb4e..0000000
--- a/JoystickVisualizer/Assets/PostProcessing/Editor Resources/Monitors/WaveformRender.shader.meta
+++ /dev/null
@@ -1,9 +0,0 @@
-fileFormatVersion: 2
-guid: 8b3e43c50424ab2428a9c172843bc66d
-timeCreated: 1459956391
-licenseType: Store
-ShaderImporter:
- defaultTextures: []
- userData:
- assetBundleName:
- assetBundleVariant:
diff --git a/JoystickVisualizer/Assets/PostProcessing/Editor Resources/UI.meta b/JoystickVisualizer/Assets/PostProcessing/Editor Resources/UI.meta
deleted file mode 100644
index 2856c53..0000000
--- a/JoystickVisualizer/Assets/PostProcessing/Editor Resources/UI.meta
+++ /dev/null
@@ -1,9 +0,0 @@
-fileFormatVersion: 2
-guid: df37d60cc69b7b04d9705a74938179e7
-folderAsset: yes
-timeCreated: 1460627771
-licenseType: Store
-DefaultImporter:
- userData:
- assetBundleName:
- assetBundleVariant:
diff --git a/JoystickVisualizer/Assets/PostProcessing/Editor Resources/UI/CurveBackground.shader b/JoystickVisualizer/Assets/PostProcessing/Editor Resources/UI/CurveBackground.shader
deleted file mode 100644
index b4f20b2..0000000
--- a/JoystickVisualizer/Assets/PostProcessing/Editor Resources/UI/CurveBackground.shader
+++ /dev/null
@@ -1,63 +0,0 @@
-Shader "Hidden/Post FX/UI/Curve Background"
-{
- CGINCLUDE
-
- #pragma target 3.0
- #include "UnityCG.cginc"
-
- float _DisabledState;
-
- float3 HsvToRgb(float3 c)
- {
- float4 K = float4(1.0, 2.0 / 3.0, 1.0 / 3.0, 3.0);
- float3 p = abs(frac(c.xxx + K.xyz) * 6.0 - K.www);
- return c.z * lerp(K.xxx, saturate(p - K.xxx), c.y);
- }
-
- float4 FragHue(v2f_img i) : SV_Target
- {
- float3 hsv = HsvToRgb(float3(i.uv.x, 1.0, 0.2));
- float4 color = float4((0.0).xxx, 1.0);
- color.rgb = lerp(color.rgb, hsv, smoothstep(0.5, 1.1, 1.0 - i.uv.y)) + lerp(color.rgb, hsv, smoothstep(0.5, 1.1, i.uv.y));
- color.rgb += (0.15).xxx;
- return float4(color.rgb, color.a * _DisabledState);
- }
-
- float4 FragSat(v2f_img i) : SV_Target
- {
- float4 color = float4((0.0).xxx, 1.0);
- float sat = i.uv.x / 2;
- color.rgb += lerp(color.rgb, (sat).xxx, smoothstep(0.5, 1.2, 1.0 - i.uv.y)) + lerp(color.rgb, (sat).xxx, smoothstep(0.5, 1.2, i.uv.y));
- color.rgb += (0.15).xxx;
- return float4(color.rgb, color.a * _DisabledState);
- }
-
- ENDCG
-
- SubShader
- {
- Cull Off ZWrite Off ZTest Always
-
- // (0) Hue
- Pass
- {
- CGPROGRAM
-
- #pragma vertex vert_img
- #pragma fragment FragHue
-
- ENDCG
- }
-
- // (1) Sat/lum
- Pass
- {
- CGPROGRAM
-
- #pragma vertex vert_img
- #pragma fragment FragSat
-
- ENDCG
- }
- }
-}
diff --git a/JoystickVisualizer/Assets/PostProcessing/Editor Resources/UI/CurveBackground.shader.meta b/JoystickVisualizer/Assets/PostProcessing/Editor Resources/UI/CurveBackground.shader.meta
deleted file mode 100644
index d459ca5..0000000
--- a/JoystickVisualizer/Assets/PostProcessing/Editor Resources/UI/CurveBackground.shader.meta
+++ /dev/null
@@ -1,9 +0,0 @@
-fileFormatVersion: 2
-guid: b1b2bfb2897659e45983f0c3e7dda2c8
-timeCreated: 1460970196
-licenseType: Store
-ShaderImporter:
- defaultTextures: []
- userData:
- assetBundleName:
- assetBundleVariant:
diff --git a/JoystickVisualizer/Assets/PostProcessing/Editor Resources/UI/MotionBlendingIcon.png b/JoystickVisualizer/Assets/PostProcessing/Editor Resources/UI/MotionBlendingIcon.png
deleted file mode 100644
index 91de8db..0000000
Binary files a/JoystickVisualizer/Assets/PostProcessing/Editor Resources/UI/MotionBlendingIcon.png and /dev/null differ
diff --git a/JoystickVisualizer/Assets/PostProcessing/Editor Resources/UI/MotionBlendingIcon.png.meta b/JoystickVisualizer/Assets/PostProcessing/Editor Resources/UI/MotionBlendingIcon.png.meta
deleted file mode 100644
index c7e1ebe..0000000
--- a/JoystickVisualizer/Assets/PostProcessing/Editor Resources/UI/MotionBlendingIcon.png.meta
+++ /dev/null
@@ -1,59 +0,0 @@
-fileFormatVersion: 2
-guid: c0fa58091049bd24394fa15b0b6d4c5a
-timeCreated: 1468326774
-licenseType: Store
-TextureImporter:
- fileIDToRecycleName: {}
- serializedVersion: 2
- mipmaps:
- mipMapMode: 0
- enableMipMap: 0
- linearTexture: 1
- correctGamma: 0
- fadeOut: 0
- borderMipMap: 0
- mipMapFadeDistanceStart: 1
- mipMapFadeDistanceEnd: 3
- bumpmap:
- convertToNormalMap: 0
- externalNormalMap: 0
- heightScale: 0.25
- normalMapFilter: 0
- isReadable: 0
- grayScaleToAlpha: 0
- generateCubemap: 0
- cubemapConvolution: 0
- cubemapConvolutionSteps: 7
- cubemapConvolutionExponent: 1.5
- seamlessCubemap: 0
- textureFormat: -1
- maxTextureSize: 2048
- textureSettings:
- filterMode: -1
- aniso: 1
- mipBias: -1
- wrapMode: 1
- nPOTScale: 0
- lightmap: 0
- rGBM: 0
- compressionQuality: 50
- allowsAlphaSplitting: 0
- spriteMode: 0
- spriteExtrude: 1
- spriteMeshType: 1
- alignment: 0
- spritePivot: {x: 0.5, y: 0.5}
- spriteBorder: {x: 0, y: 0, z: 0, w: 0}
- spritePixelsToUnits: 100
- alphaIsTransparency: 1
- spriteTessellationDetail: -1
- textureType: 2
- buildTargetSettings: []
- spriteSheet:
- serializedVersion: 2
- sprites: []
- outline: []
- spritePackingTag:
- userData:
- assetBundleName:
- assetBundleVariant:
diff --git a/JoystickVisualizer/Assets/PostProcessing/Editor Resources/UI/Trackball.shader b/JoystickVisualizer/Assets/PostProcessing/Editor Resources/UI/Trackball.shader
deleted file mode 100644
index 264c6a1..0000000
--- a/JoystickVisualizer/Assets/PostProcessing/Editor Resources/UI/Trackball.shader
+++ /dev/null
@@ -1,118 +0,0 @@
-Shader "Hidden/Post FX/UI/Trackball"
-{
- CGINCLUDE
-
- #include "UnityCG.cginc"
-
- #define PI 3.14159265359
- #define PI2 6.28318530718
-
- float _Offset;
- float _DisabledState;
- float2 _Resolution; // x: size, y: size / 2
-
- float3 HsvToRgb(float3 c)
- {
- float4 K = float4(1.0, 2.0 / 3.0, 1.0 / 3.0, 3.0);
- float3 p = abs(frac(c.xxx + K.xyz) * 6.0 - K.www);
- return c.z * lerp(K.xxx, saturate(p - K.xxx), c.y);
- }
-
- float4 CreateWheel(v2f_img i, float crossColor, float offsetColor)
- {
- const float kHueOuterRadius = 0.45;
- const float kHueInnerRadius = 0.38;
- const float kLumOuterRadius = 0.495;
- const float kLumInnerRadius = 0.48;
-
- float4 color = (0.0).xxxx;
- float2 uvc = i.uv - (0.5).xx;
- float dist = sqrt(dot(uvc, uvc));
- float delta = fwidth(dist);
- float angle = atan2(uvc.x, uvc.y);
-
- // Cross
- {
- float radius = (0.5 - kHueInnerRadius) * _Resolution.x + 1.0;
- float2 pixel = (_Resolution.xx - 1.0) * i.uv + 1.0;
-
- float vline = step(floor(fmod(pixel.x, _Resolution.y)), 0.0);
- vline *= step(radius, pixel.y) * step(pixel.y, _Resolution.x - radius);
-
- float hline = step(floor(fmod(pixel.y, _Resolution.y)), 0.0);
- hline *= step(radius, pixel.x) * step(pixel.x, _Resolution.x - radius);
-
- color += hline.xxxx * (1.0).xxxx;
- color += vline.xxxx * (1.0).xxxx;
- color = saturate(color);
- color *= half4((crossColor).xxx, 0.05);
- }
-
- // Hue
- {
- float alphaOut = smoothstep(kHueOuterRadius - delta, kHueOuterRadius + delta, dist);
- float alphaIn = smoothstep(kHueInnerRadius - delta, kHueInnerRadius + delta, dist);
-
- float hue = angle;
- hue = 1.0 - ((hue > 0.0) ? hue : PI2 + hue) / PI2;
- float4 c = float4(HsvToRgb(float3(hue, 1.0, 1.0)), 1.0);
- color += lerp((0.0).xxxx, c, alphaIn - alphaOut);
- }
-
- // Offset
- {
- float alphaOut = smoothstep(kLumOuterRadius - delta, kLumOuterRadius + delta, dist);
- float alphaIn = smoothstep(kLumInnerRadius - delta, kLumInnerRadius + delta / 2, dist);
- float4 c = float4((offsetColor).xxx, 1.0);
-
- float a = PI * _Offset;
- if (_Offset >= 0 && angle < a && angle > 0.0)
- c = float4((1.0).xxx, 0.5);
- else if (angle > a && angle < 0.0)
- c = float4((1.0).xxx, 0.5);
-
- color += lerp((0.0).xxxx, c, alphaIn - alphaOut);
- }
-
- return color * _DisabledState;
- }
-
- float4 FragTrackballDark(v2f_img i) : SV_Target
- {
- return CreateWheel(i, 1.0, 0.15);
- }
-
- float4 FragTrackballLight(v2f_img i) : SV_Target
- {
- return CreateWheel(i, 0.0, 0.3);
- }
-
- ENDCG
-
- SubShader
- {
- Cull Off ZWrite Off ZTest Always
-
- // (0) Dark skin
- Pass
- {
- CGPROGRAM
-
- #pragma vertex vert_img
- #pragma fragment FragTrackballDark
-
- ENDCG
- }
-
- // (1) Light skin
- Pass
- {
- CGPROGRAM
-
- #pragma vertex vert_img
- #pragma fragment FragTrackballLight
-
- ENDCG
- }
- }
-}
diff --git a/JoystickVisualizer/Assets/PostProcessing/Editor Resources/UI/Trackball.shader.meta b/JoystickVisualizer/Assets/PostProcessing/Editor Resources/UI/Trackball.shader.meta
deleted file mode 100644
index 09dcd75..0000000
--- a/JoystickVisualizer/Assets/PostProcessing/Editor Resources/UI/Trackball.shader.meta
+++ /dev/null
@@ -1,9 +0,0 @@
-fileFormatVersion: 2
-guid: 4bf49309c7ab9eb42a86774d2c09b4fa
-timeCreated: 1460627788
-licenseType: Store
-ShaderImporter:
- defaultTextures: []
- userData:
- assetBundleName:
- assetBundleVariant:
diff --git a/JoystickVisualizer/Assets/PostProcessing/Editor.meta b/JoystickVisualizer/Assets/PostProcessing/Editor.meta
deleted file mode 100644
index 11b8014..0000000
--- a/JoystickVisualizer/Assets/PostProcessing/Editor.meta
+++ /dev/null
@@ -1,9 +0,0 @@
-fileFormatVersion: 2
-guid: e0e418747b892364db5c5f4451e67ede
-folderAsset: yes
-timeCreated: 1466586258
-licenseType: Store
-DefaultImporter:
- userData:
- assetBundleName:
- assetBundleVariant:
diff --git a/JoystickVisualizer/Assets/PostProcessing/Editor/Attributes.meta b/JoystickVisualizer/Assets/PostProcessing/Editor/Attributes.meta
deleted file mode 100644
index ed3547a..0000000
--- a/JoystickVisualizer/Assets/PostProcessing/Editor/Attributes.meta
+++ /dev/null
@@ -1,9 +0,0 @@
-fileFormatVersion: 2
-guid: cc5c690f549b4704eb992a9be781554d
-folderAsset: yes
-timeCreated: 1466769698
-licenseType: Store
-DefaultImporter:
- userData:
- assetBundleName:
- assetBundleVariant:
diff --git a/JoystickVisualizer/Assets/PostProcessing/Editor/Attributes/PostProcessingModelEditorAttribute.cs b/JoystickVisualizer/Assets/PostProcessing/Editor/Attributes/PostProcessingModelEditorAttribute.cs
deleted file mode 100644
index 13e4819..0000000
--- a/JoystickVisualizer/Assets/PostProcessing/Editor/Attributes/PostProcessingModelEditorAttribute.cs
+++ /dev/null
@@ -1,16 +0,0 @@
-using System;
-
-namespace UnityEditor.PostProcessing
-{
- public class PostProcessingModelEditorAttribute : Attribute
- {
- public readonly Type type;
- public readonly bool alwaysEnabled;
-
- public PostProcessingModelEditorAttribute(Type type, bool alwaysEnabled = false)
- {
- this.type = type;
- this.alwaysEnabled = alwaysEnabled;
- }
- }
-}
diff --git a/JoystickVisualizer/Assets/PostProcessing/Editor/Attributes/PostProcessingModelEditorAttribute.cs.meta b/JoystickVisualizer/Assets/PostProcessing/Editor/Attributes/PostProcessingModelEditorAttribute.cs.meta
deleted file mode 100644
index 4484ca1..0000000
--- a/JoystickVisualizer/Assets/PostProcessing/Editor/Attributes/PostProcessingModelEditorAttribute.cs.meta
+++ /dev/null
@@ -1,12 +0,0 @@
-fileFormatVersion: 2
-guid: c21938aa988055347a2271f03a3e731e
-timeCreated: 1466769734
-licenseType: Store
-MonoImporter:
- serializedVersion: 2
- defaultReferences: []
- executionOrder: 0
- icon: {instanceID: 0}
- userData:
- assetBundleName:
- assetBundleVariant:
diff --git a/JoystickVisualizer/Assets/PostProcessing/Editor/Models.meta b/JoystickVisualizer/Assets/PostProcessing/Editor/Models.meta
deleted file mode 100644
index a00a2be..0000000
--- a/JoystickVisualizer/Assets/PostProcessing/Editor/Models.meta
+++ /dev/null
@@ -1,9 +0,0 @@
-fileFormatVersion: 2
-guid: d5341d31985da604db4b100f174142ad
-folderAsset: yes
-timeCreated: 1466769808
-licenseType: Store
-DefaultImporter:
- userData:
- assetBundleName:
- assetBundleVariant:
diff --git a/JoystickVisualizer/Assets/PostProcessing/Editor/Models/AmbientOcclusionModelEditor.cs b/JoystickVisualizer/Assets/PostProcessing/Editor/Models/AmbientOcclusionModelEditor.cs
deleted file mode 100644
index fef389e..0000000
--- a/JoystickVisualizer/Assets/PostProcessing/Editor/Models/AmbientOcclusionModelEditor.cs
+++ /dev/null
@@ -1,42 +0,0 @@
-using UnityEngine.PostProcessing;
-
-namespace UnityEditor.PostProcessing
-{
- using Settings = AmbientOcclusionModel.Settings;
-
- [PostProcessingModelEditor(typeof(AmbientOcclusionModel))]
- public class AmbientOcclusionModelEditor : PostProcessingModelEditor
- {
- SerializedProperty m_Intensity;
- SerializedProperty m_Radius;
- SerializedProperty m_SampleCount;
- SerializedProperty m_Downsampling;
- SerializedProperty m_ForceForwardCompatibility;
- SerializedProperty m_AmbientOnly;
- SerializedProperty m_HighPrecision;
-
- public override void OnEnable()
- {
- m_Intensity = FindSetting((Settings x) => x.intensity);
- m_Radius = FindSetting((Settings x) => x.radius);
- m_SampleCount = FindSetting((Settings x) => x.sampleCount);
- m_Downsampling = FindSetting((Settings x) => x.downsampling);
- m_ForceForwardCompatibility = FindSetting((Settings x) => x.forceForwardCompatibility);
- m_AmbientOnly = FindSetting((Settings x) => x.ambientOnly);
- m_HighPrecision = FindSetting((Settings x) => x.highPrecision);
- }
-
- public override void OnInspectorGUI()
- {
- EditorGUILayout.PropertyField(m_Intensity);
- EditorGUILayout.PropertyField(m_Radius);
- EditorGUILayout.PropertyField(m_SampleCount);
- EditorGUILayout.PropertyField(m_Downsampling);
- EditorGUILayout.PropertyField(m_ForceForwardCompatibility);
- EditorGUILayout.PropertyField(m_HighPrecision, EditorGUIHelper.GetContent("High Precision (Forward)"));
-
- using (new EditorGUI.DisabledGroupScope(m_ForceForwardCompatibility.boolValue))
- EditorGUILayout.PropertyField(m_AmbientOnly, EditorGUIHelper.GetContent("Ambient Only (Deferred + HDR)"));
- }
- }
-}
diff --git a/JoystickVisualizer/Assets/PostProcessing/Editor/Models/AmbientOcclusionModelEditor.cs.meta b/JoystickVisualizer/Assets/PostProcessing/Editor/Models/AmbientOcclusionModelEditor.cs.meta
deleted file mode 100644
index a78b9d5..0000000
--- a/JoystickVisualizer/Assets/PostProcessing/Editor/Models/AmbientOcclusionModelEditor.cs.meta
+++ /dev/null
@@ -1,12 +0,0 @@
-fileFormatVersion: 2
-guid: 9fcb710e23a5a0546a3b8b0ca28c1720
-timeCreated: 1467190133
-licenseType: Store
-MonoImporter:
- serializedVersion: 2
- defaultReferences: []
- executionOrder: 0
- icon: {instanceID: 0}
- userData:
- assetBundleName:
- assetBundleVariant:
diff --git a/JoystickVisualizer/Assets/PostProcessing/Editor/Models/AntialiasingModelEditor.cs b/JoystickVisualizer/Assets/PostProcessing/Editor/Models/AntialiasingModelEditor.cs
deleted file mode 100644
index 6f773a5..0000000
--- a/JoystickVisualizer/Assets/PostProcessing/Editor/Models/AntialiasingModelEditor.cs
+++ /dev/null
@@ -1,71 +0,0 @@
-using UnityEngine;
-using UnityEngine.PostProcessing;
-
-namespace UnityEditor.PostProcessing
-{
- using Method = AntialiasingModel.Method;
- using Settings = AntialiasingModel.Settings;
-
- [PostProcessingModelEditor(typeof(AntialiasingModel))]
- public class AntialiasingModelEditor : PostProcessingModelEditor
- {
- SerializedProperty m_Method;
-
- SerializedProperty m_FxaaPreset;
-
- SerializedProperty m_TaaJitterSpread;
- SerializedProperty m_TaaSharpen;
- SerializedProperty m_TaaStationaryBlending;
- SerializedProperty m_TaaMotionBlending;
-
- static string[] s_MethodNames =
- {
- "Fast Approximate Anti-aliasing",
- "Temporal Anti-aliasing"
- };
-
- public override void OnEnable()
- {
- m_Method = FindSetting((Settings x) => x.method);
-
- m_FxaaPreset = FindSetting((Settings x) => x.fxaaSettings.preset);
-
- m_TaaJitterSpread = FindSetting((Settings x) => x.taaSettings.jitterSpread);
- m_TaaSharpen = FindSetting((Settings x) => x.taaSettings.sharpen);
- m_TaaStationaryBlending = FindSetting((Settings x) => x.taaSettings.stationaryBlending);
- m_TaaMotionBlending = FindSetting((Settings x) => x.taaSettings.motionBlending);
- }
-
- public override void OnInspectorGUI()
- {
- m_Method.intValue = EditorGUILayout.Popup("Method", m_Method.intValue, s_MethodNames);
-
- if (m_Method.intValue == (int)Method.Fxaa)
- {
- EditorGUILayout.PropertyField(m_FxaaPreset);
- }
- else if (m_Method.intValue == (int)Method.Taa)
- {
- if (QualitySettings.antiAliasing > 1)
- EditorGUILayout.HelpBox("Temporal Anti-Aliasing doesn't work correctly when MSAA is enabled.", MessageType.Warning);
-
- EditorGUILayout.LabelField("Jitter", EditorStyles.boldLabel);
- EditorGUI.indentLevel++;
- EditorGUILayout.PropertyField(m_TaaJitterSpread, EditorGUIHelper.GetContent("Spread"));
- EditorGUI.indentLevel--;
-
- EditorGUILayout.Space();
-
- EditorGUILayout.LabelField("Blending", EditorStyles.boldLabel);
- EditorGUI.indentLevel++;
- EditorGUILayout.PropertyField(m_TaaStationaryBlending, EditorGUIHelper.GetContent("Stationary"));
- EditorGUILayout.PropertyField(m_TaaMotionBlending, EditorGUIHelper.GetContent("Motion"));
- EditorGUI.indentLevel--;
-
- EditorGUILayout.Space();
-
- EditorGUILayout.PropertyField(m_TaaSharpen);
- }
- }
- }
-}
diff --git a/JoystickVisualizer/Assets/PostProcessing/Editor/Models/BloomModelEditor.cs b/JoystickVisualizer/Assets/PostProcessing/Editor/Models/BloomModelEditor.cs
deleted file mode 100644
index 7359627..0000000
--- a/JoystickVisualizer/Assets/PostProcessing/Editor/Models/BloomModelEditor.cs
+++ /dev/null
@@ -1,204 +0,0 @@
-using UnityEngine;
-using UnityEngine.PostProcessing;
-
-namespace UnityEditor.PostProcessing
-{
- using Settings = BloomModel.Settings;
-
- [PostProcessingModelEditor(typeof(BloomModel))]
- public class BloomModelEditor : PostProcessingModelEditor
- {
- struct BloomSettings
- {
- public SerializedProperty intensity;
- public SerializedProperty threshold;
- public SerializedProperty softKnee;
- public SerializedProperty radius;
- public SerializedProperty antiFlicker;
- }
-
- struct LensDirtSettings
- {
- public SerializedProperty texture;
- public SerializedProperty intensity;
- }
-
- BloomSettings m_Bloom;
- LensDirtSettings m_LensDirt;
-
- public override void OnEnable()
- {
- m_Bloom = new BloomSettings
- {
- intensity = FindSetting((Settings x) => x.bloom.intensity),
- threshold = FindSetting((Settings x) => x.bloom.threshold),
- softKnee = FindSetting((Settings x) => x.bloom.softKnee),
- radius = FindSetting((Settings x) => x.bloom.radius),
- antiFlicker = FindSetting((Settings x) => x.bloom.antiFlicker)
- };
-
- m_LensDirt = new LensDirtSettings
- {
- texture = FindSetting((Settings x) => x.lensDirt.texture),
- intensity = FindSetting((Settings x) => x.lensDirt.intensity)
- };
- }
-
- public override void OnInspectorGUI()
- {
- EditorGUILayout.Space();
- PrepareGraph();
- DrawGraph();
- EditorGUILayout.Space();
-
- EditorGUILayout.PropertyField(m_Bloom.intensity);
- EditorGUILayout.PropertyField(m_Bloom.threshold, EditorGUIHelper.GetContent("Threshold (Gamma)"));
- EditorGUILayout.PropertyField(m_Bloom.softKnee);
- EditorGUILayout.PropertyField(m_Bloom.radius);
- EditorGUILayout.PropertyField(m_Bloom.antiFlicker);
-
- EditorGUILayout.Space();
- EditorGUILayout.LabelField("Dirt", EditorStyles.boldLabel);
- EditorGUI.indentLevel++;
- EditorGUILayout.PropertyField(m_LensDirt.texture);
- EditorGUILayout.PropertyField(m_LensDirt.intensity);
- EditorGUI.indentLevel--;
- }
-
- #region Graph
-
- float m_GraphThreshold;
- float m_GraphKnee;
- float m_GraphIntensity;
-
- // Number of vertices in curve
- const int k_CurveResolution = 48;
-
- // Vertex buffers
- Vector3[] m_RectVertices = new Vector3[4];
- Vector3[] m_LineVertices = new Vector3[2];
- Vector3[] m_CurveVertices = new Vector3[k_CurveResolution];
-
- Rect m_RectGraph;
- float m_RangeX;
- float m_RangeY;
-
- float ResponseFunction(float x)
- {
- var rq = Mathf.Clamp(x - m_GraphThreshold + m_GraphKnee, 0, m_GraphKnee * 2);
- rq = rq * rq * 0.25f / m_GraphKnee;
- return Mathf.Max(rq, x - m_GraphThreshold) * m_GraphIntensity;
- }
-
- // Transform a point into the graph rect
- Vector3 PointInRect(float x, float y)
- {
- x = Mathf.Lerp(m_RectGraph.x, m_RectGraph.xMax, x / m_RangeX);
- y = Mathf.Lerp(m_RectGraph.yMax, m_RectGraph.y, y / m_RangeY);
- return new Vector3(x, y, 0);
- }
-
- // Draw a line in the graph rect
- void DrawLine(float x1, float y1, float x2, float y2, float grayscale)
- {
- m_LineVertices[0] = PointInRect(x1, y1);
- m_LineVertices[1] = PointInRect(x2, y2);
- Handles.color = Color.white * grayscale;
- Handles.DrawAAPolyLine(2.0f, m_LineVertices);
- }
-
- // Draw a rect in the graph rect
- void DrawRect(float x1, float y1, float x2, float y2, float fill, float line)
- {
- m_RectVertices[0] = PointInRect(x1, y1);
- m_RectVertices[1] = PointInRect(x2, y1);
- m_RectVertices[2] = PointInRect(x2, y2);
- m_RectVertices[3] = PointInRect(x1, y2);
-
- Handles.DrawSolidRectangleWithOutline(
- m_RectVertices,
- fill < 0 ? Color.clear : Color.white * fill,
- line < 0 ? Color.clear : Color.white * line
- );
- }
-
- // Update internal state with a given bloom instance
- public void PrepareGraph()
- {
- var bloom = (BloomModel)target;
- m_RangeX = 5f;
- m_RangeY = 2f;
-
- m_GraphThreshold = bloom.settings.bloom.thresholdLinear;
- m_GraphKnee = bloom.settings.bloom.softKnee * m_GraphThreshold + 1e-5f;
-
- // Intensity is capped to prevent sampling errors
- m_GraphIntensity = Mathf.Min(bloom.settings.bloom.intensity, 10f);
- }
-
- // Draw the graph at the current position
- public void DrawGraph()
- {
- using (new GUILayout.HorizontalScope())
- {
- GUILayout.Space(EditorGUI.indentLevel * 15f);
- m_RectGraph = GUILayoutUtility.GetRect(128, 80);
- }
-
- // Background
- DrawRect(0, 0, m_RangeX, m_RangeY, 0.1f, 0.4f);
-
- // Soft-knee range
- DrawRect(m_GraphThreshold - m_GraphKnee, 0, m_GraphThreshold + m_GraphKnee, m_RangeY, 0.25f, -1);
-
- // Horizontal lines
- for (var i = 1; i < m_RangeY; i++)
- DrawLine(0, i, m_RangeX, i, 0.4f);
-
- // Vertical lines
- for (var i = 1; i < m_RangeX; i++)
- DrawLine(i, 0, i, m_RangeY, 0.4f);
-
- // Label
- Handles.Label(
- PointInRect(0, m_RangeY) + Vector3.right,
- "Brightness Response (linear)", EditorStyles.miniLabel
- );
-
- // Threshold line
- DrawLine(m_GraphThreshold, 0, m_GraphThreshold, m_RangeY, 0.6f);
-
- // Response curve
- var vcount = 0;
- while (vcount < k_CurveResolution)
- {
- var x = m_RangeX * vcount / (k_CurveResolution - 1);
- var y = ResponseFunction(x);
- if (y < m_RangeY)
- {
- m_CurveVertices[vcount++] = PointInRect(x, y);
- }
- else
- {
- if (vcount > 1)
- {
- // Extend the last segment to the top edge of the rect.
- var v1 = m_CurveVertices[vcount - 2];
- var v2 = m_CurveVertices[vcount - 1];
- var clip = (m_RectGraph.y - v1.y) / (v2.y - v1.y);
- m_CurveVertices[vcount - 1] = v1 + (v2 - v1) * clip;
- }
- break;
- }
- }
-
- if (vcount > 1)
- {
- Handles.color = Color.white * 0.9f;
- Handles.DrawAAPolyLine(2.0f, vcount, m_CurveVertices);
- }
- }
-
- #endregion
- }
-}
diff --git a/JoystickVisualizer/Assets/PostProcessing/Editor/Models/BloomModelEditor.cs.meta b/JoystickVisualizer/Assets/PostProcessing/Editor/Models/BloomModelEditor.cs.meta
deleted file mode 100644
index f4f31de..0000000
--- a/JoystickVisualizer/Assets/PostProcessing/Editor/Models/BloomModelEditor.cs.meta
+++ /dev/null
@@ -1,12 +0,0 @@
-fileFormatVersion: 2
-guid: a95f3f10e7e437c49ade656f531b30d2
-timeCreated: 1467190133
-licenseType: Store
-MonoImporter:
- serializedVersion: 2
- defaultReferences: []
- executionOrder: 0
- icon: {instanceID: 0}
- userData:
- assetBundleName:
- assetBundleVariant:
diff --git a/JoystickVisualizer/Assets/PostProcessing/Editor/Models/BuiltinDebugViewsEditor.cs b/JoystickVisualizer/Assets/PostProcessing/Editor/Models/BuiltinDebugViewsEditor.cs
deleted file mode 100644
index eefc102..0000000
--- a/JoystickVisualizer/Assets/PostProcessing/Editor/Models/BuiltinDebugViewsEditor.cs
+++ /dev/null
@@ -1,106 +0,0 @@
-using UnityEngine.PostProcessing;
-
-namespace UnityEditor.PostProcessing
-{
- using Mode = BuiltinDebugViewsModel.Mode;
- using Settings = BuiltinDebugViewsModel.Settings;
-
- [PostProcessingModelEditor(typeof(BuiltinDebugViewsModel), alwaysEnabled: true)]
- public class BuiltinDebugViewsEditor : PostProcessingModelEditor
- {
- struct DepthSettings
- {
- public SerializedProperty scale;
- }
-
- struct MotionVectorsSettings
- {
- public SerializedProperty sourceOpacity;
- public SerializedProperty motionImageOpacity;
- public SerializedProperty motionImageAmplitude;
- public SerializedProperty motionVectorsOpacity;
- public SerializedProperty motionVectorsResolution;
- public SerializedProperty motionVectorsAmplitude;
- }
-
- SerializedProperty m_Mode;
- DepthSettings m_Depth;
- MotionVectorsSettings m_MotionVectors;
-
- public override void OnEnable()
- {
- m_Mode = FindSetting((Settings x) => x.mode);
-
- m_Depth = new DepthSettings
- {
- scale = FindSetting((Settings x) => x.depth.scale)
- };
-
- m_MotionVectors = new MotionVectorsSettings
- {
- sourceOpacity = FindSetting((Settings x) => x.motionVectors.sourceOpacity),
- motionImageOpacity = FindSetting((Settings x) => x.motionVectors.motionImageOpacity),
- motionImageAmplitude = FindSetting((Settings x) => x.motionVectors.motionImageAmplitude),
- motionVectorsOpacity = FindSetting((Settings x) => x.motionVectors.motionVectorsOpacity),
- motionVectorsResolution = FindSetting((Settings x) => x.motionVectors.motionVectorsResolution),
- motionVectorsAmplitude = FindSetting((Settings x) => x.motionVectors.motionVectorsAmplitude),
- };
- }
-
- public override void OnInspectorGUI()
- {
- EditorGUILayout.PropertyField(m_Mode);
-
- int mode = m_Mode.intValue;
-
- if (mode == (int)Mode.Depth)
- {
- EditorGUILayout.PropertyField(m_Depth.scale);
- }
- else if (mode == (int)Mode.MotionVectors)
- {
- EditorGUILayout.HelpBox("Switch to play mode to see motion vectors.", MessageType.Info);
-
- EditorGUILayout.LabelField("Source Image", EditorStyles.boldLabel);
- EditorGUI.indentLevel++;
- EditorGUILayout.PropertyField(m_MotionVectors.sourceOpacity, EditorGUIHelper.GetContent("Opacity"));
- EditorGUI.indentLevel--;
-
- EditorGUILayout.Space();
-
- EditorGUILayout.LabelField("Motion Vectors (overlay)", EditorStyles.boldLabel);
- EditorGUI.indentLevel++;
-
- if (m_MotionVectors.motionImageOpacity.floatValue > 0f)
- EditorGUILayout.HelpBox("Please keep opacity to 0 if you're subject to motion sickness.", MessageType.Warning);
-
- EditorGUILayout.PropertyField(m_MotionVectors.motionImageOpacity, EditorGUIHelper.GetContent("Opacity"));
- EditorGUILayout.PropertyField(m_MotionVectors.motionImageAmplitude, EditorGUIHelper.GetContent("Amplitude"));
- EditorGUI.indentLevel--;
-
- EditorGUILayout.Space();
-
- EditorGUILayout.LabelField("Motion Vectors (arrows)", EditorStyles.boldLabel);
- EditorGUI.indentLevel++;
- EditorGUILayout.PropertyField(m_MotionVectors.motionVectorsOpacity, EditorGUIHelper.GetContent("Opacity"));
- EditorGUILayout.PropertyField(m_MotionVectors.motionVectorsResolution, EditorGUIHelper.GetContent("Resolution"));
- EditorGUILayout.PropertyField(m_MotionVectors.motionVectorsAmplitude, EditorGUIHelper.GetContent("Amplitude"));
- EditorGUI.indentLevel--;
- }
- else
- {
- CheckActiveEffect(mode == (int)Mode.AmbientOcclusion && !profile.ambientOcclusion.enabled, "Ambient Occlusion");
- CheckActiveEffect(mode == (int)Mode.FocusPlane && !profile.depthOfField.enabled, "Depth Of Field");
- CheckActiveEffect(mode == (int)Mode.EyeAdaptation && !profile.eyeAdaptation.enabled, "Eye Adaptation");
- CheckActiveEffect((mode == (int)Mode.LogLut || mode == (int)Mode.PreGradingLog) && !profile.colorGrading.enabled, "Color Grading");
- CheckActiveEffect(mode == (int)Mode.UserLut && !profile.userLut.enabled, "User Lut");
- }
- }
-
- void CheckActiveEffect(bool expr, string name)
- {
- if (expr)
- EditorGUILayout.HelpBox(string.Format("{0} isn't enabled, the debug view won't work.", name), MessageType.Warning);
- }
- }
-}
diff --git a/JoystickVisualizer/Assets/PostProcessing/Editor/Models/BuiltinDebugViewsEditor.cs.meta b/JoystickVisualizer/Assets/PostProcessing/Editor/Models/BuiltinDebugViewsEditor.cs.meta
deleted file mode 100644
index b961b65..0000000
--- a/JoystickVisualizer/Assets/PostProcessing/Editor/Models/BuiltinDebugViewsEditor.cs.meta
+++ /dev/null
@@ -1,12 +0,0 @@
-fileFormatVersion: 2
-guid: 760ffebbef2ed644c87940a699eb7fe6
-timeCreated: 1468237035
-licenseType: Store
-MonoImporter:
- serializedVersion: 2
- defaultReferences: []
- executionOrder: 0
- icon: {instanceID: 0}
- userData:
- assetBundleName:
- assetBundleVariant:
diff --git a/JoystickVisualizer/Assets/PostProcessing/Editor/Models/ChromaticAberrationEditor.cs b/JoystickVisualizer/Assets/PostProcessing/Editor/Models/ChromaticAberrationEditor.cs
deleted file mode 100644
index 2337de0..0000000
--- a/JoystickVisualizer/Assets/PostProcessing/Editor/Models/ChromaticAberrationEditor.cs
+++ /dev/null
@@ -1,9 +0,0 @@
-using UnityEngine.PostProcessing;
-
-namespace UnityEditor.PostProcessing
-{
- [PostProcessingModelEditor(typeof(ChromaticAberrationModel))]
- public class ChromaticaAberrationModelEditor : DefaultPostFxModelEditor
- {
- }
-}
diff --git a/JoystickVisualizer/Assets/PostProcessing/Editor/Models/ChromaticAberrationEditor.cs.meta b/JoystickVisualizer/Assets/PostProcessing/Editor/Models/ChromaticAberrationEditor.cs.meta
deleted file mode 100644
index 8c65150..0000000
--- a/JoystickVisualizer/Assets/PostProcessing/Editor/Models/ChromaticAberrationEditor.cs.meta
+++ /dev/null
@@ -1,12 +0,0 @@
-fileFormatVersion: 2
-guid: 8a713f71a0169794a915a081f6242f60
-timeCreated: 1467190133
-licenseType: Store
-MonoImporter:
- serializedVersion: 2
- defaultReferences: []
- executionOrder: 0
- icon: {instanceID: 0}
- userData:
- assetBundleName:
- assetBundleVariant:
diff --git a/JoystickVisualizer/Assets/PostProcessing/Editor/Models/ColorGradingModelEditor.cs b/JoystickVisualizer/Assets/PostProcessing/Editor/Models/ColorGradingModelEditor.cs
deleted file mode 100644
index 8d73982..0000000
--- a/JoystickVisualizer/Assets/PostProcessing/Editor/Models/ColorGradingModelEditor.cs
+++ /dev/null
@@ -1,672 +0,0 @@
-using UnityEngine;
-using UnityEngine.PostProcessing;
-using System;
-using System.Collections.Generic;
-using System.Linq.Expressions;
-
-namespace UnityEditor.PostProcessing
-{
- using Settings = ColorGradingModel.Settings;
- using Tonemapper = ColorGradingModel.Tonemapper;
- using ColorWheelMode = ColorGradingModel.ColorWheelMode;
-
- [PostProcessingModelEditor(typeof(ColorGradingModel))]
- public class ColorGradingModelEditor : PostProcessingModelEditor
- {
- static GUIContent[] s_Tonemappers =
- {
- new GUIContent("None"),
- new GUIContent("Filmic (ACES)"),
- new GUIContent("Neutral")
- };
-
- struct TonemappingSettings
- {
- public SerializedProperty tonemapper;
- public SerializedProperty neutralBlackIn;
- public SerializedProperty neutralWhiteIn;
- public SerializedProperty neutralBlackOut;
- public SerializedProperty neutralWhiteOut;
- public SerializedProperty neutralWhiteLevel;
- public SerializedProperty neutralWhiteClip;
- }
-
- struct BasicSettings
- {
- public SerializedProperty exposure;
- public SerializedProperty temperature;
- public SerializedProperty tint;
- public SerializedProperty hueShift;
- public SerializedProperty saturation;
- public SerializedProperty contrast;
- }
-
- struct ChannelMixerSettings
- {
- public SerializedProperty[] channels;
- public SerializedProperty currentEditingChannel;
- }
-
- struct ColorWheelsSettings
- {
- public SerializedProperty mode;
- public SerializedProperty log;
- public SerializedProperty linear;
- }
-
- static GUIContent[] s_Curves =
- {
- new GUIContent("YRGB"),
- new GUIContent("Hue VS Hue"),
- new GUIContent("Hue VS Sat"),
- new GUIContent("Sat VS Sat"),
- new GUIContent("Lum VS Sat")
- };
-
- struct CurvesSettings
- {
- public SerializedProperty master;
- public SerializedProperty red;
- public SerializedProperty green;
- public SerializedProperty blue;
-
- public SerializedProperty hueVShue;
- public SerializedProperty hueVSsat;
- public SerializedProperty satVSsat;
- public SerializedProperty lumVSsat;
-
- public SerializedProperty currentEditingCurve;
- public SerializedProperty curveY;
- public SerializedProperty curveR;
- public SerializedProperty curveG;
- public SerializedProperty curveB;
- }
-
- TonemappingSettings m_Tonemapping;
- BasicSettings m_Basic;
- ChannelMixerSettings m_ChannelMixer;
- ColorWheelsSettings m_ColorWheels;
- CurvesSettings m_Curves;
-
- CurveEditor m_CurveEditor;
- Dictionary m_CurveDict;
-
- // Neutral tonemapping curve helper
- const int k_CurveResolution = 24;
- const float k_NeutralRangeX = 2f;
- const float k_NeutralRangeY = 1f;
- Vector3[] m_RectVertices = new Vector3[4];
- Vector3[] m_LineVertices = new Vector3[2];
- Vector3[] m_CurveVertices = new Vector3[k_CurveResolution];
- Rect m_NeutralCurveRect;
-
- public override void OnEnable()
- {
- // Tonemapping settings
- m_Tonemapping = new TonemappingSettings
- {
- tonemapper = FindSetting((Settings x) => x.tonemapping.tonemapper),
- neutralBlackIn = FindSetting((Settings x) => x.tonemapping.neutralBlackIn),
- neutralWhiteIn = FindSetting((Settings x) => x.tonemapping.neutralWhiteIn),
- neutralBlackOut = FindSetting((Settings x) => x.tonemapping.neutralBlackOut),
- neutralWhiteOut = FindSetting((Settings x) => x.tonemapping.neutralWhiteOut),
- neutralWhiteLevel = FindSetting((Settings x) => x.tonemapping.neutralWhiteLevel),
- neutralWhiteClip = FindSetting((Settings x) => x.tonemapping.neutralWhiteClip)
- };
-
- // Basic settings
- m_Basic = new BasicSettings
- {
- exposure = FindSetting((Settings x) => x.basic.postExposure),
- temperature = FindSetting((Settings x) => x.basic.temperature),
- tint = FindSetting((Settings x) => x.basic.tint),
- hueShift = FindSetting((Settings x) => x.basic.hueShift),
- saturation = FindSetting((Settings x) => x.basic.saturation),
- contrast = FindSetting((Settings x) => x.basic.contrast)
- };
-
- // Channel mixer
- m_ChannelMixer = new ChannelMixerSettings
- {
- channels = new[]
- {
- FindSetting((Settings x) => x.channelMixer.red),
- FindSetting((Settings x) => x.channelMixer.green),
- FindSetting((Settings x) => x.channelMixer.blue)
- },
- currentEditingChannel = FindSetting((Settings x) => x.channelMixer.currentEditingChannel)
- };
-
- // Color wheels
- m_ColorWheels = new ColorWheelsSettings
- {
- mode = FindSetting((Settings x) => x.colorWheels.mode),
- log = FindSetting((Settings x) => x.colorWheels.log),
- linear = FindSetting((Settings x) => x.colorWheels.linear)
- };
-
- // Curves
- m_Curves = new CurvesSettings
- {
- master = FindSetting((Settings x) => x.curves.master.curve),
- red = FindSetting((Settings x) => x.curves.red.curve),
- green = FindSetting((Settings x) => x.curves.green.curve),
- blue = FindSetting((Settings x) => x.curves.blue.curve),
-
- hueVShue = FindSetting((Settings x) => x.curves.hueVShue.curve),
- hueVSsat = FindSetting((Settings x) => x.curves.hueVSsat.curve),
- satVSsat = FindSetting((Settings x) => x.curves.satVSsat.curve),
- lumVSsat = FindSetting((Settings x) => x.curves.lumVSsat.curve),
-
- currentEditingCurve = FindSetting((Settings x) => x.curves.e_CurrentEditingCurve),
- curveY = FindSetting((Settings x) => x.curves.e_CurveY),
- curveR = FindSetting((Settings x) => x.curves.e_CurveR),
- curveG = FindSetting((Settings x) => x.curves.e_CurveG),
- curveB = FindSetting((Settings x) => x.curves.e_CurveB)
- };
-
- // Prepare the curve editor and extract curve display settings
- m_CurveDict = new Dictionary();
-
- var settings = CurveEditor.Settings.defaultSettings;
-
- m_CurveEditor = new CurveEditor(settings);
- AddCurve(m_Curves.master, new Color(1f, 1f, 1f), 2, false);
- AddCurve(m_Curves.red, new Color(1f, 0f, 0f), 2, false);
- AddCurve(m_Curves.green, new Color(0f, 1f, 0f), 2, false);
- AddCurve(m_Curves.blue, new Color(0f, 0.5f, 1f), 2, false);
- AddCurve(m_Curves.hueVShue, new Color(1f, 1f, 1f), 0, true);
- AddCurve(m_Curves.hueVSsat, new Color(1f, 1f, 1f), 0, true);
- AddCurve(m_Curves.satVSsat, new Color(1f, 1f, 1f), 0, false);
- AddCurve(m_Curves.lumVSsat, new Color(1f, 1f, 1f), 0, false);
- }
-
- void AddCurve(SerializedProperty prop, Color color, uint minPointCount, bool loop)
- {
- var state = CurveEditor.CurveState.defaultState;
- state.color = color;
- state.visible = false;
- state.minPointCount = minPointCount;
- state.onlyShowHandlesOnSelection = true;
- state.zeroKeyConstantValue = 0.5f;
- state.loopInBounds = loop;
- m_CurveEditor.Add(prop, state);
- m_CurveDict.Add(prop, color);
- }
-
- public override void OnDisable()
- {
- m_CurveEditor.RemoveAll();
- }
-
- public override void OnInspectorGUI()
- {
- DoGUIFor("Tonemapping", DoTonemappingGUI);
- EditorGUILayout.Space();
- DoGUIFor("Basic", DoBasicGUI);
- EditorGUILayout.Space();
- DoGUIFor("Channel Mixer", DoChannelMixerGUI);
- EditorGUILayout.Space();
- DoGUIFor("Trackballs", DoColorWheelsGUI);
- EditorGUILayout.Space();
- DoGUIFor("Grading Curves", DoCurvesGUI);
- }
-
- void DoGUIFor(string title, Action func)
- {
- EditorGUILayout.LabelField(title, EditorStyles.boldLabel);
- EditorGUI.indentLevel++;
- func();
- EditorGUI.indentLevel--;
- }
-
- void DoTonemappingGUI()
- {
- int tid = EditorGUILayout.Popup(EditorGUIHelper.GetContent("Tonemapper"), m_Tonemapping.tonemapper.intValue, s_Tonemappers);
-
- if (tid == (int)Tonemapper.Neutral)
- {
- DrawNeutralTonemappingCurve();
-
- EditorGUILayout.PropertyField(m_Tonemapping.neutralBlackIn, EditorGUIHelper.GetContent("Black In"));
- EditorGUILayout.PropertyField(m_Tonemapping.neutralWhiteIn, EditorGUIHelper.GetContent("White In"));
- EditorGUILayout.PropertyField(m_Tonemapping.neutralBlackOut, EditorGUIHelper.GetContent("Black Out"));
- EditorGUILayout.PropertyField(m_Tonemapping.neutralWhiteOut, EditorGUIHelper.GetContent("White Out"));
- EditorGUILayout.PropertyField(m_Tonemapping.neutralWhiteLevel, EditorGUIHelper.GetContent("White Level"));
- EditorGUILayout.PropertyField(m_Tonemapping.neutralWhiteClip, EditorGUIHelper.GetContent("White Clip"));
- }
-
- m_Tonemapping.tonemapper.intValue = tid;
- }
-
- void DrawNeutralTonemappingCurve()
- {
- using (new GUILayout.HorizontalScope())
- {
- GUILayout.Space(EditorGUI.indentLevel * 15f);
- m_NeutralCurveRect = GUILayoutUtility.GetRect(128, 80);
- }
-
- // Background
- m_RectVertices[0] = PointInRect( 0f, 0f);
- m_RectVertices[1] = PointInRect(k_NeutralRangeX, 0f);
- m_RectVertices[2] = PointInRect(k_NeutralRangeX, k_NeutralRangeY);
- m_RectVertices[3] = PointInRect( 0f, k_NeutralRangeY);
-
- Handles.DrawSolidRectangleWithOutline(
- m_RectVertices,
- Color.white * 0.1f,
- Color.white * 0.4f
- );
-
- // Horizontal lines
- for (var i = 1; i < k_NeutralRangeY; i++)
- DrawLine(0, i, k_NeutralRangeX, i, 0.4f);
-
- // Vertical lines
- for (var i = 1; i < k_NeutralRangeX; i++)
- DrawLine(i, 0, i, k_NeutralRangeY, 0.4f);
-
- // Label
- Handles.Label(
- PointInRect(0, k_NeutralRangeY) + Vector3.right,
- "Neutral Tonemapper", EditorStyles.miniLabel
- );
-
- // Precompute some values
- var tonemap = ((ColorGradingModel)target).settings.tonemapping;
-
- const float scaleFactor = 20f;
- const float scaleFactorHalf = scaleFactor * 0.5f;
-
- float inBlack = tonemap.neutralBlackIn * scaleFactor + 1f;
- float outBlack = tonemap.neutralBlackOut * scaleFactorHalf + 1f;
- float inWhite = tonemap.neutralWhiteIn / scaleFactor;
- float outWhite = 1f - tonemap.neutralWhiteOut / scaleFactor;
- float blackRatio = inBlack / outBlack;
- float whiteRatio = inWhite / outWhite;
-
- const float a = 0.2f;
- float b = Mathf.Max(0f, Mathf.LerpUnclamped(0.57f, 0.37f, blackRatio));
- float c = Mathf.LerpUnclamped(0.01f, 0.24f, whiteRatio);
- float d = Mathf.Max(0f, Mathf.LerpUnclamped(0.02f, 0.20f, blackRatio));
- const float e = 0.02f;
- const float f = 0.30f;
- float whiteLevel = tonemap.neutralWhiteLevel;
- float whiteClip = tonemap.neutralWhiteClip / scaleFactorHalf;
-
- // Tonemapping curve
- var vcount = 0;
- while (vcount < k_CurveResolution)
- {
- float x = k_NeutralRangeX * vcount / (k_CurveResolution - 1);
- float y = NeutralTonemap(x, a, b, c, d, e, f, whiteLevel, whiteClip);
-
- if (y < k_NeutralRangeY)
- {
- m_CurveVertices[vcount++] = PointInRect(x, y);
- }
- else
- {
- if (vcount > 1)
- {
- // Extend the last segment to the top edge of the rect.
- var v1 = m_CurveVertices[vcount - 2];
- var v2 = m_CurveVertices[vcount - 1];
- var clip = (m_NeutralCurveRect.y - v1.y) / (v2.y - v1.y);
- m_CurveVertices[vcount - 1] = v1 + (v2 - v1) * clip;
- }
- break;
- }
- }
-
- if (vcount > 1)
- {
- Handles.color = Color.white * 0.9f;
- Handles.DrawAAPolyLine(2.0f, vcount, m_CurveVertices);
- }
- }
-
- void DrawLine(float x1, float y1, float x2, float y2, float grayscale)
- {
- m_LineVertices[0] = PointInRect(x1, y1);
- m_LineVertices[1] = PointInRect(x2, y2);
- Handles.color = Color.white * grayscale;
- Handles.DrawAAPolyLine(2f, m_LineVertices);
- }
-
- Vector3 PointInRect(float x, float y)
- {
- x = Mathf.Lerp(m_NeutralCurveRect.x, m_NeutralCurveRect.xMax, x / k_NeutralRangeX);
- y = Mathf.Lerp(m_NeutralCurveRect.yMax, m_NeutralCurveRect.y, y / k_NeutralRangeY);
- return new Vector3(x, y, 0);
- }
-
- float NeutralCurve(float x, float a, float b, float c, float d, float e, float f)
- {
- return ((x * (a * x + c * b) + d * e) / (x * (a * x + b) + d * f)) - e / f;
- }
-
- float NeutralTonemap(float x, float a, float b, float c, float d, float e, float f, float whiteLevel, float whiteClip)
- {
- x = Mathf.Max(0f, x);
-
- // Tonemap
- float whiteScale = 1f / NeutralCurve(whiteLevel, a, b, c, d, e, f);
- x = NeutralCurve(x * whiteScale, a, b, c, d, e, f);
- x *= whiteScale;
-
- // Post-curve white point adjustment
- x /= whiteClip;
-
- return x;
- }
-
- void DoBasicGUI()
- {
- EditorGUILayout.PropertyField(m_Basic.exposure, EditorGUIHelper.GetContent("Post Exposure (EV)"));
- EditorGUILayout.PropertyField(m_Basic.temperature);
- EditorGUILayout.PropertyField(m_Basic.tint);
- EditorGUILayout.PropertyField(m_Basic.hueShift);
- EditorGUILayout.PropertyField(m_Basic.saturation);
- EditorGUILayout.PropertyField(m_Basic.contrast);
- }
-
- void DoChannelMixerGUI()
- {
- int currentChannel = m_ChannelMixer.currentEditingChannel.intValue;
-
- EditorGUI.BeginChangeCheck();
- {
- using (new EditorGUILayout.HorizontalScope())
- {
- EditorGUILayout.PrefixLabel("Channel");
- if (GUILayout.Toggle(currentChannel == 0, EditorGUIHelper.GetContent("Red|Red output channel."), EditorStyles.miniButtonLeft)) currentChannel = 0;
- if (GUILayout.Toggle(currentChannel == 1, EditorGUIHelper.GetContent("Green|Green output channel."), EditorStyles.miniButtonMid)) currentChannel = 1;
- if (GUILayout.Toggle(currentChannel == 2, EditorGUIHelper.GetContent("Blue|Blue output channel."), EditorStyles.miniButtonRight)) currentChannel = 2;
- }
- }
- if (EditorGUI.EndChangeCheck())
- {
- GUI.FocusControl(null);
- }
-
- var serializedChannel = m_ChannelMixer.channels[currentChannel];
- m_ChannelMixer.currentEditingChannel.intValue = currentChannel;
-
- var v = serializedChannel.vector3Value;
- v.x = EditorGUILayout.Slider(EditorGUIHelper.GetContent("Red|Modify influence of the red channel within the overall mix."), v.x, -2f, 2f);
- v.y = EditorGUILayout.Slider(EditorGUIHelper.GetContent("Green|Modify influence of the green channel within the overall mix."), v.y, -2f, 2f);
- v.z = EditorGUILayout.Slider(EditorGUIHelper.GetContent("Blue|Modify influence of the blue channel within the overall mix."), v.z, -2f, 2f);
- serializedChannel.vector3Value = v;
- }
-
- void DoColorWheelsGUI()
- {
- int wheelMode = m_ColorWheels.mode.intValue;
-
- using (new EditorGUILayout.HorizontalScope())
- {
- GUILayout.Space(15);
- if (GUILayout.Toggle(wheelMode == (int)ColorWheelMode.Linear, "Linear", EditorStyles.miniButtonLeft)) wheelMode = (int)ColorWheelMode.Linear;
- if (GUILayout.Toggle(wheelMode == (int)ColorWheelMode.Log, "Log", EditorStyles.miniButtonRight)) wheelMode = (int)ColorWheelMode.Log;
- }
-
- m_ColorWheels.mode.intValue = wheelMode;
- EditorGUILayout.Space();
-
- if (wheelMode == (int)ColorWheelMode.Linear)
- {
- EditorGUILayout.PropertyField(m_ColorWheels.linear);
- WheelSetTitle(GUILayoutUtility.GetLastRect(), "Linear Controls");
- }
- else if (wheelMode == (int)ColorWheelMode.Log)
- {
- EditorGUILayout.PropertyField(m_ColorWheels.log);
- WheelSetTitle(GUILayoutUtility.GetLastRect(), "Log Controls");
- }
- }
-
- static void WheelSetTitle(Rect position, string label)
- {
- var matrix = GUI.matrix;
- var rect = new Rect(position.x - 10f, position.y, TrackballGroupDrawer.m_Size, TrackballGroupDrawer.m_Size);
- GUIUtility.RotateAroundPivot(-90f, rect.center);
- GUI.Label(rect, label, FxStyles.centeredMiniLabel);
- GUI.matrix = matrix;
- }
-
- void ResetVisibleCurves()
- {
- foreach (var curve in m_CurveDict)
- {
- var state = m_CurveEditor.GetCurveState(curve.Key);
- state.visible = false;
- m_CurveEditor.SetCurveState(curve.Key, state);
- }
- }
-
- void SetCurveVisible(SerializedProperty prop)
- {
- var state = m_CurveEditor.GetCurveState(prop);
- state.visible = true;
- m_CurveEditor.SetCurveState(prop, state);
- }
-
- bool SpecialToggle(bool value, string name, out bool rightClicked)
- {
- var rect = GUILayoutUtility.GetRect(EditorGUIHelper.GetContent(name), EditorStyles.toolbarButton);
-
- var e = Event.current;
- rightClicked = (e.type == EventType.MouseUp && rect.Contains(e.mousePosition) && e.button == 1);
-
- return GUI.Toggle(rect, value, name, EditorStyles.toolbarButton);
- }
-
- static Material s_MaterialSpline;
-
- void DoCurvesGUI()
- {
- EditorGUILayout.Space();
- EditorGUI.indentLevel -= 2;
- ResetVisibleCurves();
-
- using (new EditorGUI.DisabledGroupScope(serializedProperty.serializedObject.isEditingMultipleObjects))
- {
- int curveEditingId = 0;
-
- // Top toolbar
- using (new GUILayout.HorizontalScope(EditorStyles.toolbar))
- {
- curveEditingId = EditorGUILayout.Popup(m_Curves.currentEditingCurve.intValue, s_Curves, EditorStyles.toolbarPopup, GUILayout.MaxWidth(150f));
- bool y = false, r = false, g = false, b = false;
-
- if (curveEditingId == 0)
- {
- EditorGUILayout.Space();
-
- bool rightClickedY, rightClickedR, rightClickedG, rightClickedB;
-
- y = SpecialToggle(m_Curves.curveY.boolValue, "Y", out rightClickedY);
- r = SpecialToggle(m_Curves.curveR.boolValue, "R", out rightClickedR);
- g = SpecialToggle(m_Curves.curveG.boolValue, "G", out rightClickedG);
- b = SpecialToggle(m_Curves.curveB.boolValue, "B", out rightClickedB);
-
- if (!y && !r && !g && !b)
- {
- r = g = b = false;
- y = true;
- }
-
- if (rightClickedY || rightClickedR || rightClickedG || rightClickedB)
- {
- y = rightClickedY;
- r = rightClickedR;
- g = rightClickedG;
- b = rightClickedB;
- }
-
- if (y) SetCurveVisible(m_Curves.master);
- if (r) SetCurveVisible(m_Curves.red);
- if (g) SetCurveVisible(m_Curves.green);
- if (b) SetCurveVisible(m_Curves.blue);
-
- m_Curves.curveY.boolValue = y;
- m_Curves.curveR.boolValue = r;
- m_Curves.curveG.boolValue = g;
- m_Curves.curveB.boolValue = b;
- }
- else
- {
- switch (curveEditingId)
- {
- case 1: SetCurveVisible(m_Curves.hueVShue);
- break;
- case 2: SetCurveVisible(m_Curves.hueVSsat);
- break;
- case 3: SetCurveVisible(m_Curves.satVSsat);
- break;
- case 4: SetCurveVisible(m_Curves.lumVSsat);
- break;
- }
- }
-
- GUILayout.FlexibleSpace();
-
- if (GUILayout.Button("Reset", EditorStyles.toolbarButton))
- {
- switch (curveEditingId)
- {
- case 0:
- if (y) m_Curves.master.animationCurveValue = AnimationCurve.Linear(0f, 0f, 1f, 1f);
- if (r) m_Curves.red.animationCurveValue = AnimationCurve.Linear(0f, 0f, 1f, 1f);
- if (g) m_Curves.green.animationCurveValue = AnimationCurve.Linear(0f, 0f, 1f, 1f);
- if (b) m_Curves.blue.animationCurveValue = AnimationCurve.Linear(0f, 0f, 1f, 1f);
- break;
- case 1: m_Curves.hueVShue.animationCurveValue = new AnimationCurve();
- break;
- case 2: m_Curves.hueVSsat.animationCurveValue = new AnimationCurve();
- break;
- case 3: m_Curves.satVSsat.animationCurveValue = new AnimationCurve();
- break;
- case 4: m_Curves.lumVSsat.animationCurveValue = new AnimationCurve();
- break;
- }
- }
-
- m_Curves.currentEditingCurve.intValue = curveEditingId;
- }
-
- // Curve area
- var settings = m_CurveEditor.settings;
- var rect = GUILayoutUtility.GetAspectRect(2f);
- var innerRect = settings.padding.Remove(rect);
-
- if (Event.current.type == EventType.Repaint)
- {
- // Background
- EditorGUI.DrawRect(rect, new Color(0.15f, 0.15f, 0.15f, 1f));
-
- if (s_MaterialSpline == null)
- s_MaterialSpline = new Material(Shader.Find("Hidden/Post FX/UI/Curve Background")) { hideFlags = HideFlags.HideAndDontSave };
-
- if (curveEditingId == 1 || curveEditingId == 2)
- DrawBackgroundTexture(innerRect, 0);
- else if (curveEditingId == 3 || curveEditingId == 4)
- DrawBackgroundTexture(innerRect, 1);
-
- // Bounds
- Handles.color = Color.white;
- Handles.DrawSolidRectangleWithOutline(innerRect, Color.clear, new Color(0.8f, 0.8f, 0.8f, 0.5f));
-
- // Grid setup
- Handles.color = new Color(1f, 1f, 1f, 0.05f);
- int hLines = (int)Mathf.Sqrt(innerRect.width);
- int vLines = (int)(hLines / (innerRect.width / innerRect.height));
-
- // Vertical grid
- int gridOffset = Mathf.FloorToInt(innerRect.width / hLines);
- int gridPadding = ((int)(innerRect.width) % hLines) / 2;
-
- for (int i = 1; i < hLines; i++)
- {
- var offset = i * Vector2.right * gridOffset;
- offset.x += gridPadding;
- Handles.DrawLine(innerRect.position + offset, new Vector2(innerRect.x, innerRect.yMax - 1) + offset);
- }
-
- // Horizontal grid
- gridOffset = Mathf.FloorToInt(innerRect.height / vLines);
- gridPadding = ((int)(innerRect.height) % vLines) / 2;
-
- for (int i = 1; i < vLines; i++)
- {
- var offset = i * Vector2.up * gridOffset;
- offset.y += gridPadding;
- Handles.DrawLine(innerRect.position + offset, new Vector2(innerRect.xMax - 1, innerRect.y) + offset);
- }
- }
-
- // Curve editor
- if (m_CurveEditor.OnGUI(rect))
- {
- Repaint();
- GUI.changed = true;
- }
-
- if (Event.current.type == EventType.Repaint)
- {
- // Borders
- Handles.color = Color.black;
- Handles.DrawLine(new Vector2(rect.x, rect.y - 18f), new Vector2(rect.xMax, rect.y - 18f));
- Handles.DrawLine(new Vector2(rect.x, rect.y - 19f), new Vector2(rect.x, rect.yMax));
- Handles.DrawLine(new Vector2(rect.x, rect.yMax), new Vector2(rect.xMax, rect.yMax));
- Handles.DrawLine(new Vector2(rect.xMax, rect.yMax), new Vector2(rect.xMax, rect.y - 18f));
-
- // Selection info
- var selection = m_CurveEditor.GetSelection();
-
- if (selection.curve != null && selection.keyframeIndex > -1)
- {
- var key = selection.keyframe.Value;
- var infoRect = innerRect;
- infoRect.x += 5f;
- infoRect.width = 100f;
- infoRect.height = 30f;
- GUI.Label(infoRect, string.Format("{0}\n{1}", key.time.ToString("F3"), key.value.ToString("F3")), FxStyles.preLabel);
- }
- }
- }
-
- /*
- EditorGUILayout.HelpBox(
- @"Curve editor cheat sheet:
-- [Del] or [Backspace] to remove a key
-- [Ctrl] to break a tangent handle
-- [Shift] to align tangent handles
-- [Double click] to create a key on the curve(s) at mouse position
-- [Alt] + [Double click] to create a key on the curve(s) at a given time",
- MessageType.Info);
- */
-
- EditorGUILayout.Space();
- EditorGUI.indentLevel += 2;
- }
-
- void DrawBackgroundTexture(Rect rect, int pass)
- {
- float scale = EditorGUIUtility.pixelsPerPoint;
-
- var oldRt = RenderTexture.active;
- var rt = RenderTexture.GetTemporary(Mathf.CeilToInt(rect.width * scale), Mathf.CeilToInt(rect.height * scale), 0, RenderTextureFormat.ARGB32, RenderTextureReadWrite.Linear);
- s_MaterialSpline.SetFloat("_DisabledState", GUI.enabled ? 1f : 0.5f);
- s_MaterialSpline.SetFloat("_PixelScaling", EditorGUIUtility.pixelsPerPoint);
-
- Graphics.Blit(null, rt, s_MaterialSpline, pass);
- RenderTexture.active = oldRt;
-
- GUI.DrawTexture(rect, rt);
- RenderTexture.ReleaseTemporary(rt);
- }
- }
-}
diff --git a/JoystickVisualizer/Assets/PostProcessing/Editor/Models/ColorGradingModelEditor.cs.meta b/JoystickVisualizer/Assets/PostProcessing/Editor/Models/ColorGradingModelEditor.cs.meta
deleted file mode 100644
index 5449051..0000000
--- a/JoystickVisualizer/Assets/PostProcessing/Editor/Models/ColorGradingModelEditor.cs.meta
+++ /dev/null
@@ -1,12 +0,0 @@
-fileFormatVersion: 2
-guid: c3e3bce1d5c900d4fa7aa0f2b21814cf
-timeCreated: 1467190133
-licenseType: Store
-MonoImporter:
- serializedVersion: 2
- defaultReferences: []
- executionOrder: 0
- icon: {instanceID: 0}
- userData:
- assetBundleName:
- assetBundleVariant:
diff --git a/JoystickVisualizer/Assets/PostProcessing/Editor/Models/DefaultPostFxModelEditor.cs b/JoystickVisualizer/Assets/PostProcessing/Editor/Models/DefaultPostFxModelEditor.cs
deleted file mode 100644
index 06c1c22..0000000
--- a/JoystickVisualizer/Assets/PostProcessing/Editor/Models/DefaultPostFxModelEditor.cs
+++ /dev/null
@@ -1,22 +0,0 @@
-using System.Collections.Generic;
-
-namespace UnityEditor.PostProcessing
-{
- public class DefaultPostFxModelEditor : PostProcessingModelEditor
- {
- List m_Properties = new List();
-
- public override void OnEnable()
- {
- var iter = m_SettingsProperty.Copy().GetEnumerator();
- while (iter.MoveNext())
- m_Properties.Add(((SerializedProperty)iter.Current).Copy());
- }
-
- public override void OnInspectorGUI()
- {
- foreach (var property in m_Properties)
- EditorGUILayout.PropertyField(property);
- }
- }
-}
diff --git a/JoystickVisualizer/Assets/PostProcessing/Editor/Models/DefaultPostFxModelEditor.cs.meta b/JoystickVisualizer/Assets/PostProcessing/Editor/Models/DefaultPostFxModelEditor.cs.meta
deleted file mode 100644
index 44902c6..0000000
--- a/JoystickVisualizer/Assets/PostProcessing/Editor/Models/DefaultPostFxModelEditor.cs.meta
+++ /dev/null
@@ -1,12 +0,0 @@
-fileFormatVersion: 2
-guid: c15016a7fef58974f91a6a4d6b132d94
-timeCreated: 1467190133
-licenseType: Store
-MonoImporter:
- serializedVersion: 2
- defaultReferences: []
- executionOrder: 0
- icon: {instanceID: 0}
- userData:
- assetBundleName:
- assetBundleVariant:
diff --git a/JoystickVisualizer/Assets/PostProcessing/Editor/Models/DepthOfFieldModelEditor.cs b/JoystickVisualizer/Assets/PostProcessing/Editor/Models/DepthOfFieldModelEditor.cs
deleted file mode 100644
index 0f253fc..0000000
--- a/JoystickVisualizer/Assets/PostProcessing/Editor/Models/DepthOfFieldModelEditor.cs
+++ /dev/null
@@ -1,37 +0,0 @@
-using UnityEngine.PostProcessing;
-
-namespace UnityEditor.PostProcessing
-{
- using Settings = DepthOfFieldModel.Settings;
-
- [PostProcessingModelEditor(typeof(DepthOfFieldModel))]
- public class DepthOfFieldModelEditor : PostProcessingModelEditor
- {
- SerializedProperty m_FocusDistance;
- SerializedProperty m_Aperture;
- SerializedProperty m_FocalLength;
- SerializedProperty m_UseCameraFov;
- SerializedProperty m_KernelSize;
-
- public override void OnEnable()
- {
- m_FocusDistance = FindSetting((Settings x) => x.focusDistance);
- m_Aperture = FindSetting((Settings x) => x.aperture);
- m_FocalLength = FindSetting((Settings x) => x.focalLength);
- m_UseCameraFov = FindSetting((Settings x) => x.useCameraFov);
- m_KernelSize = FindSetting((Settings x) => x.kernelSize);
- }
-
- public override void OnInspectorGUI()
- {
- EditorGUILayout.PropertyField(m_FocusDistance);
- EditorGUILayout.PropertyField(m_Aperture, EditorGUIHelper.GetContent("Aperture (f-stop)"));
-
- EditorGUILayout.PropertyField(m_UseCameraFov, EditorGUIHelper.GetContent("Use Camera FOV"));
- if (!m_UseCameraFov.boolValue)
- EditorGUILayout.PropertyField(m_FocalLength, EditorGUIHelper.GetContent("Focal Length (mm)"));
-
- EditorGUILayout.PropertyField(m_KernelSize);
- }
- }
-}
diff --git a/JoystickVisualizer/Assets/PostProcessing/Editor/Models/DepthOfFieldModelEditor.cs.meta b/JoystickVisualizer/Assets/PostProcessing/Editor/Models/DepthOfFieldModelEditor.cs.meta
deleted file mode 100644
index 2fd54fa..0000000
--- a/JoystickVisualizer/Assets/PostProcessing/Editor/Models/DepthOfFieldModelEditor.cs.meta
+++ /dev/null
@@ -1,12 +0,0 @@
-fileFormatVersion: 2
-guid: dc2f388440e9f8b4f8fc7bb43c01cc7d
-timeCreated: 1467190133
-licenseType: Store
-MonoImporter:
- serializedVersion: 2
- defaultReferences: []
- executionOrder: 0
- icon: {instanceID: 0}
- userData:
- assetBundleName:
- assetBundleVariant:
diff --git a/JoystickVisualizer/Assets/PostProcessing/Editor/Models/DitheringModelEditor.cs b/JoystickVisualizer/Assets/PostProcessing/Editor/Models/DitheringModelEditor.cs
deleted file mode 100644
index af4751f..0000000
--- a/JoystickVisualizer/Assets/PostProcessing/Editor/Models/DitheringModelEditor.cs
+++ /dev/null
@@ -1,16 +0,0 @@
-using UnityEngine.PostProcessing;
-
-namespace UnityEditor.PostProcessing
-{
- [PostProcessingModelEditor(typeof(DitheringModel))]
- public class DitheringModelEditor : PostProcessingModelEditor
- {
- public override void OnInspectorGUI()
- {
- if (profile.grain.enabled && target.enabled)
- EditorGUILayout.HelpBox("Grain is enabled, you probably don't need dithering !", MessageType.Warning);
- else
- EditorGUILayout.HelpBox("Nothing to configure !", MessageType.Info);
- }
- }
-}
diff --git a/JoystickVisualizer/Assets/PostProcessing/Editor/Models/DitheringModelEditor.cs.meta b/JoystickVisualizer/Assets/PostProcessing/Editor/Models/DitheringModelEditor.cs.meta
deleted file mode 100644
index f4beb49..0000000
--- a/JoystickVisualizer/Assets/PostProcessing/Editor/Models/DitheringModelEditor.cs.meta
+++ /dev/null
@@ -1,12 +0,0 @@
-fileFormatVersion: 2
-guid: 87377c86d84f49a4e912d37d28353e7f
-timeCreated: 1485179854
-licenseType: Store
-MonoImporter:
- serializedVersion: 2
- defaultReferences: []
- executionOrder: 0
- icon: {instanceID: 0}
- userData:
- assetBundleName:
- assetBundleVariant:
diff --git a/JoystickVisualizer/Assets/PostProcessing/Editor/Models/EyeAdaptationModelEditor.cs b/JoystickVisualizer/Assets/PostProcessing/Editor/Models/EyeAdaptationModelEditor.cs
deleted file mode 100644
index 94c49f2..0000000
--- a/JoystickVisualizer/Assets/PostProcessing/Editor/Models/EyeAdaptationModelEditor.cs
+++ /dev/null
@@ -1,86 +0,0 @@
-using UnityEngine;
-using UnityEngine.PostProcessing;
-
-namespace UnityEditor.PostProcessing
-{
- using Settings = EyeAdaptationModel.Settings;
-
- [PostProcessingModelEditor(typeof(EyeAdaptationModel))]
- public class EyeAdaptationModelEditor : PostProcessingModelEditor
- {
- SerializedProperty m_LowPercent;
- SerializedProperty m_HighPercent;
- SerializedProperty m_MinLuminance;
- SerializedProperty m_MaxLuminance;
- SerializedProperty m_KeyValue;
- SerializedProperty m_DynamicKeyValue;
- SerializedProperty m_AdaptationType;
- SerializedProperty m_SpeedUp;
- SerializedProperty m_SpeedDown;
- SerializedProperty m_LogMin;
- SerializedProperty m_LogMax;
-
- public override void OnEnable()
- {
- m_LowPercent = FindSetting((Settings x) => x.lowPercent);
- m_HighPercent = FindSetting((Settings x) => x.highPercent);
- m_MinLuminance = FindSetting((Settings x) => x.minLuminance);
- m_MaxLuminance = FindSetting((Settings x) => x.maxLuminance);
- m_KeyValue = FindSetting((Settings x) => x.keyValue);
- m_DynamicKeyValue = FindSetting((Settings x) => x.dynamicKeyValue);
- m_AdaptationType = FindSetting((Settings x) => x.adaptationType);
- m_SpeedUp = FindSetting((Settings x) => x.speedUp);
- m_SpeedDown = FindSetting((Settings x) => x.speedDown);
- m_LogMin = FindSetting((Settings x) => x.logMin);
- m_LogMax = FindSetting((Settings x) => x.logMax);
- }
-
- public override void OnInspectorGUI()
- {
- if (!GraphicsUtils.supportsDX11)
- EditorGUILayout.HelpBox("This effect requires support for compute shaders. Enabling it won't do anything on unsupported platforms.", MessageType.Warning);
-
- EditorGUILayout.LabelField("Luminosity range", EditorStyles.boldLabel);
- EditorGUI.indentLevel++;
- EditorGUILayout.PropertyField(m_LogMin, EditorGUIHelper.GetContent("Minimum (EV)"));
- EditorGUILayout.PropertyField(m_LogMax, EditorGUIHelper.GetContent("Maximum (EV)"));
- EditorGUI.indentLevel--;
- EditorGUILayout.Space();
-
- EditorGUILayout.LabelField("Auto exposure", EditorStyles.boldLabel);
- EditorGUI.indentLevel++;
- float low = m_LowPercent.floatValue;
- float high = m_HighPercent.floatValue;
-
- EditorGUILayout.MinMaxSlider(EditorGUIHelper.GetContent("Histogram filtering|These values are the lower and upper percentages of the histogram that will be used to find a stable average luminance. Values outside of this range will be discarded and won't contribute to the average luminance."), ref low, ref high, 1f, 99f);
-
- m_LowPercent.floatValue = low;
- m_HighPercent.floatValue = high;
-
- EditorGUILayout.PropertyField(m_MinLuminance, EditorGUIHelper.GetContent("Minimum (EV)"));
- EditorGUILayout.PropertyField(m_MaxLuminance, EditorGUIHelper.GetContent("Maximum (EV)"));
- EditorGUILayout.PropertyField(m_DynamicKeyValue);
-
- if (!m_DynamicKeyValue.boolValue)
- EditorGUILayout.PropertyField(m_KeyValue);
-
- EditorGUI.indentLevel--;
- EditorGUILayout.Space();
-
- EditorGUILayout.LabelField("Adaptation", EditorStyles.boldLabel);
- EditorGUI.indentLevel++;
-
- EditorGUILayout.PropertyField(m_AdaptationType, EditorGUIHelper.GetContent("Type"));
-
- if (m_AdaptationType.intValue == (int)EyeAdaptationModel.EyeAdaptationType.Progressive)
- {
- EditorGUI.indentLevel++;
- EditorGUILayout.PropertyField(m_SpeedUp);
- EditorGUILayout.PropertyField(m_SpeedDown);
- EditorGUI.indentLevel--;
- }
-
- EditorGUI.indentLevel--;
- }
- }
-}
diff --git a/JoystickVisualizer/Assets/PostProcessing/Editor/Models/EyeAdaptationModelEditor.cs.meta b/JoystickVisualizer/Assets/PostProcessing/Editor/Models/EyeAdaptationModelEditor.cs.meta
deleted file mode 100644
index 8b78c92..0000000
--- a/JoystickVisualizer/Assets/PostProcessing/Editor/Models/EyeAdaptationModelEditor.cs.meta
+++ /dev/null
@@ -1,12 +0,0 @@
-fileFormatVersion: 2
-guid: 489b5c785ba0f614d90c322fa0827216
-timeCreated: 1467190133
-licenseType: Store
-MonoImporter:
- serializedVersion: 2
- defaultReferences: []
- executionOrder: 0
- icon: {instanceID: 0}
- userData:
- assetBundleName:
- assetBundleVariant:
diff --git a/JoystickVisualizer/Assets/PostProcessing/Editor/Models/FogModelEditor.cs b/JoystickVisualizer/Assets/PostProcessing/Editor/Models/FogModelEditor.cs
deleted file mode 100644
index b5b17c4..0000000
--- a/JoystickVisualizer/Assets/PostProcessing/Editor/Models/FogModelEditor.cs
+++ /dev/null
@@ -1,24 +0,0 @@
-using UnityEngine.PostProcessing;
-
-namespace UnityEditor.PostProcessing
-{
- using Settings = FogModel.Settings;
-
- [PostProcessingModelEditor(typeof(FogModel))]
- public class FogModelEditor : PostProcessingModelEditor
- {
- SerializedProperty m_ExcludeSkybox;
-
- public override void OnEnable()
- {
- m_ExcludeSkybox = FindSetting((Settings x) => x.excludeSkybox);
- }
-
- public override void OnInspectorGUI()
- {
- EditorGUILayout.HelpBox("This effect adds fog compatibility to the deferred rendering path; enabling it with the forward rendering path won't have any effect. Actual fog settings should be set in the Lighting panel.", MessageType.Info);
- EditorGUILayout.PropertyField(m_ExcludeSkybox);
- EditorGUI.indentLevel--;
- }
- }
-}
diff --git a/JoystickVisualizer/Assets/PostProcessing/Editor/Models/FogModelEditor.cs.meta b/JoystickVisualizer/Assets/PostProcessing/Editor/Models/FogModelEditor.cs.meta
deleted file mode 100644
index cd8d2cd..0000000
--- a/JoystickVisualizer/Assets/PostProcessing/Editor/Models/FogModelEditor.cs.meta
+++ /dev/null
@@ -1,12 +0,0 @@
-fileFormatVersion: 2
-guid: 44a64b44ec891d24b96ed84d958c3d4f
-timeCreated: 1487335049
-licenseType: Store
-MonoImporter:
- serializedVersion: 2
- defaultReferences: []
- executionOrder: 0
- icon: {instanceID: 0}
- userData:
- assetBundleName:
- assetBundleVariant:
diff --git a/JoystickVisualizer/Assets/PostProcessing/Editor/Models/GrainModelEditor.cs b/JoystickVisualizer/Assets/PostProcessing/Editor/Models/GrainModelEditor.cs
deleted file mode 100644
index 9c7d169..0000000
--- a/JoystickVisualizer/Assets/PostProcessing/Editor/Models/GrainModelEditor.cs
+++ /dev/null
@@ -1,31 +0,0 @@
-using UnityEngine.PostProcessing;
-
-namespace UnityEditor.PostProcessing
-{
- using Settings = GrainModel.Settings;
-
- [PostProcessingModelEditor(typeof(GrainModel))]
- public class GrainModelEditor : PostProcessingModelEditor
- {
- SerializedProperty m_Colored;
- SerializedProperty m_Intensity;
- SerializedProperty m_Size;
- SerializedProperty m_LuminanceContribution;
-
- public override void OnEnable()
- {
- m_Colored = FindSetting((Settings x) => x.colored);
- m_Intensity = FindSetting((Settings x) => x.intensity);
- m_Size = FindSetting((Settings x) => x.size);
- m_LuminanceContribution = FindSetting((Settings x) => x.luminanceContribution);
- }
-
- public override void OnInspectorGUI()
- {
- EditorGUILayout.PropertyField(m_Intensity);
- EditorGUILayout.PropertyField(m_LuminanceContribution);
- EditorGUILayout.PropertyField(m_Size);
- EditorGUILayout.PropertyField(m_Colored);
- }
- }
-}
diff --git a/JoystickVisualizer/Assets/PostProcessing/Editor/Models/GrainModelEditor.cs.meta b/JoystickVisualizer/Assets/PostProcessing/Editor/Models/GrainModelEditor.cs.meta
deleted file mode 100644
index 0fe7d1b..0000000
--- a/JoystickVisualizer/Assets/PostProcessing/Editor/Models/GrainModelEditor.cs.meta
+++ /dev/null
@@ -1,12 +0,0 @@
-fileFormatVersion: 2
-guid: 8330694e2c90c284f81153ac83b3cb4a
-timeCreated: 1467190133
-licenseType: Store
-MonoImporter:
- serializedVersion: 2
- defaultReferences: []
- executionOrder: 0
- icon: {instanceID: 0}
- userData:
- assetBundleName:
- assetBundleVariant:
diff --git a/JoystickVisualizer/Assets/PostProcessing/Editor/Models/MotionBlurModelEditor.cs b/JoystickVisualizer/Assets/PostProcessing/Editor/Models/MotionBlurModelEditor.cs
deleted file mode 100644
index dac86e7..0000000
--- a/JoystickVisualizer/Assets/PostProcessing/Editor/Models/MotionBlurModelEditor.cs
+++ /dev/null
@@ -1,197 +0,0 @@
-using UnityEngine;
-using UnityEngine.PostProcessing;
-
-namespace UnityEditor.PostProcessing
-{
- using Settings = MotionBlurModel.Settings;
-
- [PostProcessingModelEditor(typeof(MotionBlurModel))]
- public class MotionBlurModelEditor : PostProcessingModelEditor
- {
- SerializedProperty m_ShutterAngle;
- SerializedProperty m_SampleCount;
- SerializedProperty m_FrameBlending;
-
- GraphDrawer m_GraphDrawer;
-
- class GraphDrawer
- {
- const float k_Height = 32f;
-
- Texture m_BlendingIcon;
-
- GUIStyle m_LowerCenterStyle;
- GUIStyle m_MiddleCenterStyle;
-
- Color m_ColorDark;
- Color m_ColorGray;
-
- Vector3[] m_RectVertices = new Vector3[4];
-
- public GraphDrawer()
- {
- m_BlendingIcon = EditorResources.Load("UI/MotionBlendingIcon.png");
-
- m_LowerCenterStyle = new GUIStyle(EditorStyles.miniLabel) { alignment = TextAnchor.LowerCenter };
- m_MiddleCenterStyle = new GUIStyle(EditorStyles.miniLabel) { alignment = TextAnchor.MiddleCenter };
-
- if (EditorGUIUtility.isProSkin)
- {
- m_ColorDark = new Color(0.18f, 0.18f, 0.18f);
- m_ColorGray = new Color(0.43f, 0.43f, 0.43f);
- }
- else
- {
- m_ColorDark = new Color(0.64f, 0.64f, 0.64f);
- m_ColorGray = new Color(0.92f, 0.92f, 0.92f);
- }
- }
-
- public void DrawShutterGraph(float angle)
- {
- var center = GUILayoutUtility.GetRect(128, k_Height).center;
-
- // Parameters used to make transitions smooth.
- var zeroWhenOff = Mathf.Min(1f, angle * 0.1f);
- var zeroWhenFull = Mathf.Min(1f, (360f - angle) * 0.02f);
-
- // Shutter angle graph
- var discCenter = center - new Vector2(k_Height * 2.4f, 0f);
- // - exposure duration indicator
- DrawDisc(discCenter, k_Height * Mathf.Lerp(0.5f, 0.38f, zeroWhenFull), m_ColorGray);
- // - shutter disc
- DrawDisc(discCenter, k_Height * 0.16f * zeroWhenFull, m_ColorDark);
- // - shutter blade
- DrawArc(discCenter, k_Height * 0.5f, 360f - angle, m_ColorDark);
- // - shutter axis
- DrawDisc(discCenter, zeroWhenOff, m_ColorGray);
-
- // Shutter label (off/full)
- var labelSize = new Vector2(k_Height, k_Height);
- var labelOrigin = discCenter - labelSize * 0.5f;
- var labelRect = new Rect(labelOrigin, labelSize);
-
- if (Mathf.Approximately(angle, 0f))
- GUI.Label(labelRect, "Off", m_MiddleCenterStyle);
- else if (Mathf.Approximately(angle, 360f))
- GUI.Label(labelRect, "Full", m_MiddleCenterStyle);
-
- // Exposure time bar graph
- var outerBarSize = new Vector2(4.75f, 0.5f) * k_Height;
- var innerBarSize = outerBarSize;
- innerBarSize.x *= angle / 360f;
-
- var barCenter = center + new Vector2(k_Height * 0.9f, 0f);
- var barOrigin = barCenter - outerBarSize * 0.5f;
-
- DrawRect(barOrigin, outerBarSize, m_ColorDark);
- DrawRect(barOrigin, innerBarSize, m_ColorGray);
-
- var barText = "Exposure time = " + (angle / 3.6f).ToString("0") + "% of ΔT";
- GUI.Label(new Rect(barOrigin, outerBarSize), barText, m_MiddleCenterStyle);
- }
-
- public void DrawBlendingGraph(float strength)
- {
- var center = GUILayoutUtility.GetRect(128, k_Height).center;
-
- var iconSize = new Vector2(k_Height, k_Height);
- var iconStride = new Vector2(k_Height * 0.9f, 0f);
- var iconOrigin = center - iconSize * 0.5f - iconStride * 2f;
-
- for (var i = 0; i < 5; i++)
- {
- var weight = BlendingWeight(strength, i / 60f);
- var rect = new Rect(iconOrigin + iconStride * i, iconSize);
-
- var color = m_ColorGray;
- color.a = weight;
-
- GUI.color = color;
- GUI.Label(rect, m_BlendingIcon);
-
- GUI.color = Color.white;
- GUI.Label(rect, (weight * 100).ToString("0") + "%", m_LowerCenterStyle);
- }
- // EditorGUIUtility.isProSkin
- }
-
- // Weight function for multi frame blending
- float BlendingWeight(float strength, float time)
- {
- if (strength > 0f || Mathf.Approximately(time, 0f))
- return Mathf.Exp(-time * Mathf.Lerp(80f, 10f, strength));
-
- return 0;
- }
-
- // Draw a solid disc in the graph rect.
- void DrawDisc(Vector2 center, float radius, Color fill)
- {
- Handles.color = fill;
- Handles.DrawSolidDisc(center, Vector3.forward, radius);
- }
-
- // Draw an arc in the graph rect.
- void DrawArc(Vector2 center, float radius, float angle, Color fill)
- {
- var start = new Vector2(
- -Mathf.Cos(Mathf.Deg2Rad * angle / 2f),
- Mathf.Sin(Mathf.Deg2Rad * angle / 2f)
- );
-
- Handles.color = fill;
- Handles.DrawSolidArc(center, Vector3.forward, start, angle, radius);
- }
-
- // Draw a rectangle in the graph rect.
- void DrawRect(Vector2 origin, Vector2 size, Color color)
- {
- var p0 = origin;
- var p1 = origin + size;
-
- m_RectVertices[0] = p0;
- m_RectVertices[1] = new Vector2(p1.x, p0.y);
- m_RectVertices[2] = p1;
- m_RectVertices[3] = new Vector2(p0.x, p1.y);
-
- Handles.color = Color.white;
- Handles.DrawSolidRectangleWithOutline(m_RectVertices, color, Color.clear);
- }
- }
-
- public override void OnEnable()
- {
- m_ShutterAngle = FindSetting((Settings x) => x.shutterAngle);
- m_SampleCount = FindSetting((Settings x) => x.sampleCount);
- m_FrameBlending = FindSetting((Settings x) => x.frameBlending);
- }
-
- public override void OnInspectorGUI()
- {
- if (m_GraphDrawer == null)
- m_GraphDrawer = new GraphDrawer();
-
- EditorGUILayout.LabelField("Shutter Speed Simulation", EditorStyles.boldLabel);
- EditorGUI.indentLevel++;
- m_GraphDrawer.DrawShutterGraph(m_ShutterAngle.floatValue);
- EditorGUILayout.PropertyField(m_ShutterAngle);
- EditorGUILayout.PropertyField(m_SampleCount);
- EditorGUI.indentLevel--;
- EditorGUILayout.Space();
-
- EditorGUILayout.LabelField("Multiple Frame Blending", EditorStyles.boldLabel);
- EditorGUI.indentLevel++;
-
- float fbValue = m_FrameBlending.floatValue;
- m_GraphDrawer.DrawBlendingGraph(fbValue);
- EditorGUILayout.PropertyField(m_FrameBlending);
-
- if (fbValue > 0f)
- EditorGUILayout.HelpBox("Multi-Frame Blending lowers precision of the final picture for optimization purposes.", MessageType.Info);
-
-
- EditorGUI.indentLevel--;
- }
- }
-}
diff --git a/JoystickVisualizer/Assets/PostProcessing/Editor/Models/MotionBlurModelEditor.cs.meta b/JoystickVisualizer/Assets/PostProcessing/Editor/Models/MotionBlurModelEditor.cs.meta
deleted file mode 100644
index e1d3fb3..0000000
--- a/JoystickVisualizer/Assets/PostProcessing/Editor/Models/MotionBlurModelEditor.cs.meta
+++ /dev/null
@@ -1,12 +0,0 @@
-fileFormatVersion: 2
-guid: 870806eda355b5144879155e2ba37eb6
-timeCreated: 1468325681
-licenseType: Store
-MonoImporter:
- serializedVersion: 2
- defaultReferences: []
- executionOrder: 0
- icon: {instanceID: 0}
- userData:
- assetBundleName:
- assetBundleVariant:
diff --git a/JoystickVisualizer/Assets/PostProcessing/Editor/Models/ScreenSpaceReflectionModelEditor.cs b/JoystickVisualizer/Assets/PostProcessing/Editor/Models/ScreenSpaceReflectionModelEditor.cs
deleted file mode 100644
index 8904c7e..0000000
--- a/JoystickVisualizer/Assets/PostProcessing/Editor/Models/ScreenSpaceReflectionModelEditor.cs
+++ /dev/null
@@ -1,100 +0,0 @@
-using UnityEngine;
-using UnityEngine.PostProcessing;
-
-namespace UnityEditor.PostProcessing
-{
- using Settings = ScreenSpaceReflectionModel.Settings;
-
- [PostProcessingModelEditor(typeof(ScreenSpaceReflectionModel))]
- public class ScreenSpaceReflectionModelEditor : PostProcessingModelEditor
- {
- struct IntensitySettings
- {
- public SerializedProperty reflectionMultiplier;
- public SerializedProperty fadeDistance;
- public SerializedProperty fresnelFade;
- public SerializedProperty fresnelFadePower;
- }
-
- struct ReflectionSettings
- {
- public SerializedProperty blendType;
- public SerializedProperty reflectionQuality;
- public SerializedProperty maxDistance;
- public SerializedProperty iterationCount;
- public SerializedProperty stepSize;
- public SerializedProperty widthModifier;
- public SerializedProperty reflectionBlur;
- public SerializedProperty reflectBackfaces;
- }
-
- struct ScreenEdgeMask
- {
- public SerializedProperty intensity;
- }
-
- IntensitySettings m_Intensity;
- ReflectionSettings m_Reflection;
- ScreenEdgeMask m_ScreenEdgeMask;
-
- public override void OnEnable()
- {
- m_Intensity = new IntensitySettings
- {
- reflectionMultiplier = FindSetting((Settings x) => x.intensity.reflectionMultiplier),
- fadeDistance = FindSetting((Settings x) => x.intensity.fadeDistance),
- fresnelFade = FindSetting((Settings x) => x.intensity.fresnelFade),
- fresnelFadePower = FindSetting((Settings x) => x.intensity.fresnelFadePower)
- };
-
- m_Reflection = new ReflectionSettings
- {
- blendType = FindSetting((Settings x) => x.reflection.blendType),
- reflectionQuality = FindSetting((Settings x) => x.reflection.reflectionQuality),
- maxDistance = FindSetting((Settings x) => x.reflection.maxDistance),
- iterationCount = FindSetting((Settings x) => x.reflection.iterationCount),
- stepSize = FindSetting((Settings x) => x.reflection.stepSize),
- widthModifier = FindSetting((Settings x) => x.reflection.widthModifier),
- reflectionBlur = FindSetting((Settings x) => x.reflection.reflectionBlur),
- reflectBackfaces = FindSetting((Settings x) => x.reflection.reflectBackfaces)
- };
-
- m_ScreenEdgeMask = new ScreenEdgeMask
- {
- intensity = FindSetting((Settings x) => x.screenEdgeMask.intensity)
- };
- }
-
- public override void OnInspectorGUI()
- {
- EditorGUILayout.HelpBox("This effect only works with the deferred rendering path.", MessageType.Info);
-
- EditorGUILayout.LabelField("Reflection", EditorStyles.boldLabel);
- EditorGUI.indentLevel++;
- EditorGUILayout.PropertyField(m_Reflection.blendType);
- EditorGUILayout.PropertyField(m_Reflection.reflectionQuality);
- EditorGUILayout.PropertyField(m_Reflection.maxDistance);
- EditorGUILayout.PropertyField(m_Reflection.iterationCount);
- EditorGUILayout.PropertyField(m_Reflection.stepSize);
- EditorGUILayout.PropertyField(m_Reflection.widthModifier);
- EditorGUILayout.PropertyField(m_Reflection.reflectionBlur);
- EditorGUILayout.PropertyField(m_Reflection.reflectBackfaces);
- EditorGUI.indentLevel--;
-
- EditorGUILayout.Space();
- EditorGUILayout.LabelField("Intensity", EditorStyles.boldLabel);
- EditorGUI.indentLevel++;
- EditorGUILayout.PropertyField(m_Intensity.reflectionMultiplier);
- EditorGUILayout.PropertyField(m_Intensity.fadeDistance);
- EditorGUILayout.PropertyField(m_Intensity.fresnelFade);
- EditorGUILayout.PropertyField(m_Intensity.fresnelFadePower);
- EditorGUI.indentLevel--;
-
- EditorGUILayout.Space();
- EditorGUILayout.LabelField("Screen Edge Mask", EditorStyles.boldLabel);
- EditorGUI.indentLevel++;
- EditorGUILayout.PropertyField(m_ScreenEdgeMask.intensity);
- EditorGUI.indentLevel--;
- }
- }
-}
diff --git a/JoystickVisualizer/Assets/PostProcessing/Editor/Models/ScreenSpaceReflectionModelEditor.cs.meta b/JoystickVisualizer/Assets/PostProcessing/Editor/Models/ScreenSpaceReflectionModelEditor.cs.meta
deleted file mode 100644
index a291c26..0000000
--- a/JoystickVisualizer/Assets/PostProcessing/Editor/Models/ScreenSpaceReflectionModelEditor.cs.meta
+++ /dev/null
@@ -1,12 +0,0 @@
-fileFormatVersion: 2
-guid: 57bbe1f20eec7bb4d9bc90fc65ef381b
-timeCreated: 1467190133
-licenseType: Store
-MonoImporter:
- serializedVersion: 2
- defaultReferences: []
- executionOrder: 0
- icon: {instanceID: 0}
- userData:
- assetBundleName:
- assetBundleVariant:
diff --git a/JoystickVisualizer/Assets/PostProcessing/Editor/Models/UserLutModelEditor.cs b/JoystickVisualizer/Assets/PostProcessing/Editor/Models/UserLutModelEditor.cs
deleted file mode 100644
index 39c96ba..0000000
--- a/JoystickVisualizer/Assets/PostProcessing/Editor/Models/UserLutModelEditor.cs
+++ /dev/null
@@ -1,87 +0,0 @@
-using UnityEngine;
-using UnityEngine.PostProcessing;
-
-namespace UnityEditor.PostProcessing
-{
- using Settings = UserLutModel.Settings;
-
- [PostProcessingModelEditor(typeof(UserLutModel))]
- public class UserLutModelEditor : PostProcessingModelEditor
- {
- SerializedProperty m_Texture;
- SerializedProperty m_Contribution;
-
- public override void OnEnable()
- {
- m_Texture = FindSetting((Settings x) => x.lut);
- m_Contribution = FindSetting((Settings x) => x.contribution);
- }
-
- public override void OnInspectorGUI()
- {
- var lut = (target as UserLutModel).settings.lut;
-
- // Checks import settings on the lut, offers to fix them if invalid
- if (lut != null)
- {
- var importer = (TextureImporter)AssetImporter.GetAtPath(AssetDatabase.GetAssetPath(lut));
-
- if (importer != null) // Fails when using an internal texture
- {
-#if UNITY_5_5_OR_NEWER
- bool valid = importer.anisoLevel == 0
- && importer.mipmapEnabled == false
- && importer.sRGBTexture == false
- && (importer.textureCompression == TextureImporterCompression.Uncompressed);
-#else
- bool valid = importer.anisoLevel == 0
- && importer.mipmapEnabled == false
- && importer.linearTexture == true
- && (importer.textureFormat == TextureImporterFormat.RGB24 || importer.textureFormat == TextureImporterFormat.AutomaticTruecolor);
-#endif
-
- if (!valid)
- {
- EditorGUILayout.HelpBox("Invalid LUT import settings.", MessageType.Warning);
-
- GUILayout.Space(-32);
- using (new EditorGUILayout.HorizontalScope())
- {
- GUILayout.FlexibleSpace();
- if (GUILayout.Button("Fix", GUILayout.Width(60)))
- {
- SetLUTImportSettings(importer);
- AssetDatabase.Refresh();
- }
- GUILayout.Space(8);
- }
- GUILayout.Space(11);
- }
- }
- else
- {
- m_Texture.objectReferenceValue = null;
- }
- }
-
- EditorGUILayout.PropertyField(m_Texture);
- EditorGUILayout.PropertyField(m_Contribution);
- }
-
- void SetLUTImportSettings(TextureImporter importer)
- {
-#if UNITY_5_5_OR_NEWER
- importer.textureType = TextureImporterType.Default;
- importer.sRGBTexture = false;
- importer.textureCompression = TextureImporterCompression.Uncompressed;
-#else
- importer.textureType = TextureImporterType.Advanced;
- importer.linearTexture = true;
- importer.textureFormat = TextureImporterFormat.RGB24;
-#endif
- importer.anisoLevel = 0;
- importer.mipmapEnabled = false;
- importer.SaveAndReimport();
- }
- }
-}
diff --git a/JoystickVisualizer/Assets/PostProcessing/Editor/Models/UserLutModelEditor.cs.meta b/JoystickVisualizer/Assets/PostProcessing/Editor/Models/UserLutModelEditor.cs.meta
deleted file mode 100644
index d6355a1..0000000
--- a/JoystickVisualizer/Assets/PostProcessing/Editor/Models/UserLutModelEditor.cs.meta
+++ /dev/null
@@ -1,12 +0,0 @@
-fileFormatVersion: 2
-guid: b235eb1c486b38c4fa06470234bbfd32
-timeCreated: 1466769818
-licenseType: Store
-MonoImporter:
- serializedVersion: 2
- defaultReferences: []
- executionOrder: 0
- icon: {instanceID: 0}
- userData:
- assetBundleName:
- assetBundleVariant:
diff --git a/JoystickVisualizer/Assets/PostProcessing/Editor/Models/VignetteModelEditor.cs b/JoystickVisualizer/Assets/PostProcessing/Editor/Models/VignetteModelEditor.cs
deleted file mode 100644
index a9e231f..0000000
--- a/JoystickVisualizer/Assets/PostProcessing/Editor/Models/VignetteModelEditor.cs
+++ /dev/null
@@ -1,118 +0,0 @@
-using UnityEngine;
-using UnityEngine.PostProcessing;
-
-namespace UnityEditor.PostProcessing
-{
- using VignetteMode = VignetteModel.Mode;
- using Settings = VignetteModel.Settings;
-
- [PostProcessingModelEditor(typeof(VignetteModel))]
- public class VignetteModelEditor : PostProcessingModelEditor
- {
- SerializedProperty m_Mode;
- SerializedProperty m_Color;
- SerializedProperty m_Center;
- SerializedProperty m_Intensity;
- SerializedProperty m_Smoothness;
- SerializedProperty m_Roundness;
- SerializedProperty m_Mask;
- SerializedProperty m_Opacity;
- SerializedProperty m_Rounded;
-
- public override void OnEnable()
- {
- m_Mode = FindSetting((Settings x) => x.mode);
- m_Color = FindSetting((Settings x) => x.color);
- m_Center = FindSetting((Settings x) => x.center);
- m_Intensity = FindSetting((Settings x) => x.intensity);
- m_Smoothness = FindSetting((Settings x) => x.smoothness);
- m_Roundness = FindSetting((Settings x) => x.roundness);
- m_Mask = FindSetting((Settings x) => x.mask);
- m_Opacity = FindSetting((Settings x) => x.opacity);
- m_Rounded = FindSetting((Settings x) => x.rounded);
- }
-
- public override void OnInspectorGUI()
- {
- EditorGUILayout.PropertyField(m_Mode);
- EditorGUILayout.PropertyField(m_Color);
-
- if (m_Mode.intValue < (int)VignetteMode.Masked)
- {
- EditorGUILayout.PropertyField(m_Center);
- EditorGUILayout.PropertyField(m_Intensity);
- EditorGUILayout.PropertyField(m_Smoothness);
- EditorGUILayout.PropertyField(m_Roundness);
- EditorGUILayout.PropertyField(m_Rounded);
- }
- else
- {
- var mask = (target as VignetteModel).settings.mask;
-
- // Checks import settings on the mask, offers to fix them if invalid
- if (mask != null)
- {
- var importer = AssetImporter.GetAtPath(AssetDatabase.GetAssetPath(mask)) as TextureImporter;
-
- if (importer != null) // Fails when using an internal texture
- {
-#if UNITY_5_5_OR_NEWER
- bool valid = importer.anisoLevel == 0
- && importer.mipmapEnabled == false
- //&& importer.alphaUsage == TextureImporterAlphaUsage.FromGrayScale
- && importer.alphaSource == TextureImporterAlphaSource.FromGrayScale
- && importer.textureCompression == TextureImporterCompression.Uncompressed
- && importer.wrapMode == TextureWrapMode.Clamp;
-#else
- bool valid = importer.anisoLevel == 0
- && importer.mipmapEnabled == false
- && importer.grayscaleToAlpha == true
- && importer.textureFormat == TextureImporterFormat.Alpha8
- && importer.wrapMode == TextureWrapMode.Clamp;
-#endif
-
- if (!valid)
- {
- EditorGUILayout.HelpBox("Invalid mask import settings.", MessageType.Warning);
-
- GUILayout.Space(-32);
- using (new EditorGUILayout.HorizontalScope())
- {
- GUILayout.FlexibleSpace();
- if (GUILayout.Button("Fix", GUILayout.Width(60)))
- {
- SetMaskImportSettings(importer);
- AssetDatabase.Refresh();
- }
- GUILayout.Space(8);
- }
- GUILayout.Space(11);
- }
- }
- }
-
- EditorGUILayout.PropertyField(m_Mask);
- EditorGUILayout.PropertyField(m_Opacity);
- }
- }
-
- void SetMaskImportSettings(TextureImporter importer)
- {
-#if UNITY_5_5_OR_NEWER
- importer.textureType = TextureImporterType.SingleChannel;
- //importer.alphaUsage = TextureImporterAlphaUsage.FromGrayScale;
- importer.alphaSource = TextureImporterAlphaSource.FromGrayScale;
- importer.textureCompression = TextureImporterCompression.Uncompressed;
-#else
- importer.textureType = TextureImporterType.Advanced;
- importer.grayscaleToAlpha = true;
- importer.textureFormat = TextureImporterFormat.Alpha8;
-#endif
-
- importer.anisoLevel = 0;
- importer.mipmapEnabled = false;
- importer.wrapMode = TextureWrapMode.Clamp;
- importer.SaveAndReimport();
- }
- }
-}
diff --git a/JoystickVisualizer/Assets/PostProcessing/Editor/Models/VignetteModelEditor.cs.meta b/JoystickVisualizer/Assets/PostProcessing/Editor/Models/VignetteModelEditor.cs.meta
deleted file mode 100644
index 40c13ca..0000000
--- a/JoystickVisualizer/Assets/PostProcessing/Editor/Models/VignetteModelEditor.cs.meta
+++ /dev/null
@@ -1,12 +0,0 @@
-fileFormatVersion: 2
-guid: 745ad42620dabf04b94761acc86189ba
-timeCreated: 1467190133
-licenseType: Store
-MonoImporter:
- serializedVersion: 2
- defaultReferences: []
- executionOrder: 0
- icon: {instanceID: 0}
- userData:
- assetBundleName:
- assetBundleVariant:
diff --git a/JoystickVisualizer/Assets/PostProcessing/Editor/Monitors.meta b/JoystickVisualizer/Assets/PostProcessing/Editor/Monitors.meta
deleted file mode 100644
index a142631..0000000
--- a/JoystickVisualizer/Assets/PostProcessing/Editor/Monitors.meta
+++ /dev/null
@@ -1,9 +0,0 @@
-fileFormatVersion: 2
-guid: e31078d57ac582944ad5e1e76a84f36a
-folderAsset: yes
-timeCreated: 1467188891
-licenseType: Store
-DefaultImporter:
- userData:
- assetBundleName:
- assetBundleVariant:
diff --git a/JoystickVisualizer/Assets/PostProcessing/Editor/Monitors/HistogramMonitor.cs b/JoystickVisualizer/Assets/PostProcessing/Editor/Monitors/HistogramMonitor.cs
deleted file mode 100644
index 3748a68..0000000
--- a/JoystickVisualizer/Assets/PostProcessing/Editor/Monitors/HistogramMonitor.cs
+++ /dev/null
@@ -1,338 +0,0 @@
-using UnityEditorInternal;
-using UnityEngine;
-using UnityEngine.PostProcessing;
-
-namespace UnityEditor.PostProcessing
-{
- using HistogramMode = PostProcessingProfile.MonitorSettings.HistogramMode;
-
- public class HistogramMonitor : PostProcessingMonitor
- {
- static GUIContent s_MonitorTitle = new GUIContent("Histogram");
-
- ComputeShader m_ComputeShader;
- ComputeBuffer m_Buffer;
- Material m_Material;
- RenderTexture m_HistogramTexture;
- Rect m_MonitorAreaRect;
-
- public HistogramMonitor()
- {
- m_ComputeShader = EditorResources.Load("Monitors/HistogramCompute.compute");
- }
-
- public override void Dispose()
- {
- GraphicsUtils.Destroy(m_Material);
- GraphicsUtils.Destroy(m_HistogramTexture);
-
- if (m_Buffer != null)
- m_Buffer.Release();
-
- m_Material = null;
- m_HistogramTexture = null;
- m_Buffer = null;
- }
-
- public override bool IsSupported()
- {
- return m_ComputeShader != null && GraphicsUtils.supportsDX11;
- }
-
- public override GUIContent GetMonitorTitle()
- {
- return s_MonitorTitle;
- }
-
- public override void OnMonitorSettings()
- {
- EditorGUI.BeginChangeCheck();
-
- bool refreshOnPlay = m_MonitorSettings.refreshOnPlay;
- var mode = m_MonitorSettings.histogramMode;
-
- refreshOnPlay = GUILayout.Toggle(refreshOnPlay, new GUIContent(FxStyles.playIcon, "Keep refreshing the histogram in play mode; this may impact performances."), FxStyles.preButton);
- mode = (HistogramMode)EditorGUILayout.EnumPopup(mode, FxStyles.preDropdown, GUILayout.MaxWidth(100f));
-
- if (EditorGUI.EndChangeCheck())
- {
- Undo.RecordObject(m_BaseEditor.serializedObject.targetObject, "Histogram Settings Changed");
- m_MonitorSettings.refreshOnPlay = refreshOnPlay;
- m_MonitorSettings.histogramMode = mode;
- InternalEditorUtility.RepaintAllViews();
- }
- }
-
- public override void OnMonitorGUI(Rect r)
- {
- if (Event.current.type == EventType.Repaint)
- {
- // If m_MonitorAreaRect isn't set the preview was just opened so refresh the render to get the histogram data
- if (Mathf.Approximately(m_MonitorAreaRect.width, 0) && Mathf.Approximately(m_MonitorAreaRect.height, 0))
- InternalEditorUtility.RepaintAllViews();
-
- // Sizing
- float width = m_HistogramTexture != null
- ? Mathf.Min(m_HistogramTexture.width, r.width - 65f)
- : r.width;
- float height = m_HistogramTexture != null
- ? Mathf.Min(m_HistogramTexture.height, r.height - 45f)
- : r.height;
-
- m_MonitorAreaRect = new Rect(
- Mathf.Floor(r.x + r.width / 2f - width / 2f),
- Mathf.Floor(r.y + r.height / 2f - height / 2f - 5f),
- width, height
- );
-
- if (m_HistogramTexture != null)
- {
- Graphics.DrawTexture(m_MonitorAreaRect, m_HistogramTexture);
-
- var color = Color.white;
- const float kTickSize = 5f;
-
- // Rect, lines & ticks points
- if (m_MonitorSettings.histogramMode == HistogramMode.RGBSplit)
- {
- // A B C D E
- // N F
- // M G
- // L K J I H
-
- var A = new Vector3(m_MonitorAreaRect.x - 1f, m_MonitorAreaRect.y - 1f);
- var E = new Vector3(A.x + m_MonitorAreaRect.width + 2f, m_MonitorAreaRect.y - 1f);
- var H = new Vector3(E.x, E.y + m_MonitorAreaRect.height + 2f);
- var L = new Vector3(A.x, H.y);
-
- var N = new Vector3(A.x, A.y + (L.y - A.y) / 3f);
- var M = new Vector3(A.x, A.y + (L.y - A.y) * 2f / 3f);
- var F = new Vector3(E.x, E.y + (H.y - E.y) / 3f);
- var G = new Vector3(E.x, E.y + (H.y - E.y) * 2f / 3f);
-
- var C = new Vector3(A.x + (E.x - A.x) / 2f, A.y);
- var J = new Vector3(L.x + (H.x - L.x) / 2f, L.y);
-
- var B = new Vector3(A.x + (C.x - A.x) / 2f, A.y);
- var D = new Vector3(C.x + (E.x - C.x) / 2f, C.y);
- var I = new Vector3(J.x + (H.x - J.x) / 2f, J.y);
- var K = new Vector3(L.x + (J.x - L.x) / 2f, L.y);
-
- // Borders
- Handles.color = color;
- Handles.DrawLine(A, E);
- Handles.DrawLine(E, H);
- Handles.DrawLine(H, L);
- Handles.DrawLine(L, new Vector3(A.x, A.y - 1f));
-
- // Vertical ticks
- Handles.DrawLine(A, new Vector3(A.x - kTickSize, A.y));
- Handles.DrawLine(N, new Vector3(N.x - kTickSize, N.y));
- Handles.DrawLine(M, new Vector3(M.x - kTickSize, M.y));
- Handles.DrawLine(L, new Vector3(L.x - kTickSize, L.y));
-
- Handles.DrawLine(E, new Vector3(E.x + kTickSize, E.y));
- Handles.DrawLine(F, new Vector3(F.x + kTickSize, F.y));
- Handles.DrawLine(G, new Vector3(G.x + kTickSize, G.y));
- Handles.DrawLine(H, new Vector3(H.x + kTickSize, H.y));
-
- // Horizontal ticks
- Handles.DrawLine(A, new Vector3(A.x, A.y - kTickSize));
- Handles.DrawLine(B, new Vector3(B.x, B.y - kTickSize));
- Handles.DrawLine(C, new Vector3(C.x, C.y - kTickSize));
- Handles.DrawLine(D, new Vector3(D.x, D.y - kTickSize));
- Handles.DrawLine(E, new Vector3(E.x, E.y - kTickSize));
-
- Handles.DrawLine(L, new Vector3(L.x, L.y + kTickSize));
- Handles.DrawLine(K, new Vector3(K.x, K.y + kTickSize));
- Handles.DrawLine(J, new Vector3(J.x, J.y + kTickSize));
- Handles.DrawLine(I, new Vector3(I.x, I.y + kTickSize));
- Handles.DrawLine(H, new Vector3(H.x, H.y + kTickSize));
-
- // Separators
- Handles.DrawLine(N, F);
- Handles.DrawLine(M, G);
-
- // Labels
- GUI.color = color;
- GUI.Label(new Rect(L.x - 15f, L.y + kTickSize - 4f, 30f, 30f), "0.0", FxStyles.tickStyleCenter);
- GUI.Label(new Rect(J.x - 15f, J.y + kTickSize - 4f, 30f, 30f), "0.5", FxStyles.tickStyleCenter);
- GUI.Label(new Rect(H.x - 15f, H.y + kTickSize - 4f, 30f, 30f), "1.0", FxStyles.tickStyleCenter);
- }
- else
- {
- // A B C D E
- // P F
- // O G
- // N H
- // M L K J I
-
- var A = new Vector3(m_MonitorAreaRect.x, m_MonitorAreaRect.y);
- var E = new Vector3(A.x + m_MonitorAreaRect.width + 1f, m_MonitorAreaRect.y);
- var I = new Vector3(E.x, E.y + m_MonitorAreaRect.height + 1f);
- var M = new Vector3(A.x, I.y);
-
- var C = new Vector3(A.x + (E.x - A.x) / 2f, A.y);
- var G = new Vector3(E.x, E.y + (I.y - E.y) / 2f);
- var K = new Vector3(M.x + (I.x - M.x) / 2f, M.y);
- var O = new Vector3(A.x, A.y + (M.y - A.y) / 2f);
-
- var P = new Vector3(A.x, A.y + (O.y - A.y) / 2f);
- var F = new Vector3(E.x, E.y + (G.y - E.y) / 2f);
- var N = new Vector3(A.x, O.y + (M.y - O.y) / 2f);
- var H = new Vector3(E.x, G.y + (I.y - G.y) / 2f);
-
- var B = new Vector3(A.x + (C.x - A.x) / 2f, A.y);
- var L = new Vector3(M.x + (K.x - M.x) / 2f, M.y);
- var D = new Vector3(C.x + (E.x - C.x) / 2f, A.y);
- var J = new Vector3(K.x + (I.x - K.x) / 2f, M.y);
-
- // Borders
- Handles.color = color;
- Handles.DrawLine(A, E);
- Handles.DrawLine(E, I);
- Handles.DrawLine(I, M);
- Handles.DrawLine(M, new Vector3(A.x, A.y - 1f));
-
- // Vertical ticks
- Handles.DrawLine(A, new Vector3(A.x - kTickSize, A.y));
- Handles.DrawLine(P, new Vector3(P.x - kTickSize, P.y));
- Handles.DrawLine(O, new Vector3(O.x - kTickSize, O.y));
- Handles.DrawLine(N, new Vector3(N.x - kTickSize, N.y));
- Handles.DrawLine(M, new Vector3(M.x - kTickSize, M.y));
-
- Handles.DrawLine(E, new Vector3(E.x + kTickSize, E.y));
- Handles.DrawLine(F, new Vector3(F.x + kTickSize, F.y));
- Handles.DrawLine(G, new Vector3(G.x + kTickSize, G.y));
- Handles.DrawLine(H, new Vector3(H.x + kTickSize, H.y));
- Handles.DrawLine(I, new Vector3(I.x + kTickSize, I.y));
-
- // Horizontal ticks
- Handles.DrawLine(A, new Vector3(A.x, A.y - kTickSize));
- Handles.DrawLine(B, new Vector3(B.x, B.y - kTickSize));
- Handles.DrawLine(C, new Vector3(C.x, C.y - kTickSize));
- Handles.DrawLine(D, new Vector3(D.x, D.y - kTickSize));
- Handles.DrawLine(E, new Vector3(E.x, E.y - kTickSize));
-
- Handles.DrawLine(M, new Vector3(M.x, M.y + kTickSize));
- Handles.DrawLine(L, new Vector3(L.x, L.y + kTickSize));
- Handles.DrawLine(K, new Vector3(K.x, K.y + kTickSize));
- Handles.DrawLine(J, new Vector3(J.x, J.y + kTickSize));
- Handles.DrawLine(I, new Vector3(I.x, I.y + kTickSize));
-
- // Labels
- GUI.color = color;
- GUI.Label(new Rect(A.x - kTickSize - 34f, A.y - 15f, 30f, 30f), "1.0", FxStyles.tickStyleRight);
- GUI.Label(new Rect(O.x - kTickSize - 34f, O.y - 15f, 30f, 30f), "0.5", FxStyles.tickStyleRight);
- GUI.Label(new Rect(M.x - kTickSize - 34f, M.y - 15f, 30f, 30f), "0.0", FxStyles.tickStyleRight);
-
- GUI.Label(new Rect(E.x + kTickSize + 4f, E.y - 15f, 30f, 30f), "1.0", FxStyles.tickStyleLeft);
- GUI.Label(new Rect(G.x + kTickSize + 4f, G.y - 15f, 30f, 30f), "0.5", FxStyles.tickStyleLeft);
- GUI.Label(new Rect(I.x + kTickSize + 4f, I.y - 15f, 30f, 30f), "0.0", FxStyles.tickStyleLeft);
-
- GUI.Label(new Rect(M.x - 15f, M.y + kTickSize - 4f, 30f, 30f), "0.0", FxStyles.tickStyleCenter);
- GUI.Label(new Rect(K.x - 15f, K.y + kTickSize - 4f, 30f, 30f), "0.5", FxStyles.tickStyleCenter);
- GUI.Label(new Rect(I.x - 15f, I.y + kTickSize - 4f, 30f, 30f), "1.0", FxStyles.tickStyleCenter);
- }
- }
- }
- }
-
- public override void OnFrameData(RenderTexture source)
- {
- if (Application.isPlaying && !m_MonitorSettings.refreshOnPlay)
- return;
-
- if (Mathf.Approximately(m_MonitorAreaRect.width, 0) || Mathf.Approximately(m_MonitorAreaRect.height, 0))
- return;
-
- float ratio = (float)source.width / (float)source.height;
- int h = 512;
- int w = Mathf.FloorToInt(h * ratio);
-
- var rt = RenderTexture.GetTemporary(w, h, 0, source.format);
- Graphics.Blit(source, rt);
- ComputeHistogram(rt);
- m_BaseEditor.Repaint();
- RenderTexture.ReleaseTemporary(rt);
- }
-
- void CreateBuffer(int width, int height)
- {
- m_Buffer = new ComputeBuffer(width * height, sizeof(uint) << 2);
- }
-
- void ComputeHistogram(RenderTexture source)
- {
- if (m_Buffer == null)
- {
- CreateBuffer(256, 1);
- }
- else if (m_Buffer.count != 256)
- {
- m_Buffer.Release();
- CreateBuffer(256, 1);
- }
-
- if (m_Material == null)
- {
- m_Material = new Material(Shader.Find("Hidden/Post FX/Monitors/Histogram Render")) { hideFlags = HideFlags.DontSave };
- }
-
- var channels = Vector4.zero;
- switch (m_MonitorSettings.histogramMode)
- {
- case HistogramMode.Red: channels.x = 1f; break;
- case HistogramMode.Green: channels.y = 1f; break;
- case HistogramMode.Blue: channels.z = 1f; break;
- case HistogramMode.Luminance: channels.w = 1f; break;
- default: channels = new Vector4(1f, 1f, 1f, 0f); break;
- }
-
- var cs = m_ComputeShader;
-
- int kernel = cs.FindKernel("KHistogramClear");
- cs.SetBuffer(kernel, "_Histogram", m_Buffer);
- cs.Dispatch(kernel, 1, 1, 1);
-
- kernel = cs.FindKernel("KHistogramGather");
- cs.SetBuffer(kernel, "_Histogram", m_Buffer);
- cs.SetTexture(kernel, "_Source", source);
- cs.SetInt("_IsLinear", GraphicsUtils.isLinearColorSpace ? 1 : 0);
- cs.SetVector("_Res", new Vector4(source.width, source.height, 0f, 0f));
- cs.SetVector("_Channels", channels);
- cs.Dispatch(kernel, Mathf.CeilToInt(source.width / 16f), Mathf.CeilToInt(source.height / 16f), 1);
-
- kernel = cs.FindKernel("KHistogramScale");
- cs.SetBuffer(kernel, "_Histogram", m_Buffer);
- cs.Dispatch(kernel, 1, 1, 1);
-
- if (m_HistogramTexture == null || m_HistogramTexture.width != source.width || m_HistogramTexture.height != source.height)
- {
- GraphicsUtils.Destroy(m_HistogramTexture);
- m_HistogramTexture = new RenderTexture(source.width, source.height, 0, RenderTextureFormat.ARGB32, RenderTextureReadWrite.Linear)
- {
- hideFlags = HideFlags.DontSave,
- wrapMode = TextureWrapMode.Clamp,
- filterMode = FilterMode.Bilinear
- };
- }
-
- m_Material.SetBuffer("_Histogram", m_Buffer);
- m_Material.SetVector("_Size", new Vector2(m_HistogramTexture.width, m_HistogramTexture.height));
- m_Material.SetColor("_ColorR", new Color(1f, 0f, 0f, 1f));
- m_Material.SetColor("_ColorG", new Color(0f, 1f, 0f, 1f));
- m_Material.SetColor("_ColorB", new Color(0f, 0f, 1f, 1f));
- m_Material.SetColor("_ColorL", new Color(1f, 1f, 1f, 1f));
- m_Material.SetInt("_Channel", (int)m_MonitorSettings.histogramMode);
-
- int pass = 0;
- if (m_MonitorSettings.histogramMode == HistogramMode.RGBMerged)
- pass = 1;
- else if (m_MonitorSettings.histogramMode == HistogramMode.RGBSplit)
- pass = 2;
-
- Graphics.Blit(null, m_HistogramTexture, m_Material, pass);
- }
- }
-}
diff --git a/JoystickVisualizer/Assets/PostProcessing/Editor/Monitors/HistogramMonitor.cs.meta b/JoystickVisualizer/Assets/PostProcessing/Editor/Monitors/HistogramMonitor.cs.meta
deleted file mode 100644
index a88031e..0000000
--- a/JoystickVisualizer/Assets/PostProcessing/Editor/Monitors/HistogramMonitor.cs.meta
+++ /dev/null
@@ -1,12 +0,0 @@
-fileFormatVersion: 2
-guid: 4581c45ac4aa2264187087659a4cc252
-timeCreated: 1460031632
-licenseType: Store
-MonoImporter:
- serializedVersion: 2
- defaultReferences: []
- executionOrder: 0
- icon: {instanceID: 0}
- userData:
- assetBundleName:
- assetBundleVariant:
diff --git a/JoystickVisualizer/Assets/PostProcessing/Editor/Monitors/ParadeMonitor.cs b/JoystickVisualizer/Assets/PostProcessing/Editor/Monitors/ParadeMonitor.cs
deleted file mode 100644
index 03494b1..0000000
--- a/JoystickVisualizer/Assets/PostProcessing/Editor/Monitors/ParadeMonitor.cs
+++ /dev/null
@@ -1,257 +0,0 @@
-using UnityEditorInternal;
-using UnityEngine;
-using UnityEngine.PostProcessing;
-
-namespace UnityEditor.PostProcessing
-{
- public class ParadeMonitor : PostProcessingMonitor
- {
- static GUIContent s_MonitorTitle = new GUIContent("Parade");
-
- ComputeShader m_ComputeShader;
- ComputeBuffer m_Buffer;
- Material m_Material;
- RenderTexture m_WaveformTexture;
- Rect m_MonitorAreaRect;
-
- public ParadeMonitor()
- {
- m_ComputeShader = EditorResources.Load("Monitors/WaveformCompute.compute");
- }
-
- public override void Dispose()
- {
- GraphicsUtils.Destroy(m_Material);
- GraphicsUtils.Destroy(m_WaveformTexture);
-
- if (m_Buffer != null)
- m_Buffer.Release();
-
- m_Material = null;
- m_WaveformTexture = null;
- m_Buffer = null;
- }
-
- public override bool IsSupported()
- {
- return m_ComputeShader != null && GraphicsUtils.supportsDX11;
- }
-
- public override GUIContent GetMonitorTitle()
- {
- return s_MonitorTitle;
- }
-
- public override void OnMonitorSettings()
- {
- EditorGUI.BeginChangeCheck();
-
- bool refreshOnPlay = m_MonitorSettings.refreshOnPlay;
- float exposure = m_MonitorSettings.paradeExposure;
-
- refreshOnPlay = GUILayout.Toggle(refreshOnPlay, new GUIContent(FxStyles.playIcon, "Keep refreshing the parade in play mode; this may impact performances."), FxStyles.preButton);
- exposure = GUILayout.HorizontalSlider(exposure, 0.05f, 0.3f, FxStyles.preSlider, FxStyles.preSliderThumb, GUILayout.Width(40f));
-
- if (EditorGUI.EndChangeCheck())
- {
- Undo.RecordObject(m_BaseEditor.serializedObject.targetObject, "Parade Settings Changed");
- m_MonitorSettings.refreshOnPlay = refreshOnPlay;
- m_MonitorSettings.paradeExposure = exposure;
- InternalEditorUtility.RepaintAllViews();
- }
- }
-
- public override void OnMonitorGUI(Rect r)
- {
- if (Event.current.type == EventType.Repaint)
- {
- // If m_MonitorAreaRect isn't set the preview was just opened so refresh the render to get the waveform data
- if (Mathf.Approximately(m_MonitorAreaRect.width, 0) && Mathf.Approximately(m_MonitorAreaRect.height, 0))
- InternalEditorUtility.RepaintAllViews();
-
- // Sizing
- float width = m_WaveformTexture != null
- ? Mathf.Min(m_WaveformTexture.width, r.width - 65f)
- : r.width;
- float height = m_WaveformTexture != null
- ? Mathf.Min(m_WaveformTexture.height, r.height - 45f)
- : r.height;
-
- m_MonitorAreaRect = new Rect(
- Mathf.Floor(r.x + r.width / 2f - width / 2f),
- Mathf.Floor(r.y + r.height / 2f - height / 2f - 5f),
- width, height
- );
-
- if (m_WaveformTexture != null)
- {
- m_Material.SetFloat("_Exposure", m_MonitorSettings.paradeExposure);
-
- var oldActive = RenderTexture.active;
- Graphics.Blit(null, m_WaveformTexture, m_Material, 0);
- RenderTexture.active = oldActive;
-
- Graphics.DrawTexture(m_MonitorAreaRect, m_WaveformTexture);
-
- var color = Color.white;
- const float kTickSize = 5f;
-
- // Rect, lines & ticks points
- // A O B P C Q D
- // N E
- // M F
- // L G
- // K T J S I R H
-
- var A = new Vector3(m_MonitorAreaRect.x, m_MonitorAreaRect.y);
- var D = new Vector3(A.x + m_MonitorAreaRect.width + 1f, m_MonitorAreaRect.y);
- var H = new Vector3(D.x, D.y + m_MonitorAreaRect.height + 1f);
- var K = new Vector3(A.x, H.y);
-
- var F = new Vector3(D.x, D.y + (H.y - D.y) / 2f);
- var M = new Vector3(A.x, A.y + (K.y - A.y) / 2f);
-
- var B = new Vector3(A.x + (D.x - A.x) / 3f, A.y);
- var C = new Vector3(A.x + (D.x - A.x) * 2f / 3f, A.y);
- var I = new Vector3(K.x + (H.x - K.x) * 2f / 3f, K.y);
- var J = new Vector3(K.x + (H.x - K.x) / 3f, K.y);
-
- var N = new Vector3(A.x, A.y + (M.y - A.y) / 2f);
- var L = new Vector3(A.x, M.y + (K.y - M.y) / 2f);
- var E = new Vector3(D.x, D.y + (F.y - D.y) / 2f);
- var G = new Vector3(D.x, F.y + (H.y - F.y) / 2f);
-
- var O = new Vector3(A.x + (B.x - A.x) / 2f, A.y);
- var P = new Vector3(B.x + (C.x - B.x) / 2f, B.y);
- var Q = new Vector3(C.x + (D.x - C.x) / 2f, C.y);
-
- var R = new Vector3(I.x + (H.x - I.x) / 2f, I.y);
- var S = new Vector3(J.x + (I.x - J.x) / 2f, J.y);
- var T = new Vector3(K.x + (J.x - K.x) / 2f, K.y);
-
- // Borders
- Handles.color = color;
- Handles.DrawLine(A, D);
- Handles.DrawLine(D, H);
- Handles.DrawLine(H, K);
- Handles.DrawLine(K, new Vector3(A.x, A.y - 1f));
-
- Handles.DrawLine(B, J);
- Handles.DrawLine(C, I);
-
- // Vertical ticks
- Handles.DrawLine(A, new Vector3(A.x - kTickSize, A.y));
- Handles.DrawLine(N, new Vector3(N.x - kTickSize, N.y));
- Handles.DrawLine(M, new Vector3(M.x - kTickSize, M.y));
- Handles.DrawLine(L, new Vector3(L.x - kTickSize, L.y));
- Handles.DrawLine(K, new Vector3(K.x - kTickSize, K.y));
-
- Handles.DrawLine(D, new Vector3(D.x + kTickSize, D.y));
- Handles.DrawLine(E, new Vector3(E.x + kTickSize, E.y));
- Handles.DrawLine(F, new Vector3(F.x + kTickSize, F.y));
- Handles.DrawLine(G, new Vector3(G.x + kTickSize, G.y));
- Handles.DrawLine(H, new Vector3(H.x + kTickSize, H.y));
-
- // Horizontal ticks
- Handles.DrawLine(A, new Vector3(A.x, A.y - kTickSize));
- Handles.DrawLine(B, new Vector3(B.x, B.y - kTickSize));
- Handles.DrawLine(C, new Vector3(C.x, C.y - kTickSize));
- Handles.DrawLine(D, new Vector3(D.x, D.y - kTickSize));
- Handles.DrawLine(O, new Vector3(O.x, O.y - kTickSize));
- Handles.DrawLine(P, new Vector3(P.x, P.y - kTickSize));
- Handles.DrawLine(Q, new Vector3(Q.x, Q.y - kTickSize));
-
- Handles.DrawLine(H, new Vector3(H.x, H.y + kTickSize));
- Handles.DrawLine(I, new Vector3(I.x, I.y + kTickSize));
- Handles.DrawLine(J, new Vector3(J.x, J.y + kTickSize));
- Handles.DrawLine(K, new Vector3(K.x, K.y + kTickSize));
- Handles.DrawLine(R, new Vector3(R.x, R.y + kTickSize));
- Handles.DrawLine(S, new Vector3(S.x, S.y + kTickSize));
- Handles.DrawLine(T, new Vector3(T.x, T.y + kTickSize));
-
- // Labels
- GUI.color = color;
- GUI.Label(new Rect(A.x - kTickSize - 34f, A.y - 15f, 30f, 30f), "1.0", FxStyles.tickStyleRight);
- GUI.Label(new Rect(M.x - kTickSize - 34f, M.y - 15f, 30f, 30f), "0.5", FxStyles.tickStyleRight);
- GUI.Label(new Rect(K.x - kTickSize - 34f, K.y - 15f, 30f, 30f), "0.0", FxStyles.tickStyleRight);
-
- GUI.Label(new Rect(D.x + kTickSize + 4f, D.y - 15f, 30f, 30f), "1.0", FxStyles.tickStyleLeft);
- GUI.Label(new Rect(F.x + kTickSize + 4f, F.y - 15f, 30f, 30f), "0.5", FxStyles.tickStyleLeft);
- GUI.Label(new Rect(H.x + kTickSize + 4f, H.y - 15f, 30f, 30f), "0.0", FxStyles.tickStyleLeft);
- }
- }
- }
-
- public override void OnFrameData(RenderTexture source)
- {
- if (Application.isPlaying && !m_MonitorSettings.refreshOnPlay)
- return;
-
- if (Mathf.Approximately(m_MonitorAreaRect.width, 0) || Mathf.Approximately(m_MonitorAreaRect.height, 0))
- return;
-
- float ratio = ((float)source.width / (float)source.height) / 3f;
- int h = 384;
- int w = Mathf.FloorToInt(h * ratio);
-
- var rt = RenderTexture.GetTemporary(w, h, 0, source.format);
- Graphics.Blit(source, rt);
- ComputeWaveform(rt);
- m_BaseEditor.Repaint();
- RenderTexture.ReleaseTemporary(rt);
- }
-
- void CreateBuffer(int width, int height)
- {
- m_Buffer = new ComputeBuffer(width * height, sizeof(uint) << 2);
- }
-
- void ComputeWaveform(RenderTexture source)
- {
- if (m_Buffer == null)
- {
- CreateBuffer(source.width, source.height);
- }
- else if (m_Buffer.count != (source.width * source.height))
- {
- m_Buffer.Release();
- CreateBuffer(source.width, source.height);
- }
-
- var channels = m_MonitorSettings.waveformY
- ? new Vector4(0f, 0f, 0f, 1f)
- : new Vector4(m_MonitorSettings.waveformR ? 1f : 0f, m_MonitorSettings.waveformG ? 1f : 0f, m_MonitorSettings.waveformB ? 1f : 0f, 0f);
-
- var cs = m_ComputeShader;
-
- int kernel = cs.FindKernel("KWaveformClear");
- cs.SetBuffer(kernel, "_Waveform", m_Buffer);
- cs.Dispatch(kernel, source.width, 1, 1);
-
- kernel = cs.FindKernel("KWaveform");
- cs.SetBuffer(kernel, "_Waveform", m_Buffer);
- cs.SetTexture(kernel, "_Source", source);
- cs.SetInt("_IsLinear", GraphicsUtils.isLinearColorSpace ? 1 : 0);
- cs.SetVector("_Channels", channels);
- cs.Dispatch(kernel, source.width, 1, 1);
-
- if (m_WaveformTexture == null || m_WaveformTexture.width != (source.width * 3) || m_WaveformTexture.height != source.height)
- {
- GraphicsUtils.Destroy(m_WaveformTexture);
- m_WaveformTexture = new RenderTexture(source.width * 3, source.height, 0, RenderTextureFormat.ARGB32, RenderTextureReadWrite.Linear)
- {
- hideFlags = HideFlags.DontSave,
- wrapMode = TextureWrapMode.Clamp,
- filterMode = FilterMode.Bilinear
- };
- }
-
- if (m_Material == null)
- m_Material = new Material(Shader.Find("Hidden/Post FX/Monitors/Parade Render")) { hideFlags = HideFlags.DontSave };
-
- m_Material.SetBuffer("_Waveform", m_Buffer);
- m_Material.SetVector("_Size", new Vector2(m_WaveformTexture.width, m_WaveformTexture.height));
- m_Material.SetVector("_Channels", channels);
- }
- }
-}
diff --git a/JoystickVisualizer/Assets/PostProcessing/Editor/Monitors/ParadeMonitor.cs.meta b/JoystickVisualizer/Assets/PostProcessing/Editor/Monitors/ParadeMonitor.cs.meta
deleted file mode 100644
index 41ba865..0000000
--- a/JoystickVisualizer/Assets/PostProcessing/Editor/Monitors/ParadeMonitor.cs.meta
+++ /dev/null
@@ -1,12 +0,0 @@
-fileFormatVersion: 2
-guid: b1f878f3742072e40a280683573bd0ee
-timeCreated: 1460031643
-licenseType: Store
-MonoImporter:
- serializedVersion: 2
- defaultReferences: []
- executionOrder: 0
- icon: {instanceID: 0}
- userData:
- assetBundleName:
- assetBundleVariant:
diff --git a/JoystickVisualizer/Assets/PostProcessing/Editor/Monitors/VectorscopeMonitor.cs b/JoystickVisualizer/Assets/PostProcessing/Editor/Monitors/VectorscopeMonitor.cs
deleted file mode 100644
index 8514549..0000000
--- a/JoystickVisualizer/Assets/PostProcessing/Editor/Monitors/VectorscopeMonitor.cs
+++ /dev/null
@@ -1,241 +0,0 @@
-using UnityEditorInternal;
-using UnityEngine;
-using UnityEngine.PostProcessing;
-
-namespace UnityEditor.PostProcessing
-{
- public class VectorscopeMonitor : PostProcessingMonitor
- {
- static GUIContent s_MonitorTitle = new GUIContent("Vectorscope");
-
- ComputeShader m_ComputeShader;
- ComputeBuffer m_Buffer;
- Material m_Material;
- RenderTexture m_VectorscopeTexture;
- Rect m_MonitorAreaRect;
-
- public VectorscopeMonitor()
- {
- m_ComputeShader = EditorResources.Load("Monitors/VectorscopeCompute.compute");
- }
-
- public override void Dispose()
- {
- GraphicsUtils.Destroy(m_Material);
- GraphicsUtils.Destroy(m_VectorscopeTexture);
-
- if (m_Buffer != null)
- m_Buffer.Release();
-
- m_Material = null;
- m_VectorscopeTexture = null;
- m_Buffer = null;
- }
-
- public override bool IsSupported()
- {
- return m_ComputeShader != null && GraphicsUtils.supportsDX11;
- }
-
- public override GUIContent GetMonitorTitle()
- {
- return s_MonitorTitle;
- }
-
- public override void OnMonitorSettings()
- {
- EditorGUI.BeginChangeCheck();
-
- bool refreshOnPlay = m_MonitorSettings.refreshOnPlay;
- float exposure = m_MonitorSettings.vectorscopeExposure;
- bool showBackground = m_MonitorSettings.vectorscopeShowBackground;
-
- refreshOnPlay = GUILayout.Toggle(refreshOnPlay, new GUIContent(FxStyles.playIcon, "Keep refreshing the vectorscope in play mode; this may impact performances."), FxStyles.preButton);
- exposure = GUILayout.HorizontalSlider(exposure, 0.05f, 0.3f, FxStyles.preSlider, FxStyles.preSliderThumb, GUILayout.Width(40f));
- showBackground = GUILayout.Toggle(showBackground, new GUIContent(FxStyles.checkerIcon, "Show an YUV background in the vectorscope."), FxStyles.preButton);
-
- if (EditorGUI.EndChangeCheck())
- {
- Undo.RecordObject(m_BaseEditor.serializedObject.targetObject, "Vectorscope Settings Changed");
- m_MonitorSettings.refreshOnPlay = refreshOnPlay;
- m_MonitorSettings.vectorscopeExposure = exposure;
- m_MonitorSettings.vectorscopeShowBackground = showBackground;
- InternalEditorUtility.RepaintAllViews();
- }
- }
-
- public override void OnMonitorGUI(Rect r)
- {
- if (Event.current.type == EventType.Repaint)
- {
- // If m_MonitorAreaRect isn't set the preview was just opened so refresh the render to get the vectoscope data
- if (Mathf.Approximately(m_MonitorAreaRect.width, 0) && Mathf.Approximately(m_MonitorAreaRect.height, 0))
- InternalEditorUtility.RepaintAllViews();
-
- // Sizing
- float size = 0f;
-
- if (r.width < r.height)
- {
- size = m_VectorscopeTexture != null
- ? Mathf.Min(m_VectorscopeTexture.width, r.width - 35f)
- : r.width;
- }
- else
- {
- size = m_VectorscopeTexture != null
- ? Mathf.Min(m_VectorscopeTexture.height, r.height - 25f)
- : r.height;
- }
-
- m_MonitorAreaRect = new Rect(
- Mathf.Floor(r.x + r.width / 2f - size / 2f),
- Mathf.Floor(r.y + r.height / 2f - size / 2f - 5f),
- size, size
- );
-
- if (m_VectorscopeTexture != null)
- {
- m_Material.SetFloat("_Exposure", m_MonitorSettings.vectorscopeExposure);
-
- var oldActive = RenderTexture.active;
- Graphics.Blit(null, m_VectorscopeTexture, m_Material, m_MonitorSettings.vectorscopeShowBackground ? 0 : 1);
- RenderTexture.active = oldActive;
-
- Graphics.DrawTexture(m_MonitorAreaRect, m_VectorscopeTexture);
-
- var color = Color.white;
- const float kTickSize = 10f;
- const int kTickCount = 24;
-
- float radius = m_MonitorAreaRect.width / 2f;
- float midX = m_MonitorAreaRect.x + radius;
- float midY = m_MonitorAreaRect.y + radius;
- var center = new Vector2(midX, midY);
-
- // Cross
- color.a *= 0.5f;
- Handles.color = color;
- Handles.DrawLine(new Vector2(midX, m_MonitorAreaRect.y), new Vector2(midX, m_MonitorAreaRect.y + m_MonitorAreaRect.height));
- Handles.DrawLine(new Vector2(m_MonitorAreaRect.x, midY), new Vector2(m_MonitorAreaRect.x + m_MonitorAreaRect.width, midY));
-
- if (m_MonitorAreaRect.width > 100f)
- {
- color.a = 1f;
-
- // Ticks
- Handles.color = color;
- for (int i = 0; i < kTickCount; i++)
- {
- float a = (float)i / (float)kTickCount;
- float theta = a * (Mathf.PI * 2f);
- float tx = Mathf.Cos(theta + (Mathf.PI / 2f));
- float ty = Mathf.Sin(theta - (Mathf.PI / 2f));
- var innerVec = center + new Vector2(tx, ty) * (radius - kTickSize);
- var outerVec = center + new Vector2(tx, ty) * radius;
- Handles.DrawAAPolyLine(3f, innerVec, outerVec);
- }
-
- // Labels (where saturation reaches 75%)
- color.a = 1f;
- var oldColor = GUI.color;
- GUI.color = color * 2f;
-
- var point = new Vector2(-0.254f, -0.750f) * radius + center;
- var rect = new Rect(point.x - 10f, point.y - 10f, 20f, 20f);
- GUI.Label(rect, "[R]", FxStyles.tickStyleCenter);
-
- point = new Vector2(-0.497f, 0.629f) * radius + center;
- rect = new Rect(point.x - 10f, point.y - 10f, 20f, 20f);
- GUI.Label(rect, "[G]", FxStyles.tickStyleCenter);
-
- point = new Vector2(0.750f, 0.122f) * radius + center;
- rect = new Rect(point.x - 10f, point.y - 10f, 20f, 20f);
- GUI.Label(rect, "[B]", FxStyles.tickStyleCenter);
-
- point = new Vector2(-0.750f, -0.122f) * radius + center;
- rect = new Rect(point.x - 10f, point.y - 10f, 20f, 20f);
- GUI.Label(rect, "[Y]", FxStyles.tickStyleCenter);
-
- point = new Vector2(0.254f, 0.750f) * radius + center;
- rect = new Rect(point.x - 10f, point.y - 10f, 20f, 20f);
- GUI.Label(rect, "[C]", FxStyles.tickStyleCenter);
-
- point = new Vector2(0.497f, -0.629f) * radius + center;
- rect = new Rect(point.x - 10f, point.y - 10f, 20f, 20f);
- GUI.Label(rect, "[M]", FxStyles.tickStyleCenter);
- GUI.color = oldColor;
- }
- }
- }
- }
-
- public override void OnFrameData(RenderTexture source)
- {
- if (Application.isPlaying && !m_MonitorSettings.refreshOnPlay)
- return;
-
- if (Mathf.Approximately(m_MonitorAreaRect.width, 0) || Mathf.Approximately(m_MonitorAreaRect.height, 0))
- return;
-
- float ratio = (float)source.width / (float)source.height;
- int h = 384;
- int w = Mathf.FloorToInt(h * ratio);
-
- var rt = RenderTexture.GetTemporary(w, h, 0, source.format);
- Graphics.Blit(source, rt);
- ComputeVectorscope(rt);
- m_BaseEditor.Repaint();
- RenderTexture.ReleaseTemporary(rt);
- }
-
- void CreateBuffer(int width, int height)
- {
- m_Buffer = new ComputeBuffer(width * height, sizeof(uint));
- }
-
- void ComputeVectorscope(RenderTexture source)
- {
- if (m_Buffer == null)
- {
- CreateBuffer(source.width, source.height);
- }
- else if (m_Buffer.count != (source.width * source.height))
- {
- m_Buffer.Release();
- CreateBuffer(source.width, source.height);
- }
-
- var cs = m_ComputeShader;
-
- int kernel = cs.FindKernel("KVectorscopeClear");
- cs.SetBuffer(kernel, "_Vectorscope", m_Buffer);
- cs.SetVector("_Res", new Vector4(source.width, source.height, 0f, 0f));
- cs.Dispatch(kernel, Mathf.CeilToInt(source.width / 32f), Mathf.CeilToInt(source.height / 32f), 1);
-
- kernel = cs.FindKernel("KVectorscope");
- cs.SetBuffer(kernel, "_Vectorscope", m_Buffer);
- cs.SetTexture(kernel, "_Source", source);
- cs.SetInt("_IsLinear", GraphicsUtils.isLinearColorSpace ? 1 : 0);
- cs.SetVector("_Res", new Vector4(source.width, source.height, 0f, 0f));
- cs.Dispatch(kernel, Mathf.CeilToInt(source.width / 32f), Mathf.CeilToInt(source.height / 32f), 1);
-
- if (m_VectorscopeTexture == null || m_VectorscopeTexture.width != source.width || m_VectorscopeTexture.height != source.height)
- {
- GraphicsUtils.Destroy(m_VectorscopeTexture);
- m_VectorscopeTexture = new RenderTexture(source.width, source.height, 0, RenderTextureFormat.ARGB32, RenderTextureReadWrite.Linear)
- {
- hideFlags = HideFlags.DontSave,
- wrapMode = TextureWrapMode.Clamp,
- filterMode = FilterMode.Bilinear
- };
- }
-
- if (m_Material == null)
- m_Material = new Material(Shader.Find("Hidden/Post FX/Monitors/Vectorscope Render")) { hideFlags = HideFlags.DontSave };
-
- m_Material.SetBuffer("_Vectorscope", m_Buffer);
- m_Material.SetVector("_Size", new Vector2(m_VectorscopeTexture.width, m_VectorscopeTexture.height));
- }
- }
-}
diff --git a/JoystickVisualizer/Assets/PostProcessing/Editor/Monitors/VectorscopeMonitor.cs.meta b/JoystickVisualizer/Assets/PostProcessing/Editor/Monitors/VectorscopeMonitor.cs.meta
deleted file mode 100644
index b700f61..0000000
--- a/JoystickVisualizer/Assets/PostProcessing/Editor/Monitors/VectorscopeMonitor.cs.meta
+++ /dev/null
@@ -1,12 +0,0 @@
-fileFormatVersion: 2
-guid: 805119df0d94800418006c621cc99cc2
-timeCreated: 1461748750
-licenseType: Store
-MonoImporter:
- serializedVersion: 2
- defaultReferences: []
- executionOrder: 0
- icon: {instanceID: 0}
- userData:
- assetBundleName:
- assetBundleVariant:
diff --git a/JoystickVisualizer/Assets/PostProcessing/Editor/Monitors/WaveformMonitor.cs b/JoystickVisualizer/Assets/PostProcessing/Editor/Monitors/WaveformMonitor.cs
deleted file mode 100644
index 98d3f8e..0000000
--- a/JoystickVisualizer/Assets/PostProcessing/Editor/Monitors/WaveformMonitor.cs
+++ /dev/null
@@ -1,280 +0,0 @@
-using UnityEditorInternal;
-using UnityEngine;
-using UnityEngine.PostProcessing;
-
-namespace UnityEditor.PostProcessing
-{
- public class WaveformMonitor : PostProcessingMonitor
- {
- static GUIContent s_MonitorTitle = new GUIContent("Waveform");
-
- ComputeShader m_ComputeShader;
- ComputeBuffer m_Buffer;
- Material m_Material;
- RenderTexture m_WaveformTexture;
- Rect m_MonitorAreaRect;
-
- public WaveformMonitor()
- {
- m_ComputeShader = EditorResources.Load("Monitors/WaveformCompute.compute");
- }
-
- public override void Dispose()
- {
- GraphicsUtils.Destroy(m_Material);
- GraphicsUtils.Destroy(m_WaveformTexture);
-
- if (m_Buffer != null)
- m_Buffer.Release();
-
- m_Material = null;
- m_WaveformTexture = null;
- m_Buffer = null;
- }
-
- public override bool IsSupported()
- {
- return m_ComputeShader != null && GraphicsUtils.supportsDX11;
- }
-
- public override GUIContent GetMonitorTitle()
- {
- return s_MonitorTitle;
- }
-
- public override void OnMonitorSettings()
- {
- EditorGUI.BeginChangeCheck();
-
- bool refreshOnPlay = m_MonitorSettings.refreshOnPlay;
- float exposure = m_MonitorSettings.waveformExposure;
- bool Y = m_MonitorSettings.waveformY;
- bool R = m_MonitorSettings.waveformR;
- bool G = m_MonitorSettings.waveformG;
- bool B = m_MonitorSettings.waveformB;
-
- refreshOnPlay = GUILayout.Toggle(refreshOnPlay, new GUIContent(FxStyles.playIcon, "Keep refreshing the waveform in play mode; this may impact performances."), FxStyles.preButton);
-
- exposure = GUILayout.HorizontalSlider(exposure, 0.05f, 0.3f, FxStyles.preSlider, FxStyles.preSliderThumb, GUILayout.Width(40f));
-
- Y = GUILayout.Toggle(Y, new GUIContent("Y", "Show the luminance waveform only."), FxStyles.preButton);
-
- if (Y)
- {
- R = false;
- G = false;
- B = false;
- }
-
- R = GUILayout.Toggle(R, new GUIContent("R", "Show the red waveform."), FxStyles.preButton);
- G = GUILayout.Toggle(G, new GUIContent("G", "Show the green waveform."), FxStyles.preButton);
- B = GUILayout.Toggle(B, new GUIContent("B", "Show the blue waveform."), FxStyles.preButton);
-
- if (R || G || B)
- Y = false;
-
- if (!Y && !R && !G && !B)
- {
- R = true;
- G = true;
- B = true;
- }
-
- if (EditorGUI.EndChangeCheck())
- {
- Undo.RecordObject(m_BaseEditor.serializedObject.targetObject, "Waveforme Settings Changed");
- m_MonitorSettings.refreshOnPlay = refreshOnPlay;
- m_MonitorSettings.waveformExposure = exposure;
- m_MonitorSettings.waveformY = Y;
- m_MonitorSettings.waveformR = R;
- m_MonitorSettings.waveformG = G;
- m_MonitorSettings.waveformB = B;
- InternalEditorUtility.RepaintAllViews();
- }
- }
-
- public override void OnMonitorGUI(Rect r)
- {
- if (Event.current.type == EventType.Repaint)
- {
- // If m_MonitorAreaRect isn't set the preview was just opened so refresh the render to get the waveform data
- if (Mathf.Approximately(m_MonitorAreaRect.width, 0) && Mathf.Approximately(m_MonitorAreaRect.height, 0))
- InternalEditorUtility.RepaintAllViews();
-
- // Sizing
- float width = m_WaveformTexture != null
- ? Mathf.Min(m_WaveformTexture.width, r.width - 65f)
- : r.width;
- float height = m_WaveformTexture != null
- ? Mathf.Min(m_WaveformTexture.height, r.height - 45f)
- : r.height;
-
- m_MonitorAreaRect = new Rect(
- Mathf.Floor(r.x + r.width / 2f - width / 2f),
- Mathf.Floor(r.y + r.height / 2f - height / 2f - 5f),
- width, height
- );
-
- if (m_WaveformTexture != null)
- {
- m_Material.SetFloat("_Exposure", m_MonitorSettings.waveformExposure);
-
- var oldActive = RenderTexture.active;
- Graphics.Blit(null, m_WaveformTexture, m_Material, 0);
- RenderTexture.active = oldActive;
-
- Graphics.DrawTexture(m_MonitorAreaRect, m_WaveformTexture);
-
- var color = Color.white;
- const float kTickSize = 5f;
-
- // Rect, lines & ticks points
- // A B C D E
- // P F
- // O G
- // N H
- // M L K J I
-
- var A = new Vector3(m_MonitorAreaRect.x, m_MonitorAreaRect.y);
- var E = new Vector3(A.x + m_MonitorAreaRect.width + 1f, m_MonitorAreaRect.y);
- var I = new Vector3(E.x, E.y + m_MonitorAreaRect.height + 1f);
- var M = new Vector3(A.x, I.y);
-
- var C = new Vector3(A.x + (E.x - A.x) / 2f, A.y);
- var G = new Vector3(E.x, E.y + (I.y - E.y) / 2f);
- var K = new Vector3(M.x + (I.x - M.x) / 2f, M.y);
- var O = new Vector3(A.x, A.y + (M.y - A.y) / 2f);
-
- var P = new Vector3(A.x, A.y + (O.y - A.y) / 2f);
- var F = new Vector3(E.x, E.y + (G.y - E.y) / 2f);
- var N = new Vector3(A.x, O.y + (M.y - O.y) / 2f);
- var H = new Vector3(E.x, G.y + (I.y - G.y) / 2f);
-
- var B = new Vector3(A.x + (C.x - A.x) / 2f, A.y);
- var L = new Vector3(M.x + (K.x - M.x) / 2f, M.y);
- var D = new Vector3(C.x + (E.x - C.x) / 2f, A.y);
- var J = new Vector3(K.x + (I.x - K.x) / 2f, M.y);
-
- // Borders
- Handles.color = color;
- Handles.DrawLine(A, E);
- Handles.DrawLine(E, I);
- Handles.DrawLine(I, M);
- Handles.DrawLine(M, new Vector3(A.x, A.y - 1f));
-
- // Vertical ticks
- Handles.DrawLine(A, new Vector3(A.x - kTickSize, A.y));
- Handles.DrawLine(P, new Vector3(P.x - kTickSize, P.y));
- Handles.DrawLine(O, new Vector3(O.x - kTickSize, O.y));
- Handles.DrawLine(N, new Vector3(N.x - kTickSize, N.y));
- Handles.DrawLine(M, new Vector3(M.x - kTickSize, M.y));
-
- Handles.DrawLine(E, new Vector3(E.x + kTickSize, E.y));
- Handles.DrawLine(F, new Vector3(F.x + kTickSize, F.y));
- Handles.DrawLine(G, new Vector3(G.x + kTickSize, G.y));
- Handles.DrawLine(H, new Vector3(H.x + kTickSize, H.y));
- Handles.DrawLine(I, new Vector3(I.x + kTickSize, I.y));
-
- // Horizontal ticks
- Handles.DrawLine(A, new Vector3(A.x, A.y - kTickSize));
- Handles.DrawLine(B, new Vector3(B.x, B.y - kTickSize));
- Handles.DrawLine(C, new Vector3(C.x, C.y - kTickSize));
- Handles.DrawLine(D, new Vector3(D.x, D.y - kTickSize));
- Handles.DrawLine(E, new Vector3(E.x, E.y - kTickSize));
-
- Handles.DrawLine(M, new Vector3(M.x, M.y + kTickSize));
- Handles.DrawLine(L, new Vector3(L.x, L.y + kTickSize));
- Handles.DrawLine(K, new Vector3(K.x, K.y + kTickSize));
- Handles.DrawLine(J, new Vector3(J.x, J.y + kTickSize));
- Handles.DrawLine(I, new Vector3(I.x, I.y + kTickSize));
-
- // Labels
- GUI.color = color;
- GUI.Label(new Rect(A.x - kTickSize - 34f, A.y - 15f, 30f, 30f), "1.0", FxStyles.tickStyleRight);
- GUI.Label(new Rect(O.x - kTickSize - 34f, O.y - 15f, 30f, 30f), "0.5", FxStyles.tickStyleRight);
- GUI.Label(new Rect(M.x - kTickSize - 34f, M.y - 15f, 30f, 30f), "0.0", FxStyles.tickStyleRight);
-
- GUI.Label(new Rect(E.x + kTickSize + 4f, E.y - 15f, 30f, 30f), "1.0", FxStyles.tickStyleLeft);
- GUI.Label(new Rect(G.x + kTickSize + 4f, G.y - 15f, 30f, 30f), "0.5", FxStyles.tickStyleLeft);
- GUI.Label(new Rect(I.x + kTickSize + 4f, I.y - 15f, 30f, 30f), "0.0", FxStyles.tickStyleLeft);
-
- GUI.Label(new Rect(M.x - 15f, M.y + kTickSize - 4f, 30f, 30f), "0.0", FxStyles.tickStyleCenter);
- GUI.Label(new Rect(K.x - 15f, K.y + kTickSize - 4f, 30f, 30f), "0.5", FxStyles.tickStyleCenter);
- GUI.Label(new Rect(I.x - 15f, I.y + kTickSize - 4f, 30f, 30f), "1.0", FxStyles.tickStyleCenter);
- }
- }
- }
-
- public override void OnFrameData(RenderTexture source)
- {
- if (Application.isPlaying && !m_MonitorSettings.refreshOnPlay)
- return;
-
- if (Mathf.Approximately(m_MonitorAreaRect.width, 0) || Mathf.Approximately(m_MonitorAreaRect.height, 0))
- return;
-
- float ratio = (float)source.width / (float)source.height;
- int h = 384;
- int w = Mathf.FloorToInt(h * ratio);
-
- var rt = RenderTexture.GetTemporary(w, h, 0, source.format);
- Graphics.Blit(source, rt);
- ComputeWaveform(rt);
- m_BaseEditor.Repaint();
- RenderTexture.ReleaseTemporary(rt);
- }
-
- void CreateBuffer(int width, int height)
- {
- m_Buffer = new ComputeBuffer(width * height, sizeof(uint) << 2);
- }
-
- void ComputeWaveform(RenderTexture source)
- {
- if (m_Buffer == null)
- {
- CreateBuffer(source.width, source.height);
- }
- else if (m_Buffer.count != (source.width * source.height))
- {
- m_Buffer.Release();
- CreateBuffer(source.width, source.height);
- }
-
- var channels = m_MonitorSettings.waveformY
- ? new Vector4(0f, 0f, 0f, 1f)
- : new Vector4(m_MonitorSettings.waveformR ? 1f : 0f, m_MonitorSettings.waveformG ? 1f : 0f, m_MonitorSettings.waveformB ? 1f : 0f, 0f);
-
- var cs = m_ComputeShader;
-
- int kernel = cs.FindKernel("KWaveformClear");
- cs.SetBuffer(kernel, "_Waveform", m_Buffer);
- cs.Dispatch(kernel, source.width, 1, 1);
-
- kernel = cs.FindKernel("KWaveform");
- cs.SetBuffer(kernel, "_Waveform", m_Buffer);
- cs.SetTexture(kernel, "_Source", source);
- cs.SetInt("_IsLinear", GraphicsUtils.isLinearColorSpace ? 1 : 0);
- cs.SetVector("_Channels", channels);
- cs.Dispatch(kernel, source.width, 1, 1);
-
- if (m_WaveformTexture == null || m_WaveformTexture.width != source.width || m_WaveformTexture.height != source.height)
- {
- GraphicsUtils.Destroy(m_WaveformTexture);
- m_WaveformTexture = new RenderTexture(source.width, source.height, 0, RenderTextureFormat.ARGB32, RenderTextureReadWrite.Linear)
- {
- hideFlags = HideFlags.DontSave,
- wrapMode = TextureWrapMode.Clamp,
- filterMode = FilterMode.Bilinear
- };
- }
-
- if (m_Material == null)
- m_Material = new Material(Shader.Find("Hidden/Post FX/Monitors/Waveform Render")) { hideFlags = HideFlags.DontSave };
-
- m_Material.SetBuffer("_Waveform", m_Buffer);
- m_Material.SetVector("_Size", new Vector2(m_WaveformTexture.width, m_WaveformTexture.height));
- m_Material.SetVector("_Channels", channels);
- }
- }
-}
diff --git a/JoystickVisualizer/Assets/PostProcessing/Editor/Monitors/WaveformMonitor.cs.meta b/JoystickVisualizer/Assets/PostProcessing/Editor/Monitors/WaveformMonitor.cs.meta
deleted file mode 100644
index 0c44bce..0000000
--- a/JoystickVisualizer/Assets/PostProcessing/Editor/Monitors/WaveformMonitor.cs.meta
+++ /dev/null
@@ -1,12 +0,0 @@
-fileFormatVersion: 2
-guid: 2d45bc7edb5916446b4fa1ae1b6f9065
-timeCreated: 1459957472
-licenseType: Store
-MonoImporter:
- serializedVersion: 2
- defaultReferences: []
- executionOrder: 0
- icon: {instanceID: 0}
- userData:
- assetBundleName:
- assetBundleVariant:
diff --git a/JoystickVisualizer/Assets/PostProcessing/Editor/PostProcessingBehaviourEditor.cs b/JoystickVisualizer/Assets/PostProcessing/Editor/PostProcessingBehaviourEditor.cs
deleted file mode 100644
index 08550b2..0000000
--- a/JoystickVisualizer/Assets/PostProcessing/Editor/PostProcessingBehaviourEditor.cs
+++ /dev/null
@@ -1,31 +0,0 @@
-using System;
-using System.Linq.Expressions;
-using UnityEngine.PostProcessing;
-
-namespace UnityEditor.PostProcessing
-{
- [CustomEditor(typeof(PostProcessingBehaviour))]
- public class PostProcessingBehaviourEditor : Editor
- {
- SerializedProperty m_Profile;
-
- public void OnEnable()
- {
- m_Profile = FindSetting((PostProcessingBehaviour x) => x.profile);
- }
-
- public override void OnInspectorGUI()
- {
- serializedObject.Update();
-
- EditorGUILayout.PropertyField(m_Profile);
-
- serializedObject.ApplyModifiedProperties();
- }
-
- SerializedProperty FindSetting(Expression> expr)
- {
- return serializedObject.FindProperty(ReflectionUtils.GetFieldPath(expr));
- }
- }
-}
diff --git a/JoystickVisualizer/Assets/PostProcessing/Editor/PostProcessingBehaviourEditor.cs.meta b/JoystickVisualizer/Assets/PostProcessing/Editor/PostProcessingBehaviourEditor.cs.meta
deleted file mode 100644
index 5506e9d..0000000
--- a/JoystickVisualizer/Assets/PostProcessing/Editor/PostProcessingBehaviourEditor.cs.meta
+++ /dev/null
@@ -1,12 +0,0 @@
-fileFormatVersion: 2
-guid: 0c12e797b02402246a52aa270c45059b
-timeCreated: 1476193645
-licenseType: Store
-MonoImporter:
- serializedVersion: 2
- defaultReferences: []
- executionOrder: 0
- icon: {instanceID: 0}
- userData:
- assetBundleName:
- assetBundleVariant:
diff --git a/JoystickVisualizer/Assets/PostProcessing/Editor/PostProcessingFactory.cs b/JoystickVisualizer/Assets/PostProcessing/Editor/PostProcessingFactory.cs
deleted file mode 100644
index 6ac50f2..0000000
--- a/JoystickVisualizer/Assets/PostProcessing/Editor/PostProcessingFactory.cs
+++ /dev/null
@@ -1,35 +0,0 @@
-using UnityEngine;
-using UnityEngine.PostProcessing;
-using UnityEditor.ProjectWindowCallback;
-using System.IO;
-
-namespace UnityEditor.PostProcessing
-{
- public class PostProcessingFactory
- {
- [MenuItem("Assets/Create/Post-Processing Profile", priority = 201)]
- static void MenuCreatePostProcessingProfile()
- {
- var icon = EditorGUIUtility.FindTexture("ScriptableObject Icon");
- ProjectWindowUtil.StartNameEditingIfProjectWindowExists(0, ScriptableObject.CreateInstance(), "New Post-Processing Profile.asset", icon, null);
- }
-
- internal static PostProcessingProfile CreatePostProcessingProfileAtPath(string path)
- {
- var profile = ScriptableObject.CreateInstance();
- profile.name = Path.GetFileName(path);
- profile.fog.enabled = true;
- AssetDatabase.CreateAsset(profile, path);
- return profile;
- }
- }
-
- class DoCreatePostProcessingProfile : EndNameEditAction
- {
- public override void Action(int instanceId, string pathName, string resourceFile)
- {
- PostProcessingProfile profile = PostProcessingFactory.CreatePostProcessingProfileAtPath(pathName);
- ProjectWindowUtil.ShowCreatedAsset(profile);
- }
- }
-}
diff --git a/JoystickVisualizer/Assets/PostProcessing/Editor/PostProcessingFactory.cs.meta b/JoystickVisualizer/Assets/PostProcessing/Editor/PostProcessingFactory.cs.meta
deleted file mode 100644
index e723364..0000000
--- a/JoystickVisualizer/Assets/PostProcessing/Editor/PostProcessingFactory.cs.meta
+++ /dev/null
@@ -1,12 +0,0 @@
-fileFormatVersion: 2
-guid: 0dfcadb180d67014cb0a6e18d6b11f90
-timeCreated: 1466586271
-licenseType: Store
-MonoImporter:
- serializedVersion: 2
- defaultReferences: []
- executionOrder: 0
- icon: {instanceID: 0}
- userData:
- assetBundleName:
- assetBundleVariant:
diff --git a/JoystickVisualizer/Assets/PostProcessing/Editor/PostProcessingInspector.cs b/JoystickVisualizer/Assets/PostProcessing/Editor/PostProcessingInspector.cs
deleted file mode 100644
index b2baa94..0000000
--- a/JoystickVisualizer/Assets/PostProcessing/Editor/PostProcessingInspector.cs
+++ /dev/null
@@ -1,208 +0,0 @@
-using UnityEngine;
-using UnityEngine.PostProcessing;
-using System;
-using System.Collections.Generic;
-using System.Linq;
-using System.Reflection;
-
-namespace UnityEditor.PostProcessing
-{
- //[CanEditMultipleObjects]
- [CustomEditor(typeof(PostProcessingProfile))]
- public class PostProcessingInspector : Editor
- {
- static GUIContent s_PreviewTitle = new GUIContent("Monitors");
-
- PostProcessingProfile m_ConcreteTarget
- {
- get { return target as PostProcessingProfile; }
- }
-
- int m_CurrentMonitorID
- {
- get { return m_ConcreteTarget.monitors.currentMonitorID; }
- set { m_ConcreteTarget.monitors.currentMonitorID = value; }
- }
-
- List m_Monitors;
- GUIContent[] m_MonitorNames;
- Dictionary m_CustomEditors = new Dictionary();
-
- public bool IsInteractivePreviewOpened { get; private set; }
-
- void OnEnable()
- {
- if (target == null)
- return;
-
- // Aggregate custom post-fx editors
- var assembly = Assembly.GetAssembly(typeof(PostProcessingInspector));
-
- var editorTypes = assembly.GetTypes()
- .Where(x => x.IsDefined(typeof(PostProcessingModelEditorAttribute), false));
-
- var customEditors = new Dictionary();
- foreach (var editor in editorTypes)
- {
- var attr = (PostProcessingModelEditorAttribute)editor.GetCustomAttributes(typeof(PostProcessingModelEditorAttribute), false)[0];
- var effectType = attr.type;
- var alwaysEnabled = attr.alwaysEnabled;
-
- var editorInst = (PostProcessingModelEditor)Activator.CreateInstance(editor);
- editorInst.alwaysEnabled = alwaysEnabled;
- editorInst.profile = target as PostProcessingProfile;
- editorInst.inspector = this;
- customEditors.Add(effectType, editorInst);
- }
-
- // ... and corresponding models
- var baseType = target.GetType();
- var property = serializedObject.GetIterator();
-
- while (property.Next(true))
- {
- if (!property.hasChildren)
- continue;
-
- var type = baseType;
- var srcObject = ReflectionUtils.GetFieldValueFromPath(serializedObject.targetObject, ref type, property.propertyPath);
-
- if (srcObject == null)
- continue;
-
- PostProcessingModelEditor editor;
- if (customEditors.TryGetValue(type, out editor))
- {
- var effect = (PostProcessingModel)srcObject;
-
- if (editor.alwaysEnabled)
- effect.enabled = editor.alwaysEnabled;
-
- m_CustomEditors.Add(editor, effect);
- editor.target = effect;
- editor.serializedProperty = property.Copy();
- editor.OnPreEnable();
- }
- }
-
- // Prepare monitors
- m_Monitors = new List();
-
- var monitors = new List
- {
- new HistogramMonitor(),
- new WaveformMonitor(),
- new ParadeMonitor(),
- new VectorscopeMonitor()
- };
-
- var monitorNames = new List();
-
- foreach (var monitor in monitors)
- {
- if (monitor.IsSupported())
- {
- monitor.Init(m_ConcreteTarget.monitors, this);
- m_Monitors.Add(monitor);
- monitorNames.Add(monitor.GetMonitorTitle());
- }
- }
-
- m_MonitorNames = monitorNames.ToArray();
-
- if (m_Monitors.Count > 0)
- m_ConcreteTarget.monitors.onFrameEndEditorOnly = OnFrameEnd;
- }
-
- void OnDisable()
- {
- if (m_CustomEditors != null)
- {
- foreach (var editor in m_CustomEditors.Keys)
- editor.OnDisable();
-
- m_CustomEditors.Clear();
- }
-
- if (m_Monitors != null)
- {
- foreach (var monitor in m_Monitors)
- monitor.Dispose();
-
- m_Monitors.Clear();
- }
-
- if (m_ConcreteTarget != null)
- m_ConcreteTarget.monitors.onFrameEndEditorOnly = null;
- }
-
- void OnFrameEnd(RenderTexture source)
- {
- if (!IsInteractivePreviewOpened)
- return;
-
- if (m_CurrentMonitorID < m_Monitors.Count)
- m_Monitors[m_CurrentMonitorID].OnFrameData(source);
-
- IsInteractivePreviewOpened = false;
- }
-
- public override void OnInspectorGUI()
- {
- serializedObject.Update();
-
- // Handles undo/redo events first (before they get used by the editors' widgets)
- var e = Event.current;
- if (e.type == EventType.ValidateCommand && e.commandName == "UndoRedoPerformed")
- {
- foreach (var editor in m_CustomEditors)
- editor.Value.OnValidate();
- }
-
- if (!m_ConcreteTarget.debugViews.IsModeActive(BuiltinDebugViewsModel.Mode.None))
- EditorGUILayout.HelpBox("A debug view is currently enabled. Changes done to an effect might not be visible.", MessageType.Info);
-
- foreach (var editor in m_CustomEditors)
- {
- EditorGUI.BeginChangeCheck();
-
- editor.Key.OnGUI();
-
- if (EditorGUI.EndChangeCheck())
- editor.Value.OnValidate();
- }
-
- serializedObject.ApplyModifiedProperties();
- }
-
- public override GUIContent GetPreviewTitle()
- {
- return s_PreviewTitle;
- }
-
- public override bool HasPreviewGUI()
- {
- return GraphicsUtils.supportsDX11 && m_Monitors.Count > 0;
- }
-
- public override void OnPreviewSettings()
- {
- using (new EditorGUILayout.HorizontalScope())
- {
- if (m_CurrentMonitorID < m_Monitors.Count)
- m_Monitors[m_CurrentMonitorID].OnMonitorSettings();
-
- GUILayout.Space(5);
- m_CurrentMonitorID = EditorGUILayout.Popup(m_CurrentMonitorID, m_MonitorNames, FxStyles.preDropdown, GUILayout.MaxWidth(100f));
- }
- }
-
- public override void OnInteractivePreviewGUI(Rect r, GUIStyle background)
- {
- IsInteractivePreviewOpened = true;
-
- if (m_CurrentMonitorID < m_Monitors.Count)
- m_Monitors[m_CurrentMonitorID].OnMonitorGUI(r);
- }
- }
-}
diff --git a/JoystickVisualizer/Assets/PostProcessing/Editor/PostProcessingInspector.cs.meta b/JoystickVisualizer/Assets/PostProcessing/Editor/PostProcessingInspector.cs.meta
deleted file mode 100644
index 19a89a9..0000000
--- a/JoystickVisualizer/Assets/PostProcessing/Editor/PostProcessingInspector.cs.meta
+++ /dev/null
@@ -1,12 +0,0 @@
-fileFormatVersion: 2
-guid: 27fa95984763d9d47bbad59e7fdb66fe
-timeCreated: 1467188923
-licenseType: Store
-MonoImporter:
- serializedVersion: 2
- defaultReferences: []
- executionOrder: 0
- icon: {instanceID: 0}
- userData:
- assetBundleName:
- assetBundleVariant:
diff --git a/JoystickVisualizer/Assets/PostProcessing/Editor/PostProcessingModelEditor.cs b/JoystickVisualizer/Assets/PostProcessing/Editor/PostProcessingModelEditor.cs
deleted file mode 100644
index 844f9e8..0000000
--- a/JoystickVisualizer/Assets/PostProcessing/Editor/PostProcessingModelEditor.cs
+++ /dev/null
@@ -1,79 +0,0 @@
-using UnityEngine;
-using UnityEngine.PostProcessing;
-using System;
-using System.Linq.Expressions;
-
-namespace UnityEditor.PostProcessing
-{
- public class PostProcessingModelEditor
- {
- public PostProcessingModel target { get; internal set; }
- public SerializedProperty serializedProperty { get; internal set; }
-
- protected SerializedProperty m_SettingsProperty;
- protected SerializedProperty m_EnabledProperty;
-
- internal bool alwaysEnabled = false;
- internal PostProcessingProfile profile;
- internal PostProcessingInspector inspector;
-
- internal void OnPreEnable()
- {
- m_SettingsProperty = serializedProperty.FindPropertyRelative("m_Settings");
- m_EnabledProperty = serializedProperty.FindPropertyRelative("m_Enabled");
-
- OnEnable();
- }
-
- public virtual void OnEnable()
- {}
-
- public virtual void OnDisable()
- {}
-
- internal void OnGUI()
- {
- GUILayout.Space(5);
-
- var display = alwaysEnabled
- ? EditorGUIHelper.Header(serializedProperty.displayName, m_SettingsProperty, Reset)
- : EditorGUIHelper.Header(serializedProperty.displayName, m_SettingsProperty, m_EnabledProperty, Reset);
-
- if (display)
- {
- EditorGUI.indentLevel++;
- using (new EditorGUI.DisabledGroupScope(!m_EnabledProperty.boolValue))
- {
- OnInspectorGUI();
- }
- EditorGUI.indentLevel--;
- }
- }
-
- void Reset()
- {
- var obj = serializedProperty.serializedObject;
- Undo.RecordObject(obj.targetObject, "Reset");
- target.Reset();
- EditorUtility.SetDirty(obj.targetObject);
- }
-
- public virtual void OnInspectorGUI()
- {}
-
- public void Repaint()
- {
- inspector.Repaint();
- }
-
- protected SerializedProperty FindSetting(Expression> expr)
- {
- return m_SettingsProperty.FindPropertyRelative(ReflectionUtils.GetFieldPath(expr));
- }
-
- protected SerializedProperty FindSetting(SerializedProperty prop, Expression> expr)
- {
- return prop.FindPropertyRelative(ReflectionUtils.GetFieldPath(expr));
- }
- }
-}
diff --git a/JoystickVisualizer/Assets/PostProcessing/Editor/PostProcessingModelEditor.cs.meta b/JoystickVisualizer/Assets/PostProcessing/Editor/PostProcessingModelEditor.cs.meta
deleted file mode 100644
index d7d393b..0000000
--- a/JoystickVisualizer/Assets/PostProcessing/Editor/PostProcessingModelEditor.cs.meta
+++ /dev/null
@@ -1,12 +0,0 @@
-fileFormatVersion: 2
-guid: afe296d4ede60a0479734dc8c7df82c2
-timeCreated: 1467188923
-licenseType: Store
-MonoImporter:
- serializedVersion: 2
- defaultReferences: []
- executionOrder: 0
- icon: {instanceID: 0}
- userData:
- assetBundleName:
- assetBundleVariant:
diff --git a/JoystickVisualizer/Assets/PostProcessing/Editor/PostProcessingMonitor.cs b/JoystickVisualizer/Assets/PostProcessing/Editor/PostProcessingMonitor.cs
deleted file mode 100644
index 04edf84..0000000
--- a/JoystickVisualizer/Assets/PostProcessing/Editor/PostProcessingMonitor.cs
+++ /dev/null
@@ -1,34 +0,0 @@
-using System;
-using UnityEngine;
-
-namespace UnityEditor.PostProcessing
-{
- using MonitorSettings = UnityEngine.PostProcessing.PostProcessingProfile.MonitorSettings;
-
- public abstract class PostProcessingMonitor : IDisposable
- {
- protected MonitorSettings m_MonitorSettings;
- protected PostProcessingInspector m_BaseEditor;
-
- public void Init(MonitorSettings monitorSettings, PostProcessingInspector baseEditor)
- {
- m_MonitorSettings = monitorSettings;
- m_BaseEditor = baseEditor;
- }
-
- public abstract bool IsSupported();
-
- public abstract GUIContent GetMonitorTitle();
-
- public virtual void OnMonitorSettings()
- {}
-
- public abstract void OnMonitorGUI(Rect r);
-
- public virtual void OnFrameData(RenderTexture source)
- {}
-
- public virtual void Dispose()
- {}
- }
-}
diff --git a/JoystickVisualizer/Assets/PostProcessing/Editor/PostProcessingMonitor.cs.meta b/JoystickVisualizer/Assets/PostProcessing/Editor/PostProcessingMonitor.cs.meta
deleted file mode 100644
index ac6616f..0000000
--- a/JoystickVisualizer/Assets/PostProcessing/Editor/PostProcessingMonitor.cs.meta
+++ /dev/null
@@ -1,12 +0,0 @@
-fileFormatVersion: 2
-guid: 801186e9e649457469bcddd8ee391c71
-timeCreated: 1467188912
-licenseType: Store
-MonoImporter:
- serializedVersion: 2
- defaultReferences: []
- executionOrder: 0
- icon: {instanceID: 0}
- userData:
- assetBundleName:
- assetBundleVariant:
diff --git a/JoystickVisualizer/Assets/PostProcessing/Editor/PropertyDrawers.meta b/JoystickVisualizer/Assets/PostProcessing/Editor/PropertyDrawers.meta
deleted file mode 100644
index a44f9e2..0000000
--- a/JoystickVisualizer/Assets/PostProcessing/Editor/PropertyDrawers.meta
+++ /dev/null
@@ -1,9 +0,0 @@
-fileFormatVersion: 2
-guid: ced92f1cc2085ae48acacc79a2b8e196
-folderAsset: yes
-timeCreated: 1467189428
-licenseType: Store
-DefaultImporter:
- userData:
- assetBundleName:
- assetBundleVariant:
diff --git a/JoystickVisualizer/Assets/PostProcessing/Editor/PropertyDrawers/GetSetDrawer.cs b/JoystickVisualizer/Assets/PostProcessing/Editor/PropertyDrawers/GetSetDrawer.cs
deleted file mode 100644
index a56c201..0000000
--- a/JoystickVisualizer/Assets/PostProcessing/Editor/PropertyDrawers/GetSetDrawer.cs
+++ /dev/null
@@ -1,36 +0,0 @@
-using UnityEngine;
-using UnityEngine.PostProcessing;
-
-namespace UnityEditor.PostProcessing
-{
- [CustomPropertyDrawer(typeof(GetSetAttribute))]
- sealed class GetSetDrawer : PropertyDrawer
- {
- public override void OnGUI(Rect position, SerializedProperty property, GUIContent label)
- {
- var attribute = (GetSetAttribute)base.attribute;
-
- EditorGUI.BeginChangeCheck();
- EditorGUI.PropertyField(position, property, label);
-
- if (EditorGUI.EndChangeCheck())
- {
- attribute.dirty = true;
- }
- else if (attribute.dirty)
- {
- var parent = ReflectionUtils.GetParentObject(property.propertyPath, property.serializedObject.targetObject);
-
- var type = parent.GetType();
- var info = type.GetProperty(attribute.name);
-
- if (info == null)
- Debug.LogError("Invalid property name \"" + attribute.name + "\"");
- else
- info.SetValue(parent, fieldInfo.GetValue(parent), null);
-
- attribute.dirty = false;
- }
- }
- }
-}
diff --git a/JoystickVisualizer/Assets/PostProcessing/Editor/PropertyDrawers/GetSetDrawer.cs.meta b/JoystickVisualizer/Assets/PostProcessing/Editor/PropertyDrawers/GetSetDrawer.cs.meta
deleted file mode 100644
index 4322afd..0000000
--- a/JoystickVisualizer/Assets/PostProcessing/Editor/PropertyDrawers/GetSetDrawer.cs.meta
+++ /dev/null
@@ -1,12 +0,0 @@
-fileFormatVersion: 2
-guid: e1a43b92f2bbd914ca2e6b4c6a5dba48
-timeCreated: 1460383963
-licenseType: Store
-MonoImporter:
- serializedVersion: 2
- defaultReferences: []
- executionOrder: 0
- icon: {instanceID: 0}
- userData:
- assetBundleName:
- assetBundleVariant:
diff --git a/JoystickVisualizer/Assets/PostProcessing/Editor/PropertyDrawers/MinDrawer.cs b/JoystickVisualizer/Assets/PostProcessing/Editor/PropertyDrawers/MinDrawer.cs
deleted file mode 100644
index 59791f5..0000000
--- a/JoystickVisualizer/Assets/PostProcessing/Editor/PropertyDrawers/MinDrawer.cs
+++ /dev/null
@@ -1,29 +0,0 @@
-using UnityEngine;
-using UnityEngine.PostProcessing;
-
-namespace UnityEditor.PostProcessing
-{
- [CustomPropertyDrawer(typeof(MinAttribute))]
- sealed class MinDrawer : PropertyDrawer
- {
- public override void OnGUI(Rect position, SerializedProperty property, GUIContent label)
- {
- MinAttribute attribute = (MinAttribute)base.attribute;
-
- if (property.propertyType == SerializedPropertyType.Integer)
- {
- int v = EditorGUI.IntField(position, label, property.intValue);
- property.intValue = (int)Mathf.Max(v, attribute.min);
- }
- else if (property.propertyType == SerializedPropertyType.Float)
- {
- float v = EditorGUI.FloatField(position, label, property.floatValue);
- property.floatValue = Mathf.Max(v, attribute.min);
- }
- else
- {
- EditorGUI.LabelField(position, label.text, "Use Min with float or int.");
- }
- }
- }
-}
diff --git a/JoystickVisualizer/Assets/PostProcessing/Editor/PropertyDrawers/MinDrawer.cs.meta b/JoystickVisualizer/Assets/PostProcessing/Editor/PropertyDrawers/MinDrawer.cs.meta
deleted file mode 100644
index 488609b..0000000
--- a/JoystickVisualizer/Assets/PostProcessing/Editor/PropertyDrawers/MinDrawer.cs.meta
+++ /dev/null
@@ -1,12 +0,0 @@
-fileFormatVersion: 2
-guid: 8995f52f410f0fb4cb1bdaa71a16e04e
-timeCreated: 1467364278
-licenseType: Store
-MonoImporter:
- serializedVersion: 2
- defaultReferences: []
- executionOrder: 0
- icon: {instanceID: 0}
- userData:
- assetBundleName:
- assetBundleVariant:
diff --git a/JoystickVisualizer/Assets/PostProcessing/Editor/PropertyDrawers/TrackballGroupDrawer.cs b/JoystickVisualizer/Assets/PostProcessing/Editor/PropertyDrawers/TrackballGroupDrawer.cs
deleted file mode 100644
index c86c88f..0000000
--- a/JoystickVisualizer/Assets/PostProcessing/Editor/PropertyDrawers/TrackballGroupDrawer.cs
+++ /dev/null
@@ -1,244 +0,0 @@
-using System.Collections.Generic;
-using System.Reflection;
-using UnityEngine;
-using UnityEngine.PostProcessing;
-
-namespace UnityEditor.PostProcessing
-{
- [CustomPropertyDrawer(typeof(TrackballGroupAttribute))]
- sealed class TrackballGroupDrawer : PropertyDrawer
- {
- static Material s_Material;
-
- const int k_MinWheelSize = 80;
- const int k_MaxWheelSize = 256;
-
- bool m_ResetState;
-
- // Cached trackball computation methods (for speed reasons)
- static Dictionary m_TrackballMethods = new Dictionary();
-
- internal static int m_Size
- {
- get
- {
- int size = Mathf.FloorToInt(EditorGUIUtility.currentViewWidth / 3f) - 18;
- size = Mathf.Clamp(size, k_MinWheelSize, k_MaxWheelSize);
- return size;
- }
- }
-
- public override void OnGUI(Rect position, SerializedProperty property, GUIContent label)
- {
- if (s_Material == null)
- s_Material = new Material(Shader.Find("Hidden/Post FX/UI/Trackball")) { hideFlags = HideFlags.HideAndDontSave };
-
- position = new Rect(position.x, position.y, position.width / 3f, position.height);
- int size = m_Size;
- position.x += 5f;
-
- var enumerator = property.GetEnumerator();
- while (enumerator.MoveNext())
- {
- var prop = enumerator.Current as SerializedProperty;
- if (prop == null || prop.propertyType != SerializedPropertyType.Color)
- continue;
-
- OnWheelGUI(position, size, prop.Copy());
- position.x += position.width;
- }
- }
-
- void OnWheelGUI(Rect position, int size, SerializedProperty property)
- {
- if (Event.current.type == EventType.Layout)
- return;
-
- var value = property.colorValue;
- float offset = value.a;
-
- var wheelDrawArea = position;
- wheelDrawArea.height = size;
-
- if (wheelDrawArea.width > wheelDrawArea.height)
- {
- wheelDrawArea.x += (wheelDrawArea.width - wheelDrawArea.height) / 2.0f;
- wheelDrawArea.width = position.height;
- }
-
- wheelDrawArea.width = wheelDrawArea.height;
-
- float hsize = size / 2f;
- float radius = 0.38f * size;
- Vector3 hsv;
- Color.RGBToHSV(value, out hsv.x, out hsv.y, out hsv.z);
-
- if (Event.current.type == EventType.Repaint)
- {
- float scale = EditorGUIUtility.pixelsPerPoint;
-
- // Wheel texture
- var oldRT = RenderTexture.active;
- var rt = RenderTexture.GetTemporary((int)(size * scale), (int)(size * scale), 0, RenderTextureFormat.ARGB32, RenderTextureReadWrite.Linear);
- s_Material.SetFloat("_Offset", offset);
- s_Material.SetFloat("_DisabledState", GUI.enabled ? 1f : 0.5f);
- s_Material.SetVector("_Resolution", new Vector2(size * scale, size * scale / 2f));
- Graphics.Blit(null, rt, s_Material, EditorGUIUtility.isProSkin ? 0 : 1);
- RenderTexture.active = oldRT;
-
- GUI.DrawTexture(wheelDrawArea, rt);
- RenderTexture.ReleaseTemporary(rt);
-
- // Thumb
- var thumbPos = Vector2.zero;
- float theta = hsv.x * (Mathf.PI * 2f);
- float len = hsv.y * radius;
- thumbPos.x = Mathf.Cos(theta + (Mathf.PI / 2f));
- thumbPos.y = Mathf.Sin(theta - (Mathf.PI / 2f));
- thumbPos *= len;
- var thumbSize = FxStyles.wheelThumbSize;
- var thumbSizeH = thumbSize / 2f;
- FxStyles.wheelThumb.Draw(new Rect(wheelDrawArea.x + hsize + thumbPos.x - thumbSizeH.x, wheelDrawArea.y + hsize + thumbPos.y - thumbSizeH.y, thumbSize.x, thumbSize.y), false, false, false, false);
- }
-
- var bounds = wheelDrawArea;
- bounds.x += hsize - radius;
- bounds.y += hsize - radius;
- bounds.width = bounds.height = radius * 2f;
- hsv = GetInput(bounds, hsv, radius);
- value = Color.HSVToRGB(hsv.x, hsv.y, 1f);
- value.a = offset;
-
- // Luminosity booster
- position = wheelDrawArea;
- float oldX = position.x;
- float oldW = position.width;
- position.y += position.height + 4f;
- position.x += (position.width - (position.width * 0.75f)) / 2f;
- position.width = position.width * 0.75f;
- position.height = EditorGUIUtility.singleLineHeight;
- value.a = GUI.HorizontalSlider(position, value.a, -1f, 1f);
-
- // Advanced controls
- var data = Vector3.zero;
-
- if (TryGetDisplayValue(value, property, out data))
- {
- position.x = oldX;
- position.y += position.height;
- position.width = oldW / 3f;
-
- using (new EditorGUI.DisabledGroupScope(true))
- {
- GUI.Label(position, data.x.ToString("F2"), EditorStyles.centeredGreyMiniLabel);
- position.x += position.width;
- GUI.Label(position, data.y.ToString("F2"), EditorStyles.centeredGreyMiniLabel);
- position.x += position.width;
- GUI.Label(position, data.z.ToString("F2"), EditorStyles.centeredGreyMiniLabel);
- position.x += position.width;
- }
- }
-
- // Title
- position.x = oldX;
- position.y += position.height;
- position.width = oldW;
- GUI.Label(position, property.displayName, EditorStyles.centeredGreyMiniLabel);
-
- if (m_ResetState)
- {
- value = Color.clear;
- m_ResetState = false;
- }
-
- property.colorValue = value;
- }
-
- bool TryGetDisplayValue(Color color, SerializedProperty property, out Vector3 output)
- {
- output = Vector3.zero;
- MethodInfo method;
-
- if (!m_TrackballMethods.TryGetValue(property.name, out method))
- {
- var field = ReflectionUtils.GetFieldInfoFromPath(property.serializedObject.targetObject, property.propertyPath);
-
- if (!field.IsDefined(typeof(TrackballAttribute), false))
- return false;
-
- var attr = (TrackballAttribute)field.GetCustomAttributes(typeof(TrackballAttribute), false)[0];
- const BindingFlags flags = BindingFlags.Public | BindingFlags.NonPublic | BindingFlags.Instance | BindingFlags.Static;
- method = typeof(ColorGradingComponent).GetMethod(attr.method, flags);
- m_TrackballMethods.Add(property.name, method);
- }
-
- if (method == null)
- return false;
-
- output = (Vector3)method.Invoke(property.serializedObject.targetObject, new object[] { color });
- return true;
- }
-
- static readonly int k_ThumbHash = "colorWheelThumb".GetHashCode();
-
- Vector3 GetInput(Rect bounds, Vector3 hsv, float radius)
- {
- var e = Event.current;
- var id = GUIUtility.GetControlID(k_ThumbHash, FocusType.Passive, bounds);
-
- var mousePos = e.mousePosition;
- var relativePos = mousePos - new Vector2(bounds.x, bounds.y);
-
- if (e.type == EventType.MouseDown && GUIUtility.hotControl == 0 && bounds.Contains(mousePos))
- {
- if (e.button == 0)
- {
- var center = new Vector2(bounds.x + radius, bounds.y + radius);
- float dist = Vector2.Distance(center, mousePos);
-
- if (dist <= radius)
- {
- e.Use();
- GetWheelHueSaturation(relativePos.x, relativePos.y, radius, out hsv.x, out hsv.y);
- GUIUtility.hotControl = id;
- GUI.changed = true;
- }
- }
- else if (e.button == 1)
- {
- e.Use();
- GUI.changed = true;
- m_ResetState = true;
- }
- }
- else if (e.type == EventType.MouseDrag && e.button == 0 && GUIUtility.hotControl == id)
- {
- e.Use();
- GUI.changed = true;
- GetWheelHueSaturation(relativePos.x, relativePos.y, radius, out hsv.x, out hsv.y);
- }
- else if (e.rawType == EventType.MouseUp && e.button == 0 && GUIUtility.hotControl == id)
- {
- e.Use();
- GUIUtility.hotControl = 0;
- }
-
- return hsv;
- }
-
- void GetWheelHueSaturation(float x, float y, float radius, out float hue, out float saturation)
- {
- float dx = (x - radius) / radius;
- float dy = (y - radius) / radius;
- float d = Mathf.Sqrt(dx * dx + dy * dy);
- hue = Mathf.Atan2(dx, -dy);
- hue = 1f - ((hue > 0) ? hue : (Mathf.PI * 2f) + hue) / (Mathf.PI * 2f);
- saturation = Mathf.Clamp01(d);
- }
-
- public override float GetPropertyHeight(SerializedProperty property, GUIContent label)
- {
- return m_Size + 4f * 2f + EditorGUIUtility.singleLineHeight * 3f;
- }
- }
-}
diff --git a/JoystickVisualizer/Assets/PostProcessing/Editor/PropertyDrawers/TrackballGroupDrawer.cs.meta b/JoystickVisualizer/Assets/PostProcessing/Editor/PropertyDrawers/TrackballGroupDrawer.cs.meta
deleted file mode 100644
index 7566a8b..0000000
--- a/JoystickVisualizer/Assets/PostProcessing/Editor/PropertyDrawers/TrackballGroupDrawer.cs.meta
+++ /dev/null
@@ -1,12 +0,0 @@
-fileFormatVersion: 2
-guid: a668d493c5ed56d448b53c19b2c3dfd2
-timeCreated: 1460563239
-licenseType: Store
-MonoImporter:
- serializedVersion: 2
- defaultReferences: []
- executionOrder: 0
- icon: {instanceID: 0}
- userData:
- assetBundleName:
- assetBundleVariant:
diff --git a/JoystickVisualizer/Assets/PostProcessing/Editor/Utils.meta b/JoystickVisualizer/Assets/PostProcessing/Editor/Utils.meta
deleted file mode 100644
index 7d88e96..0000000
--- a/JoystickVisualizer/Assets/PostProcessing/Editor/Utils.meta
+++ /dev/null
@@ -1,9 +0,0 @@
-fileFormatVersion: 2
-guid: b52c69ccefdae7545bfb4d0bf9b7df71
-folderAsset: yes
-timeCreated: 1467189428
-licenseType: Store
-DefaultImporter:
- userData:
- assetBundleName:
- assetBundleVariant:
diff --git a/JoystickVisualizer/Assets/PostProcessing/Editor/Utils/CurveEditor.cs b/JoystickVisualizer/Assets/PostProcessing/Editor/Utils/CurveEditor.cs
deleted file mode 100644
index 98bd4de..0000000
--- a/JoystickVisualizer/Assets/PostProcessing/Editor/Utils/CurveEditor.cs
+++ /dev/null
@@ -1,847 +0,0 @@
-using System;
-using System.Collections.Generic;
-using UnityEngine;
-
-namespace UnityEditor.PostProcessing
-{
- public sealed class CurveEditor
- {
- #region Enums
-
- enum EditMode
- {
- None,
- Moving,
- TangentEdit
- }
-
- enum Tangent
- {
- In,
- Out
- }
- #endregion
-
- #region Structs
- public struct Settings
- {
- public Rect bounds;
- public RectOffset padding;
- public Color selectionColor;
- public float curvePickingDistance;
- public float keyTimeClampingDistance;
-
- public static Settings defaultSettings
- {
- get
- {
- return new Settings
- {
- bounds = new Rect(0f, 0f, 1f, 1f),
- padding = new RectOffset(10, 10, 10, 10),
- selectionColor = Color.yellow,
- curvePickingDistance = 6f,
- keyTimeClampingDistance = 1e-4f
- };
- }
- }
- }
-
- public struct CurveState
- {
- public bool visible;
- public bool editable;
- public uint minPointCount;
- public float zeroKeyConstantValue;
- public Color color;
- public float width;
- public float handleWidth;
- public bool showNonEditableHandles;
- public bool onlyShowHandlesOnSelection;
- public bool loopInBounds;
-
- public static CurveState defaultState
- {
- get
- {
- return new CurveState
- {
- visible = true,
- editable = true,
- minPointCount = 2,
- zeroKeyConstantValue = 0f,
- color = Color.white,
- width = 2f,
- handleWidth = 2f,
- showNonEditableHandles = true,
- onlyShowHandlesOnSelection = false,
- loopInBounds = false
- };
- }
- }
- }
-
- public struct Selection
- {
- public SerializedProperty curve;
- public int keyframeIndex;
- public Keyframe? keyframe;
-
- public Selection(SerializedProperty curve, int keyframeIndex, Keyframe? keyframe)
- {
- this.curve = curve;
- this.keyframeIndex = keyframeIndex;
- this.keyframe = keyframe;
- }
- }
-
- internal struct MenuAction
- {
- internal SerializedProperty curve;
- internal int index;
- internal Vector3 position;
-
- internal MenuAction(SerializedProperty curve)
- {
- this.curve = curve;
- this.index = -1;
- this.position = Vector3.zero;
- }
-
- internal MenuAction(SerializedProperty curve, int index)
- {
- this.curve = curve;
- this.index = index;
- this.position = Vector3.zero;
- }
-
- internal MenuAction(SerializedProperty curve, Vector3 position)
- {
- this.curve = curve;
- this.index = -1;
- this.position = position;
- }
- }
- #endregion
-
- #region Fields & properties
- public Settings settings { get; private set; }
-
- Dictionary m_Curves;
- Rect m_CurveArea;
-
- SerializedProperty m_SelectedCurve;
- int m_SelectedKeyframeIndex = -1;
-
- EditMode m_EditMode = EditMode.None;
- Tangent m_TangentEditMode;
-
- bool m_Dirty;
- #endregion
-
- #region Constructors & destructors
- public CurveEditor()
- : this(Settings.defaultSettings)
- {}
-
- public CurveEditor(Settings settings)
- {
- this.settings = settings;
- m_Curves = new Dictionary();
- }
-
- #endregion
-
- #region Public API
- public void Add(params SerializedProperty[] curves)
- {
- foreach (var curve in curves)
- Add(curve, CurveState.defaultState);
- }
-
- public void Add(SerializedProperty curve)
- {
- Add(curve, CurveState.defaultState);
- }
-
- public void Add(SerializedProperty curve, CurveState state)
- {
- // Make sure the property is in fact an AnimationCurve
- var animCurve = curve.animationCurveValue;
- if (animCurve == null)
- throw new ArgumentException("curve");
-
- if (m_Curves.ContainsKey(curve))
- Debug.LogWarning("Curve has already been added to the editor");
-
- m_Curves.Add(curve, state);
- }
-
- public void Remove(SerializedProperty curve)
- {
- m_Curves.Remove(curve);
- }
-
- public void RemoveAll()
- {
- m_Curves.Clear();
- }
-
- public CurveState GetCurveState(SerializedProperty curve)
- {
- CurveState state;
- if (!m_Curves.TryGetValue(curve, out state))
- throw new KeyNotFoundException("curve");
-
- return state;
- }
-
- public void SetCurveState(SerializedProperty curve, CurveState state)
- {
- if (!m_Curves.ContainsKey(curve))
- throw new KeyNotFoundException("curve");
-
- m_Curves[curve] = state;
- }
-
- public Selection GetSelection()
- {
- Keyframe? key = null;
- if (m_SelectedKeyframeIndex > -1)
- {
- var curve = m_SelectedCurve.animationCurveValue;
-
- if (m_SelectedKeyframeIndex >= curve.length)
- m_SelectedKeyframeIndex = -1;
- else
- key = curve[m_SelectedKeyframeIndex];
- }
-
- return new Selection(m_SelectedCurve, m_SelectedKeyframeIndex, key);
- }
-
- public void SetKeyframe(SerializedProperty curve, int keyframeIndex, Keyframe keyframe)
- {
- var animCurve = curve.animationCurveValue;
- SetKeyframe(animCurve, keyframeIndex, keyframe);
- SaveCurve(curve, animCurve);
- }
-
- public bool OnGUI(Rect rect)
- {
- if (Event.current.type == EventType.Repaint)
- m_Dirty = false;
-
- GUI.BeginClip(rect);
- {
- var area = new Rect(Vector2.zero, rect.size);
- m_CurveArea = settings.padding.Remove(area);
-
- foreach (var curve in m_Curves)
- OnCurveGUI(area, curve.Key, curve.Value);
-
- OnGeneralUI(area);
- }
- GUI.EndClip();
-
- return m_Dirty;
- }
-
- #endregion
-
- #region UI & events
-
- void OnCurveGUI(Rect rect, SerializedProperty curve, CurveState state)
- {
- // Discard invisible curves
- if (!state.visible)
- return;
-
- var animCurve = curve.animationCurveValue;
- var keys = animCurve.keys;
- var length = keys.Length;
-
- // Curve drawing
- // Slightly dim non-editable curves
- var color = state.color;
- if (!state.editable)
- color.a *= 0.5f;
-
- Handles.color = color;
- var bounds = settings.bounds;
-
- if (length == 0)
- {
- var p1 = CurveToCanvas(new Vector3(bounds.xMin, state.zeroKeyConstantValue));
- var p2 = CurveToCanvas(new Vector3(bounds.xMax, state.zeroKeyConstantValue));
- Handles.DrawAAPolyLine(state.width, p1, p2);
- }
- else if (length == 1)
- {
- var p1 = CurveToCanvas(new Vector3(bounds.xMin, keys[0].value));
- var p2 = CurveToCanvas(new Vector3(bounds.xMax, keys[0].value));
- Handles.DrawAAPolyLine(state.width, p1, p2);
- }
- else
- {
- var prevKey = keys[0];
- for (int k = 1; k < length; k++)
- {
- var key = keys[k];
- var pts = BezierSegment(prevKey, key);
-
- if (float.IsInfinity(prevKey.outTangent) || float.IsInfinity(key.inTangent))
- {
- var s = HardSegment(prevKey, key);
- Handles.DrawAAPolyLine(state.width, s[0], s[1], s[2]);
- }
- else Handles.DrawBezier(pts[0], pts[3], pts[1], pts[2], color, null, state.width);
-
- prevKey = key;
- }
-
- // Curve extents & loops
- if (keys[0].time > bounds.xMin)
- {
- if (state.loopInBounds)
- {
- var p1 = keys[length - 1];
- p1.time -= settings.bounds.width;
- var p2 = keys[0];
- var pts = BezierSegment(p1, p2);
-
- if (float.IsInfinity(p1.outTangent) || float.IsInfinity(p2.inTangent))
- {
- var s = HardSegment(p1, p2);
- Handles.DrawAAPolyLine(state.width, s[0], s[1], s[2]);
- }
- else Handles.DrawBezier(pts[0], pts[3], pts[1], pts[2], color, null, state.width);
- }
- else
- {
- var p1 = CurveToCanvas(new Vector3(bounds.xMin, keys[0].value));
- var p2 = CurveToCanvas(keys[0]);
- Handles.DrawAAPolyLine(state.width, p1, p2);
- }
- }
-
- if (keys[length - 1].time < bounds.xMax)
- {
- if (state.loopInBounds)
- {
- var p1 = keys[length - 1];
- var p2 = keys[0];
- p2.time += settings.bounds.width;
- var pts = BezierSegment(p1, p2);
-
- if (float.IsInfinity(p1.outTangent) || float.IsInfinity(p2.inTangent))
- {
- var s = HardSegment(p1, p2);
- Handles.DrawAAPolyLine(state.width, s[0], s[1], s[2]);
- }
- else Handles.DrawBezier(pts[0], pts[3], pts[1], pts[2], color, null, state.width);
- }
- else
- {
- var p1 = CurveToCanvas(keys[length - 1]);
- var p2 = CurveToCanvas(new Vector3(bounds.xMax, keys[length - 1].value));
- Handles.DrawAAPolyLine(state.width, p1, p2);
- }
- }
- }
-
- // Make sure selection is correct (undo can break it)
- bool isCurrentlySelectedCurve = curve == m_SelectedCurve;
-
- if (isCurrentlySelectedCurve && m_SelectedKeyframeIndex >= length)
- m_SelectedKeyframeIndex = -1;
-
- // Handles & keys
- for (int k = 0; k < length; k++)
- {
- bool isCurrentlySelectedKeyframe = k == m_SelectedKeyframeIndex;
- var e = Event.current;
-
- var pos = CurveToCanvas(keys[k]);
- var hitRect = new Rect(pos.x - 8f, pos.y - 8f, 16f, 16f);
- var offset = isCurrentlySelectedCurve
- ? new RectOffset(5, 5, 5, 5)
- : new RectOffset(6, 6, 6, 6);
-
- var outTangent = pos + CurveTangentToCanvas(keys[k].outTangent).normalized * 40f;
- var inTangent = pos - CurveTangentToCanvas(keys[k].inTangent).normalized * 40f;
- var inTangentHitRect = new Rect(inTangent.x - 7f, inTangent.y - 7f, 14f, 14f);
- var outTangentHitrect = new Rect(outTangent.x - 7f, outTangent.y - 7f, 14f, 14f);
-
- // Draw
- if (state.showNonEditableHandles)
- {
- if (e.type == EventType.Repaint)
- {
- var selectedColor = (isCurrentlySelectedCurve && isCurrentlySelectedKeyframe)
- ? settings.selectionColor
- : state.color;
-
- // Keyframe
- EditorGUI.DrawRect(offset.Remove(hitRect), selectedColor);
-
- // Tangents
- if (isCurrentlySelectedCurve && (!state.onlyShowHandlesOnSelection || (state.onlyShowHandlesOnSelection && isCurrentlySelectedKeyframe)))
- {
- Handles.color = selectedColor;
-
- if (k > 0 || state.loopInBounds)
- {
- Handles.DrawAAPolyLine(state.handleWidth, pos, inTangent);
- EditorGUI.DrawRect(offset.Remove(inTangentHitRect), selectedColor);
- }
-
- if (k < length - 1 || state.loopInBounds)
- {
- Handles.DrawAAPolyLine(state.handleWidth, pos, outTangent);
- EditorGUI.DrawRect(offset.Remove(outTangentHitrect), selectedColor);
- }
- }
- }
- }
-
- // Events
- if (state.editable)
- {
- // Keyframe move
- if (m_EditMode == EditMode.Moving && e.type == EventType.MouseDrag && isCurrentlySelectedCurve && isCurrentlySelectedKeyframe)
- {
- EditMoveKeyframe(animCurve, keys, k);
- }
-
- // Tangent editing
- if (m_EditMode == EditMode.TangentEdit && e.type == EventType.MouseDrag && isCurrentlySelectedCurve && isCurrentlySelectedKeyframe)
- {
- bool alreadyBroken = !(Mathf.Approximately(keys[k].inTangent, keys[k].outTangent) || (float.IsInfinity(keys[k].inTangent) && float.IsInfinity(keys[k].outTangent)));
- EditMoveTangent(animCurve, keys, k, m_TangentEditMode, e.shift || !(alreadyBroken || e.control));
- }
-
- // Keyframe selection & context menu
- if (e.type == EventType.MouseDown && rect.Contains(e.mousePosition))
- {
- if (hitRect.Contains(e.mousePosition))
- {
- if (e.button == 0)
- {
- SelectKeyframe(curve, k);
- m_EditMode = EditMode.Moving;
- e.Use();
- }
- else if (e.button == 1)
- {
- // Keyframe context menu
- var menu = new GenericMenu();
- menu.AddItem(new GUIContent("Delete Key"), false, (x) =>
- {
- var action = (MenuAction)x;
- var curveValue = action.curve.animationCurveValue;
- action.curve.serializedObject.Update();
- RemoveKeyframe(curveValue, action.index);
- m_SelectedKeyframeIndex = -1;
- SaveCurve(action.curve, curveValue);
- action.curve.serializedObject.ApplyModifiedProperties();
- }, new MenuAction(curve, k));
- menu.ShowAsContext();
- e.Use();
- }
- }
- }
-
- // Tangent selection & edit mode
- if (e.type == EventType.MouseDown && rect.Contains(e.mousePosition))
- {
- if (inTangentHitRect.Contains(e.mousePosition) && (k > 0 || state.loopInBounds))
- {
- SelectKeyframe(curve, k);
- m_EditMode = EditMode.TangentEdit;
- m_TangentEditMode = Tangent.In;
- e.Use();
- }
- else if (outTangentHitrect.Contains(e.mousePosition) && (k < length - 1 || state.loopInBounds))
- {
- SelectKeyframe(curve, k);
- m_EditMode = EditMode.TangentEdit;
- m_TangentEditMode = Tangent.Out;
- e.Use();
- }
- }
-
- // Mouse up - clean up states
- if (e.rawType == EventType.MouseUp && m_EditMode != EditMode.None)
- {
- m_EditMode = EditMode.None;
- }
-
- // Set cursors
- {
- EditorGUIUtility.AddCursorRect(hitRect, MouseCursor.MoveArrow);
-
- if (k > 0 || state.loopInBounds)
- EditorGUIUtility.AddCursorRect(inTangentHitRect, MouseCursor.RotateArrow);
-
- if (k < length - 1 || state.loopInBounds)
- EditorGUIUtility.AddCursorRect(outTangentHitrect, MouseCursor.RotateArrow);
- }
- }
- }
-
- Handles.color = Color.white;
- SaveCurve(curve, animCurve);
- }
-
- void OnGeneralUI(Rect rect)
- {
- var e = Event.current;
-
- // Selection
- if (e.type == EventType.MouseDown)
- {
- GUI.FocusControl(null);
- m_SelectedCurve = null;
- m_SelectedKeyframeIndex = -1;
- bool used = false;
-
- var hit = CanvasToCurve(e.mousePosition);
- float curvePickValue = CurveToCanvas(hit).y;
-
- // Try and select a curve
- foreach (var curve in m_Curves)
- {
- if (!curve.Value.editable || !curve.Value.visible)
- continue;
-
- var prop = curve.Key;
- var state = curve.Value;
- var animCurve = prop.animationCurveValue;
- float hitY = animCurve.length == 0
- ? state.zeroKeyConstantValue
- : animCurve.Evaluate(hit.x);
-
- var curvePos = CurveToCanvas(new Vector3(hit.x, hitY));
-
- if (Mathf.Abs(curvePos.y - curvePickValue) < settings.curvePickingDistance)
- {
- m_SelectedCurve = prop;
-
- if (e.clickCount == 2 && e.button == 0)
- {
- // Create a keyframe on double-click on this curve
- EditCreateKeyframe(animCurve, hit, true, state.zeroKeyConstantValue);
- SaveCurve(prop, animCurve);
- }
- else if (e.button == 1)
- {
- // Curve context menu
- var menu = new GenericMenu();
- menu.AddItem(new GUIContent("Add Key"), false, (x) =>
- {
- var action = (MenuAction)x;
- var curveValue = action.curve.animationCurveValue;
- action.curve.serializedObject.Update();
- EditCreateKeyframe(curveValue, hit, true, 0f);
- SaveCurve(action.curve, curveValue);
- action.curve.serializedObject.ApplyModifiedProperties();
- }, new MenuAction(prop, hit));
- menu.ShowAsContext();
- e.Use();
- used = true;
- }
- }
- }
-
- if (e.clickCount == 2 && e.button == 0 && m_SelectedCurve == null)
- {
- // Create a keyframe on every curve on double-click
- foreach (var curve in m_Curves)
- {
- if (!curve.Value.editable || !curve.Value.visible)
- continue;
-
- var prop = curve.Key;
- var state = curve.Value;
- var animCurve = prop.animationCurveValue;
- EditCreateKeyframe(animCurve, hit, e.alt, state.zeroKeyConstantValue);
- SaveCurve(prop, animCurve);
- }
- }
- else if (!used && e.button == 1)
- {
- // Global context menu
- var menu = new GenericMenu();
- menu.AddItem(new GUIContent("Add Key At Position"), false, () => ContextMenuAddKey(hit, false));
- menu.AddItem(new GUIContent("Add Key On Curves"), false, () => ContextMenuAddKey(hit, true));
- menu.ShowAsContext();
- }
-
- e.Use();
- }
-
- // Delete selected key(s)
- if (e.type == EventType.KeyDown && (e.keyCode == KeyCode.Delete || e.keyCode == KeyCode.Backspace))
- {
- if (m_SelectedKeyframeIndex != -1 && m_SelectedCurve != null)
- {
- var animCurve = m_SelectedCurve.animationCurveValue;
- var length = animCurve.length;
-
- if (m_Curves[m_SelectedCurve].minPointCount < length && length >= 0)
- {
- EditDeleteKeyframe(animCurve, m_SelectedKeyframeIndex);
- m_SelectedKeyframeIndex = -1;
- SaveCurve(m_SelectedCurve, animCurve);
- }
-
- e.Use();
- }
- }
- }
-
- void SaveCurve(SerializedProperty prop, AnimationCurve curve)
- {
- prop.animationCurveValue = curve;
- }
-
- void Invalidate()
- {
- m_Dirty = true;
- }
-
- #endregion
-
- #region Keyframe manipulations
-
- void SelectKeyframe(SerializedProperty curve, int keyframeIndex)
- {
- m_SelectedKeyframeIndex = keyframeIndex;
- m_SelectedCurve = curve;
- Invalidate();
- }
-
- void ContextMenuAddKey(Vector3 hit, bool createOnCurve)
- {
- SerializedObject serializedObject = null;
-
- foreach (var curve in m_Curves)
- {
- if (!curve.Value.editable || !curve.Value.visible)
- continue;
-
- var prop = curve.Key;
- var state = curve.Value;
-
- if (serializedObject == null)
- {
- serializedObject = prop.serializedObject;
- serializedObject.Update();
- }
-
- var animCurve = prop.animationCurveValue;
- EditCreateKeyframe(animCurve, hit, createOnCurve, state.zeroKeyConstantValue);
- SaveCurve(prop, animCurve);
- }
-
- if (serializedObject != null)
- serializedObject.ApplyModifiedProperties();
-
- Invalidate();
- }
-
- void EditCreateKeyframe(AnimationCurve curve, Vector3 position, bool createOnCurve, float zeroKeyConstantValue)
- {
- float tangent = EvaluateTangent(curve, position.x);
-
- if (createOnCurve)
- {
- position.y = curve.length == 0
- ? zeroKeyConstantValue
- : curve.Evaluate(position.x);
- }
-
- AddKeyframe(curve, new Keyframe(position.x, position.y, tangent, tangent));
- }
-
- void EditDeleteKeyframe(AnimationCurve curve, int keyframeIndex)
- {
- RemoveKeyframe(curve, keyframeIndex);
- }
-
- void AddKeyframe(AnimationCurve curve, Keyframe newValue)
- {
- curve.AddKey(newValue);
- Invalidate();
- }
-
- void RemoveKeyframe(AnimationCurve curve, int keyframeIndex)
- {
- curve.RemoveKey(keyframeIndex);
- Invalidate();
- }
-
- void SetKeyframe(AnimationCurve curve, int keyframeIndex, Keyframe newValue)
- {
- var keys = curve.keys;
-
- if (keyframeIndex > 0)
- newValue.time = Mathf.Max(keys[keyframeIndex - 1].time + settings.keyTimeClampingDistance, newValue.time);
-
- if (keyframeIndex < keys.Length - 1)
- newValue.time = Mathf.Min(keys[keyframeIndex + 1].time - settings.keyTimeClampingDistance, newValue.time);
-
- curve.MoveKey(keyframeIndex, newValue);
- Invalidate();
- }
-
- void EditMoveKeyframe(AnimationCurve curve, Keyframe[] keys, int keyframeIndex)
- {
- var key = CanvasToCurve(Event.current.mousePosition);
- float inTgt = keys[keyframeIndex].inTangent;
- float outTgt = keys[keyframeIndex].outTangent;
- SetKeyframe(curve, keyframeIndex, new Keyframe(key.x, key.y, inTgt, outTgt));
- }
-
- void EditMoveTangent(AnimationCurve curve, Keyframe[] keys, int keyframeIndex, Tangent targetTangent, bool linkTangents)
- {
- var pos = CanvasToCurve(Event.current.mousePosition);
-
- float time = keys[keyframeIndex].time;
- float value = keys[keyframeIndex].value;
-
- pos -= new Vector3(time, value);
-
- if (targetTangent == Tangent.In && pos.x > 0f)
- pos.x = 0f;
-
- if (targetTangent == Tangent.Out && pos.x < 0f)
- pos.x = 0f;
-
- float tangent;
-
- if (Mathf.Approximately(pos.x, 0f))
- tangent = pos.y < 0f ? float.PositiveInfinity : float.NegativeInfinity;
- else
- tangent = pos.y / pos.x;
-
- float inTangent = keys[keyframeIndex].inTangent;
- float outTangent = keys[keyframeIndex].outTangent;
-
- if (targetTangent == Tangent.In || linkTangents)
- inTangent = tangent;
- if (targetTangent == Tangent.Out || linkTangents)
- outTangent = tangent;
-
- SetKeyframe(curve, keyframeIndex, new Keyframe(time, value, inTangent, outTangent));
- }
-
- #endregion
-
- #region Maths utilities
-
- Vector3 CurveToCanvas(Keyframe keyframe)
- {
- return CurveToCanvas(new Vector3(keyframe.time, keyframe.value));
- }
-
- Vector3 CurveToCanvas(Vector3 position)
- {
- var bounds = settings.bounds;
- var output = new Vector3((position.x - bounds.x) / (bounds.xMax - bounds.x), (position.y - bounds.y) / (bounds.yMax - bounds.y));
- output.x = output.x * (m_CurveArea.xMax - m_CurveArea.xMin) + m_CurveArea.xMin;
- output.y = (1f - output.y) * (m_CurveArea.yMax - m_CurveArea.yMin) + m_CurveArea.yMin;
- return output;
- }
-
- Vector3 CanvasToCurve(Vector3 position)
- {
- var bounds = settings.bounds;
- var output = position;
- output.x = (output.x - m_CurveArea.xMin) / (m_CurveArea.xMax - m_CurveArea.xMin);
- output.y = (output.y - m_CurveArea.yMin) / (m_CurveArea.yMax - m_CurveArea.yMin);
- output.x = Mathf.Lerp(bounds.x, bounds.xMax, output.x);
- output.y = Mathf.Lerp(bounds.yMax, bounds.y, output.y);
- return output;
- }
-
- Vector3 CurveTangentToCanvas(float tangent)
- {
- if (!float.IsInfinity(tangent))
- {
- var bounds = settings.bounds;
- float ratio = (m_CurveArea.width / m_CurveArea.height) / ((bounds.xMax - bounds.x) / (bounds.yMax - bounds.y));
- return new Vector3(1f, -tangent / ratio).normalized;
- }
-
- return float.IsPositiveInfinity(tangent) ? Vector3.up : Vector3.down;
- }
-
- Vector3[] BezierSegment(Keyframe start, Keyframe end)
- {
- var segment = new Vector3[4];
-
- segment[0] = CurveToCanvas(new Vector3(start.time, start.value));
- segment[3] = CurveToCanvas(new Vector3(end.time, end.value));
-
- float middle = start.time + ((end.time - start.time) * 0.333333f);
- float middle2 = start.time + ((end.time - start.time) * 0.666666f);
-
- segment[1] = CurveToCanvas(new Vector3(middle, ProjectTangent(start.time, start.value, start.outTangent, middle)));
- segment[2] = CurveToCanvas(new Vector3(middle2, ProjectTangent(end.time, end.value, end.inTangent, middle2)));
-
- return segment;
- }
-
- Vector3[] HardSegment(Keyframe start, Keyframe end)
- {
- var segment = new Vector3[3];
-
- segment[0] = CurveToCanvas(start);
- segment[1] = CurveToCanvas(new Vector3(end.time, start.value));
- segment[2] = CurveToCanvas(end);
-
- return segment;
- }
-
- float ProjectTangent(float inPosition, float inValue, float inTangent, float projPosition)
- {
- return inValue + ((projPosition - inPosition) * inTangent);
- }
-
- float EvaluateTangent(AnimationCurve curve, float time)
- {
- int prev = -1, next = 0;
- for (int i = 0; i < curve.keys.Length; i++)
- {
- if (time > curve.keys[i].time)
- {
- prev = i;
- next = i + 1;
- }
- else break;
- }
-
- if (next == 0)
- return 0f;
-
- if (prev == curve.keys.Length - 1)
- return 0f;
-
- const float kD = 1e-3f;
- float tp = Mathf.Max(time - kD, curve.keys[prev].time);
- float tn = Mathf.Min(time + kD, curve.keys[next].time);
-
- float vp = curve.Evaluate(tp);
- float vn = curve.Evaluate(tn);
-
- if (Mathf.Approximately(tn, tp))
- return (vn - vp > 0f) ? float.PositiveInfinity : float.NegativeInfinity;
-
- return (vn - vp) / (tn - tp);
- }
-
- #endregion
- }
-}
diff --git a/JoystickVisualizer/Assets/PostProcessing/Editor/Utils/CurveEditor.cs.meta b/JoystickVisualizer/Assets/PostProcessing/Editor/Utils/CurveEditor.cs.meta
deleted file mode 100644
index 284d6c7..0000000
--- a/JoystickVisualizer/Assets/PostProcessing/Editor/Utils/CurveEditor.cs.meta
+++ /dev/null
@@ -1,12 +0,0 @@
-fileFormatVersion: 2
-guid: afb349ef0bffd144db2bdd25630f648e
-timeCreated: 1472650750
-licenseType: Store
-MonoImporter:
- serializedVersion: 2
- defaultReferences: []
- executionOrder: 0
- icon: {instanceID: 0}
- userData:
- assetBundleName:
- assetBundleVariant:
diff --git a/JoystickVisualizer/Assets/PostProcessing/Editor/Utils/EditorGUIHelper.cs b/JoystickVisualizer/Assets/PostProcessing/Editor/Utils/EditorGUIHelper.cs
deleted file mode 100644
index c0d4e1e..0000000
--- a/JoystickVisualizer/Assets/PostProcessing/Editor/Utils/EditorGUIHelper.cs
+++ /dev/null
@@ -1,194 +0,0 @@
-using System;
-using UnityEngine;
-using System.Collections.Generic;
-using System.Globalization;
-using System.Reflection;
-using UnityEngine.PostProcessing;
-
-namespace UnityEditor.PostProcessing
-{
- public static class EditorGUIHelper
- {
- static EditorGUIHelper()
- {
- s_GUIContentCache = new Dictionary();
- }
-
- #region GUIContent caching
-
- static Dictionary s_GUIContentCache;
-
- public static GUIContent GetContent(string textAndTooltip)
- {
- if (string.IsNullOrEmpty(textAndTooltip))
- return GUIContent.none;
-
- GUIContent content;
-
- if (!s_GUIContentCache.TryGetValue(textAndTooltip, out content))
- {
- var s = textAndTooltip.Split('|');
- content = new GUIContent(s[0]);
-
- if (s.Length > 1 && !string.IsNullOrEmpty(s[1]))
- content.tooltip = s[1];
-
- s_GUIContentCache.Add(textAndTooltip, content);
- }
-
- return content;
- }
-
- #endregion
-
- public static bool Header(string title, SerializedProperty group, Action resetAction)
- {
- var rect = GUILayoutUtility.GetRect(16f, 22f, FxStyles.header);
- GUI.Box(rect, title, FxStyles.header);
-
- var display = group == null || group.isExpanded;
-
- var foldoutRect = new Rect(rect.x + 4f, rect.y + 2f, 13f, 13f);
- var e = Event.current;
-
- var popupRect = new Rect(rect.x + rect.width - FxStyles.paneOptionsIcon.width - 5f, rect.y + FxStyles.paneOptionsIcon.height / 2f + 1f, FxStyles.paneOptionsIcon.width, FxStyles.paneOptionsIcon.height);
- GUI.DrawTexture(popupRect, FxStyles.paneOptionsIcon);
-
- if (e.type == EventType.Repaint)
- FxStyles.headerFoldout.Draw(foldoutRect, false, false, display, false);
-
- if (e.type == EventType.MouseDown)
- {
- if (popupRect.Contains(e.mousePosition))
- {
- var popup = new GenericMenu();
- popup.AddItem(GetContent("Reset"), false, () => resetAction());
- popup.AddSeparator(string.Empty);
- popup.AddItem(GetContent("Copy Settings"), false, () => CopySettings(group));
-
- if (CanPaste(group))
- popup.AddItem(GetContent("Paste Settings"), false, () => PasteSettings(group));
- else
- popup.AddDisabledItem(GetContent("Paste Settings"));
-
- popup.ShowAsContext();
- }
- else if (rect.Contains(e.mousePosition) && group != null)
- {
- display = !display;
-
- if (group != null)
- group.isExpanded = !group.isExpanded;
-
- e.Use();
- }
- }
-
- return display;
- }
-
- public static bool Header(string title, SerializedProperty group, SerializedProperty enabledField, Action resetAction)
- {
- var field = ReflectionUtils.GetFieldInfoFromPath(enabledField.serializedObject.targetObject, enabledField.propertyPath);
- object parent = null;
- PropertyInfo prop = null;
-
- if (field != null && field.IsDefined(typeof(GetSetAttribute), false))
- {
- var attr = (GetSetAttribute)field.GetCustomAttributes(typeof(GetSetAttribute), false)[0];
- parent = ReflectionUtils.GetParentObject(enabledField.propertyPath, enabledField.serializedObject.targetObject);
- prop = parent.GetType().GetProperty(attr.name);
- }
-
- var display = group == null || group.isExpanded;
- var enabled = enabledField.boolValue;
-
- var rect = GUILayoutUtility.GetRect(16f, 22f, FxStyles.header);
- GUI.Box(rect, title, FxStyles.header);
-
- var toggleRect = new Rect(rect.x + 4f, rect.y + 4f, 13f, 13f);
- var e = Event.current;
-
- var popupRect = new Rect(rect.x + rect.width - FxStyles.paneOptionsIcon.width - 5f, rect.y + FxStyles.paneOptionsIcon.height / 2f + 1f, FxStyles.paneOptionsIcon.width, FxStyles.paneOptionsIcon.height);
- GUI.DrawTexture(popupRect, FxStyles.paneOptionsIcon);
-
- if (e.type == EventType.Repaint)
- FxStyles.headerCheckbox.Draw(toggleRect, false, false, enabled, false);
-
- if (e.type == EventType.MouseDown)
- {
- const float kOffset = 2f;
- toggleRect.x -= kOffset;
- toggleRect.y -= kOffset;
- toggleRect.width += kOffset * 2f;
- toggleRect.height += kOffset * 2f;
-
- if (toggleRect.Contains(e.mousePosition))
- {
- enabledField.boolValue = !enabledField.boolValue;
-
- if (prop != null)
- prop.SetValue(parent, enabledField.boolValue, null);
-
- e.Use();
- }
- else if (popupRect.Contains(e.mousePosition))
- {
- var popup = new GenericMenu();
- popup.AddItem(GetContent("Reset"), false, () => resetAction());
- popup.AddSeparator(string.Empty);
- popup.AddItem(GetContent("Copy Settings"), false, () => CopySettings(group));
-
- if (CanPaste(group))
- popup.AddItem(GetContent("Paste Settings"), false, () => PasteSettings(group));
- else
- popup.AddDisabledItem(GetContent("Paste Settings"));
-
- popup.ShowAsContext();
- }
- else if (rect.Contains(e.mousePosition) && group != null)
- {
- display = !display;
- group.isExpanded = !group.isExpanded;
- e.Use();
- }
- }
-
- return display;
- }
-
- static void CopySettings(SerializedProperty settings)
- {
- var t = typeof(PostProcessingProfile);
- var settingsStruct = ReflectionUtils.GetFieldValueFromPath(settings.serializedObject.targetObject, ref t, settings.propertyPath);
- var serializedString = t.ToString() + '|' + JsonUtility.ToJson(settingsStruct);
- EditorGUIUtility.systemCopyBuffer = serializedString;
- }
-
- static bool CanPaste(SerializedProperty settings)
- {
- var data = EditorGUIUtility.systemCopyBuffer;
-
- if (string.IsNullOrEmpty(data))
- return false;
-
- var parts = data.Split('|');
-
- if (string.IsNullOrEmpty(parts[0]))
- return false;
-
- var field = ReflectionUtils.GetFieldInfoFromPath(settings.serializedObject.targetObject, settings.propertyPath);
- return parts[0] == field.FieldType.ToString();
- }
-
- static void PasteSettings(SerializedProperty settings)
- {
- Undo.RecordObject(settings.serializedObject.targetObject, "Paste effect settings");
- var field = ReflectionUtils.GetFieldInfoFromPath(settings.serializedObject.targetObject, settings.propertyPath);
- var json = EditorGUIUtility.systemCopyBuffer.Substring(field.FieldType.ToString().Length + 1);
- var obj = JsonUtility.FromJson(json, field.FieldType);
- var parent = ReflectionUtils.GetParentObject(settings.propertyPath, settings.serializedObject.targetObject);
- field.SetValue(parent, obj, BindingFlags.Public | BindingFlags.NonPublic | BindingFlags.Instance, null, CultureInfo.CurrentCulture);
- }
- }
-}
diff --git a/JoystickVisualizer/Assets/PostProcessing/Editor/Utils/EditorGUIHelper.cs.meta b/JoystickVisualizer/Assets/PostProcessing/Editor/Utils/EditorGUIHelper.cs.meta
deleted file mode 100644
index fcd783e..0000000
--- a/JoystickVisualizer/Assets/PostProcessing/Editor/Utils/EditorGUIHelper.cs.meta
+++ /dev/null
@@ -1,12 +0,0 @@
-fileFormatVersion: 2
-guid: 7226e17fa48c86148a3d15584e21b4cb
-timeCreated: 1460477750
-licenseType: Store
-MonoImporter:
- serializedVersion: 2
- defaultReferences: []
- executionOrder: 0
- icon: {instanceID: 0}
- userData:
- assetBundleName:
- assetBundleVariant:
diff --git a/JoystickVisualizer/Assets/PostProcessing/Editor/Utils/EditorResources.cs b/JoystickVisualizer/Assets/PostProcessing/Editor/Utils/EditorResources.cs
deleted file mode 100644
index aea193c..0000000
--- a/JoystickVisualizer/Assets/PostProcessing/Editor/Utils/EditorResources.cs
+++ /dev/null
@@ -1,58 +0,0 @@
-using UnityEngine;
-
-namespace UnityEditor.PostProcessing
-{
- using UnityObject = Object;
-
- static class EditorResources
- {
- static string m_EditorResourcesPath = string.Empty;
-
- internal static string editorResourcesPath
- {
- get
- {
- if (string.IsNullOrEmpty(m_EditorResourcesPath))
- {
- string path;
-
- if (SearchForEditorResourcesPath(out path))
- m_EditorResourcesPath = path;
- else
- Debug.LogError("Unable to locate editor resources. Make sure the PostProcessing package has been installed correctly.");
- }
-
- return m_EditorResourcesPath;
- }
- }
-
- internal static T Load(string name)
- where T : UnityObject
- {
- return AssetDatabase.LoadAssetAtPath(editorResourcesPath + name);
- }
-
- static bool SearchForEditorResourcesPath(out string path)
- {
- path = string.Empty;
-
- string searchStr = "/PostProcessing/Editor Resources/";
- string str = null;
-
- foreach (var assetPath in AssetDatabase.GetAllAssetPaths())
- {
- if (assetPath.Contains(searchStr))
- {
- str = assetPath;
- break;
- }
- }
-
- if (str == null)
- return false;
-
- path = str.Substring(0, str.LastIndexOf(searchStr) + searchStr.Length);
- return true;
- }
- }
-}
diff --git a/JoystickVisualizer/Assets/PostProcessing/Editor/Utils/EditorResources.cs.meta b/JoystickVisualizer/Assets/PostProcessing/Editor/Utils/EditorResources.cs.meta
deleted file mode 100644
index 4bfe35e..0000000
--- a/JoystickVisualizer/Assets/PostProcessing/Editor/Utils/EditorResources.cs.meta
+++ /dev/null
@@ -1,12 +0,0 @@
-fileFormatVersion: 2
-guid: a66d7b0165140a1439be89b5afc000fb
-timeCreated: 1476177015
-licenseType: Store
-MonoImporter:
- serializedVersion: 2
- defaultReferences: []
- executionOrder: 0
- icon: {instanceID: 0}
- userData:
- assetBundleName:
- assetBundleVariant:
diff --git a/JoystickVisualizer/Assets/PostProcessing/Editor/Utils/FxStyles.cs b/JoystickVisualizer/Assets/PostProcessing/Editor/Utils/FxStyles.cs
deleted file mode 100644
index e3a4dff..0000000
--- a/JoystickVisualizer/Assets/PostProcessing/Editor/Utils/FxStyles.cs
+++ /dev/null
@@ -1,111 +0,0 @@
-using UnityEngine;
-
-namespace UnityEditor.PostProcessing
-{
- public static class FxStyles
- {
- public static GUIStyle tickStyleRight;
- public static GUIStyle tickStyleLeft;
- public static GUIStyle tickStyleCenter;
-
- public static GUIStyle preSlider;
- public static GUIStyle preSliderThumb;
- public static GUIStyle preButton;
- public static GUIStyle preDropdown;
-
- public static GUIStyle preLabel;
- public static GUIStyle hueCenterCursor;
- public static GUIStyle hueRangeCursor;
-
- public static GUIStyle centeredBoldLabel;
- public static GUIStyle wheelThumb;
- public static Vector2 wheelThumbSize;
-
- public static GUIStyle header;
- public static GUIStyle headerCheckbox;
- public static GUIStyle headerFoldout;
-
- public static Texture2D playIcon;
- public static Texture2D checkerIcon;
- public static Texture2D paneOptionsIcon;
-
- public static GUIStyle centeredMiniLabel;
-
- static FxStyles()
- {
- tickStyleRight = new GUIStyle("Label")
- {
- alignment = TextAnchor.MiddleRight,
- fontSize = 9
- };
-
- tickStyleLeft = new GUIStyle("Label")
- {
- alignment = TextAnchor.MiddleLeft,
- fontSize = 9
- };
-
- tickStyleCenter = new GUIStyle("Label")
- {
- alignment = TextAnchor.MiddleCenter,
- fontSize = 9
- };
-
- preSlider = new GUIStyle("PreSlider");
- preSliderThumb = new GUIStyle("PreSliderThumb");
- preButton = new GUIStyle("PreButton");
- preDropdown = new GUIStyle("preDropdown");
-
- preLabel = new GUIStyle("ShurikenLabel");
-
- hueCenterCursor = new GUIStyle("ColorPicker2DThumb")
- {
- normal = { background = (Texture2D)EditorGUIUtility.LoadRequired("Builtin Skins/DarkSkin/Images/ShurikenPlus.png") },
- fixedWidth = 6,
- fixedHeight = 6
- };
-
- hueRangeCursor = new GUIStyle(hueCenterCursor)
- {
- normal = { background = (Texture2D)EditorGUIUtility.LoadRequired("Builtin Skins/DarkSkin/Images/CircularToggle_ON.png") }
- };
-
- wheelThumb = new GUIStyle("ColorPicker2DThumb");
-
- centeredBoldLabel = new GUIStyle(GUI.skin.GetStyle("Label"))
- {
- alignment = TextAnchor.UpperCenter,
- fontStyle = FontStyle.Bold
- };
-
- centeredMiniLabel = new GUIStyle(EditorStyles.centeredGreyMiniLabel)
- {
- alignment = TextAnchor.UpperCenter
- };
-
- wheelThumbSize = new Vector2(
- !Mathf.Approximately(wheelThumb.fixedWidth, 0f) ? wheelThumb.fixedWidth : wheelThumb.padding.horizontal,
- !Mathf.Approximately(wheelThumb.fixedHeight, 0f) ? wheelThumb.fixedHeight : wheelThumb.padding.vertical
- );
-
- header = new GUIStyle("ShurikenModuleTitle")
- {
- font = (new GUIStyle("Label")).font,
- border = new RectOffset(15, 7, 4, 4),
- fixedHeight = 22,
- contentOffset = new Vector2(20f, -2f)
- };
-
- headerCheckbox = new GUIStyle("ShurikenCheckMark");
- headerFoldout = new GUIStyle("Foldout");
-
- playIcon = (Texture2D)EditorGUIUtility.LoadRequired("Builtin Skins/DarkSkin/Images/IN foldout act.png");
- checkerIcon = (Texture2D)EditorGUIUtility.LoadRequired("Icons/CheckerFloor.png");
-
- if (EditorGUIUtility.isProSkin)
- paneOptionsIcon = (Texture2D)EditorGUIUtility.LoadRequired("Builtin Skins/DarkSkin/Images/pane options.png");
- else
- paneOptionsIcon = (Texture2D)EditorGUIUtility.LoadRequired("Builtin Skins/LightSkin/Images/pane options.png");
- }
- }
-}
diff --git a/JoystickVisualizer/Assets/PostProcessing/Editor/Utils/FxStyles.cs.meta b/JoystickVisualizer/Assets/PostProcessing/Editor/Utils/FxStyles.cs.meta
deleted file mode 100644
index c9c6a7e..0000000
--- a/JoystickVisualizer/Assets/PostProcessing/Editor/Utils/FxStyles.cs.meta
+++ /dev/null
@@ -1,12 +0,0 @@
-fileFormatVersion: 2
-guid: 8f31cf52f05e80c4ea48570d0c3c8f59
-timeCreated: 1461744717
-licenseType: Store
-MonoImporter:
- serializedVersion: 2
- defaultReferences: []
- executionOrder: 0
- icon: {instanceID: 0}
- userData:
- assetBundleName:
- assetBundleVariant:
diff --git a/JoystickVisualizer/Assets/PostProcessing/Editor/Utils/ReflectionUtils.cs b/JoystickVisualizer/Assets/PostProcessing/Editor/Utils/ReflectionUtils.cs
deleted file mode 100644
index 0dd92d1..0000000
--- a/JoystickVisualizer/Assets/PostProcessing/Editor/Utils/ReflectionUtils.cs
+++ /dev/null
@@ -1,124 +0,0 @@
-using System;
-using System.Collections.Generic;
-using System.Linq.Expressions;
-using System.Reflection;
-using System.Text;
-
-namespace UnityEditor.PostProcessing
-{
- public static class ReflectionUtils
- {
- static Dictionary, FieldInfo> s_FieldInfoFromPaths = new Dictionary, FieldInfo>();
-
- public static FieldInfo GetFieldInfoFromPath(object source, string path)
- {
- FieldInfo field = null;
- var kvp = new KeyValuePair