From f9515570cbfe61bef40a683052f9bd2e01689897 Mon Sep 17 00:00:00 2001 From: Sylvain Renault Date: Wed, 27 Apr 2022 14:19:05 +0200 Subject: [PATCH 1/7] Version using the world storage plugin (package) as a submodule. --- .gitmodules | 3 +++ Packages/manifest.json | 2 +- Packages/packages-lock.json | 4 ++-- Packages/unity-world-storage-package | 1 + UserSettings/EditorUserSettings.asset | 3 +++ 5 files changed, 10 insertions(+), 3 deletions(-) create mode 100644 .gitmodules create mode 160000 Packages/unity-world-storage-package diff --git a/.gitmodules b/.gitmodules new file mode 100644 index 0000000..8059e46 --- /dev/null +++ b/.gitmodules @@ -0,0 +1,3 @@ +[submodule "Packages/unity-world-storage-package"] + path = Packages/unity-world-storage-package + url = https://labs.etsi.org/rep/arf/world-storage-api-helpers/unity-world-storage-package.git diff --git a/Packages/manifest.json b/Packages/manifest.json index 7d93fb8..cead4b0 100644 --- a/Packages/manifest.json +++ b/Packages/manifest.json @@ -8,7 +8,7 @@ "com.unity.textmeshpro": "3.0.4", "com.unity.timeline": "1.4.7", "com.unity.ugui": "1.0.0", - "etsi.isg.arf.worldstorage": "file:D:/Fraunhofer/Projects/ETSI/ETSI Labs-STF/unity-world-storage-package", + "etsi.isg.arf.worldstorage": "file:../unity-world-storage-package", "com.unity.modules.ai": "1.0.0", "com.unity.modules.androidjni": "1.0.0", "com.unity.modules.animation": "1.0.0", diff --git a/Packages/packages-lock.json b/Packages/packages-lock.json index 598afa1..2b98cb4 100644 --- a/Packages/packages-lock.json +++ b/Packages/packages-lock.json @@ -81,9 +81,9 @@ } }, "etsi.isg.arf.worldstorage": { - "version": "file:D:/Fraunhofer/Projects/ETSI/ETSI Labs-STF/unity-world-storage-package", + "version": "file:unity-world-storage-package", "depth": 0, - "source": "local", + "source": "embedded", "dependencies": {} }, "com.unity.modules.ai": { diff --git a/Packages/unity-world-storage-package b/Packages/unity-world-storage-package new file mode 160000 index 0000000..11be4dd --- /dev/null +++ b/Packages/unity-world-storage-package @@ -0,0 +1 @@ +Subproject commit 11be4ddf097238232e569513fb17d319daccacc4 diff --git a/UserSettings/EditorUserSettings.asset b/UserSettings/EditorUserSettings.asset index a27413b..3ef73f4 100644 --- a/UserSettings/EditorUserSettings.asset +++ b/UserSettings/EditorUserSettings.asset @@ -11,6 +11,9 @@ EditorUserSettings: RecentlyUsedScenePath-1: value: 224247031146467e393d256c3111795f37253e6a1b27343c29692e27edf2353fe7a717d9ce750c3f3c0cea2f4b0d0032e2060c38f50e040e515fb31b1ff6040a flags: 0 + RecentlyUsedScenePath-2: + value: 224247031146467e393d256c3111795f37253e6a1b27343c29692e27edf2353fe7a717d9ce750c3f3c0cea2f4b090e2dfe0e3a1ff9190b0c143dfc0301f3155d04cb11d103 + flags: 0 vcSharedLogLevel: value: 0d5e400f0650 flags: 0 -- GitLab From 3cb3d4875f7f838ad10783ba4a435b56bc29e3b3 Mon Sep 17 00:00:00 2001 From: Sylvain Renault Date: Wed, 27 Apr 2022 14:22:05 +0200 Subject: [PATCH 2/7] Correct the package path. --- Packages/manifest.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Packages/manifest.json b/Packages/manifest.json index cead4b0..86d3520 100644 --- a/Packages/manifest.json +++ b/Packages/manifest.json @@ -8,7 +8,7 @@ "com.unity.textmeshpro": "3.0.4", "com.unity.timeline": "1.4.7", "com.unity.ugui": "1.0.0", - "etsi.isg.arf.worldstorage": "file:../unity-world-storage-package", + "etsi.isg.arf.worldstorage": "file:./unity-world-storage-package", "com.unity.modules.ai": "1.0.0", "com.unity.modules.androidjni": "1.0.0", "com.unity.modules.animation": "1.0.0", -- GitLab From 6a3ffd1d9c7f43cd911f838703cee3a06f9ad7fe Mon Sep 17 00:00:00 2001 From: Sylvain Renault Date: Fri, 29 Apr 2022 10:25:23 +0200 Subject: [PATCH 3/7] Little changes in scene. Renamed the server scriptables. --- .../Scenes/WorldStorageSample.unity | 44 +++++++++++++++++++ ...gs.asset => WorldStorageSettingsHHI.asset} | 5 ++- .../WorldStorageSettingsHHI.asset.meta | 8 ++++ .../WorldStorageSettingsHHI_Intern.asset | 18 ++++++++ ...WorldStorageSettingsHHI_Intern.asset.meta} | 0 Packages/unity-world-storage-package | 2 +- 6 files changed, 74 insertions(+), 3 deletions(-) rename Assets/ETSI.ARF/ARF World Storage API/Scriptables/{myWorldStorageSettings.asset => WorldStorageSettingsHHI.asset} (76%) create mode 100644 Assets/ETSI.ARF/ARF World Storage API/Scriptables/WorldStorageSettingsHHI.asset.meta create mode 100644 Assets/ETSI.ARF/ARF World Storage API/Scriptables/WorldStorageSettingsHHI_Intern.asset rename Assets/ETSI.ARF/ARF World Storage API/Scriptables/{myWorldStorageSettings.asset.meta => WorldStorageSettingsHHI_Intern.asset.meta} (100%) diff --git a/Assets/ETSI.ARF/ARF World Storage API/Scenes/WorldStorageSample.unity b/Assets/ETSI.ARF/ARF World Storage API/Scenes/WorldStorageSample.unity index 2e05d63..cb0bbf5 100644 --- a/Assets/ETSI.ARF/ARF World Storage API/Scenes/WorldStorageSample.unity +++ b/Assets/ETSI.ARF/ARF World Storage API/Scenes/WorldStorageSample.unity @@ -394,3 +394,47 @@ Transform: m_Father: {fileID: 0} m_RootOrder: 0 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!1 &1056454763 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1056454765} + - component: {fileID: 1056454764} + m_Layer: 0 + m_Name: ARFServer + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!114 &1056454764 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1056454763} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 02da7adcc65f4694684d71e61d88070b, type: 3} + m_Name: + m_EditorClassIdentifier: + worldStorageServer: {fileID: 11400000, guid: b656b4f6c38b83148a06d0ccd523227c, type: 2} +--- !u!4 &1056454765 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1056454763} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 0} + m_RootOrder: 3 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} diff --git a/Assets/ETSI.ARF/ARF World Storage API/Scriptables/myWorldStorageSettings.asset b/Assets/ETSI.ARF/ARF World Storage API/Scriptables/WorldStorageSettingsHHI.asset similarity index 76% rename from Assets/ETSI.ARF/ARF World Storage API/Scriptables/myWorldStorageSettings.asset rename to Assets/ETSI.ARF/ARF World Storage API/Scriptables/WorldStorageSettingsHHI.asset index 58c245c..7117b62 100644 --- a/Assets/ETSI.ARF/ARF World Storage API/Scriptables/myWorldStorageSettings.asset +++ b/Assets/ETSI.ARF/ARF World Storage API/Scriptables/WorldStorageSettingsHHI.asset @@ -10,8 +10,9 @@ MonoBehaviour: m_Enabled: 1 m_EditorHideFlags: 0 m_Script: {fileID: 11500000, guid: e4b7be4c33f68d0418c3b4e1a7053d91, type: 3} - m_Name: myWorldStorageSettings + m_Name: WorldStorageSettingsHHI m_EditorClassIdentifier: serverName: HHI Servers - basePath: https://localhosts + creatorUID: 9739c1d7-b86d-4894-9f4a-2e43ea6cfdf6 + basePath: https://ics1.hhi.fraunhofer.de port: 40311 diff --git a/Assets/ETSI.ARF/ARF World Storage API/Scriptables/WorldStorageSettingsHHI.asset.meta b/Assets/ETSI.ARF/ARF World Storage API/Scriptables/WorldStorageSettingsHHI.asset.meta new file mode 100644 index 0000000..77cd62f --- /dev/null +++ b/Assets/ETSI.ARF/ARF World Storage API/Scriptables/WorldStorageSettingsHHI.asset.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: fd253fbdf276d5e47bef25ba893dc7a4 +NativeFormatImporter: + externalObjects: {} + mainObjectFileID: 11400000 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/ETSI.ARF/ARF World Storage API/Scriptables/WorldStorageSettingsHHI_Intern.asset b/Assets/ETSI.ARF/ARF World Storage API/Scriptables/WorldStorageSettingsHHI_Intern.asset new file mode 100644 index 0000000..898ef1f --- /dev/null +++ b/Assets/ETSI.ARF/ARF World Storage API/Scriptables/WorldStorageSettingsHHI_Intern.asset @@ -0,0 +1,18 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!114 &11400000 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: e4b7be4c33f68d0418c3b4e1a7053d91, type: 3} + m_Name: WorldStorageSettingsHHI_Intern + m_EditorClassIdentifier: + serverName: HHI Servers (intern test) + creatorUID: 2af3e69e-91d6-4021-99d1-188917df8ea8 + basePath: http://vm009254.fe.hhi.de/ + port: 40311 diff --git a/Assets/ETSI.ARF/ARF World Storage API/Scriptables/myWorldStorageSettings.asset.meta b/Assets/ETSI.ARF/ARF World Storage API/Scriptables/WorldStorageSettingsHHI_Intern.asset.meta similarity index 100% rename from Assets/ETSI.ARF/ARF World Storage API/Scriptables/myWorldStorageSettings.asset.meta rename to Assets/ETSI.ARF/ARF World Storage API/Scriptables/WorldStorageSettingsHHI_Intern.asset.meta diff --git a/Packages/unity-world-storage-package b/Packages/unity-world-storage-package index 11be4dd..0fe54fb 160000 --- a/Packages/unity-world-storage-package +++ b/Packages/unity-world-storage-package @@ -1 +1 @@ -Subproject commit 11be4ddf097238232e569513fb17d319daccacc4 +Subproject commit 0fe54fb13060f8856ee7545408ef6c6329c832df -- GitLab From 02d752fd7a10def97b3bf742733cafdd6352156d Mon Sep 17 00:00:00 2001 From: Sylvain Renault Date: Tue, 24 May 2022 16:08:48 +0200 Subject: [PATCH 4/7] New API. Minor GUI changes (layout, Name of element) --- .../Editor/GraphWindow.cs | 14 ++- .../Editor/TrackableWindow.cs | 73 +++++++----- .../Editor/WorldAnchorWindow.cs | 61 ++++++++-- .../Editor/WorldStorageWindow.cs | 110 ++++++++++++++---- .../Scriptables/WorldStorageSettingsHHI.asset | 2 +- .../WorldStorageSettingsHHI_Intern.asset | 2 +- Packages/manifest.json | 1 + Packages/packages-lock.json | 26 +++++ Packages/unity-world-storage-package | 2 +- 9 files changed, 222 insertions(+), 69 deletions(-) diff --git a/Assets/ETSI.ARF/ARF World Storage API/Editor/GraphWindow.cs b/Assets/ETSI.ARF/ARF World Storage API/Editor/GraphWindow.cs index 170de27..6b1a69f 100644 --- a/Assets/ETSI.ARF/ARF World Storage API/Editor/GraphWindow.cs +++ b/Assets/ETSI.ARF/ARF World Storage API/Editor/GraphWindow.cs @@ -30,6 +30,7 @@ namespace ETSI.ARF.WorldStorage.UI bool groupEnabled; string uid = System.Guid.Empty.ToString(); + string customName = "NotDefined"; string creatorUid = System.Guid.Empty.ToString(); string type = "Unknow"; string unit = "Unknow"; @@ -117,6 +118,7 @@ namespace ETSI.ARF.WorldStorage.UI //graph.Draw(); } + /* void DrawTrackableStuffs()// Trackable trackable) { GUILayout.BeginVertical("AR Trackable", gsTest); @@ -133,9 +135,9 @@ namespace ETSI.ARF.WorldStorage.UI if (GUILayout.Button("Get Parameters")) { Trackable t = RESTfulTrackableRequest.GetTrackable(worldStorageSettings, uid); - creatorUid = t.CreatorUID.ToString(); + creatorUid = t.CreatorUUID.ToString(); type = t.GetType().ToString(); - unit = t.UnitSystem.ToString(); + unit = t.Unit.ToString(); } GUI.backgroundColor = ori; @@ -177,18 +179,18 @@ namespace ETSI.ARF.WorldStorage.UI { Debug.Log("PostAddTrackable"); if (string.IsNullOrEmpty(uid) || uid == "0") uid = System.Guid.Empty.ToString(); - Trackable t = RESTfulTrackableRequest.TrackableFromStrings(uid, worldStorageSettings.creatorUID); + Trackable t = RESTfulTrackableRequest.TrackableFromStrings(uid, cus, worldStorageSettings.creatorUID); RESTfulTrackableRequest.PostAddTrackable(worldStorageSettings, t); WorldStorageWindow.WorldStorageWindowSingleton.UpdateList(); WorldStorageWindow.WorldStorageWindowSingleton.Repaint(); - uid = t.UID.ToString(); + uid = t.UUID.ToString(); type = t.GetType().ToString(); - unit = t.UnitSystem.ToString(); + unit = t.Unit.ToString(); } GUI.backgroundColor = ori; } - + */ } } \ No newline at end of file diff --git a/Assets/ETSI.ARF/ARF World Storage API/Editor/TrackableWindow.cs b/Assets/ETSI.ARF/ARF World Storage API/Editor/TrackableWindow.cs index 447f2eb..9f30bc0 100644 --- a/Assets/ETSI.ARF/ARF World Storage API/Editor/TrackableWindow.cs +++ b/Assets/ETSI.ARF/ARF World Storage API/Editor/TrackableWindow.cs @@ -38,8 +38,9 @@ namespace ETSI.ARF.WorldStorage.UI bool groupEnabled; - string uid = System.Guid.Empty.ToString(); - string creatorUid = System.Guid.Empty.ToString(); + string UUID = System.Guid.Empty.ToString(); + string customName = "NotDefined"; + string creatorUUID = System.Guid.Empty.ToString(); string type = "Unknow"; string unit = "Unknow"; Vector2Int dim; @@ -72,7 +73,7 @@ namespace ETSI.ARF.WorldStorage.UI scrollPos = EditorGUILayout.BeginScrollView(scrollPos, GUILayout.ExpandWidth(true)); WorldStorageWindow.DrawCopyright(); - DrawTrackableStuffs();// currentTrackable); + DrawTrackableStuffs(); EditorGUILayout.EndScrollView(); @@ -87,20 +88,28 @@ namespace ETSI.ARF.WorldStorage.UI GUILayout.BeginVertical("AR Trackable", gsTest); // GUILayout.Label("Server: " + worldStorageSettings.serverName, EditorStyles.whiteLargeLabel); - GUILayout.Label("Creator UID: " + creatorUid, EditorStyles.miniLabel); // readonly EditorGUILayout.Space(); //GUILayout.BeginHorizontal(); - uid = EditorGUILayout.TextField("UID (0 = new one)", uid); + customName = EditorGUILayout.TextField("Name of Trackable", customName); + GUILayout.Label("UUID: " + UUID, EditorStyles.miniLabel); // readonly + GUILayout.Label("Creator UID: " + creatorUUID, EditorStyles.miniLabel); // readonly EditorGUILayout.Space(); GUI.backgroundColor = WorldStorageWindow.arfColors[1]; if (GUILayout.Button("Get Parameters")) { - Trackable t = RESTfulTrackableRequest.GetTrackable(worldStorageSettings, uid); - creatorUid = t.CreatorUID.ToString(); - type = t.GetType().ToString(); - unit = t.UnitSystem.ToString(); + if (!customName.Contains("[")) UUID = customName; + else + { + // extract the UUID + UUID = customName.Split('[', ']')[1]; + } + Trackable obj = RESTfulTrackableRequest.GetTrackable(worldStorageSettings, UUID); + customName = obj.Name; + creatorUUID = obj.CreatorUUID.ToString(); + type = obj.TrackableType.ToString(); + unit = obj.Unit.ToString(); } GUI.backgroundColor = ori; @@ -123,41 +132,45 @@ namespace ETSI.ARF.WorldStorage.UI // GUILayout.EndVertical(); + // ########################################################### + GUI.backgroundColor = WorldStorageWindow.arfColors[2]; + if (GUILayout.Button("Create/Update Trackable")) + { + Debug.Log("PostAddTrackable"); + + if (string.IsNullOrEmpty(UUID) || UUID == "0") UUID = System.Guid.Empty.ToString(); + Trackable obj = RESTfulTrackableRequest.TrackableFromStrings(UUID, customName, worldStorageSettings.creatorUID); + RESTfulTrackableRequest.AddTrackable(worldStorageSettings, obj); + WorldStorageWindow.WorldStorageWindowSingleton.UpdateListTrackables(); + WorldStorageWindow.WorldStorageWindowSingleton.Repaint(); + + UUID = obj.UUID.ToString(); + customName = obj.Name; + type = obj.TrackableType.ToString(); + unit = obj.Unit.ToString(); + } + + // ########################################################### GUI.backgroundColor = WorldStorageWindow.arfColors[3]; if (GUILayout.Button("Delete Trackable")) { Debug.Log("Deleting Trackable"); - RESTfulTrackableRequest.DeleteTrackable(worldStorageSettings, uid); - uid = System.Guid.Empty.ToString(); - creatorUid = System.Guid.Empty.ToString(); + RESTfulTrackableRequest.DeleteTrackable(worldStorageSettings, UUID); + UUID = System.Guid.Empty.ToString(); + creatorUUID = System.Guid.Empty.ToString(); type = ""; unit = ""; - WorldStorageWindow.WorldStorageWindowSingleton.UpdateList(); + WorldStorageWindow.WorldStorageWindowSingleton.UpdateListTrackables(); WorldStorageWindow.WorldStorageWindowSingleton.Repaint(); } GUI.backgroundColor = ori; - GUI.backgroundColor = WorldStorageWindow.arfColors[2]; - if (GUILayout.Button("Create/Update Trackable")) - { - Debug.Log("PostAddTrackable"); - if (string.IsNullOrEmpty(uid) || uid == "0") uid = System.Guid.Empty.ToString(); - Trackable t = RESTfulTrackableRequest.TrackableFromStrings(uid, worldStorageSettings.creatorUID); - RESTfulTrackableRequest.PostAddTrackable(worldStorageSettings, t); - WorldStorageWindow.WorldStorageWindowSingleton.UpdateList(); - WorldStorageWindow.WorldStorageWindowSingleton.Repaint(); - - uid = t.UID.ToString(); - type = t.GetType().ToString(); - unit = t.UnitSystem.ToString(); - } + // ########################################################### GUI.backgroundColor = WorldStorageWindow.arfColors[5]; if (GUILayout.Button("Generate GameObject Component")) { } - GUI.backgroundColor = ori; + GUI.backgroundColor = ori; } - - } } \ No newline at end of file diff --git a/Assets/ETSI.ARF/ARF World Storage API/Editor/WorldAnchorWindow.cs b/Assets/ETSI.ARF/ARF World Storage API/Editor/WorldAnchorWindow.cs index a77ad6c..463dfca 100644 --- a/Assets/ETSI.ARF/ARF World Storage API/Editor/WorldAnchorWindow.cs +++ b/Assets/ETSI.ARF/ARF World Storage API/Editor/WorldAnchorWindow.cs @@ -37,9 +37,9 @@ namespace ETSI.ARF.WorldStorage.UI bool groupEnabled; - string creatorUid = System.Guid.Empty.ToString(); - string uid = System.Guid.Empty.ToString(); - string type = "Unknow"; + string UUID = System.Guid.Empty.ToString(); + string customName = "NotDefined"; + string creatorUUID = System.Guid.Empty.ToString(); string unit = "Unknow"; Vector2Int dim; @@ -67,7 +67,9 @@ namespace ETSI.ARF.WorldStorage.UI scrollPos = EditorGUILayout.BeginScrollView(scrollPos, GUILayout.ExpandWidth(true)); WorldStorageWindow.DrawCopyright(); + DrawAnchorStuffs(); + EditorGUILayout.EndScrollView(); if (GUILayout.Button("Close Window")) @@ -81,24 +83,36 @@ namespace ETSI.ARF.WorldStorage.UI GUILayout.BeginVertical("AR World Anchor", gsTest); // GUILayout.Label("Server: " + worldStorageSettings.serverName, EditorStyles.whiteLargeLabel); - GUILayout.Label("Creator UID: " + creatorUid, EditorStyles.miniLabel); // readonly EditorGUILayout.Space(); //GUILayout.BeginHorizontal(); - uid = EditorGUILayout.TextField("UID (0 = create new)", uid); + customName = EditorGUILayout.TextField("Name of Anchor", customName); + GUILayout.Label("UUID: " + UUID, EditorStyles.miniLabel); // readonly + GUILayout.Label("Creator UID: " + creatorUUID, EditorStyles.miniLabel); // readonly EditorGUILayout.Space(); GUI.backgroundColor = WorldStorageWindow.arfColors[1]; if (GUILayout.Button("Get Parameters")) { - //WorldStorageRestRequest.PostAddTrackable(worldStorageSettings); + if (!customName.Contains("[")) UUID = customName; + else + { + // extract the UUID + UUID = customName.Split('[', ']')[1]; + } + WorldAnchor obj = RESTfulWorldAnchorRequest.GetWorldAnchor(worldStorageSettings, UUID); + customName = obj.Name; + creatorUUID = obj.CreatorUUID.ToString(); + unit = obj.Unit.ToString(); } GUI.backgroundColor = ori; //GUILayout.EndHorizontal(); - type = EditorGUILayout.TextField("Anchor Type", type); unit = EditorGUILayout.TextField("Unit System", unit); + EditorGUILayout.Space(10); + dim = EditorGUILayout.Vector2IntField("Dimension", dim); + EditorGUILayout.Space(); groupEnabled = EditorGUILayout.BeginToggleGroup("Optional Parameters:", groupEnabled); EditorGUILayout.IntField("Number of KeyValues", 0); @@ -106,15 +120,44 @@ namespace ETSI.ARF.WorldStorage.UI EditorGUILayout.TextField("Key", ""); EditorGUILayout.TextField("Value", ""); EditorGUILayout.EndToggleGroup(); - // GUILayout.EndVertical(); + // ########################################################### GUI.backgroundColor = WorldStorageWindow.arfColors[2]; if (GUILayout.Button("Create/Update World Anchor")) { Debug.Log("PostAddWorldAnchor"); - RESTfulWorldAnchorRequest.PostAddWorldAnchor(worldStorageSettings); + + if (string.IsNullOrEmpty(UUID) || UUID == "0") UUID = System.Guid.Empty.ToString(); + WorldAnchor obj = RESTfulWorldAnchorRequest.WorldAnchorFromStrings(UUID, customName, worldStorageSettings.creatorUID); + RESTfulWorldAnchorRequest.AddWorldAnchor(worldStorageSettings, obj); + WorldStorageWindow.WorldStorageWindowSingleton.UpdateListWorldAnchors(); + WorldStorageWindow.WorldStorageWindowSingleton.Repaint(); + + UUID = obj.UUID.ToString(); + customName = obj.Name; + unit = obj.Unit.ToString(); + } + + // ########################################################### + GUI.backgroundColor = WorldStorageWindow.arfColors[3]; + if (GUILayout.Button("Delete World Anchor")) + { + Debug.Log("Deleting World Anchor"); + RESTfulWorldAnchorRequest.DeleteWorldAnchor(worldStorageSettings, UUID); + UUID = System.Guid.Empty.ToString(); + creatorUUID = System.Guid.Empty.ToString(); + unit = ""; + WorldStorageWindow.WorldStorageWindowSingleton.UpdateListWorldAnchors(); + WorldStorageWindow.WorldStorageWindowSingleton.Repaint(); + } + GUI.backgroundColor = ori; + + // ########################################################### + GUI.backgroundColor = WorldStorageWindow.arfColors[5]; + if (GUILayout.Button("Generate GameObject Component")) + { } GUI.backgroundColor = ori; } diff --git a/Assets/ETSI.ARF/ARF World Storage API/Editor/WorldStorageWindow.cs b/Assets/ETSI.ARF/ARF World Storage API/Editor/WorldStorageWindow.cs index 9424cfa..b4edd9a 100644 --- a/Assets/ETSI.ARF/ARF World Storage API/Editor/WorldStorageWindow.cs +++ b/Assets/ETSI.ARF/ARF World Storage API/Editor/WorldStorageWindow.cs @@ -8,7 +8,7 @@ // Authors: // - Sylvain Renault (Fraunhofer HHI) // -// Date: Feb. 2022 +// Date: May 2022 // #define USING_OPENAPI_GENERATOR // alt. is Swagger @@ -17,6 +17,7 @@ using System.Collections; using System.Collections.Generic; using UnityEngine; using UnityEditor; +using ETSI.ARF.WorldStorage; using ETSI.ARF.WorldStorage.RESTful; #if USING_OPENAPI_GENERATOR @@ -38,7 +39,10 @@ namespace ETSI.ARF.WorldStorage.UI [SerializeField] public List creators = new List(); [SerializeField] public List trackables = new List(); + [SerializeField] public List anchors = new List(); + string ping = "-"; + string state = "Unknow"; string vers = "Unknow"; private Vector2 scrollPos; @@ -108,7 +112,7 @@ namespace ETSI.ARF.WorldStorage.UI EditorGUILayout.EndScrollView(); } - public void UpdateList() + public void UpdateListTrackables() { // Get all objects Debug.Log("Get all server objects"); @@ -116,7 +120,21 @@ namespace ETSI.ARF.WorldStorage.UI trackables.Clear(); foreach (var item in res) { - trackables.Add(item.UID.ToString()); + if (!string.IsNullOrEmpty(item.Name)) trackables.Add(item.Name + " [" + item.UUID.ToString() + "]"); + else trackables.Add(item.UUID.ToString()); + } + } + + public void UpdateListWorldAnchors() + { + // Get all objects + Debug.Log("Get all server objects"); + List res = RESTfulWorldAnchorRequest.GetAllWorldAnchors(worldStorageSettings); + anchors.Clear(); + foreach (var item in res) + { + if (!string.IsNullOrEmpty(item.Name)) anchors.Add(item.Name + " [" + item.UUID.ToString() + "]"); + else anchors.Add(item.UUID.ToString()); } } @@ -134,29 +152,46 @@ namespace ETSI.ARF.WorldStorage.UI EditorGUILayout.Space(); - // Ping - EditorGUILayout.Space(); + #region Ping + GUILayout.BeginHorizontal(); + ping = EditorGUILayout.TextField("Last Ping", ping); if (GUILayout.Button("Ping")) { - vers = RESTfulAdminRequest.Ping(worldStorageSettings); + ping = RESTfulAdminRequest.Ping(worldStorageSettings); } + GUI.backgroundColor = ori; + GUILayout.EndHorizontal(); + #endregion - // Version + #region State + GUILayout.BeginHorizontal(); + state = EditorGUILayout.TextField("State", state); + + if (GUILayout.Button("Get World Storage Sate")) + { + state = RESTfulAdminRequest.GetAdminInfo(worldStorageSettings); + } + GUI.backgroundColor = ori; + GUILayout.EndHorizontal(); + #endregion + + #region Version GUILayout.BeginHorizontal(); vers = EditorGUILayout.TextField("Version", vers); if (GUILayout.Button("Get World Storage API Version")) { - vers = RESTfulAdminRequest.GetAdminInfo(worldStorageSettings); + vers = RESTfulAdminRequest.GetVersion(worldStorageSettings); } GUI.backgroundColor = ori; GUILayout.EndHorizontal(); + #endregion ScriptableObject target = this; SerializedObject so = new SerializedObject(target); // Get creators - #region Get all creatorUid + #region Get all creator UUID EditorGUILayout.Space(10); GUI.backgroundColor = WorldStorageWindow.arfColors[1]; if (GUILayout.Button("Request all Creator ID")) @@ -167,7 +202,7 @@ namespace ETSI.ARF.WorldStorage.UI creators.Clear(); foreach (var item in res) { - if (!creators.Contains(item.CreatorUID.ToString())) creators.Add(item.CreatorUID.ToString()); + if (!creators.Contains(item.CreatorUUID.ToString())) creators.Add(item.CreatorUUID.ToString()); } } GUI.backgroundColor = ori; @@ -177,51 +212,84 @@ namespace ETSI.ARF.WorldStorage.UI so.ApplyModifiedProperties(); // Remember to apply modified properties #endregion + // // Get trackables + // #region Get all trackable objects EditorGUILayout.Space(10); + + // ########################################################### GUI.backgroundColor = WorldStorageWindow.arfColors[1]; - if (GUILayout.Button("Request all Trackable ID")) + if (GUILayout.Button("Request Trackables")) { - UpdateList(); + UpdateListTrackables(); } GUI.backgroundColor = ori; - //GUILayout.Label("Number of Trackables: " + trackables.Count.ToString()); + // ########################################################### GUI.backgroundColor = WorldStorageWindow.arfColors[3]; - if (GUILayout.Button("Delete all Trackables (5 stay in!!!)")) + if (GUILayout.Button("Delete all Trackables (3 stay in!!!)")) { Debug.Log("Deleting all Trackable "); int n = 0; foreach (var item in trackables) { - if (++n > 5) RESTfulTrackableRequest.DeleteTrackable(worldStorageSettings, item); + if (++n > 3) RESTfulTrackableRequest.DeleteTrackable(worldStorageSettings, item); } - UpdateList(); + UpdateListTrackables(); WorldStorageWindow.WorldStorageWindowSingleton.Repaint(); } GUI.backgroundColor = ori; + // Show list stringsProperty = so.FindProperty("trackables"); EditorGUILayout.PropertyField(stringsProperty, /*new GUIContent("Trackbales"),*/ true); // True means show children so.ApplyModifiedProperties(); // Remember to apply modified properties #endregion - // Anchors + // + // Get anchors + // #region Get all anchor objects + EditorGUILayout.Space(10); + + // ########################################################### GUI.backgroundColor = WorldStorageWindow.arfColors[1]; - if (GUILayout.Button("Request all Anchor ID")) + if (GUILayout.Button("Request Anchors")) { - + UpdateListWorldAnchors(); + } + GUI.backgroundColor = ori; + + // ########################################################### + GUI.backgroundColor = WorldStorageWindow.arfColors[3]; + if (GUILayout.Button("Delete all World Anchors (3 stay in!!!)")) + { + Debug.Log("Deleting all World Anchors "); + int n = 0; + foreach (var item in anchors) + { + if (++n > 3) RESTfulWorldAnchorRequest.DeleteWorldAnchor(worldStorageSettings, item); + } + + UpdateListWorldAnchors(); + WorldStorageWindow.WorldStorageWindowSingleton.Repaint(); } GUI.backgroundColor = ori; + + // Show list + stringsProperty = so.FindProperty("anchors"); + EditorGUILayout.PropertyField(stringsProperty, /*new GUIContent("Trackbales"),*/ true); // True means show children + so.ApplyModifiedProperties(); // Remember to apply modified properties #endregion - // Links + // + // Get Links + // #region Get all link objects GUI.backgroundColor = WorldStorageWindow.arfColors[1]; - if (GUILayout.Button("Request all Link ID")) + if (GUILayout.Button("Request all Link UUID")) { } diff --git a/Assets/ETSI.ARF/ARF World Storage API/Scriptables/WorldStorageSettingsHHI.asset b/Assets/ETSI.ARF/ARF World Storage API/Scriptables/WorldStorageSettingsHHI.asset index 7117b62..e6bbc21 100644 --- a/Assets/ETSI.ARF/ARF World Storage API/Scriptables/WorldStorageSettingsHHI.asset +++ b/Assets/ETSI.ARF/ARF World Storage API/Scriptables/WorldStorageSettingsHHI.asset @@ -15,4 +15,4 @@ MonoBehaviour: serverName: HHI Servers creatorUID: 9739c1d7-b86d-4894-9f4a-2e43ea6cfdf6 basePath: https://ics1.hhi.fraunhofer.de - port: 40311 + port: 8080 diff --git a/Assets/ETSI.ARF/ARF World Storage API/Scriptables/WorldStorageSettingsHHI_Intern.asset b/Assets/ETSI.ARF/ARF World Storage API/Scriptables/WorldStorageSettingsHHI_Intern.asset index 898ef1f..6cc0c7e 100644 --- a/Assets/ETSI.ARF/ARF World Storage API/Scriptables/WorldStorageSettingsHHI_Intern.asset +++ b/Assets/ETSI.ARF/ARF World Storage API/Scriptables/WorldStorageSettingsHHI_Intern.asset @@ -15,4 +15,4 @@ MonoBehaviour: serverName: HHI Servers (intern test) creatorUID: 2af3e69e-91d6-4021-99d1-188917df8ea8 basePath: http://vm009254.fe.hhi.de/ - port: 40311 + port: 8080 diff --git a/Packages/manifest.json b/Packages/manifest.json index 86d3520..6a17a2d 100644 --- a/Packages/manifest.json +++ b/Packages/manifest.json @@ -7,6 +7,7 @@ "com.unity.test-framework": "1.1.24", "com.unity.textmeshpro": "3.0.4", "com.unity.timeline": "1.4.7", + "com.unity.toolchain.win-x86_64-linux-x86_64": "2.0.0", "com.unity.ugui": "1.0.0", "etsi.isg.arf.worldstorage": "file:./unity-world-storage-package", "com.unity.modules.ai": "1.0.0", diff --git a/Packages/packages-lock.json b/Packages/packages-lock.json index 2b98cb4..2c2ade1 100644 --- a/Packages/packages-lock.json +++ b/Packages/packages-lock.json @@ -39,6 +39,22 @@ "dependencies": {}, "url": "https://packages.unity.com" }, + "com.unity.sysroot": { + "version": "2.0.0", + "depth": 1, + "source": "registry", + "dependencies": {}, + "url": "https://packages.unity.com" + }, + "com.unity.sysroot.linux-x86_64": { + "version": "2.0.0", + "depth": 1, + "source": "registry", + "dependencies": { + "com.unity.sysroot": "2.0.0" + }, + "url": "https://packages.unity.com" + }, "com.unity.test-framework": { "version": "1.1.24", "depth": 0, @@ -71,6 +87,16 @@ }, "url": "https://packages.unity.com" }, + "com.unity.toolchain.win-x86_64-linux-x86_64": { + "version": "2.0.0", + "depth": 0, + "source": "registry", + "dependencies": { + "com.unity.sysroot": "2.0.0", + "com.unity.sysroot.linux-x86_64": "2.0.0" + }, + "url": "https://packages.unity.com" + }, "com.unity.ugui": { "version": "1.0.0", "depth": 0, diff --git a/Packages/unity-world-storage-package b/Packages/unity-world-storage-package index 0fe54fb..8a3fc6a 160000 --- a/Packages/unity-world-storage-package +++ b/Packages/unity-world-storage-package @@ -1 +1 @@ -Subproject commit 0fe54fb13060f8856ee7545408ef6c6329c832df +Subproject commit 8a3fc6a294f022a0c733c65af2b6cf564a3666b9 -- GitLab From 10f33679331716dbbb13f6e2887b00c7ba892a31 Mon Sep 17 00:00:00 2001 From: Sylvain Renault Date: Tue, 31 May 2022 18:15:25 +0200 Subject: [PATCH 5/7] Refacturing server, user. Changed some folder, script names, namespace... --- .../Editor/{ => Graph}/GraphWindow.cs | 8 +- .../Editor/{ => Graph}/GraphWindow.cs.meta | 0 .../Editor/GraphMathScript.cs | 450 -------- .../{Scriptables.meta => Editor/Windows.meta} | 2 +- .../Editor/{ => Windows}/TrackableWindow.cs | 80 +- .../{ => Windows}/TrackableWindow.cs.meta | 0 .../Editor/{ => Windows}/WorldAnchorWindow.cs | 76 +- .../{ => Windows}/WorldAnchorWindow.cs.meta | 0 .../{ => Windows}/WorldStorageWindow.cs | 78 +- .../{ => Windows}/WorldStorageWindow.cs.meta | 0 ...sEditor.cs => WorldStorageServerEditor.cs} | 24 +- ....meta => WorldStorageServerEditor.cs.meta} | 0 .../Editor/WorldStorageUserEditor.cs | 54 + ...cs.meta => WorldStorageUserEditor.cs.meta} | 2 +- ..._Detlef.asset => HHI Server - local.asset} | 6 +- ...set.meta => HHI Server - local.asset.meta} | 2 +- .../HHI Server.asset} | 8 +- .../HHI Server.asset.meta} | 2 +- .../Sylvain.asset} | 10 +- .../Sylvain.asset.meta} | 2 +- .../Scenes/WorldStorageSample.unity | 4 +- Packages/unity-world-storage-package | 2 +- ProjectSettings/MemorySettings.asset | 35 + ProjectSettings/boot.config | 0 UserSettings/EditorUserSettings.asset | 3 + UserSettings/Layouts/default-2021.dwlt | 1020 +++++++++++++++++ 26 files changed, 1310 insertions(+), 558 deletions(-) rename Assets/ETSI.ARF/ARF World Storage API/Editor/{ => Graph}/GraphWindow.cs (96%) rename Assets/ETSI.ARF/ARF World Storage API/Editor/{ => Graph}/GraphWindow.cs.meta (100%) delete mode 100644 Assets/ETSI.ARF/ARF World Storage API/Editor/GraphMathScript.cs rename Assets/ETSI.ARF/ARF World Storage API/{Scriptables.meta => Editor/Windows.meta} (77%) rename Assets/ETSI.ARF/ARF World Storage API/Editor/{ => Windows}/TrackableWindow.cs (68%) rename Assets/ETSI.ARF/ARF World Storage API/Editor/{ => Windows}/TrackableWindow.cs.meta (100%) rename Assets/ETSI.ARF/ARF World Storage API/Editor/{ => Windows}/WorldAnchorWindow.cs (67%) rename Assets/ETSI.ARF/ARF World Storage API/Editor/{ => Windows}/WorldAnchorWindow.cs.meta (100%) rename Assets/ETSI.ARF/ARF World Storage API/Editor/{ => Windows}/WorldStorageWindow.cs (82%) rename Assets/ETSI.ARF/ARF World Storage API/Editor/{ => Windows}/WorldStorageWindow.cs.meta (100%) rename Assets/ETSI.ARF/ARF World Storage API/Editor/{WorldStorageSettingsEditor.cs => WorldStorageServerEditor.cs} (61%) rename Assets/ETSI.ARF/ARF World Storage API/Editor/{WorldStorageSettingsEditor.cs.meta => WorldStorageServerEditor.cs.meta} (100%) create mode 100644 Assets/ETSI.ARF/ARF World Storage API/Editor/WorldStorageUserEditor.cs rename Assets/ETSI.ARF/ARF World Storage API/Editor/{GraphMathScript.cs.meta => WorldStorageUserEditor.cs.meta} (83%) rename Assets/ETSI.ARF/ARF World Storage API/Scenes/{WorldStorageSettings_HHI_Detlef.asset => HHI Server - local.asset} (75%) rename Assets/ETSI.ARF/ARF World Storage API/Scenes/{WorldStorageSettings_HHI_Detlef.asset.meta => HHI Server - local.asset.meta} (79%) rename Assets/ETSI.ARF/ARF World Storage API/{Scriptables/WorldStorageSettingsHHI.asset => Scenes/HHI Server.asset} (68%) rename Assets/ETSI.ARF/ARF World Storage API/{Scriptables/WorldStorageSettingsHHI_Intern.asset.meta => Scenes/HHI Server.asset.meta} (79%) rename Assets/ETSI.ARF/ARF World Storage API/{Scriptables/WorldStorageSettingsHHI_Intern.asset => Scenes/Sylvain.asset} (53%) rename Assets/ETSI.ARF/ARF World Storage API/{Scriptables/WorldStorageSettingsHHI.asset.meta => Scenes/Sylvain.asset.meta} (79%) create mode 100644 ProjectSettings/MemorySettings.asset create mode 100644 ProjectSettings/boot.config create mode 100644 UserSettings/Layouts/default-2021.dwlt diff --git a/Assets/ETSI.ARF/ARF World Storage API/Editor/GraphWindow.cs b/Assets/ETSI.ARF/ARF World Storage API/Editor/Graph/GraphWindow.cs similarity index 96% rename from Assets/ETSI.ARF/ARF World Storage API/Editor/GraphWindow.cs rename to Assets/ETSI.ARF/ARF World Storage API/Editor/Graph/GraphWindow.cs index 6b1a69f..0afeea9 100644 --- a/Assets/ETSI.ARF/ARF World Storage API/Editor/GraphWindow.cs +++ b/Assets/ETSI.ARF/ARF World Storage API/Editor/Graph/GraphWindow.cs @@ -7,7 +7,7 @@ using UnityEditor; using UnityEditor.Experimental.GraphView; using UnityEngine.UIElements; using UnityEditor.UIElements; -using ETSI.ARF.WorldStorage.RESTful; +using ETSI.ARF.WorldStorage.REST; #if USING_OPENAPI_GENERATOR using Org.OpenAPITools.Api; @@ -23,7 +23,7 @@ namespace ETSI.ARF.WorldStorage.UI public class GraphWindow : EditorWindow { - [HideInInspector] public WorldStorageSettings worldStorageSettings; + [HideInInspector] public WorldStorageServer worldStorageSettings; [SerializeField] public List trackables = new List(); @@ -43,8 +43,8 @@ namespace ETSI.ARF.WorldStorage.UI private ARFGraphView myGraph; - [MenuItem("[ ISG-ARF ]/Graph Editor")] - public static void ShowWindow()//WorldStorageSettings ws) + [MenuItem("ARFWorldStorage/Graph Editor")] + public static void ShowWindow()//WorldStorageServer ws) { GraphWindow win = EditorWindow.GetWindow(typeof(GraphWindow), false, WorldStorageWindow.winName) as GraphWindow; //win.worldStorageSettings = ws; diff --git a/Assets/ETSI.ARF/ARF World Storage API/Editor/GraphWindow.cs.meta b/Assets/ETSI.ARF/ARF World Storage API/Editor/Graph/GraphWindow.cs.meta similarity index 100% rename from Assets/ETSI.ARF/ARF World Storage API/Editor/GraphWindow.cs.meta rename to Assets/ETSI.ARF/ARF World Storage API/Editor/Graph/GraphWindow.cs.meta diff --git a/Assets/ETSI.ARF/ARF World Storage API/Editor/GraphMathScript.cs b/Assets/ETSI.ARF/ARF World Storage API/Editor/GraphMathScript.cs deleted file mode 100644 index 0d106c5..0000000 --- a/Assets/ETSI.ARF/ARF World Storage API/Editor/GraphMathScript.cs +++ /dev/null @@ -1,450 +0,0 @@ -// Source: -// https://gist.github.com/thelastpointer/c52c4b1f147dc47961798e39e3a7ea10 - - -/* - EditorGraph -- quickly draw graphs in the inspector. - Place this in a folder named 'Editor'. -*/ - -/* - USAGE: - public override void OnInspectorGUI() - { - base.OnInspectorGUI(); - - TLP.Editor.EditorGraph graph = new TLP.Editor.EditorGraph(0, -1, 10, 1, "Just a sin wave", 100); - graph.AddFunction(x => Mathf.Sin(x)); - graph.Draw(); - } - - MORE COMPLICATED USAGE: - public override void OnInspectorGUI() - { - base.OnInspectorGUI(); - - TLP.Editor.EditorGraph graph = new TLP.Editor.EditorGraph(0, -1, 10, 1, "Another sin wave!", 100); - graph.AddFunction(x => Mathf.Sin(x)); - - // Another function with a different color - graph.AddFunction(x => Mathf.Sin(x * 2), Color.cyan); - - // Do something when the graph is clicked on - graph.AddClickEvent((x, y) => Debug.LogFormat("You clicked at {0};{1}. The sin value for that is {2}", x, y, Mathf.Sin(x))); - - // Edit some colors... - graph.Colors.Background = new Color(0.2f, 0.2f, 0.2f, 1f); - - // Add two vertical lines - graph.AddLineX(Mathf.PI); - graph.AddLineX(Mathf.PI * 2); - - // Add a horizontal line with different color - graph.AddLineY(0, Color.gray); - - graph.Draw(); - } -*/ - -using UnityEngine; -using UnityEditor; -using System.Collections.Generic; - -namespace TLP.Editor -{ - /// - /// Draw graphs in the inspector. - /// - public class EditorGraph - { - /// - /// Title of the graph. - /// - public string Title; - - /// - /// Vertical helper line distance, in graph units (a vertical line will be drawn every X units, starting at minimum X). Set 0 to disable. - /// - /// There will be at most one line per every two pixels. - public float GridLinesX = 0; - /// - /// Horizontal helper line distance, in graph units (a horizontal line will be drawn every Y units, starting at minimum Y). Set 0 to disable. - /// - /// There will be at most one line per every two pixels. - public float GridLinesY = 0; - - /// - /// Color settings. - /// - public GraphColors Colors; - - /// - /// Resolution of the graph -- how many points are evaluated and rendered for custom functions. - /// - public int GraphResolution = 48; - - /// - /// Constructor. - /// - /// Minimum X value in graph units. - /// Minimum Y value in graph units. - /// Maximum X value in graph units. - /// Maximum Y value in graph units. - /// Title of the graph (optional). - /// Resolution of the graphs (how many points are evaluated for each custom function). - public EditorGraph(float _minX, float _minY, float _maxX, float _maxY, string _title = "", int _resolution = 48) - { - if (_minX >= _maxX) - throw new System.ArgumentException("Editor graph: minimum X value must be greater than maximum!", "_minX"); - if (_minY >= _maxY) - throw new System.ArgumentException("Editor graph: minimum Y value must be greater than maximum!", "_minY"); - - minX = _minX; - maxX = _maxX; - minY = _minY; - maxY = _maxY; - - rangeX = maxX - minX; - rangeY = maxY - minY; - - Title = _title; - GraphResolution = _resolution; - - // Default graph colors - Colors = new GraphColors - { - Background = new Color(0.15f, 0.15f, 0.15f, 1f), - Outline = new Color(0.15f, 0.15f, 0.15f, 1f), - GridLine = new Color(0.5f, 0.5f, 0.5f), - Function = Color.red, - CustomLine = Color.white - }; - } - - /// - /// Colors used to draw the graph. - /// - public struct GraphColors - { - /// - /// Background color. - /// - public Color Background; - - /// - /// Outline color for the graph. - /// - public Color Outline; - - /// - /// Helper line color. - /// - public Color GridLine; - - /// - /// Default color for custom functions. - /// - public Color Function; - - /// - /// Default color for custom lines. - /// - public Color CustomLine; - } - - #region Public functions - - /// - /// Draw the graph with the default size (128x80). - /// - public void Draw() - { - Draw(128, 80); - } - - /// - /// Draw the graph with the specified minimum size. - /// - /// Minimum width of the graph in pixels. - /// Minimum height of the graph in pixels. - public void Draw(float width, float height) - { - // Get rect - if (!string.IsNullOrEmpty(Title)) - { - using (new GUILayout.HorizontalScope(EditorStyles.toolbar)) - GUILayout.Label(Title); - } - - // Title - using (new GUILayout.HorizontalScope()) - { - GUILayout.Space(EditorGUI.indentLevel * 15f); - rect = GUILayoutUtility.GetRect(width, height); - } - - // Handle MouseDown events - if (Event.current.type == EventType.MouseDown) - { - if (rect.Contains(Event.current.mousePosition)) - { - Vector2 mousePos = (Event.current.mousePosition - rect.position); - Vector2 unitPos = new Vector2( - mousePos.x / rect.width * rangeX + minX, - (1f - (mousePos.y / rect.height)) * rangeY + minY - ); - - foreach (var e in clickEvents) - e(unitPos.x, unitPos.y); - } - } - - // Only continue if we're repainting the graph - if (Event.current.type != EventType.Repaint) - return; - - // Background - DrawRect(minX, minY, maxX, maxY, Colors.Background, Colors.Outline); - - // Vertical helper lines - if (GridLinesX > 0) - { - float multiplier = 1; - while ((rangeX / (GridLinesX * multiplier)) > (rect.width / 2f)) - multiplier *= 2; - - for (float x = minX; x <= maxX; x += GridLinesX * multiplier) - DrawLine(x, minY, x, maxY, Colors.GridLine, 1); - } - // Horizontal helper lines - if (GridLinesY > 0) - { - float multiplier = 1; - while ((rangeY / (GridLinesY * multiplier)) > (rect.height / 2f)) - multiplier *= 2; - - for (float y = minY; y <= maxY; y += GridLinesY * multiplier) - DrawLine(minX, y, maxX, y, Colors.GridLine, 1); - } - - // Vertical lines - foreach (var line in linesX) - { - DrawLine(line.Position, minY, line.Position, maxY, line.Color, 2); - } - // Horizontal lines - foreach (var line in linesY) - { - DrawLine(minX, line.Position, maxX, line.Position, line.Color, 2); - } - - // Check if the vertex buffer is of the correct size - int res = (GraphResolution <= 0 ? 48 : GraphResolution); - if ((curveVertices == null) || (curveVertices.Length != res)) - curveVertices = new Vector3[res]; - - // Evaluate all functions - foreach (var func in functions) - { - var vcount = 0; - while (vcount < res) - { - var x = this.rangeX * vcount / (res - 1); - var y = func.Function(x); - if ((y > minY) && (y < maxY)) - { - curveVertices[vcount++] = UnitToGraph(x, y); - } - else - { - if (vcount > 1) - { - // Extend the last segment to the top edge of the rect. - var v1 = curveVertices[vcount - 2]; - var v2 = curveVertices[vcount - 1]; - var clip = (rect.y - v1.y) / (v2.y - v1.y); - curveVertices[vcount - 1] = v1 + (v2 - v1) * clip; - } - break; - } - } - - if (vcount > 1) - { - Handles.color = func.Color; - Handles.DrawAAPolyLine(2.0f, vcount, curveVertices); - } - } - } - - /// - /// Add a custom function to the graph using the default color. - /// - /// A function that evaluates the graph at a given position (graph units). - public void AddFunction(GraphFunction func) - { - AddFunction(func, Colors.Function); - } - - /// - /// Add a custom function to the graph. - /// - /// A function that evaluates the graph at a given position (graph units). - /// Color of the rendered function. - public void AddFunction(GraphFunction func, Color color) - { - foreach (var pair in functions) - { - if (pair.Function == func) - return; - } - - functions.Add(new FunctionColorPair { Function = func, Color = color }); - } - - /// - /// Register a function that handles click events. Arguments are passed as graph units. - /// - /// Function to call when the user clicks on the graph. - public void AddClickEvent(MouseEvent e) - { - if (!clickEvents.Contains(e)) - clickEvents.Add(e); - } - - /// - /// Add a vertical line with the default color. - /// - /// Position of the line in graph units. - public void AddLineX(float value) - { - AddLineX(value, Colors.CustomLine); - } - - /// - /// Add a vertical line. - /// - /// Position of the line in graph units. - /// Color of the line. - public void AddLineX(float value, Color color) - { - foreach (var pair in linesX) - { - if (pair.Position == value) - return; - } - - linesX.Add(new LineColorPair { Position = value, Color = color }); - } - - /// - /// Add a horizontal line with the default color. - /// - /// Position of the line in graph units. - public void AddLineY(float value) - { - AddLineY(value, Colors.CustomLine); - } - - /// - /// Add a horizontal line. - /// - /// Position of the line in graph units. - /// Color of the line. - public void AddLineY(float value, Color color) - { - foreach (var pair in linesY) - { - if (pair.Position == value) - return; - } - - linesY.Add(new LineColorPair { Position = value, Color = color }); - } - - #endregion - - /// - /// Custom function delegate. This works in graph units. - /// - /// Input value, eg. where the function is evaluated. - /// The evaluated value at position x. - public delegate float GraphFunction(float x); - - /// - /// Mouse click delegate. - /// - /// X position of the click, in graph units. - /// Y position of the click, in graph units. - public delegate void MouseEvent(float x, float y); - - #region Internal state - - // Vertex buffers - Vector3[] rectVertices = new Vector3[4]; - Vector3[] lineVertices = new Vector3[2]; - Vector3[] curveVertices; - - List functions = new List(); - List linesX = new List(); - List linesY = new List(); - List clickEvents = new List(); - float minX, maxX, minY, maxY; - Rect rect; - float rangeX = 10; - float rangeY = 10; - - struct FunctionColorPair - { - public GraphFunction Function; - public Color Color; - } - struct LineColorPair - { - public float Position; - public Color Color; - } - - #endregion - - #region Helper functions - - Vector3 UnitToGraph(float x, float y) - { - x = Mathf.Lerp(rect.x, rect.xMax, (x - minX) / rangeX); - y = Mathf.Lerp(rect.yMax, rect.y, (y - minY) / rangeY); - - return new Vector3(x, y, 0); - } - - float UnitToGraphX(float x) - { - return Mathf.Lerp(rect.x, rect.xMax, (x - minX) / rangeX); - } - - float UnitToGraphY(float y) - { - return Mathf.Lerp(rect.yMax, rect.y, (y - minY) / rangeY); - } - - void DrawLine(float x1, float y1, float x2, float y2, Color color, float width) - { - lineVertices[0] = UnitToGraph(x1, y1); - lineVertices[1] = UnitToGraph(x2, y2); - Handles.color = color; - Handles.DrawAAPolyLine(width, lineVertices); - } - - void DrawRect(float x1, float y1, float x2, float y2, Color fill, Color line) - { - rectVertices[0] = UnitToGraph(x1, y1); - rectVertices[1] = UnitToGraph(x2, y1); - rectVertices[2] = UnitToGraph(x2, y2); - rectVertices[3] = UnitToGraph(x1, y2); - - Handles.DrawSolidRectangleWithOutline(rectVertices, fill, line); - } - - #endregion - } -} \ No newline at end of file diff --git a/Assets/ETSI.ARF/ARF World Storage API/Scriptables.meta b/Assets/ETSI.ARF/ARF World Storage API/Editor/Windows.meta similarity index 77% rename from Assets/ETSI.ARF/ARF World Storage API/Scriptables.meta rename to Assets/ETSI.ARF/ARF World Storage API/Editor/Windows.meta index 64ab464..bf1141a 100644 --- a/Assets/ETSI.ARF/ARF World Storage API/Scriptables.meta +++ b/Assets/ETSI.ARF/ARF World Storage API/Editor/Windows.meta @@ -1,5 +1,5 @@ fileFormatVersion: 2 -guid: efec94a96917ef946ab027baa62bc0bc +guid: fbbff3217b2a8cd428764d83150c7b22 folderAsset: yes DefaultImporter: externalObjects: {} diff --git a/Assets/ETSI.ARF/ARF World Storage API/Editor/TrackableWindow.cs b/Assets/ETSI.ARF/ARF World Storage API/Editor/Windows/TrackableWindow.cs similarity index 68% rename from Assets/ETSI.ARF/ARF World Storage API/Editor/TrackableWindow.cs rename to Assets/ETSI.ARF/ARF World Storage API/Editor/Windows/TrackableWindow.cs index 9f30bc0..630f2d0 100644 --- a/Assets/ETSI.ARF/ARF World Storage API/Editor/TrackableWindow.cs +++ b/Assets/ETSI.ARF/ARF World Storage API/Editor/Windows/TrackableWindow.cs @@ -4,20 +4,17 @@ // (C) 2022 // // Development "World Storage", data management, authoring tools -// -// Authors: -// - Sylvain Renault (Fraunhofer HHI) -// -// Date: Feb. 2022 +// Date: June 2022 // #define USING_OPENAPI_GENERATOR // alt. is Swagger +//#define isDEBUG using System.Collections; using System.Collections.Generic; using UnityEngine; using UnityEditor; -using ETSI.ARF.WorldStorage.RESTful; +using ETSI.ARF.WorldStorage.REST; #if USING_OPENAPI_GENERATOR using Org.OpenAPITools.Api; @@ -32,7 +29,8 @@ namespace ETSI.ARF.WorldStorage.UI { public class TrackableWindow : EditorWindow { - [HideInInspector] public WorldStorageSettings worldStorageSettings; + [HideInInspector] public WorldStorageServer worldStorageServer; + [HideInInspector] public WorldStorageUser worldStorageUser; [SerializeField] public List trackables = new List(); @@ -50,10 +48,11 @@ namespace ETSI.ARF.WorldStorage.UI private Color ori; private GUIStyle gsTest; - public static void ShowWindow(WorldStorageSettings ws) + public static void ShowWindow(WorldStorageServer ws, WorldStorageUser user) { TrackableWindow win = EditorWindow.GetWindow(typeof(TrackableWindow), false, WorldStorageWindow.winName) as TrackableWindow; - win.worldStorageSettings = ws; + win.worldStorageServer = ws; + win.worldStorageUser = user; } public TrackableWindow() @@ -87,13 +86,16 @@ namespace ETSI.ARF.WorldStorage.UI { GUILayout.BeginVertical("AR Trackable", gsTest); // - GUILayout.Label("Server: " + worldStorageSettings.serverName, EditorStyles.whiteLargeLabel); + GUILayout.Label("Server: " + worldStorageServer.serverName, EditorStyles.whiteLargeLabel); + GUILayout.Label("User: " + worldStorageUser.userName, EditorStyles.whiteLargeLabel); EditorGUILayout.Space(); //GUILayout.BeginHorizontal(); customName = EditorGUILayout.TextField("Name of Trackable", customName); +#if isDEBUG GUILayout.Label("UUID: " + UUID, EditorStyles.miniLabel); // readonly GUILayout.Label("Creator UID: " + creatorUUID, EditorStyles.miniLabel); // readonly +#endif EditorGUILayout.Space(); GUI.backgroundColor = WorldStorageWindow.arfColors[1]; @@ -105,7 +107,7 @@ namespace ETSI.ARF.WorldStorage.UI // extract the UUID UUID = customName.Split('[', ']')[1]; } - Trackable obj = RESTfulTrackableRequest.GetTrackable(worldStorageSettings, UUID); + Trackable obj = TrackableRequest.GetTrackable(worldStorageServer, UUID); customName = obj.Name; creatorUUID = obj.CreatorUUID.ToString(); type = obj.TrackableType.ToString(); @@ -139,8 +141,8 @@ namespace ETSI.ARF.WorldStorage.UI Debug.Log("PostAddTrackable"); if (string.IsNullOrEmpty(UUID) || UUID == "0") UUID = System.Guid.Empty.ToString(); - Trackable obj = RESTfulTrackableRequest.TrackableFromStrings(UUID, customName, worldStorageSettings.creatorUID); - RESTfulTrackableRequest.AddTrackable(worldStorageSettings, obj); + Trackable obj = GenerateTrackable(UUID, customName, worldStorageUser.UUID); + TrackableRequest.AddTrackable(worldStorageServer, obj); WorldStorageWindow.WorldStorageWindowSingleton.UpdateListTrackables(); WorldStorageWindow.WorldStorageWindowSingleton.Repaint(); @@ -155,7 +157,7 @@ namespace ETSI.ARF.WorldStorage.UI if (GUILayout.Button("Delete Trackable")) { Debug.Log("Deleting Trackable"); - RESTfulTrackableRequest.DeleteTrackable(worldStorageSettings, UUID); + TrackableRequest.DeleteTrackable(worldStorageServer, UUID); UUID = System.Guid.Empty.ToString(); creatorUUID = System.Guid.Empty.ToString(); type = ""; @@ -172,5 +174,55 @@ namespace ETSI.ARF.WorldStorage.UI } GUI.backgroundColor = ori; } + + + static public Trackable GenerateTrackable(string uuid, string name, string creatorUID) + { + EncodingInformationStructure trackableEncodingInformation = + new EncodingInformationStructure(EncodingInformationStructure.DataFormatEnum.ARCORE, "1.0"); + Debug.Log("Created encoding information"); + +#if USING_OPENAPI_GENERATOR + List size = new List(); +#else + List trackableDimension = new List(); +#endif + size.Add(5); + size.Add(5); + Debug.Log("Created dimension"); + + byte[] bytes = new byte[100]; + + for (int i = 0; i < bytes.Length; i++) + { + bytes[i] = (byte)i; + } + + List crs = new List + { + -2, 1, -3, 4, + 4, 4, 4, 2, + 1, 0, -2, 1, + -1, -2, 0, 0 + }; + + Dictionary> kv = new Dictionary>(); + kv.Add("Scenario", new List { "ETSI Trackable" }); + + System.Guid _uuid = System.Guid.Parse(uuid); + Trackable t = new Trackable( + _uuid, + name, + System.Guid.Parse(creatorUID), + Trackable.TrackableTypeEnum.IMAGEMARKER, + trackableEncodingInformation, + bytes, + crs, + UnitSystem.M, + size, + kv); + t.UUID = _uuid; + return t; + } } } \ No newline at end of file diff --git a/Assets/ETSI.ARF/ARF World Storage API/Editor/TrackableWindow.cs.meta b/Assets/ETSI.ARF/ARF World Storage API/Editor/Windows/TrackableWindow.cs.meta similarity index 100% rename from Assets/ETSI.ARF/ARF World Storage API/Editor/TrackableWindow.cs.meta rename to Assets/ETSI.ARF/ARF World Storage API/Editor/Windows/TrackableWindow.cs.meta diff --git a/Assets/ETSI.ARF/ARF World Storage API/Editor/WorldAnchorWindow.cs b/Assets/ETSI.ARF/ARF World Storage API/Editor/Windows/WorldAnchorWindow.cs similarity index 67% rename from Assets/ETSI.ARF/ARF World Storage API/Editor/WorldAnchorWindow.cs rename to Assets/ETSI.ARF/ARF World Storage API/Editor/Windows/WorldAnchorWindow.cs index 463dfca..9831a5e 100644 --- a/Assets/ETSI.ARF/ARF World Storage API/Editor/WorldAnchorWindow.cs +++ b/Assets/ETSI.ARF/ARF World Storage API/Editor/Windows/WorldAnchorWindow.cs @@ -4,20 +4,17 @@ // (C) 2022 // // Development "World Storage", data management, authoring tools -// -// Authors: -// - Sylvain Renault (Fraunhofer HHI) -// -// Date: Feb. 2022 +// Date: June 2022 // #define USING_OPENAPI_GENERATOR // alt. is Swagger +//#define isDEBUG using System.Collections; using System.Collections.Generic; using UnityEngine; using UnityEditor; -using ETSI.ARF.WorldStorage.RESTful; +using ETSI.ARF.WorldStorage.REST; #if USING_OPENAPI_GENERATOR using Org.OpenAPITools.Api; @@ -31,7 +28,8 @@ namespace ETSI.ARF.WorldStorage.UI { public class WorldAnchorWindow : EditorWindow { - [HideInInspector] public WorldStorageSettings worldStorageSettings; + [HideInInspector] public WorldStorageServer worldStorageServer; + [HideInInspector] public WorldStorageUser worldStorageUser; [SerializeField] public List anchors = new List(); @@ -47,10 +45,11 @@ namespace ETSI.ARF.WorldStorage.UI private Color ori; private GUIStyle gsTest; - public static void ShowWindow(WorldStorageSettings ws) + public static void ShowWindow(WorldStorageServer ws, WorldStorageUser user) { WorldAnchorWindow win = EditorWindow.GetWindow(typeof(WorldAnchorWindow), false, WorldStorageWindow.winName) as WorldAnchorWindow; - win.worldStorageSettings = ws; + win.worldStorageServer = ws; + win.worldStorageUser = user; } public WorldAnchorWindow() @@ -82,13 +81,16 @@ namespace ETSI.ARF.WorldStorage.UI { GUILayout.BeginVertical("AR World Anchor", gsTest); // - GUILayout.Label("Server: " + worldStorageSettings.serverName, EditorStyles.whiteLargeLabel); + GUILayout.Label("Server: " + worldStorageServer.serverName, EditorStyles.whiteLargeLabel); + GUILayout.Label("User: " + worldStorageUser.userName, EditorStyles.whiteLargeLabel); EditorGUILayout.Space(); //GUILayout.BeginHorizontal(); customName = EditorGUILayout.TextField("Name of Anchor", customName); +#if isDEBUG GUILayout.Label("UUID: " + UUID, EditorStyles.miniLabel); // readonly GUILayout.Label("Creator UID: " + creatorUUID, EditorStyles.miniLabel); // readonly +#endif EditorGUILayout.Space(); GUI.backgroundColor = WorldStorageWindow.arfColors[1]; @@ -100,7 +102,7 @@ namespace ETSI.ARF.WorldStorage.UI // extract the UUID UUID = customName.Split('[', ']')[1]; } - WorldAnchor obj = RESTfulWorldAnchorRequest.GetWorldAnchor(worldStorageSettings, UUID); + WorldAnchor obj = WorldAnchorRequest.GetWorldAnchor(worldStorageServer, UUID); customName = obj.Name; creatorUUID = obj.CreatorUUID.ToString(); unit = obj.Unit.ToString(); @@ -130,8 +132,8 @@ namespace ETSI.ARF.WorldStorage.UI Debug.Log("PostAddWorldAnchor"); if (string.IsNullOrEmpty(UUID) || UUID == "0") UUID = System.Guid.Empty.ToString(); - WorldAnchor obj = RESTfulWorldAnchorRequest.WorldAnchorFromStrings(UUID, customName, worldStorageSettings.creatorUID); - RESTfulWorldAnchorRequest.AddWorldAnchor(worldStorageSettings, obj); + WorldAnchor obj = GenerateWorldAnchor(UUID, customName, worldStorageUser.UUID); + WorldAnchorRequest.AddWorldAnchor(worldStorageServer, obj); WorldStorageWindow.WorldStorageWindowSingleton.UpdateListWorldAnchors(); WorldStorageWindow.WorldStorageWindowSingleton.Repaint(); @@ -145,7 +147,7 @@ namespace ETSI.ARF.WorldStorage.UI if (GUILayout.Button("Delete World Anchor")) { Debug.Log("Deleting World Anchor"); - RESTfulWorldAnchorRequest.DeleteWorldAnchor(worldStorageSettings, UUID); + WorldAnchorRequest.DeleteWorldAnchor(worldStorageServer, UUID); UUID = System.Guid.Empty.ToString(); creatorUUID = System.Guid.Empty.ToString(); unit = ""; @@ -161,5 +163,51 @@ namespace ETSI.ARF.WorldStorage.UI } GUI.backgroundColor = ori; } + + static public WorldAnchor GenerateWorldAnchor(string uuid, string name, string creatorUID) + { + EncodingInformationStructure trackableEncodingInformation = + new EncodingInformationStructure(EncodingInformationStructure.DataFormatEnum.ARCORE, "1.0"); + Debug.Log("Created encoding information"); + +#if USING_OPENAPI_GENERATOR + List size = new List(); +#else + List trackableDimension = new List(); +#endif + size.Add(5); + size.Add(5); + Debug.Log("Created dimension"); + + byte[] bytes = new byte[100]; + + for (int i = 0; i < bytes.Length; i++) + { + bytes[i] = (byte)i; + } + + List crs = new List + { + -2, 1, -3, 4, + 4, 4, 4, 2, + 1, 0, -2, 1, + -1, -2, 0, 0 + }; + + Dictionary> kv = new Dictionary>(); + kv.Add("Scenario", new List { "ETSI WorldAnchor" }); + + System.Guid _uuid = System.Guid.Parse(uuid); + WorldAnchor t = new WorldAnchor( + _uuid, + name, + System.Guid.Parse(creatorUID), + crs, + UnitSystem.M, + size, + kv); + t.UUID = _uuid; + return t; + } } } \ No newline at end of file diff --git a/Assets/ETSI.ARF/ARF World Storage API/Editor/WorldAnchorWindow.cs.meta b/Assets/ETSI.ARF/ARF World Storage API/Editor/Windows/WorldAnchorWindow.cs.meta similarity index 100% rename from Assets/ETSI.ARF/ARF World Storage API/Editor/WorldAnchorWindow.cs.meta rename to Assets/ETSI.ARF/ARF World Storage API/Editor/Windows/WorldAnchorWindow.cs.meta diff --git a/Assets/ETSI.ARF/ARF World Storage API/Editor/WorldStorageWindow.cs b/Assets/ETSI.ARF/ARF World Storage API/Editor/Windows/WorldStorageWindow.cs similarity index 82% rename from Assets/ETSI.ARF/ARF World Storage API/Editor/WorldStorageWindow.cs rename to Assets/ETSI.ARF/ARF World Storage API/Editor/Windows/WorldStorageWindow.cs index b4edd9a..a7f8b85 100644 --- a/Assets/ETSI.ARF/ARF World Storage API/Editor/WorldStorageWindow.cs +++ b/Assets/ETSI.ARF/ARF World Storage API/Editor/Windows/WorldStorageWindow.cs @@ -4,21 +4,18 @@ // (C) 2022 // // Development "World Storage", data management, authoring tools -// -// Authors: -// - Sylvain Renault (Fraunhofer HHI) -// -// Date: May 2022 +// Date: June 2022 // #define USING_OPENAPI_GENERATOR // alt. is Swagger +//#define isDEBUG using System.Collections; using System.Collections.Generic; using UnityEngine; using UnityEditor; using ETSI.ARF.WorldStorage; -using ETSI.ARF.WorldStorage.RESTful; +using ETSI.ARF.WorldStorage.REST; #if USING_OPENAPI_GENERATOR using Org.OpenAPITools.Api; @@ -35,7 +32,8 @@ namespace ETSI.ARF.WorldStorage.UI { static public WorldStorageWindow WorldStorageWindowSingleton; - [HideInInspector] public WorldStorageSettings worldStorageSettings; + [HideInInspector] public WorldStorageServer worldStorageServer; + [HideInInspector] public WorldStorageUser worldStorageUser; [SerializeField] public List creators = new List(); [SerializeField] public List trackables = new List(); @@ -71,6 +69,7 @@ namespace ETSI.ARF.WorldStorage.UI { WorldStorageWindowSingleton = this; } + static public void DrawCopyright() { // Title @@ -93,12 +92,12 @@ namespace ETSI.ARF.WorldStorage.UI if (GUILayout.Button("Create/Edit Trackable...")) { Debug.Log("Open Trackable Window"); - TrackableWindow.ShowWindow(worldStorageSettings); + TrackableWindow.ShowWindow(worldStorageServer, worldStorageUser); } if (GUILayout.Button("Create/Edit World Anchor...")) { Debug.Log("Open World Anchor Window"); - WorldAnchorWindow.ShowWindow(worldStorageSettings); + WorldAnchorWindow.ShowWindow(worldStorageServer, worldStorageUser); } if (GUILayout.Button("Create/Edit Link...")) { @@ -116,7 +115,7 @@ namespace ETSI.ARF.WorldStorage.UI { // Get all objects Debug.Log("Get all server objects"); - List res = RESTfulTrackableRequest.GetAllTrackables(worldStorageSettings); + List res = TrackableRequest.GetAllTrackables(worldStorageServer); trackables.Clear(); foreach (var item in res) { @@ -129,7 +128,7 @@ namespace ETSI.ARF.WorldStorage.UI { // Get all objects Debug.Log("Get all server objects"); - List res = RESTfulWorldAnchorRequest.GetAllWorldAnchors(worldStorageSettings); + List res = WorldAnchorRequest.GetAllWorldAnchors(worldStorageServer); anchors.Clear(); foreach (var item in res) { @@ -144,61 +143,64 @@ namespace ETSI.ARF.WorldStorage.UI GUILayout.BeginVertical("World Storage Server", gsTest); // GUILayout gl = new GUILayout(); - - GUILayout.Label("Server Name: " + worldStorageSettings.serverName, EditorStyles.whiteLargeLabel); - GUILayout.Label("Own Creator UID: " + worldStorageSettings.creatorUID); - GUILayout.Label("Base Path: " + worldStorageSettings.basePath); - GUILayout.Label("Port: " + worldStorageSettings.port); + + GUILayout.Label("Server Name: " + worldStorageServer.serverName, EditorStyles.whiteLargeLabel); + GUILayout.Label("User Name: " + worldStorageUser.userName, EditorStyles.whiteLargeLabel); +#if isDEBUG + GUILayout.Label("Creator UID: " + worldStorageUser.UUID); + GUILayout.Label("Base Path: " + worldStorageServer.basePath); + GUILayout.Label("Port: " + worldStorageServer.port); +#endif EditorGUILayout.Space(); - #region Ping +#region Ping GUILayout.BeginHorizontal(); ping = EditorGUILayout.TextField("Last Ping", ping); if (GUILayout.Button("Ping")) { - ping = RESTfulAdminRequest.Ping(worldStorageSettings); + ping = AdminRequest.Ping(worldStorageServer); } GUI.backgroundColor = ori; GUILayout.EndHorizontal(); - #endregion +#endregion - #region State +#region State GUILayout.BeginHorizontal(); state = EditorGUILayout.TextField("State", state); if (GUILayout.Button("Get World Storage Sate")) { - state = RESTfulAdminRequest.GetAdminInfo(worldStorageSettings); + state = AdminRequest.GetAdminInfo(worldStorageServer); } GUI.backgroundColor = ori; GUILayout.EndHorizontal(); - #endregion +#endregion - #region Version +#region Version GUILayout.BeginHorizontal(); vers = EditorGUILayout.TextField("Version", vers); if (GUILayout.Button("Get World Storage API Version")) { - vers = RESTfulAdminRequest.GetVersion(worldStorageSettings); + vers = AdminRequest.GetVersion(worldStorageServer); } GUI.backgroundColor = ori; GUILayout.EndHorizontal(); - #endregion +#endregion ScriptableObject target = this; SerializedObject so = new SerializedObject(target); // Get creators - #region Get all creator UUID +#region Get all creator UUID EditorGUILayout.Space(10); GUI.backgroundColor = WorldStorageWindow.arfColors[1]; if (GUILayout.Button("Request all Creator ID")) { // Get all objects Debug.Log("Get all creators id"); - List res = RESTfulTrackableRequest.GetAllTrackables(worldStorageSettings); + List res = TrackableRequest.GetAllTrackables(worldStorageServer); creators.Clear(); foreach (var item in res) { @@ -210,12 +212,12 @@ namespace ETSI.ARF.WorldStorage.UI SerializedProperty stringsProperty = so.FindProperty("creators"); EditorGUILayout.PropertyField(stringsProperty, true); // True means show children so.ApplyModifiedProperties(); // Remember to apply modified properties - #endregion +#endregion // // Get trackables // - #region Get all trackable objects +#region Get all trackable objects EditorGUILayout.Space(10); // ########################################################### @@ -234,7 +236,7 @@ namespace ETSI.ARF.WorldStorage.UI int n = 0; foreach (var item in trackables) { - if (++n > 3) RESTfulTrackableRequest.DeleteTrackable(worldStorageSettings, item); + if (++n > 3) TrackableRequest.DeleteTrackable(worldStorageServer, item); } UpdateListTrackables(); @@ -246,17 +248,17 @@ namespace ETSI.ARF.WorldStorage.UI stringsProperty = so.FindProperty("trackables"); EditorGUILayout.PropertyField(stringsProperty, /*new GUIContent("Trackbales"),*/ true); // True means show children so.ApplyModifiedProperties(); // Remember to apply modified properties - #endregion +#endregion // // Get anchors // - #region Get all anchor objects +#region Get all anchor objects EditorGUILayout.Space(10); // ########################################################### GUI.backgroundColor = WorldStorageWindow.arfColors[1]; - if (GUILayout.Button("Request Anchors")) + if (GUILayout.Button("Request World Anchors")) { UpdateListWorldAnchors(); } @@ -270,7 +272,7 @@ namespace ETSI.ARF.WorldStorage.UI int n = 0; foreach (var item in anchors) { - if (++n > 3) RESTfulWorldAnchorRequest.DeleteWorldAnchor(worldStorageSettings, item); + if (++n > 3) WorldAnchorRequest.DeleteWorldAnchor(worldStorageServer, item); } UpdateListWorldAnchors(); @@ -282,19 +284,19 @@ namespace ETSI.ARF.WorldStorage.UI stringsProperty = so.FindProperty("anchors"); EditorGUILayout.PropertyField(stringsProperty, /*new GUIContent("Trackbales"),*/ true); // True means show children so.ApplyModifiedProperties(); // Remember to apply modified properties - #endregion +#endregion // // Get Links // - #region Get all link objects +#region Get all link objects GUI.backgroundColor = WorldStorageWindow.arfColors[1]; - if (GUILayout.Button("Request all Link UUID")) + if (GUILayout.Button("Request World Links")) { } GUI.backgroundColor = ori; - #endregion +#endregion // GUILayout.EndVertical(); diff --git a/Assets/ETSI.ARF/ARF World Storage API/Editor/WorldStorageWindow.cs.meta b/Assets/ETSI.ARF/ARF World Storage API/Editor/Windows/WorldStorageWindow.cs.meta similarity index 100% rename from Assets/ETSI.ARF/ARF World Storage API/Editor/WorldStorageWindow.cs.meta rename to Assets/ETSI.ARF/ARF World Storage API/Editor/Windows/WorldStorageWindow.cs.meta diff --git a/Assets/ETSI.ARF/ARF World Storage API/Editor/WorldStorageSettingsEditor.cs b/Assets/ETSI.ARF/ARF World Storage API/Editor/WorldStorageServerEditor.cs similarity index 61% rename from Assets/ETSI.ARF/ARF World Storage API/Editor/WorldStorageSettingsEditor.cs rename to Assets/ETSI.ARF/ARF World Storage API/Editor/WorldStorageServerEditor.cs index 07a4590..d595b9f 100644 --- a/Assets/ETSI.ARF/ARF World Storage API/Editor/WorldStorageSettingsEditor.cs +++ b/Assets/ETSI.ARF/ARF World Storage API/Editor/WorldStorageServerEditor.cs @@ -18,15 +18,15 @@ using UnityEditor; namespace ETSI.ARF.WorldStorage.UI { - [CustomEditor(typeof(WorldStorageSettings))] - public class WorldStorageSettingsEditor : Editor + [CustomEditor(typeof(WorldStorageServer))] + public class WorldStorageServerEditor : Editor { - WorldStorageSettings worldStorageSettings; + WorldStorageServer worldStorageServer; WorldStorageWindow win; public void OnEnable() { - worldStorageSettings = (WorldStorageSettings)target; + worldStorageServer = (WorldStorageServer)target; } public override void OnInspectorGUI() @@ -41,24 +41,14 @@ namespace ETSI.ARF.WorldStorage.UI DrawDefaultInspector(); EditorGUILayout.Space(); - // creator uid button - //GUILayout.BeginHorizontal(); - //GUI.backgroundColor = WorldStorageWindow.arfColors[1]; - if (GUILayout.Button("Create New Creator UID")) - { - worldStorageSettings.creatorUID = System.Guid.NewGuid().ToString(); - if (win != null) win.worldStorageSettings.creatorUID = worldStorageSettings.creatorUID; - } - //GUI.backgroundColor = ori; - //GUILayout.EndHorizontal(); - - // open win button + // open window button GUI.backgroundColor = WorldStorageWindow.arfColors[1]; if (GUILayout.Button("Open World Storage Window...")) { Debug.Log("Open Main ARF Window"); win = EditorWindow.GetWindow(typeof(WorldStorageWindow), false, "ETSI ARF - Authoring Editor") as WorldStorageWindow; - win.worldStorageSettings = worldStorageSettings; + win.worldStorageServer = worldStorageServer; + win.worldStorageUser = worldStorageServer.user; } GUI.backgroundColor = ori; } diff --git a/Assets/ETSI.ARF/ARF World Storage API/Editor/WorldStorageSettingsEditor.cs.meta b/Assets/ETSI.ARF/ARF World Storage API/Editor/WorldStorageServerEditor.cs.meta similarity index 100% rename from Assets/ETSI.ARF/ARF World Storage API/Editor/WorldStorageSettingsEditor.cs.meta rename to Assets/ETSI.ARF/ARF World Storage API/Editor/WorldStorageServerEditor.cs.meta diff --git a/Assets/ETSI.ARF/ARF World Storage API/Editor/WorldStorageUserEditor.cs b/Assets/ETSI.ARF/ARF World Storage API/Editor/WorldStorageUserEditor.cs new file mode 100644 index 0000000..e37b42f --- /dev/null +++ b/Assets/ETSI.ARF/ARF World Storage API/Editor/WorldStorageUserEditor.cs @@ -0,0 +1,54 @@ +// +// ETSI (European Telecommunications Standards Institute, referred to as ETSI) +// ARF - ETSI ISG Augmented Reality Framework (ISG ARF) +// (C) 2022 +// +// Development "World Storage", data management, authoring tools +// +// Authors: +// - Sylvain Renault (Fraunhofer HHI) +// +// Date: Feb. 2022 +// + +using System.Collections; +using System.Collections.Generic; +using UnityEngine; +using UnityEditor; + +namespace ETSI.ARF.WorldStorage.UI +{ + [CustomEditor(typeof(WorldStorageUser))] + public class WorldStorageUserEditor : Editor + { + WorldStorageUser worldStorageUser; + WorldStorageWindow win; + + public void OnEnable() + { + worldStorageUser = (WorldStorageUser)target; + } + + public override void OnInspectorGUI() + { + serializedObject.Update(); + + Color ori = GUI.backgroundColor; + + GUILayout.Label("Copyright(c) 2022, ETSI - ARF"); + EditorGUILayout.Space(); + GUILayout.Label("Parameters:", EditorStyles.boldLabel); + DrawDefaultInspector(); + EditorGUILayout.Space(); + + // creator UUID button + GUI.backgroundColor = WorldStorageWindow.arfColors[1]; + if (GUILayout.Button("Generate New Creator UUID")) + { + worldStorageUser.UUID = System.Guid.NewGuid().ToString(); + if (win != null) win.worldStorageUser.UUID = worldStorageUser.UUID; + } + GUI.backgroundColor = ori; + } + } +} \ No newline at end of file diff --git a/Assets/ETSI.ARF/ARF World Storage API/Editor/GraphMathScript.cs.meta b/Assets/ETSI.ARF/ARF World Storage API/Editor/WorldStorageUserEditor.cs.meta similarity index 83% rename from Assets/ETSI.ARF/ARF World Storage API/Editor/GraphMathScript.cs.meta rename to Assets/ETSI.ARF/ARF World Storage API/Editor/WorldStorageUserEditor.cs.meta index 2d4c18f..fda722e 100644 --- a/Assets/ETSI.ARF/ARF World Storage API/Editor/GraphMathScript.cs.meta +++ b/Assets/ETSI.ARF/ARF World Storage API/Editor/WorldStorageUserEditor.cs.meta @@ -1,5 +1,5 @@ fileFormatVersion: 2 -guid: 963ad0211af9f3f48a53e88d9f9f5be5 +guid: 134a71a4b493ae1468ea8de88c99135c MonoImporter: externalObjects: {} serializedVersion: 2 diff --git a/Assets/ETSI.ARF/ARF World Storage API/Scenes/WorldStorageSettings_HHI_Detlef.asset b/Assets/ETSI.ARF/ARF World Storage API/Scenes/HHI Server - local.asset similarity index 75% rename from Assets/ETSI.ARF/ARF World Storage API/Scenes/WorldStorageSettings_HHI_Detlef.asset rename to Assets/ETSI.ARF/ARF World Storage API/Scenes/HHI Server - local.asset index a50e697..b4b6a1d 100644 --- a/Assets/ETSI.ARF/ARF World Storage API/Scenes/WorldStorageSettings_HHI_Detlef.asset +++ b/Assets/ETSI.ARF/ARF World Storage API/Scenes/HHI Server - local.asset @@ -10,9 +10,9 @@ MonoBehaviour: m_Enabled: 1 m_EditorHideFlags: 0 m_Script: {fileID: 11500000, guid: e4b7be4c33f68d0418c3b4e1a7053d91, type: 3} - m_Name: WorldStorageSettings_HHI_Detlef + m_Name: HHI Server - local m_EditorClassIdentifier: - serverName: Detlef's PC - creatorUID: 00000000-0000-0000-0000-000000000000 + serverName: HHI Server (Detlef) basePath: http://172.17.132.19 port: 8080 + user: {fileID: 11400000, guid: ce0f40be06008b14283766424922b729, type: 2} diff --git a/Assets/ETSI.ARF/ARF World Storage API/Scenes/WorldStorageSettings_HHI_Detlef.asset.meta b/Assets/ETSI.ARF/ARF World Storage API/Scenes/HHI Server - local.asset.meta similarity index 79% rename from Assets/ETSI.ARF/ARF World Storage API/Scenes/WorldStorageSettings_HHI_Detlef.asset.meta rename to Assets/ETSI.ARF/ARF World Storage API/Scenes/HHI Server - local.asset.meta index 6e4830d..cd8c2c2 100644 --- a/Assets/ETSI.ARF/ARF World Storage API/Scenes/WorldStorageSettings_HHI_Detlef.asset.meta +++ b/Assets/ETSI.ARF/ARF World Storage API/Scenes/HHI Server - local.asset.meta @@ -1,5 +1,5 @@ fileFormatVersion: 2 -guid: b656b4f6c38b83148a06d0ccd523227c +guid: 62e22250d4134d64ca319770717f0b43 NativeFormatImporter: externalObjects: {} mainObjectFileID: 11400000 diff --git a/Assets/ETSI.ARF/ARF World Storage API/Scriptables/WorldStorageSettingsHHI.asset b/Assets/ETSI.ARF/ARF World Storage API/Scenes/HHI Server.asset similarity index 68% rename from Assets/ETSI.ARF/ARF World Storage API/Scriptables/WorldStorageSettingsHHI.asset rename to Assets/ETSI.ARF/ARF World Storage API/Scenes/HHI Server.asset index e6bbc21..a556ade 100644 --- a/Assets/ETSI.ARF/ARF World Storage API/Scriptables/WorldStorageSettingsHHI.asset +++ b/Assets/ETSI.ARF/ARF World Storage API/Scenes/HHI Server.asset @@ -10,9 +10,9 @@ MonoBehaviour: m_Enabled: 1 m_EditorHideFlags: 0 m_Script: {fileID: 11500000, guid: e4b7be4c33f68d0418c3b4e1a7053d91, type: 3} - m_Name: WorldStorageSettingsHHI + m_Name: HHI Server m_EditorClassIdentifier: - serverName: HHI Servers - creatorUID: 9739c1d7-b86d-4894-9f4a-2e43ea6cfdf6 - basePath: https://ics1.hhi.fraunhofer.de + serverName: HHI World Storage Server + basePath: https://ics1.hhi.fraunhofer.de/ port: 8080 + user: {fileID: 11400000, guid: ce0f40be06008b14283766424922b729, type: 2} diff --git a/Assets/ETSI.ARF/ARF World Storage API/Scriptables/WorldStorageSettingsHHI_Intern.asset.meta b/Assets/ETSI.ARF/ARF World Storage API/Scenes/HHI Server.asset.meta similarity index 79% rename from Assets/ETSI.ARF/ARF World Storage API/Scriptables/WorldStorageSettingsHHI_Intern.asset.meta rename to Assets/ETSI.ARF/ARF World Storage API/Scenes/HHI Server.asset.meta index 60f3073..ba6a8f7 100644 --- a/Assets/ETSI.ARF/ARF World Storage API/Scriptables/WorldStorageSettingsHHI_Intern.asset.meta +++ b/Assets/ETSI.ARF/ARF World Storage API/Scenes/HHI Server.asset.meta @@ -1,5 +1,5 @@ fileFormatVersion: 2 -guid: 1d9997341aa0c1c45810f4b291addf39 +guid: 4f997253243de534dad12937f1284975 NativeFormatImporter: externalObjects: {} mainObjectFileID: 11400000 diff --git a/Assets/ETSI.ARF/ARF World Storage API/Scriptables/WorldStorageSettingsHHI_Intern.asset b/Assets/ETSI.ARF/ARF World Storage API/Scenes/Sylvain.asset similarity index 53% rename from Assets/ETSI.ARF/ARF World Storage API/Scriptables/WorldStorageSettingsHHI_Intern.asset rename to Assets/ETSI.ARF/ARF World Storage API/Scenes/Sylvain.asset index 6cc0c7e..b904326 100644 --- a/Assets/ETSI.ARF/ARF World Storage API/Scriptables/WorldStorageSettingsHHI_Intern.asset +++ b/Assets/ETSI.ARF/ARF World Storage API/Scenes/Sylvain.asset @@ -9,10 +9,8 @@ MonoBehaviour: m_GameObject: {fileID: 0} m_Enabled: 1 m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: e4b7be4c33f68d0418c3b4e1a7053d91, type: 3} - m_Name: WorldStorageSettingsHHI_Intern + m_Script: {fileID: 11500000, guid: 8a1e3e7961eae84468e6ee20d5b09ffd, type: 3} + m_Name: Sylvain m_EditorClassIdentifier: - serverName: HHI Servers (intern test) - creatorUID: 2af3e69e-91d6-4021-99d1-188917df8ea8 - basePath: http://vm009254.fe.hhi.de/ - port: 8080 + userName: Sylvain R. + UUID: faee4241-62ac-47d1-92c8-5b4b7a5fbc93 diff --git a/Assets/ETSI.ARF/ARF World Storage API/Scriptables/WorldStorageSettingsHHI.asset.meta b/Assets/ETSI.ARF/ARF World Storage API/Scenes/Sylvain.asset.meta similarity index 79% rename from Assets/ETSI.ARF/ARF World Storage API/Scriptables/WorldStorageSettingsHHI.asset.meta rename to Assets/ETSI.ARF/ARF World Storage API/Scenes/Sylvain.asset.meta index 77cd62f..9a36c5d 100644 --- a/Assets/ETSI.ARF/ARF World Storage API/Scriptables/WorldStorageSettingsHHI.asset.meta +++ b/Assets/ETSI.ARF/ARF World Storage API/Scenes/Sylvain.asset.meta @@ -1,5 +1,5 @@ fileFormatVersion: 2 -guid: fd253fbdf276d5e47bef25ba893dc7a4 +guid: ce0f40be06008b14283766424922b729 NativeFormatImporter: externalObjects: {} mainObjectFileID: 11400000 diff --git a/Assets/ETSI.ARF/ARF World Storage API/Scenes/WorldStorageSample.unity b/Assets/ETSI.ARF/ARF World Storage API/Scenes/WorldStorageSample.unity index cb0bbf5..51b3ac9 100644 --- a/Assets/ETSI.ARF/ARF World Storage API/Scenes/WorldStorageSample.unity +++ b/Assets/ETSI.ARF/ARF World Storage API/Scenes/WorldStorageSample.unity @@ -405,7 +405,7 @@ GameObject: - component: {fileID: 1056454765} - component: {fileID: 1056454764} m_Layer: 0 - m_Name: ARFServer + m_Name: World Storage Info m_TagString: Untagged m_Icon: {fileID: 0} m_NavMeshLayer: 0 @@ -423,7 +423,7 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: 02da7adcc65f4694684d71e61d88070b, type: 3} m_Name: m_EditorClassIdentifier: - worldStorageServer: {fileID: 11400000, guid: b656b4f6c38b83148a06d0ccd523227c, type: 2} + worldStorageServer: {fileID: 11400000, guid: 62e22250d4134d64ca319770717f0b43, type: 2} --- !u!4 &1056454765 Transform: m_ObjectHideFlags: 0 diff --git a/Packages/unity-world-storage-package b/Packages/unity-world-storage-package index 8a3fc6a..14e1e67 160000 --- a/Packages/unity-world-storage-package +++ b/Packages/unity-world-storage-package @@ -1 +1 @@ -Subproject commit 8a3fc6a294f022a0c733c65af2b6cf564a3666b9 +Subproject commit 14e1e679ed253a6760c78f05fe1250d1a6b86f06 diff --git a/ProjectSettings/MemorySettings.asset b/ProjectSettings/MemorySettings.asset new file mode 100644 index 0000000..5b5face --- /dev/null +++ b/ProjectSettings/MemorySettings.asset @@ -0,0 +1,35 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!387306366 &1 +MemorySettings: + m_ObjectHideFlags: 0 + m_EditorMemorySettings: + m_MainAllocatorBlockSize: -1 + m_ThreadAllocatorBlockSize: -1 + m_MainGfxBlockSize: -1 + m_ThreadGfxBlockSize: -1 + m_CacheBlockSize: -1 + m_TypetreeBlockSize: -1 + m_ProfilerBlockSize: -1 + m_ProfilerEditorBlockSize: -1 + m_BucketAllocatorGranularity: -1 + m_BucketAllocatorBucketsCount: -1 + m_BucketAllocatorBlockSize: -1 + m_BucketAllocatorBlockCount: -1 + m_ProfilerBucketAllocatorGranularity: -1 + m_ProfilerBucketAllocatorBucketsCount: -1 + m_ProfilerBucketAllocatorBlockSize: -1 + m_ProfilerBucketAllocatorBlockCount: -1 + m_TempAllocatorSizeMain: -1 + m_JobTempAllocatorBlockSize: -1 + m_BackgroundJobTempAllocatorBlockSize: -1 + m_JobTempAllocatorReducedBlockSize: -1 + m_TempAllocatorSizeGIBakingWorker: -1 + m_TempAllocatorSizeNavMeshWorker: -1 + m_TempAllocatorSizeAudioWorker: -1 + m_TempAllocatorSizeCloudWorker: -1 + m_TempAllocatorSizeGfx: -1 + m_TempAllocatorSizeJobWorker: -1 + m_TempAllocatorSizeBackgroundWorker: -1 + m_TempAllocatorSizePreloadManager: -1 + m_PlatformMemorySettings: {} diff --git a/ProjectSettings/boot.config b/ProjectSettings/boot.config new file mode 100644 index 0000000..e69de29 diff --git a/UserSettings/EditorUserSettings.asset b/UserSettings/EditorUserSettings.asset index 3ef73f4..d053285 100644 --- a/UserSettings/EditorUserSettings.asset +++ b/UserSettings/EditorUserSettings.asset @@ -12,6 +12,9 @@ EditorUserSettings: value: 224247031146467e393d256c3111795f37253e6a1b27343c29692e27edf2353fe7a717d9ce750c3f3c0cea2f4b0d0032e2060c38f50e040e515fb31b1ff6040a flags: 0 RecentlyUsedScenePath-2: + value: 224247031146467e393d256c3111795f37253e6a1b27343c29692e27edf2353fe7a717d9ce750c3f3c0cea2f4b100428b2390a0ef80e441e1f07e917 + flags: 0 + RecentlyUsedScenePath-3: value: 224247031146467e393d256c3111795f37253e6a1b27343c29692e27edf2353fe7a717d9ce750c3f3c0cea2f4b090e2dfe0e3a1ff9190b0c143dfc0301f3155d04cb11d103 flags: 0 vcSharedLogLevel: diff --git a/UserSettings/Layouts/default-2021.dwlt b/UserSettings/Layouts/default-2021.dwlt new file mode 100644 index 0000000..61c1571 --- /dev/null +++ b/UserSettings/Layouts/default-2021.dwlt @@ -0,0 +1,1020 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!114 &1 +MonoBehaviour: + m_ObjectHideFlags: 52 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 1 + m_Script: {fileID: 12004, guid: 0000000000000000e000000000000000, type: 0} + m_Name: + m_EditorClassIdentifier: + m_PixelRect: + serializedVersion: 2 + x: 6.2222223 + y: 48.444447 + width: 1694.2223 + height: 972 + m_ShowMode: 4 + m_Title: Project + m_RootView: {fileID: 8} + m_MinSize: {x: 875, y: 300} + m_MaxSize: {x: 10000, y: 10000} + m_Maximized: 0 +--- !u!114 &2 +MonoBehaviour: + m_ObjectHideFlags: 52 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 12006, guid: 0000000000000000e000000000000000, type: 0} + m_Name: ConsoleWindow + m_EditorClassIdentifier: + m_Children: [] + m_Position: + serializedVersion: 2 + x: 628.44446 + y: 0 + width: 722.22217 + height: 364.22223 + m_MinSize: {x: 102, y: 121} + m_MaxSize: {x: 4002, y: 4021} + m_ActualView: {fileID: 20} + m_Panes: + - {fileID: 20} + m_Selected: 0 + m_LastSelected: 0 +--- !u!114 &3 +MonoBehaviour: + m_ObjectHideFlags: 52 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 12010, guid: 0000000000000000e000000000000000, type: 0} + m_Name: + m_EditorClassIdentifier: + m_Children: + - {fileID: 7} + - {fileID: 2} + m_Position: + serializedVersion: 2 + x: 0 + y: 557.7778 + width: 1350.6666 + height: 364.22223 + m_MinSize: {x: 200, y: 100} + m_MaxSize: {x: 16192, y: 8096} + vertical: 0 + controlID: 167 +--- !u!114 &4 +MonoBehaviour: + m_ObjectHideFlags: 52 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 1 + m_Script: {fileID: 12010, guid: 0000000000000000e000000000000000, type: 0} + m_Name: + m_EditorClassIdentifier: + m_Children: + - {fileID: 11} + - {fileID: 5} + m_Position: + serializedVersion: 2 + x: 0 + y: 30 + width: 1694.2222 + height: 922 + m_MinSize: {x: 300, y: 200} + m_MaxSize: {x: 24288, y: 16192} + vertical: 0 + controlID: 21 +--- !u!114 &5 +MonoBehaviour: + m_ObjectHideFlags: 52 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 1 + m_Script: {fileID: 12006, guid: 0000000000000000e000000000000000, type: 0} + m_Name: + m_EditorClassIdentifier: + m_Children: [] + m_Position: + serializedVersion: 2 + x: 1350.6666 + y: 0 + width: 343.55554 + height: 922 + m_MinSize: {x: 276, y: 71} + m_MaxSize: {x: 4001, y: 4021} + m_ActualView: {fileID: 16} + m_Panes: + - {fileID: 16} + m_Selected: 0 + m_LastSelected: 0 +--- !u!114 &6 +MonoBehaviour: + m_ObjectHideFlags: 52 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 1 + m_Script: {fileID: 12006, guid: 0000000000000000e000000000000000, type: 0} + m_Name: + m_EditorClassIdentifier: + m_Children: [] + m_Position: + serializedVersion: 2 + x: 0 + y: 0 + width: 334.22223 + height: 557.7778 + m_MinSize: {x: 201, y: 221} + m_MaxSize: {x: 4001, y: 4021} + m_ActualView: {fileID: 17} + m_Panes: + - {fileID: 17} + m_Selected: 0 + m_LastSelected: 0 +--- !u!114 &7 +MonoBehaviour: + m_ObjectHideFlags: 52 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 1 + m_Script: {fileID: 12006, guid: 0000000000000000e000000000000000, type: 0} + m_Name: ProjectBrowser + m_EditorClassIdentifier: + m_Children: [] + m_Position: + serializedVersion: 2 + x: 0 + y: 0 + width: 628.44446 + height: 364.22223 + m_MinSize: {x: 231, y: 271} + m_MaxSize: {x: 10001, y: 10021} + m_ActualView: {fileID: 15} + m_Panes: + - {fileID: 15} + m_Selected: 0 + m_LastSelected: 0 +--- !u!114 &8 +MonoBehaviour: + m_ObjectHideFlags: 52 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 1 + m_Script: {fileID: 12008, guid: 0000000000000000e000000000000000, type: 0} + m_Name: + m_EditorClassIdentifier: + m_Children: + - {fileID: 9} + - {fileID: 4} + - {fileID: 10} + m_Position: + serializedVersion: 2 + x: 0 + y: 0 + width: 1694.2222 + height: 972 + m_MinSize: {x: 875, y: 300} + m_MaxSize: {x: 10000, y: 10000} + m_UseTopView: 1 + m_TopViewHeight: 30 + m_UseBottomView: 1 + m_BottomViewHeight: 20 +--- !u!114 &9 +MonoBehaviour: + m_ObjectHideFlags: 52 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 1 + m_Script: {fileID: 12011, guid: 0000000000000000e000000000000000, type: 0} + m_Name: + m_EditorClassIdentifier: + m_Children: [] + m_Position: + serializedVersion: 2 + x: 0 + y: 0 + width: 1694.2222 + height: 30 + m_MinSize: {x: 0, y: 0} + m_MaxSize: {x: 0, y: 0} + m_LastLoadedLayoutName: +--- !u!114 &10 +MonoBehaviour: + m_ObjectHideFlags: 52 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 1 + m_Script: {fileID: 12042, guid: 0000000000000000e000000000000000, type: 0} + m_Name: + m_EditorClassIdentifier: + m_Children: [] + m_Position: + serializedVersion: 2 + x: 0 + y: 952 + width: 1694.2222 + height: 20 + m_MinSize: {x: 0, y: 0} + m_MaxSize: {x: 0, y: 0} +--- !u!114 &11 +MonoBehaviour: + m_ObjectHideFlags: 52 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 1 + m_Script: {fileID: 12010, guid: 0000000000000000e000000000000000, type: 0} + m_Name: + m_EditorClassIdentifier: + m_Children: + - {fileID: 12} + - {fileID: 3} + m_Position: + serializedVersion: 2 + x: 0 + y: 0 + width: 1350.6666 + height: 922 + m_MinSize: {x: 200, y: 200} + m_MaxSize: {x: 16192, y: 16192} + vertical: 1 + controlID: 73 +--- !u!114 &12 +MonoBehaviour: + m_ObjectHideFlags: 52 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 1 + m_Script: {fileID: 12010, guid: 0000000000000000e000000000000000, type: 0} + m_Name: + m_EditorClassIdentifier: + m_Children: + - {fileID: 6} + - {fileID: 13} + m_Position: + serializedVersion: 2 + x: 0 + y: 0 + width: 1350.6666 + height: 557.7778 + m_MinSize: {x: 200, y: 100} + m_MaxSize: {x: 16192, y: 8096} + vertical: 0 + controlID: 74 +--- !u!114 &13 +MonoBehaviour: + m_ObjectHideFlags: 52 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 1 + m_Script: {fileID: 12006, guid: 0000000000000000e000000000000000, type: 0} + m_Name: + m_EditorClassIdentifier: + m_Children: [] + m_Position: + serializedVersion: 2 + x: 334.22223 + y: 0 + width: 1016.4444 + height: 557.7778 + m_MinSize: {x: 202, y: 221} + m_MaxSize: {x: 4002, y: 4021} + m_ActualView: {fileID: 18} + m_Panes: + - {fileID: 18} + - {fileID: 19} + - {fileID: 14} + m_Selected: 0 + m_LastSelected: 1 +--- !u!114 &14 +MonoBehaviour: + m_ObjectHideFlags: 52 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 1 + m_Script: {fileID: 12111, guid: 0000000000000000e000000000000000, type: 0} + m_Name: + m_EditorClassIdentifier: + m_MinSize: {x: 400, y: 100} + m_MaxSize: {x: 2048, y: 2048} + m_TitleContent: + m_Text: Asset Store + m_Image: {fileID: -7444545952099596278, guid: 0000000000000000d000000000000000, type: 0} + m_Tooltip: + m_Pos: + serializedVersion: 2 + x: 468 + y: 181 + width: 973 + height: 501 + m_ViewDataDictionary: {fileID: 0} + m_OverlayCanvas: + m_LastAppliedPresetName: Default + m_SaveData: [] +--- !u!114 &15 +MonoBehaviour: + m_ObjectHideFlags: 52 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 1 + m_Script: {fileID: 12014, guid: 0000000000000000e000000000000000, type: 0} + m_Name: + m_EditorClassIdentifier: + m_MinSize: {x: 230, y: 250} + m_MaxSize: {x: 10000, y: 10000} + m_TitleContent: + m_Text: Project + m_Image: {fileID: -5179483145760003458, guid: 0000000000000000d000000000000000, type: 0} + m_Tooltip: + m_Pos: + serializedVersion: 2 + x: 6.2222223 + y: 636.44446 + width: 627.44446 + height: 343.22223 + m_ViewDataDictionary: {fileID: 0} + m_OverlayCanvas: + m_LastAppliedPresetName: Default + m_SaveData: [] + m_SearchFilter: + m_NameFilter: + m_ClassNames: [] + m_AssetLabels: [] + m_AssetBundleNames: [] + m_VersionControlStates: [] + m_SoftLockControlStates: [] + m_ReferencingInstanceIDs: + m_SceneHandles: + m_ShowAllHits: 0 + m_SkipHidden: 0 + m_SearchArea: 1 + m_Folders: + - Packages/com.unity.nuget.newtonsoft-json/Runtime/AOT + m_Globs: [] + m_OriginalText: + m_ViewMode: 1 + m_StartGridSize: 16 + m_LastFolders: + - Packages/com.unity.nuget.newtonsoft-json/Runtime/AOT + m_LastFoldersGridSize: 16 + m_LastProjectPath: D:\Fraunhofer\Projects\ETSI\GitLab (STF)\unity-world-storage-editor + m_LockTracker: + m_IsLocked: 0 + m_FolderTreeState: + scrollPos: {x: 0, y: 128.77777} + m_SelectedIDs: 22640000 + m_LastClickedID: 25634 + m_ExpandedIDs: 00000000d4630000d6630000d8630000da630000dc630000de630000e0630000e2630000e4630000e6630000026400002064000000ca9a3bffffff7f + m_RenameOverlay: + m_UserAcceptedRename: 0 + m_Name: + m_OriginalName: + m_EditFieldRect: + serializedVersion: 2 + x: 0 + y: 0 + width: 0 + height: 0 + m_UserData: 0 + m_IsWaitingForDelay: 0 + m_IsRenaming: 0 + m_OriginalEventType: 11 + m_IsRenamingFilename: 1 + m_ClientGUIView: {fileID: 0} + m_SearchString: + m_CreateAssetUtility: + m_EndAction: {fileID: 0} + m_InstanceID: 0 + m_Path: + m_Icon: {fileID: 0} + m_ResourceFile: + m_AssetTreeState: + scrollPos: {x: 0, y: 0} + m_SelectedIDs: + m_LastClickedID: 0 + m_ExpandedIDs: 00000000d4630000d6630000d8630000da630000dc630000de630000e0630000e2630000e4630000e6630000 + m_RenameOverlay: + m_UserAcceptedRename: 0 + m_Name: + m_OriginalName: + m_EditFieldRect: + serializedVersion: 2 + x: 0 + y: 0 + width: 0 + height: 0 + m_UserData: 0 + m_IsWaitingForDelay: 0 + m_IsRenaming: 0 + m_OriginalEventType: 11 + m_IsRenamingFilename: 1 + m_ClientGUIView: {fileID: 0} + m_SearchString: + m_CreateAssetUtility: + m_EndAction: {fileID: 0} + m_InstanceID: 0 + m_Path: + m_Icon: {fileID: 0} + m_ResourceFile: + m_ListAreaState: + m_SelectedInstanceIDs: + m_LastClickedInstanceID: 0 + m_HadKeyboardFocusLastEvent: 1 + m_ExpandedInstanceIDs: c6230000 + m_RenameOverlay: + m_UserAcceptedRename: 0 + m_Name: + m_OriginalName: + m_EditFieldRect: + serializedVersion: 2 + x: 0 + y: 0 + width: 0 + height: 0 + m_UserData: 0 + m_IsWaitingForDelay: 0 + m_IsRenaming: 0 + m_OriginalEventType: 11 + m_IsRenamingFilename: 1 + m_ClientGUIView: {fileID: 0} + m_CreateAssetUtility: + m_EndAction: {fileID: 0} + m_InstanceID: 0 + m_Path: + m_Icon: {fileID: 0} + m_ResourceFile: + m_NewAssetIndexInList: -1 + m_ScrollPosition: {x: 0, y: 0} + m_GridSize: 16 + m_SkipHiddenPackages: 0 + m_DirectoriesAreaWidth: 334 +--- !u!114 &16 +MonoBehaviour: + m_ObjectHideFlags: 52 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 1 + m_Script: {fileID: 12019, guid: 0000000000000000e000000000000000, type: 0} + m_Name: + m_EditorClassIdentifier: + m_MinSize: {x: 275, y: 50} + m_MaxSize: {x: 4000, y: 4000} + m_TitleContent: + m_Text: Inspector + m_Image: {fileID: -440750813802333266, guid: 0000000000000000d000000000000000, type: 0} + m_Tooltip: + m_Pos: + serializedVersion: 2 + x: 1356.8889 + y: 78.666664 + width: 342.55554 + height: 901 + m_ViewDataDictionary: {fileID: 0} + m_OverlayCanvas: + m_LastAppliedPresetName: Default + m_SaveData: [] + m_ObjectsLockedBeforeSerialization: [] + m_InstanceIDsLockedBeforeSerialization: + m_PreviewResizer: + m_CachedPref: 160 + m_ControlHash: -371814159 + m_PrefName: Preview_InspectorPreview + m_LastInspectedObjectInstanceID: -1 + m_LastVerticalScrollValue: 0 + m_GlobalObjectId: + m_InspectorMode: 0 + m_LockTracker: + m_IsLocked: 0 + m_PreviewWindow: {fileID: 0} +--- !u!114 &17 +MonoBehaviour: + m_ObjectHideFlags: 52 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 1 + m_Script: {fileID: 12061, guid: 0000000000000000e000000000000000, type: 0} + m_Name: + m_EditorClassIdentifier: + m_MinSize: {x: 200, y: 200} + m_MaxSize: {x: 4000, y: 4000} + m_TitleContent: + m_Text: Hierarchy + m_Image: {fileID: -3734745235275155857, guid: 0000000000000000d000000000000000, type: 0} + m_Tooltip: + m_Pos: + serializedVersion: 2 + x: 6.2222223 + y: 78.666664 + width: 333.22223 + height: 536.7778 + m_ViewDataDictionary: {fileID: 0} + m_OverlayCanvas: + m_LastAppliedPresetName: Default + m_SaveData: [] + m_SceneHierarchy: + m_TreeViewState: + scrollPos: {x: 0, y: 0} + m_SelectedIDs: 3e640000 + m_LastClickedID: 0 + m_ExpandedIDs: 7ee2ffff + m_RenameOverlay: + m_UserAcceptedRename: 0 + m_Name: + m_OriginalName: + m_EditFieldRect: + serializedVersion: 2 + x: 0 + y: 0 + width: 0 + height: 0 + m_UserData: 0 + m_IsWaitingForDelay: 0 + m_IsRenaming: 0 + m_OriginalEventType: 11 + m_IsRenamingFilename: 0 + m_ClientGUIView: {fileID: 0} + m_SearchString: + m_ExpandedScenes: [] + m_CurrenRootInstanceID: 0 + m_LockTracker: + m_IsLocked: 0 + m_CurrentSortingName: TransformSorting + m_WindowGUID: 26d3cc4a749ad3148bdaac8cbfc0727d +--- !u!114 &18 +MonoBehaviour: + m_ObjectHideFlags: 52 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 1 + m_Script: {fileID: 12013, guid: 0000000000000000e000000000000000, type: 0} + m_Name: + m_EditorClassIdentifier: + m_MinSize: {x: 200, y: 200} + m_MaxSize: {x: 4000, y: 4000} + m_TitleContent: + m_Text: Scene + m_Image: {fileID: 8634526014445323508, guid: 0000000000000000d000000000000000, type: 0} + m_Tooltip: + m_Pos: + serializedVersion: 2 + x: 340.44446 + y: 78.666664 + width: 1014.4444 + height: 536.7778 + m_ViewDataDictionary: {fileID: 0} + m_OverlayCanvas: + m_LastAppliedPresetName: Default + m_SaveData: + - dockPosition: 0 + containerId: overlay-toolbar__top + floating: 0 + collapsed: 0 + displayed: 1 + snapOffset: {x: 0, y: 0} + snapOffsetDelta: {x: -98.22223, y: -25.777771} + snapCorner: 3 + id: Tool Settings + index: 0 + layout: 1 + - dockPosition: 0 + containerId: overlay-toolbar__top + floating: 0 + collapsed: 0 + displayed: 1 + snapOffset: {x: -141, y: 149} + snapOffsetDelta: {x: 0, y: 0} + snapCorner: 1 + id: unity-grid-and-snap-toolbar + index: 1 + layout: 1 + - dockPosition: 1 + containerId: overlay-toolbar__top + floating: 0 + collapsed: 0 + displayed: 1 + snapOffset: {x: 0, y: 0} + snapOffsetDelta: {x: 0, y: 0} + snapCorner: 0 + id: unity-scene-view-toolbar + index: 0 + layout: 1 + - dockPosition: 1 + containerId: overlay-toolbar__top + floating: 0 + collapsed: 0 + displayed: 0 + snapOffset: {x: 0, y: 0} + snapOffsetDelta: {x: 0, y: 0} + snapCorner: 1 + id: unity-search-toolbar + index: 1 + layout: 1 + - dockPosition: 0 + containerId: overlay-container--left + floating: 0 + collapsed: 0 + displayed: 1 + snapOffset: {x: 0, y: 0} + snapOffsetDelta: {x: 0, y: 0} + snapCorner: 0 + id: unity-transform-toolbar + index: 0 + layout: 2 + - dockPosition: 0 + containerId: overlay-container--right + floating: 0 + collapsed: 0 + displayed: 1 + snapOffset: {x: 67.5, y: 86} + snapOffsetDelta: {x: 0, y: 0} + snapCorner: 0 + id: Orientation + index: 0 + layout: 4 + - dockPosition: 1 + containerId: overlay-container--right + floating: 0 + collapsed: 0 + displayed: 0 + snapOffset: {x: 0, y: 0} + snapOffsetDelta: {x: 0, y: 0} + snapCorner: 0 + id: Scene View/Light Settings + index: 0 + layout: 4 + - dockPosition: 1 + containerId: overlay-container--right + floating: 0 + collapsed: 0 + displayed: 0 + snapOffset: {x: 0, y: 0} + snapOffsetDelta: {x: 0, y: 0} + snapCorner: 0 + id: Scene View/Camera + index: 1 + layout: 4 + - dockPosition: 1 + containerId: overlay-container--right + floating: 0 + collapsed: 0 + displayed: 0 + snapOffset: {x: 0, y: 0} + snapOffsetDelta: {x: 0, y: 0} + snapCorner: 0 + id: Scene View/Cloth Constraints + index: 2 + layout: 4 + - dockPosition: 1 + containerId: overlay-container--right + floating: 0 + collapsed: 0 + displayed: 0 + snapOffset: {x: 0, y: 0} + snapOffsetDelta: {x: 0, y: 0} + snapCorner: 0 + id: Scene View/Cloth Collisions + index: 3 + layout: 4 + - dockPosition: 1 + containerId: overlay-container--right + floating: 0 + collapsed: 0 + displayed: 0 + snapOffset: {x: 0, y: 0} + snapOffsetDelta: {x: 0, y: 0} + snapCorner: 0 + id: Scene View/Navmesh Display + index: 4 + layout: 4 + - dockPosition: 1 + containerId: overlay-container--right + floating: 0 + collapsed: 0 + displayed: 0 + snapOffset: {x: 0, y: 0} + snapOffsetDelta: {x: 0, y: 0} + snapCorner: 0 + id: Scene View/Agent Display + index: 5 + layout: 4 + - dockPosition: 1 + containerId: overlay-container--right + floating: 0 + collapsed: 0 + displayed: 0 + snapOffset: {x: 0, y: 0} + snapOffsetDelta: {x: 0, y: 0} + snapCorner: 0 + id: Scene View/Obstacle Display + index: 6 + layout: 4 + - dockPosition: 1 + containerId: overlay-container--right + floating: 0 + collapsed: 0 + displayed: 0 + snapOffset: {x: 0, y: 0} + snapOffsetDelta: {x: 0, y: 0} + snapCorner: 0 + id: Scene View/Occlusion Culling + index: 7 + layout: 4 + - dockPosition: 1 + containerId: overlay-container--right + floating: 0 + collapsed: 0 + displayed: 0 + snapOffset: {x: 0, y: 0} + snapOffsetDelta: {x: 0, y: 0} + snapCorner: 0 + id: Scene View/Physics Debugger + index: 8 + layout: 4 + - dockPosition: 1 + containerId: overlay-container--right + floating: 0 + collapsed: 0 + displayed: 0 + snapOffset: {x: 0, y: 0} + snapOffsetDelta: {x: 0, y: 0} + snapCorner: 0 + id: Scene View/Scene Visibility + index: 9 + layout: 4 + - dockPosition: 1 + containerId: overlay-container--right + floating: 0 + collapsed: 0 + displayed: 0 + snapOffset: {x: 0, y: 0} + snapOffsetDelta: {x: 0, y: 0} + snapCorner: 0 + id: Scene View/Particles + index: 10 + layout: 4 + m_WindowGUID: f5dcb30f0be3f8447834243ac481bdf9 + m_Gizmos: 1 + m_OverrideSceneCullingMask: 6917529027641081856 + m_SceneIsLit: 1 + m_SceneLighting: 1 + m_2DMode: 0 + m_isRotationLocked: 0 + m_PlayAudio: 0 + m_AudioPlay: 0 + m_Position: + m_Target: {x: 0, y: 0, z: 0} + speed: 2 + m_Value: {x: 0, y: 0, z: 0} + m_RenderMode: 0 + m_CameraMode: + drawMode: 0 + name: Shaded + section: Shading Mode + m_ValidateTrueMetals: 0 + m_DoValidateTrueMetals: 0 + m_ExposureSliderValue: 0 + m_SceneViewState: + m_AlwaysRefresh: 0 + showFog: 1 + showSkybox: 1 + showFlares: 1 + showImageEffects: 1 + showParticleSystems: 1 + showVisualEffectGraphs: 1 + m_FxEnabled: 1 + m_Grid: + xGrid: + m_Fade: + m_Target: 0 + speed: 2 + m_Value: 0 + m_Color: {r: 0.5, g: 0.5, b: 0.5, a: 0.4} + m_Pivot: {x: 0, y: 0, z: 0} + m_Size: {x: 0, y: 0} + yGrid: + m_Fade: + m_Target: 1 + speed: 2 + m_Value: 1 + m_Color: {r: 0.5, g: 0.5, b: 0.5, a: 0.4} + m_Pivot: {x: 0, y: 0, z: 0} + m_Size: {x: 1, y: 1} + zGrid: + m_Fade: + m_Target: 0 + speed: 2 + m_Value: 0 + m_Color: {r: 0.5, g: 0.5, b: 0.5, a: 0.4} + m_Pivot: {x: 0, y: 0, z: 0} + m_Size: {x: 0, y: 0} + m_ShowGrid: 1 + m_GridAxis: 1 + m_gridOpacity: 0.5 + m_Rotation: + m_Target: {x: -0.08717229, y: 0.89959055, z: -0.21045254, w: -0.3726226} + speed: 2 + m_Value: {x: -0.08717229, y: 0.89959055, z: -0.21045254, w: -0.3726226} + m_Size: + m_Target: 10 + speed: 2 + m_Value: 10 + m_Ortho: + m_Target: 0 + speed: 2 + m_Value: 0 + m_CameraSettings: + m_Speed: 1 + m_SpeedNormalized: 0.5 + m_SpeedMin: 0.01 + m_SpeedMax: 2 + m_EasingEnabled: 1 + m_EasingDuration: 0.4 + m_AccelerationEnabled: 1 + m_FieldOfViewHorizontalOrVertical: 60 + m_NearClip: 0.03 + m_FarClip: 10000 + m_DynamicClip: 1 + m_OcclusionCulling: 0 + m_LastSceneViewRotation: {x: 0, y: 0, z: 0, w: 0} + m_LastSceneViewOrtho: 0 + m_ReplacementShader: {fileID: 0} + m_ReplacementString: + m_SceneVisActive: 1 + m_LastLockedObject: {fileID: 0} + m_ViewIsLockedToObject: 0 +--- !u!114 &19 +MonoBehaviour: + m_ObjectHideFlags: 52 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 1 + m_Script: {fileID: 12015, guid: 0000000000000000e000000000000000, type: 0} + m_Name: + m_EditorClassIdentifier: + m_MinSize: {x: 200, y: 200} + m_MaxSize: {x: 4000, y: 4000} + m_TitleContent: + m_Text: Game + m_Image: {fileID: 4621777727084837110, guid: 0000000000000000d000000000000000, type: 0} + m_Tooltip: + m_Pos: + serializedVersion: 2 + x: 507 + y: 94 + width: 1532 + height: 790 + m_ViewDataDictionary: {fileID: 0} + m_OverlayCanvas: + m_LastAppliedPresetName: Default + m_SaveData: [] + m_SerializedViewNames: [] + m_SerializedViewValues: [] + m_PlayModeViewName: GameView + m_ShowGizmos: 0 + m_TargetDisplay: 0 + m_ClearColor: {r: 0, g: 0, b: 0, a: 0} + m_TargetSize: {x: 3447, y: 1730.25} + m_TextureFilterMode: 0 + m_TextureHideFlags: 61 + m_RenderIMGUI: 0 + m_EnterPlayModeBehavior: 0 + m_UseMipMap: 0 + m_VSyncEnabled: 0 + m_Gizmos: 0 + m_Stats: 0 + m_SelectedSizes: 00000000000000000000000000000000000000000000000000000000000000000000000000000000 + m_ZoomArea: + m_HRangeLocked: 0 + m_VRangeLocked: 0 + hZoomLockedByDefault: 0 + vZoomLockedByDefault: 0 + m_HBaseRangeMin: -766 + m_HBaseRangeMax: 766 + m_VBaseRangeMin: -384.5 + m_VBaseRangeMax: 384.5 + m_HAllowExceedBaseRangeMin: 1 + m_HAllowExceedBaseRangeMax: 1 + m_VAllowExceedBaseRangeMin: 1 + m_VAllowExceedBaseRangeMax: 1 + m_ScaleWithWindow: 0 + m_HSlider: 0 + m_VSlider: 0 + m_IgnoreScrollWheelUntilClicked: 0 + m_EnableMouseInput: 1 + m_EnableSliderZoomHorizontal: 0 + m_EnableSliderZoomVertical: 0 + m_UniformScale: 1 + m_UpDirection: 1 + m_DrawArea: + serializedVersion: 2 + x: 0 + y: 21 + width: 1532 + height: 769 + m_Scale: {x: 1, y: 1} + m_Translation: {x: 766, y: 384.5} + m_MarginLeft: 0 + m_MarginRight: 0 + m_MarginTop: 0 + m_MarginBottom: 0 + m_LastShownAreaInsideMargins: + serializedVersion: 2 + x: -766 + y: -384.5 + width: 1532 + height: 769 + m_MinimalGUI: 1 + m_defaultScale: 1 + m_LastWindowPixelSize: {x: 3447, y: 1777.5} + m_ClearInEditMode: 1 + m_NoCameraWarning: 1 + m_LowResolutionForAspectRatios: 00000000000000000000 + m_XRRenderMode: 0 + m_RenderTexture: {fileID: 0} +--- !u!114 &20 +MonoBehaviour: + m_ObjectHideFlags: 52 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 1 + m_Script: {fileID: 12003, guid: 0000000000000000e000000000000000, type: 0} + m_Name: + m_EditorClassIdentifier: + m_MinSize: {x: 100, y: 100} + m_MaxSize: {x: 4000, y: 4000} + m_TitleContent: + m_Text: Console + m_Image: {fileID: -4950941429401207979, guid: 0000000000000000d000000000000000, type: 0} + m_Tooltip: + m_Pos: + serializedVersion: 2 + x: 634.6667 + y: 636.44446 + width: 720.22217 + height: 343.22223 + m_ViewDataDictionary: {fileID: 0} + m_OverlayCanvas: + m_LastAppliedPresetName: Default + m_SaveData: [] -- GitLab From bc319d21464aa456e53741c0607b188f39c70906 Mon Sep 17 00:00:00 2001 From: Sylvain Renault Date: Wed, 1 Jun 2022 11:17:06 +0200 Subject: [PATCH 6/7] Added licence headers and file. --- .../Editor/Graph/ARFGraphView.cs | 20 ++ .../Editor/Graph/ARFNode.cs | 23 +- .../Editor/Graph/GraphWindow.cs | 20 ++ .../Editor/Windows/TrackableWindow.cs | 21 +- .../Editor/Windows/WorldAnchorWindow.cs | 21 +- .../Editor/Windows/WorldStorageWindow.cs | 21 +- .../Editor/WorldStorageServerEditor.cs | 23 +- .../Editor/WorldStorageUserEditor.cs | 23 +- .../{Materials.meta => World Storage.meta} | 2 +- .../HHI Server - local.asset | 0 .../HHI Server - local.asset.meta | 0 .../HHI Server.asset | 0 .../HHI Server.asset.meta | 0 .../{Scenes => World Storage}/Sylvain.asset | 0 .../Sylvain.asset.meta | 0 Packages/manifest.json | 14 +- Packages/packages-lock.json | 29 ++- Packages/unity-world-storage-package | 2 +- ProjectSettings/ProjectSettings.asset | 216 +++++++++++++++++- ProjectSettings/ProjectVersion.txt | 4 +- UserSettings/Layouts/default-2021.dwlt | 42 ++-- 21 files changed, 396 insertions(+), 85 deletions(-) rename Assets/ETSI.ARF/ARF World Storage API/{Materials.meta => World Storage.meta} (77%) rename Assets/ETSI.ARF/ARF World Storage API/{Scenes => World Storage}/HHI Server - local.asset (100%) rename Assets/ETSI.ARF/ARF World Storage API/{Scenes => World Storage}/HHI Server - local.asset.meta (100%) rename Assets/ETSI.ARF/ARF World Storage API/{Scenes => World Storage}/HHI Server.asset (100%) rename Assets/ETSI.ARF/ARF World Storage API/{Scenes => World Storage}/HHI Server.asset.meta (100%) rename Assets/ETSI.ARF/ARF World Storage API/{Scenes => World Storage}/Sylvain.asset (100%) rename Assets/ETSI.ARF/ARF World Storage API/{Scenes => World Storage}/Sylvain.asset.meta (100%) diff --git a/Assets/ETSI.ARF/ARF World Storage API/Editor/Graph/ARFGraphView.cs b/Assets/ETSI.ARF/ARF World Storage API/Editor/Graph/ARFGraphView.cs index 23f5c45..2993790 100644 --- a/Assets/ETSI.ARF/ARF World Storage API/Editor/Graph/ARFGraphView.cs +++ b/Assets/ETSI.ARF/ARF World Storage API/Editor/Graph/ARFGraphView.cs @@ -1,3 +1,23 @@ +// +// ARF - Augmented Reality Framework (ETSI ISG ARF) +// +// Copyright 2022 ETSI +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// +// Last change: June 2022 +// + using System.Collections; using System.Collections.Generic; using UnityEngine; diff --git a/Assets/ETSI.ARF/ARF World Storage API/Editor/Graph/ARFNode.cs b/Assets/ETSI.ARF/ARF World Storage API/Editor/Graph/ARFNode.cs index 5f64ec9..5ea6fbe 100644 --- a/Assets/ETSI.ARF/ARF World Storage API/Editor/Graph/ARFNode.cs +++ b/Assets/ETSI.ARF/ARF World Storage API/Editor/Graph/ARFNode.cs @@ -1,14 +1,21 @@ // -// ETSI (European Telecommunications Standards Institute, referred to as ETSI) -// ARF - ETSI ISG Augmented Reality Framework (ISG ARF) -// (C) 2022 +// ARF - Augmented Reality Framework (ETSI ISG ARF) // -// Development "World Storage", data management, authoring tools +// Copyright 2022 ETSI // -// Authors: -// - Sylvain Renault (Fraunhofer HHI) -// -// Date: Feb. 2022 +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// +// Last change: June 2022 // using System.Collections; diff --git a/Assets/ETSI.ARF/ARF World Storage API/Editor/Graph/GraphWindow.cs b/Assets/ETSI.ARF/ARF World Storage API/Editor/Graph/GraphWindow.cs index 0afeea9..3a21abe 100644 --- a/Assets/ETSI.ARF/ARF World Storage API/Editor/Graph/GraphWindow.cs +++ b/Assets/ETSI.ARF/ARF World Storage API/Editor/Graph/GraphWindow.cs @@ -1,3 +1,23 @@ +// +// ARF - Augmented Reality Framework (ETSI ISG ARF) +// +// Copyright 2022 ETSI +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// +// Last change: June 2022 +// + #define USING_OPENAPI_GENERATOR // alt. is Swagger using System.Collections; diff --git a/Assets/ETSI.ARF/ARF World Storage API/Editor/Windows/TrackableWindow.cs b/Assets/ETSI.ARF/ARF World Storage API/Editor/Windows/TrackableWindow.cs index 630f2d0..b37271f 100644 --- a/Assets/ETSI.ARF/ARF World Storage API/Editor/Windows/TrackableWindow.cs +++ b/Assets/ETSI.ARF/ARF World Storage API/Editor/Windows/TrackableWindow.cs @@ -1,10 +1,21 @@ // -// ETSI (European Telecommunications Standards Institute, referred to as ETSI) -// ARF - ETSI ISG Augmented Reality Framework (ISG ARF) -// (C) 2022 +// ARF - Augmented Reality Framework (ETSI ISG ARF) // -// Development "World Storage", data management, authoring tools -// Date: June 2022 +// Copyright 2022 ETSI +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// +// Last change: June 2022 // #define USING_OPENAPI_GENERATOR // alt. is Swagger diff --git a/Assets/ETSI.ARF/ARF World Storage API/Editor/Windows/WorldAnchorWindow.cs b/Assets/ETSI.ARF/ARF World Storage API/Editor/Windows/WorldAnchorWindow.cs index 9831a5e..e116931 100644 --- a/Assets/ETSI.ARF/ARF World Storage API/Editor/Windows/WorldAnchorWindow.cs +++ b/Assets/ETSI.ARF/ARF World Storage API/Editor/Windows/WorldAnchorWindow.cs @@ -1,10 +1,21 @@ // -// ETSI (European Telecommunications Standards Institute, referred to as ETSI) -// ARF - ETSI ISG Augmented Reality Framework (ISG ARF) -// (C) 2022 +// ARF - Augmented Reality Framework (ETSI ISG ARF) // -// Development "World Storage", data management, authoring tools -// Date: June 2022 +// Copyright 2022 ETSI +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// +// Last change: June 2022 // #define USING_OPENAPI_GENERATOR // alt. is Swagger diff --git a/Assets/ETSI.ARF/ARF World Storage API/Editor/Windows/WorldStorageWindow.cs b/Assets/ETSI.ARF/ARF World Storage API/Editor/Windows/WorldStorageWindow.cs index a7f8b85..7bebf66 100644 --- a/Assets/ETSI.ARF/ARF World Storage API/Editor/Windows/WorldStorageWindow.cs +++ b/Assets/ETSI.ARF/ARF World Storage API/Editor/Windows/WorldStorageWindow.cs @@ -1,10 +1,21 @@ // -// ETSI (European Telecommunications Standards Institute, referred to as ETSI) -// ARF - ETSI ISG Augmented Reality Framework (ISG ARF) -// (C) 2022 +// ARF - Augmented Reality Framework (ETSI ISG ARF) // -// Development "World Storage", data management, authoring tools -// Date: June 2022 +// Copyright 2022 ETSI +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// +// Last change: June 2022 // #define USING_OPENAPI_GENERATOR // alt. is Swagger diff --git a/Assets/ETSI.ARF/ARF World Storage API/Editor/WorldStorageServerEditor.cs b/Assets/ETSI.ARF/ARF World Storage API/Editor/WorldStorageServerEditor.cs index d595b9f..aef63df 100644 --- a/Assets/ETSI.ARF/ARF World Storage API/Editor/WorldStorageServerEditor.cs +++ b/Assets/ETSI.ARF/ARF World Storage API/Editor/WorldStorageServerEditor.cs @@ -1,14 +1,21 @@ // -// ETSI (European Telecommunications Standards Institute, referred to as ETSI) -// ARF - ETSI ISG Augmented Reality Framework (ISG ARF) -// (C) 2022 +// ARF - Augmented Reality Framework (ETSI ISG ARF) // -// Development "World Storage", data management, authoring tools +// Copyright 2022 ETSI // -// Authors: -// - Sylvain Renault (Fraunhofer HHI) -// -// Date: Feb. 2022 +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// +// Last change: June 2022 // using System.Collections; diff --git a/Assets/ETSI.ARF/ARF World Storage API/Editor/WorldStorageUserEditor.cs b/Assets/ETSI.ARF/ARF World Storage API/Editor/WorldStorageUserEditor.cs index e37b42f..7fa879f 100644 --- a/Assets/ETSI.ARF/ARF World Storage API/Editor/WorldStorageUserEditor.cs +++ b/Assets/ETSI.ARF/ARF World Storage API/Editor/WorldStorageUserEditor.cs @@ -1,14 +1,21 @@ // -// ETSI (European Telecommunications Standards Institute, referred to as ETSI) -// ARF - ETSI ISG Augmented Reality Framework (ISG ARF) -// (C) 2022 +// ARF - Augmented Reality Framework (ETSI ISG ARF) // -// Development "World Storage", data management, authoring tools +// Copyright 2022 ETSI // -// Authors: -// - Sylvain Renault (Fraunhofer HHI) -// -// Date: Feb. 2022 +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// +// Last change: June 2022 // using System.Collections; diff --git a/Assets/ETSI.ARF/ARF World Storage API/Materials.meta b/Assets/ETSI.ARF/ARF World Storage API/World Storage.meta similarity index 77% rename from Assets/ETSI.ARF/ARF World Storage API/Materials.meta rename to Assets/ETSI.ARF/ARF World Storage API/World Storage.meta index c43ac24..8560723 100644 --- a/Assets/ETSI.ARF/ARF World Storage API/Materials.meta +++ b/Assets/ETSI.ARF/ARF World Storage API/World Storage.meta @@ -1,5 +1,5 @@ fileFormatVersion: 2 -guid: 4da599b9c3d07b8418c44e099b51e460 +guid: cc2df8b16e2cde142a8caf034fa6a765 folderAsset: yes DefaultImporter: externalObjects: {} diff --git a/Assets/ETSI.ARF/ARF World Storage API/Scenes/HHI Server - local.asset b/Assets/ETSI.ARF/ARF World Storage API/World Storage/HHI Server - local.asset similarity index 100% rename from Assets/ETSI.ARF/ARF World Storage API/Scenes/HHI Server - local.asset rename to Assets/ETSI.ARF/ARF World Storage API/World Storage/HHI Server - local.asset diff --git a/Assets/ETSI.ARF/ARF World Storage API/Scenes/HHI Server - local.asset.meta b/Assets/ETSI.ARF/ARF World Storage API/World Storage/HHI Server - local.asset.meta similarity index 100% rename from Assets/ETSI.ARF/ARF World Storage API/Scenes/HHI Server - local.asset.meta rename to Assets/ETSI.ARF/ARF World Storage API/World Storage/HHI Server - local.asset.meta diff --git a/Assets/ETSI.ARF/ARF World Storage API/Scenes/HHI Server.asset b/Assets/ETSI.ARF/ARF World Storage API/World Storage/HHI Server.asset similarity index 100% rename from Assets/ETSI.ARF/ARF World Storage API/Scenes/HHI Server.asset rename to Assets/ETSI.ARF/ARF World Storage API/World Storage/HHI Server.asset diff --git a/Assets/ETSI.ARF/ARF World Storage API/Scenes/HHI Server.asset.meta b/Assets/ETSI.ARF/ARF World Storage API/World Storage/HHI Server.asset.meta similarity index 100% rename from Assets/ETSI.ARF/ARF World Storage API/Scenes/HHI Server.asset.meta rename to Assets/ETSI.ARF/ARF World Storage API/World Storage/HHI Server.asset.meta diff --git a/Assets/ETSI.ARF/ARF World Storage API/Scenes/Sylvain.asset b/Assets/ETSI.ARF/ARF World Storage API/World Storage/Sylvain.asset similarity index 100% rename from Assets/ETSI.ARF/ARF World Storage API/Scenes/Sylvain.asset rename to Assets/ETSI.ARF/ARF World Storage API/World Storage/Sylvain.asset diff --git a/Assets/ETSI.ARF/ARF World Storage API/Scenes/Sylvain.asset.meta b/Assets/ETSI.ARF/ARF World Storage API/World Storage/Sylvain.asset.meta similarity index 100% rename from Assets/ETSI.ARF/ARF World Storage API/Scenes/Sylvain.asset.meta rename to Assets/ETSI.ARF/ARF World Storage API/World Storage/Sylvain.asset.meta diff --git a/Packages/manifest.json b/Packages/manifest.json index 6a17a2d..16e189b 100644 --- a/Packages/manifest.json +++ b/Packages/manifest.json @@ -1,12 +1,12 @@ { "dependencies": { - "com.unity.collab-proxy": "1.3.9", - "com.unity.ide.rider": "2.0.7", - "com.unity.ide.visualstudio": "2.0.7", - "com.unity.ide.vscode": "1.2.3", - "com.unity.test-framework": "1.1.24", - "com.unity.textmeshpro": "3.0.4", - "com.unity.timeline": "1.4.7", + "com.unity.collab-proxy": "1.15.15", + "com.unity.ide.rider": "3.0.13", + "com.unity.ide.visualstudio": "2.0.14", + "com.unity.ide.vscode": "1.2.5", + "com.unity.test-framework": "1.1.31", + "com.unity.textmeshpro": "3.0.6", + "com.unity.timeline": "1.6.4", "com.unity.toolchain.win-x86_64-linux-x86_64": "2.0.0", "com.unity.ugui": "1.0.0", "etsi.isg.arf.worldstorage": "file:./unity-world-storage-package", diff --git a/Packages/packages-lock.json b/Packages/packages-lock.json index 2c2ade1..caee3fc 100644 --- a/Packages/packages-lock.json +++ b/Packages/packages-lock.json @@ -1,10 +1,12 @@ { "dependencies": { "com.unity.collab-proxy": { - "version": "1.3.9", + "version": "1.15.15", "depth": 0, "source": "registry", - "dependencies": {}, + "dependencies": { + "com.unity.services.core": "1.0.1" + }, "url": "https://packages.unity.com" }, "com.unity.ext.nunit": { @@ -15,16 +17,16 @@ "url": "https://packages.unity.com" }, "com.unity.ide.rider": { - "version": "2.0.7", + "version": "3.0.13", "depth": 0, "source": "registry", "dependencies": { - "com.unity.test-framework": "1.1.1" + "com.unity.ext.nunit": "1.0.6" }, "url": "https://packages.unity.com" }, "com.unity.ide.visualstudio": { - "version": "2.0.7", + "version": "2.0.14", "depth": 0, "source": "registry", "dependencies": { @@ -33,12 +35,21 @@ "url": "https://packages.unity.com" }, "com.unity.ide.vscode": { - "version": "1.2.3", + "version": "1.2.5", "depth": 0, "source": "registry", "dependencies": {}, "url": "https://packages.unity.com" }, + "com.unity.services.core": { + "version": "1.0.1", + "depth": 1, + "source": "registry", + "dependencies": { + "com.unity.modules.unitywebrequest": "1.0.0" + }, + "url": "https://packages.unity.com" + }, "com.unity.sysroot": { "version": "2.0.0", "depth": 1, @@ -56,7 +67,7 @@ "url": "https://packages.unity.com" }, "com.unity.test-framework": { - "version": "1.1.24", + "version": "1.1.31", "depth": 0, "source": "registry", "dependencies": { @@ -67,7 +78,7 @@ "url": "https://packages.unity.com" }, "com.unity.textmeshpro": { - "version": "3.0.4", + "version": "3.0.6", "depth": 0, "source": "registry", "dependencies": { @@ -76,7 +87,7 @@ "url": "https://packages.unity.com" }, "com.unity.timeline": { - "version": "1.4.7", + "version": "1.6.4", "depth": 0, "source": "registry", "dependencies": { diff --git a/Packages/unity-world-storage-package b/Packages/unity-world-storage-package index 14e1e67..036c4ed 160000 --- a/Packages/unity-world-storage-package +++ b/Packages/unity-world-storage-package @@ -1 +1 @@ -Subproject commit 14e1e679ed253a6760c78f05fe1250d1a6b86f06 +Subproject commit 036c4edd918710fe3b17b9ca2b893c40291a4a94 diff --git a/ProjectSettings/ProjectSettings.asset b/ProjectSettings/ProjectSettings.asset index 1a6cdc7..e29f9aa 100644 --- a/ProjectSettings/ProjectSettings.asset +++ b/ProjectSettings/ProjectSettings.asset @@ -3,7 +3,7 @@ --- !u!129 &1 PlayerSettings: m_ObjectHideFlags: 0 - serializedVersion: 22 + serializedVersion: 23 productGUID: 50a00edc2356b084d9323d73731eb9e1 AndroidProfiler: 0 AndroidFilterTouchesWhenObscured: 0 @@ -68,6 +68,12 @@ PlayerSettings: androidRenderOutsideSafeArea: 1 androidUseSwappy: 1 androidBlitType: 0 + androidResizableWindow: 0 + androidDefaultWindowWidth: 1920 + androidDefaultWindowHeight: 1080 + androidMinimumWindowWidth: 400 + androidMinimumWindowHeight: 300 + androidFullscreenMode: 1 defaultIsNativeResolution: 1 macRetinaSupport: 1 runInBackground: 1 @@ -121,6 +127,7 @@ PlayerSettings: vulkanEnableSetSRGBWrite: 0 vulkanEnablePreTransform: 0 vulkanEnableLateAcquireNextImage: 0 + vulkanEnableCommandBufferRecycling: 1 m_SupportedAspectRatios: 4:3: 1 5:4: 1 @@ -152,7 +159,7 @@ PlayerSettings: tvOS: 0 overrideDefaultApplicationIdentifier: 0 AndroidBundleVersionCode: 1 - AndroidMinSdkVersion: 19 + AndroidMinSdkVersion: 22 AndroidTargetSdkVersion: 0 AndroidPreferredInstallLocation: 1 aotOptions: @@ -208,6 +215,7 @@ PlayerSettings: iOSLaunchScreeniPadCustomStoryboardPath: iOSDeviceRequirements: [] iOSURLSchemes: [] + macOSURLSchemes: [] iOSBackgroundModes: 0 iOSMetalForceHardShadows: 0 metalEditorSupport: 1 @@ -235,6 +243,7 @@ PlayerSettings: useCustomGradlePropertiesTemplate: 0 useCustomProguardFile: 0 AndroidTargetArchitectures: 1 + AndroidTargetDevices: 0 AndroidSplashScreenScale: 0 androidSplashScreen: {fileID: 0} AndroidKeystoreName: @@ -251,13 +260,203 @@ PlayerSettings: height: 180 banner: {fileID: 0} androidGamepadSupportLevel: 0 + chromeosInputEmulation: 1 AndroidMinifyWithR8: 0 AndroidMinifyRelease: 0 AndroidMinifyDebug: 0 AndroidValidateAppBundleSize: 1 AndroidAppBundleSizeToValidate: 150 m_BuildTargetIcons: [] - m_BuildTargetPlatformIcons: [] + m_BuildTargetPlatformIcons: + - m_BuildTarget: iPhone + m_Icons: + - m_Textures: [] + m_Width: 180 + m_Height: 180 + m_Kind: 0 + m_SubKind: iPhone + - m_Textures: [] + m_Width: 120 + m_Height: 120 + m_Kind: 0 + m_SubKind: iPhone + - m_Textures: [] + m_Width: 167 + m_Height: 167 + m_Kind: 0 + m_SubKind: iPad + - m_Textures: [] + m_Width: 152 + m_Height: 152 + m_Kind: 0 + m_SubKind: iPad + - m_Textures: [] + m_Width: 76 + m_Height: 76 + m_Kind: 0 + m_SubKind: iPad + - m_Textures: [] + m_Width: 120 + m_Height: 120 + m_Kind: 3 + m_SubKind: iPhone + - m_Textures: [] + m_Width: 80 + m_Height: 80 + m_Kind: 3 + m_SubKind: iPhone + - m_Textures: [] + m_Width: 80 + m_Height: 80 + m_Kind: 3 + m_SubKind: iPad + - m_Textures: [] + m_Width: 40 + m_Height: 40 + m_Kind: 3 + m_SubKind: iPad + - m_Textures: [] + m_Width: 87 + m_Height: 87 + m_Kind: 1 + m_SubKind: iPhone + - m_Textures: [] + m_Width: 58 + m_Height: 58 + m_Kind: 1 + m_SubKind: iPhone + - m_Textures: [] + m_Width: 29 + m_Height: 29 + m_Kind: 1 + m_SubKind: iPhone + - m_Textures: [] + m_Width: 58 + m_Height: 58 + m_Kind: 1 + m_SubKind: iPad + - m_Textures: [] + m_Width: 29 + m_Height: 29 + m_Kind: 1 + m_SubKind: iPad + - m_Textures: [] + m_Width: 60 + m_Height: 60 + m_Kind: 2 + m_SubKind: iPhone + - m_Textures: [] + m_Width: 40 + m_Height: 40 + m_Kind: 2 + m_SubKind: iPhone + - m_Textures: [] + m_Width: 40 + m_Height: 40 + m_Kind: 2 + m_SubKind: iPad + - m_Textures: [] + m_Width: 20 + m_Height: 20 + m_Kind: 2 + m_SubKind: iPad + - m_Textures: [] + m_Width: 1024 + m_Height: 1024 + m_Kind: 4 + m_SubKind: App Store + - m_BuildTarget: Android + m_Icons: + - m_Textures: [] + m_Width: 432 + m_Height: 432 + m_Kind: 2 + m_SubKind: + - m_Textures: [] + m_Width: 324 + m_Height: 324 + m_Kind: 2 + m_SubKind: + - m_Textures: [] + m_Width: 216 + m_Height: 216 + m_Kind: 2 + m_SubKind: + - m_Textures: [] + m_Width: 162 + m_Height: 162 + m_Kind: 2 + m_SubKind: + - m_Textures: [] + m_Width: 108 + m_Height: 108 + m_Kind: 2 + m_SubKind: + - m_Textures: [] + m_Width: 81 + m_Height: 81 + m_Kind: 2 + m_SubKind: + - m_Textures: [] + m_Width: 192 + m_Height: 192 + m_Kind: 1 + m_SubKind: + - m_Textures: [] + m_Width: 144 + m_Height: 144 + m_Kind: 1 + m_SubKind: + - m_Textures: [] + m_Width: 96 + m_Height: 96 + m_Kind: 1 + m_SubKind: + - m_Textures: [] + m_Width: 72 + m_Height: 72 + m_Kind: 1 + m_SubKind: + - m_Textures: [] + m_Width: 48 + m_Height: 48 + m_Kind: 1 + m_SubKind: + - m_Textures: [] + m_Width: 36 + m_Height: 36 + m_Kind: 1 + m_SubKind: + - m_Textures: [] + m_Width: 192 + m_Height: 192 + m_Kind: 0 + m_SubKind: + - m_Textures: [] + m_Width: 144 + m_Height: 144 + m_Kind: 0 + m_SubKind: + - m_Textures: [] + m_Width: 96 + m_Height: 96 + m_Kind: 0 + m_SubKind: + - m_Textures: [] + m_Width: 72 + m_Height: 72 + m_Kind: 0 + m_SubKind: + - m_Textures: [] + m_Width: 48 + m_Height: 48 + m_Kind: 0 + m_SubKind: + - m_Textures: [] + m_Width: 36 + m_Height: 36 + m_Kind: 0 + m_SubKind: m_BuildTargetBatching: - m_BuildTarget: Standalone m_StaticBatching: 1 @@ -309,7 +508,7 @@ PlayerSettings: m_BuildTargetGraphicsAPIs: - m_BuildTarget: AndroidPlayer m_APIs: 150000000b000000 - m_Automatic: 0 + m_Automatic: 1 - m_BuildTarget: iOSSupport m_APIs: 10000000 m_Automatic: 1 @@ -336,6 +535,7 @@ PlayerSettings: m_BuildTargetGroupLightmapEncodingQuality: [] m_BuildTargetGroupLightmapSettings: [] m_BuildTargetNormalMapEncoding: [] + m_BuildTargetDefaultTextureCompressionFormat: [] playModeTestRunnerEnabled: 0 runPlayModeTestAsEditModeTest: 0 actionOnDotNetUnhandledException: 1 @@ -345,6 +545,7 @@ PlayerSettings: cameraUsageDescription: locationUsageDescription: microphoneUsageDescription: + bluetoothUsageDescription: switchNMETAOverride: switchNetLibKey: switchSocketMemoryPoolSize: 6144 @@ -353,6 +554,7 @@ PlayerSettings: switchScreenResolutionBehavior: 2 switchUseCPUProfiler: 0 switchUseGOLDLinker: 0 + switchLTOSetting: 0 switchApplicationID: 0x01004b9000490000 switchNSODependencies: switchTitleNames_0: @@ -483,7 +685,9 @@ PlayerSettings: switchPlayerConnectionEnabled: 1 switchUseNewStyleFilepaths: 0 switchUseMicroSleepForYield: 1 + switchEnableRamDiskSupport: 0 switchMicroSleepForYieldTime: 25 + switchRamDiskSpaceSize: 12 ps4NPAgeRating: 12 ps4NPTitleSecret: ps4NPTrophyPackPath: @@ -588,7 +792,6 @@ PlayerSettings: suppressCommonWarnings: 1 allowUnsafeCode: 0 useDeterministicCompilation: 1 - useReferenceAssemblies: 1 enableRoslynAnalyzers: 1 additionalIl2CppArgs: scriptingRuntimeVersion: 1 @@ -624,6 +827,7 @@ PlayerSettings: metroFTAName: metroFTAFileTypes: [] metroProtocolName: + vcxProjDefaultLanguage: XboxOneProductId: XboxOneUpdateKey: XboxOneSandboxId: @@ -674,4 +878,6 @@ PlayerSettings: organizationId: cloudEnabled: 0 legacyClampBlendShapeWeights: 0 + playerDataPath: + forceSRGBBlit: 1 virtualTexturingSupportEnabled: 0 diff --git a/ProjectSettings/ProjectVersion.txt b/ProjectSettings/ProjectVersion.txt index 8c1bcbd..3384268 100644 --- a/ProjectSettings/ProjectVersion.txt +++ b/ProjectSettings/ProjectVersion.txt @@ -1,2 +1,2 @@ -m_EditorVersion: 2020.3.7f1 -m_EditorVersionWithRevision: 2020.3.7f1 (dd97f2c94397) +m_EditorVersion: 2021.3.0f1 +m_EditorVersionWithRevision: 2021.3.0f1 (6eacc8284459) diff --git a/UserSettings/Layouts/default-2021.dwlt b/UserSettings/Layouts/default-2021.dwlt index 61c1571..dc2e782 100644 --- a/UserSettings/Layouts/default-2021.dwlt +++ b/UserSettings/Layouts/default-2021.dwlt @@ -19,7 +19,7 @@ MonoBehaviour: width: 1694.2223 height: 972 m_ShowMode: 4 - m_Title: Project + m_Title: Inspector m_RootView: {fileID: 8} m_MinSize: {x: 875, y: 300} m_MaxSize: {x: 10000, y: 10000} @@ -74,7 +74,7 @@ MonoBehaviour: m_MinSize: {x: 200, y: 100} m_MaxSize: {x: 16192, y: 8096} vertical: 0 - controlID: 167 + controlID: 113 --- !u!114 &4 MonoBehaviour: m_ObjectHideFlags: 52 @@ -99,7 +99,7 @@ MonoBehaviour: m_MinSize: {x: 300, y: 200} m_MaxSize: {x: 24288, y: 16192} vertical: 0 - controlID: 21 + controlID: 102 --- !u!114 &5 MonoBehaviour: m_ObjectHideFlags: 52 @@ -273,7 +273,7 @@ MonoBehaviour: m_MinSize: {x: 200, y: 200} m_MaxSize: {x: 16192, y: 16192} vertical: 1 - controlID: 73 + controlID: 103 --- !u!114 &12 MonoBehaviour: m_ObjectHideFlags: 52 @@ -298,7 +298,7 @@ MonoBehaviour: m_MinSize: {x: 200, y: 100} m_MaxSize: {x: 16192, y: 8096} vertical: 0 - controlID: 74 + controlID: 104 --- !u!114 &13 MonoBehaviour: m_ObjectHideFlags: 52 @@ -396,22 +396,22 @@ MonoBehaviour: m_SkipHidden: 0 m_SearchArea: 1 m_Folders: - - Packages/com.unity.nuget.newtonsoft-json/Runtime/AOT + - Assets/ETSI.ARF/ARF World Storage API/Scenes m_Globs: [] m_OriginalText: m_ViewMode: 1 m_StartGridSize: 16 m_LastFolders: - - Packages/com.unity.nuget.newtonsoft-json/Runtime/AOT + - Assets/ETSI.ARF/ARF World Storage API/Scenes m_LastFoldersGridSize: 16 m_LastProjectPath: D:\Fraunhofer\Projects\ETSI\GitLab (STF)\unity-world-storage-editor m_LockTracker: m_IsLocked: 0 m_FolderTreeState: - scrollPos: {x: 0, y: 128.77777} - m_SelectedIDs: 22640000 - m_LastClickedID: 25634 - m_ExpandedIDs: 00000000d4630000d6630000d8630000da630000dc630000de630000e0630000e2630000e4630000e6630000026400002064000000ca9a3bffffff7f + scrollPos: {x: 0, y: 79} + m_SelectedIDs: 3a610000 + m_LastClickedID: 24890 + m_ExpandedIDs: 000000002a6100002c6100002e61000000ca9a3bffffff7f m_RenameOverlay: m_UserAcceptedRename: 0 m_Name: @@ -439,7 +439,7 @@ MonoBehaviour: scrollPos: {x: 0, y: 0} m_SelectedIDs: m_LastClickedID: 0 - m_ExpandedIDs: 00000000d4630000d6630000d8630000da630000dc630000de630000e0630000e2630000e4630000e6630000 + m_ExpandedIDs: 000000002a6100002c6100002e610000 m_RenameOverlay: m_UserAcceptedRename: 0 m_Name: @@ -567,9 +567,9 @@ MonoBehaviour: m_SceneHierarchy: m_TreeViewState: scrollPos: {x: 0, y: 0} - m_SelectedIDs: 3e640000 + m_SelectedIDs: c05d0000 m_LastClickedID: 0 - m_ExpandedIDs: 7ee2ffff + m_ExpandedIDs: 06e4ffff m_RenameOverlay: m_UserAcceptedRename: 0 m_Name: @@ -949,8 +949,8 @@ MonoBehaviour: vZoomLockedByDefault: 0 m_HBaseRangeMin: -766 m_HBaseRangeMax: 766 - m_VBaseRangeMin: -384.5 - m_VBaseRangeMax: 384.5 + m_VBaseRangeMin: -395 + m_VBaseRangeMax: 395 m_HAllowExceedBaseRangeMin: 1 m_HAllowExceedBaseRangeMax: 1 m_VAllowExceedBaseRangeMin: 1 @@ -967,11 +967,11 @@ MonoBehaviour: m_DrawArea: serializedVersion: 2 x: 0 - y: 21 + y: 0 width: 1532 - height: 769 + height: 790 m_Scale: {x: 1, y: 1} - m_Translation: {x: 766, y: 384.5} + m_Translation: {x: 766, y: 395} m_MarginLeft: 0 m_MarginRight: 0 m_MarginTop: 0 @@ -979,9 +979,9 @@ MonoBehaviour: m_LastShownAreaInsideMargins: serializedVersion: 2 x: -766 - y: -384.5 + y: -395 width: 1532 - height: 769 + height: 790 m_MinimalGUI: 1 m_defaultScale: 1 m_LastWindowPixelSize: {x: 3447, y: 1777.5} -- GitLab From 949dd19e52dc3c2ea1a548f96083fa6f337f801d Mon Sep 17 00:00:00 2001 From: Sylvain Renault Date: Fri, 3 Jun 2022 09:53:55 +0200 Subject: [PATCH 7/7] Redesign of all windows (server/trackable/anchor/link). Added world link window. Completion and implementation of all API parameters (tbd: to be tested). --- .../Editor/Windows/TrackableWindow.cs | 182 ++++++----- .../Editor/Windows/WorldAnchorWindow.cs | 145 +++++---- .../Editor/Windows/WorldLinkWindow.cs | 248 +++++++++++++++ .../Editor/Windows/WorldLinkWindow.cs.meta | 11 + .../Editor/Windows/WorldStorageWindow.cs | 283 +++++++++++------- .../Editor/WorldStorageServerEditor.cs | 2 +- .../Scenes/WorldStorageSample.unity | 5 + .../World Storage/HHI Server - local.asset | 3 +- .../World Storage/HHI Server.asset | 5 +- .../World Storage/Nathan.asset | 17 ++ .../World Storage/Nathan.asset.meta | 8 + .../World Storage/Sylvain.asset | 3 +- Packages/unity-world-storage-package | 2 +- ProjectSettings/SceneTemplateSettings.json | 167 +++++++++++ UserSettings/Layouts/default-2021.dwlt | 154 +++++----- 15 files changed, 921 insertions(+), 314 deletions(-) create mode 100644 Assets/ETSI.ARF/ARF World Storage API/Editor/Windows/WorldLinkWindow.cs create mode 100644 Assets/ETSI.ARF/ARF World Storage API/Editor/Windows/WorldLinkWindow.cs.meta create mode 100644 Assets/ETSI.ARF/ARF World Storage API/World Storage/Nathan.asset create mode 100644 Assets/ETSI.ARF/ARF World Storage API/World Storage/Nathan.asset.meta create mode 100644 ProjectSettings/SceneTemplateSettings.json diff --git a/Assets/ETSI.ARF/ARF World Storage API/Editor/Windows/TrackableWindow.cs b/Assets/ETSI.ARF/ARF World Storage API/Editor/Windows/TrackableWindow.cs index b37271f..acc8f55 100644 --- a/Assets/ETSI.ARF/ARF World Storage API/Editor/Windows/TrackableWindow.cs +++ b/Assets/ETSI.ARF/ARF World Storage API/Editor/Windows/TrackableWindow.cs @@ -19,7 +19,7 @@ // #define USING_OPENAPI_GENERATOR // alt. is Swagger -//#define isDEBUG +#define isDEBUG using System.Collections; using System.Collections.Generic; @@ -47,14 +47,19 @@ namespace ETSI.ARF.WorldStorage.UI bool groupEnabled; + // Trackable params string UUID = System.Guid.Empty.ToString(); string customName = "NotDefined"; string creatorUUID = System.Guid.Empty.ToString(); - string type = "Unknow"; - string unit = "Unknow"; - Vector2Int dim; - - private Trackable currentTrackable; + Trackable.TrackableTypeEnum type = Trackable.TrackableTypeEnum.OTHER; + UnitSystem unit = UnitSystem.CM; + Vector3 trackableSize; + Vector3 localCRS_pos; + Vector3 localCRS_rot; + byte[] trackablePayload = new byte[1] { 0 }; + [SerializeField] Dictionary> keyValueTags = new Dictionary>(); + + // UI stuffs private Vector2 scrollPos; private Color ori; private GUIStyle gsTest; @@ -69,7 +74,6 @@ namespace ETSI.ARF.WorldStorage.UI public TrackableWindow() { // init somne stuffs - //currentTrackable = new Trackable(); } void OnGUI() @@ -95,7 +99,7 @@ namespace ETSI.ARF.WorldStorage.UI void DrawTrackableStuffs()// Trackable trackable) { - GUILayout.BeginVertical("AR Trackable", gsTest); + GUILayout.BeginVertical("Trackable Editor", gsTest); // GUILayout.Label("Server: " + worldStorageServer.serverName, EditorStyles.whiteLargeLabel); GUILayout.Label("User: " + worldStorageUser.userName, EditorStyles.whiteLargeLabel); @@ -121,59 +125,117 @@ namespace ETSI.ARF.WorldStorage.UI Trackable obj = TrackableRequest.GetTrackable(worldStorageServer, UUID); customName = obj.Name; creatorUUID = obj.CreatorUUID.ToString(); - type = obj.TrackableType.ToString(); - unit = obj.Unit.ToString(); + type = obj.TrackableType; + unit = obj.Unit; + if (obj.TrackableSize.Count == 3) + { + trackableSize = new Vector3((float)obj.TrackableSize[0], (float)obj.TrackableSize[1], (float)obj.TrackableSize[2]); + } + else trackableSize = Vector3.zero; + if (obj.LocalCRS.Count == 16) + { + Matrix4x4 localCRS = new Matrix4x4(); + localCRS.m00 = obj.LocalCRS[0]; localCRS.m01 = obj.LocalCRS[1]; localCRS.m02 = obj.LocalCRS[2]; localCRS.m03 = obj.LocalCRS[3]; + localCRS.m10 = obj.LocalCRS[4]; localCRS.m11 = obj.LocalCRS[5]; localCRS.m12 = obj.LocalCRS[6]; localCRS.m13 = obj.LocalCRS[7]; + localCRS.m20 = obj.LocalCRS[8]; localCRS.m21 = obj.LocalCRS[9]; localCRS.m22 = obj.LocalCRS[10]; localCRS.m23 = obj.LocalCRS[11]; + localCRS.m30 = obj.LocalCRS[12]; localCRS.m31 = obj.LocalCRS[13]; localCRS.m32 = obj.LocalCRS[14]; localCRS.m33 = obj.LocalCRS[15]; + localCRS_pos = localCRS.GetPosition(); + localCRS_rot = localCRS.rotation.eulerAngles; + } + else + { + localCRS_pos = Vector3.zero; + localCRS_rot = Vector3.zero; + } + keyValueTags = obj.KeyvalueTags; + this.Repaint(); // TODO } GUI.backgroundColor = ori; - type = EditorGUILayout.TextField("Trackable Type", type); - unit = EditorGUILayout.TextField("Unit System", unit); + type = (Trackable.TrackableTypeEnum)EditorGUILayout.EnumPopup("Trackable Type:", type); + unit = (UnitSystem)EditorGUILayout.EnumPopup("Unit System:", unit); EditorGUILayout.Space(10); - dim = EditorGUILayout.Vector2IntField("Dimension", dim); + trackableSize = EditorGUILayout.Vector3Field("Trackable Size:", trackableSize); + + EditorGUILayout.Space(10); + GUILayout.Label("Local CRS:"); + localCRS_pos = EditorGUILayout.Vector3Field("Position:", localCRS_pos); + localCRS_rot = EditorGUILayout.Vector3Field("Rotation:", localCRS_rot); EditorGUILayout.Space(); - GUILayout.Button("Payload from Asset..."); + if (GUILayout.Button("Generate Dummy Payload")) + { + // dummy + trackablePayload = new byte[100]; + for (int i = 0; i < trackablePayload.Length; i++) + { + trackablePayload[i] = (byte)i; + } + } EditorGUILayout.Space(); groupEnabled = EditorGUILayout.BeginToggleGroup("Optional Parameters:", groupEnabled); - EditorGUILayout.IntField("Number of KeyValues", 0); - EditorGUILayout.Space(); - EditorGUILayout.TextField("Key", ""); - EditorGUILayout.TextField("Value", ""); + //EditorGUILayout.IntField("Number of KeyValues", 0); + //EditorGUILayout.Space(); + //EditorGUILayout.TextField("Key", ""); + //EditorGUILayout.TextField("Value", ""); + if (GUILayout.Button("Generate Dummy Key Values")) + { + // dummy + keyValueTags.Clear(); + keyValueTags.Add("Location", new List { "Room1" }); + } + // Test + //keyValueTags.Add("1", "a"); + //ScriptableObject target = this; + //SerializedObject so = new SerializedObject(target); + //SerializedProperty stringsProperty = so.FindProperty("trackables"); + //EditorGUILayout.PropertyField(stringsProperty, true); // True means show children + //so.ApplyModifiedProperties(); // Remember to apply modified properties EditorGUILayout.EndToggleGroup(); - // + GUILayout.EndVertical(); // ########################################################### - GUI.backgroundColor = WorldStorageWindow.arfColors[2]; - if (GUILayout.Button("Create/Update Trackable")) + GUI.backgroundColor = WorldStorageWindow.arfColors[1]; + if (GUILayout.Button("Create New Trackable")) { - Debug.Log("PostAddTrackable"); - + Debug.Log("POST Trackable"); + + UUID = "0"; if (string.IsNullOrEmpty(UUID) || UUID == "0") UUID = System.Guid.Empty.ToString(); - Trackable obj = GenerateTrackable(UUID, customName, worldStorageUser.UUID); - TrackableRequest.AddTrackable(worldStorageServer, obj); - WorldStorageWindow.WorldStorageWindowSingleton.UpdateListTrackables(); + Trackable obj = GenerateTrackable(); + UUID = TrackableRequest.AddTrackable(worldStorageServer, obj); + WorldStorageWindow.WorldStorageWindowSingleton.GetTrackables(); WorldStorageWindow.WorldStorageWindowSingleton.Repaint(); + } - UUID = obj.UUID.ToString(); - customName = obj.Name; - type = obj.TrackableType.ToString(); - unit = obj.Unit.ToString(); + GUI.backgroundColor = WorldStorageWindow.arfColors[2]; + if (GUILayout.Button("Modify Trackable")) + { + Debug.Log("PUT Trackable"); + + if (!string.IsNullOrEmpty(UUID) && UUID != "0") + { + Trackable obj = GenerateTrackable(); + UUID = TrackableRequest.UpdateTrackable(worldStorageServer, obj); + } + WorldStorageWindow.WorldStorageWindowSingleton.GetTrackables(); + WorldStorageWindow.WorldStorageWindowSingleton.Repaint(); } // ########################################################### GUI.backgroundColor = WorldStorageWindow.arfColors[3]; if (GUILayout.Button("Delete Trackable")) { - Debug.Log("Deleting Trackable"); + Debug.Log("Delete Trackable"); TrackableRequest.DeleteTrackable(worldStorageServer, UUID); UUID = System.Guid.Empty.ToString(); creatorUUID = System.Guid.Empty.ToString(); - type = ""; - unit = ""; - WorldStorageWindow.WorldStorageWindowSingleton.UpdateListTrackables(); + type = Trackable.TrackableTypeEnum.OTHER; + unit = UnitSystem.CM; + WorldStorageWindow.WorldStorageWindowSingleton.GetTrackables(); WorldStorageWindow.WorldStorageWindowSingleton.Repaint(); } GUI.backgroundColor = ori; @@ -187,52 +249,34 @@ namespace ETSI.ARF.WorldStorage.UI } - static public Trackable GenerateTrackable(string uuid, string name, string creatorUID) + public Trackable GenerateTrackable() { - EncodingInformationStructure trackableEncodingInformation = - new EncodingInformationStructure(EncodingInformationStructure.DataFormatEnum.ARCORE, "1.0"); + EncodingInformationStructure trackableEncodingInformation = new EncodingInformationStructure(EncodingInformationStructure.DataFormatEnum.ARCORE, "1.0"); Debug.Log("Created encoding information"); #if USING_OPENAPI_GENERATOR - List size = new List(); + List _trackableSize = new List(); #else - List trackableDimension = new List(); + List _trackableSize = new List(); #endif - size.Add(5); - size.Add(5); + _trackableSize.Add(trackableSize.x); + _trackableSize.Add(trackableSize.y); + _trackableSize.Add(trackableSize.z); Debug.Log("Created dimension"); - byte[] bytes = new byte[100]; - - for (int i = 0; i < bytes.Length; i++) - { - bytes[i] = (byte)i; - } - - List crs = new List + Matrix4x4 localCRS = new Matrix4x4(); + localCRS = Matrix4x4.TRS(localCRS_pos, Quaternion.Euler(localCRS_rot), Vector3.one); + List _localCRS = new List { - -2, 1, -3, 4, - 4, 4, 4, 2, - 1, 0, -2, 1, - -1, -2, 0, 0 + localCRS.m00, localCRS.m01, localCRS.m02, localCRS.m03, + localCRS.m10, localCRS.m11, localCRS.m12, localCRS.m13, + localCRS.m20, localCRS.m21, localCRS.m22, localCRS.m23, + localCRS.m30, localCRS.m31, localCRS.m32, localCRS.m33, }; - Dictionary> kv = new Dictionary>(); - kv.Add("Scenario", new List { "ETSI Trackable" }); - - System.Guid _uuid = System.Guid.Parse(uuid); - Trackable t = new Trackable( - _uuid, - name, - System.Guid.Parse(creatorUID), - Trackable.TrackableTypeEnum.IMAGEMARKER, - trackableEncodingInformation, - bytes, - crs, - UnitSystem.M, - size, - kv); - t.UUID = _uuid; + System.Guid _uuid = System.Guid.Parse(UUID); + System.Guid _creator = System.Guid.Parse(worldStorageUser.UUID); + Trackable t = new Trackable(_uuid, customName, _creator, type, trackableEncodingInformation, trackablePayload, _localCRS, unit, _trackableSize, keyValueTags); return t; } } diff --git a/Assets/ETSI.ARF/ARF World Storage API/Editor/Windows/WorldAnchorWindow.cs b/Assets/ETSI.ARF/ARF World Storage API/Editor/Windows/WorldAnchorWindow.cs index e116931..84eec85 100644 --- a/Assets/ETSI.ARF/ARF World Storage API/Editor/Windows/WorldAnchorWindow.cs +++ b/Assets/ETSI.ARF/ARF World Storage API/Editor/Windows/WorldAnchorWindow.cs @@ -19,7 +19,7 @@ // #define USING_OPENAPI_GENERATOR // alt. is Swagger -//#define isDEBUG +#define isDEBUG using System.Collections; using System.Collections.Generic; @@ -46,12 +46,17 @@ namespace ETSI.ARF.WorldStorage.UI bool groupEnabled; + // World Anchors params string UUID = System.Guid.Empty.ToString(); string customName = "NotDefined"; string creatorUUID = System.Guid.Empty.ToString(); - string unit = "Unknow"; - Vector2Int dim; + UnitSystem unit = UnitSystem.CM; + Vector3 worldAnchorSize; + Vector3 localCRS_pos; + Vector3 localCRS_rot; + [SerializeField] Dictionary> keyValueTags = new Dictionary>(); + // UI stuffs private Vector2 scrollPos; private Color ori; private GUIStyle gsTest; @@ -71,6 +76,7 @@ namespace ETSI.ARF.WorldStorage.UI void OnGUI() { ori = GUI.backgroundColor; // remember ori color + gsTest = new GUIStyle("window"); gsTest.normal.textColor = WorldStorageWindow.arfColors[0]; gsTest.fontStyle = FontStyle.Bold; @@ -90,7 +96,7 @@ namespace ETSI.ARF.WorldStorage.UI void DrawAnchorStuffs() { - GUILayout.BeginVertical("AR World Anchor", gsTest); + GUILayout.BeginVertical("World Anchor Editor", gsTest); // GUILayout.Label("Server: " + worldStorageServer.serverName, EditorStyles.whiteLargeLabel); GUILayout.Label("User: " + worldStorageUser.userName, EditorStyles.whiteLargeLabel); @@ -116,53 +122,96 @@ namespace ETSI.ARF.WorldStorage.UI WorldAnchor obj = WorldAnchorRequest.GetWorldAnchor(worldStorageServer, UUID); customName = obj.Name; creatorUUID = obj.CreatorUUID.ToString(); - unit = obj.Unit.ToString(); + unit = obj.Unit; + if (obj.WorldAnchorSize.Count == 3) + { + worldAnchorSize = new Vector3((float)obj.WorldAnchorSize[0], (float)obj.WorldAnchorSize[1], (float)obj.WorldAnchorSize[2]); + } + else worldAnchorSize = Vector3.zero; + if (obj.LocalCRS.Count == 16) + { + Matrix4x4 localCRS = new Matrix4x4(); + localCRS.m00 = obj.LocalCRS[0]; localCRS.m01 = obj.LocalCRS[1]; localCRS.m02 = obj.LocalCRS[2]; localCRS.m03 = obj.LocalCRS[3]; + localCRS.m10 = obj.LocalCRS[4]; localCRS.m11 = obj.LocalCRS[5]; localCRS.m12 = obj.LocalCRS[6]; localCRS.m13 = obj.LocalCRS[7]; + localCRS.m20 = obj.LocalCRS[8]; localCRS.m21 = obj.LocalCRS[9]; localCRS.m22 = obj.LocalCRS[10]; localCRS.m23 = obj.LocalCRS[11]; + localCRS.m30 = obj.LocalCRS[12]; localCRS.m31 = obj.LocalCRS[13]; localCRS.m32 = obj.LocalCRS[14]; localCRS.m33 = obj.LocalCRS[15]; + localCRS_pos = localCRS.GetPosition(); + localCRS_rot = localCRS.rotation.eulerAngles; + } + else + { + localCRS_pos = Vector3.zero; + localCRS_rot = Vector3.zero; + } + keyValueTags = obj.KeyvalueTags; + this.Repaint(); // TODO } GUI.backgroundColor = ori; - //GUILayout.EndHorizontal(); - unit = EditorGUILayout.TextField("Unit System", unit); + unit = (UnitSystem)EditorGUILayout.EnumPopup("Unit System:", unit); + + EditorGUILayout.Space(10); + worldAnchorSize = EditorGUILayout.Vector3Field("Trackable Size:", worldAnchorSize); EditorGUILayout.Space(10); - dim = EditorGUILayout.Vector2IntField("Dimension", dim); + GUILayout.Label("Local CRS:"); + localCRS_pos = EditorGUILayout.Vector3Field("Position:", localCRS_pos); + localCRS_rot = EditorGUILayout.Vector3Field("Rotation:", localCRS_rot); EditorGUILayout.Space(); groupEnabled = EditorGUILayout.BeginToggleGroup("Optional Parameters:", groupEnabled); - EditorGUILayout.IntField("Number of KeyValues", 0); - EditorGUILayout.Space(); - EditorGUILayout.TextField("Key", ""); - EditorGUILayout.TextField("Value", ""); + //EditorGUILayout.IntField("Number of KeyValues", 0); + //EditorGUILayout.Space(); + //EditorGUILayout.TextField("Key", ""); + //EditorGUILayout.TextField("Value", ""); + if (GUILayout.Button("Generate Dummy Key Values")) + { + // dummy + keyValueTags.Clear(); + keyValueTags.Add("Location", new List { "Room1" }); + } EditorGUILayout.EndToggleGroup(); // GUILayout.EndVertical(); // ########################################################### - GUI.backgroundColor = WorldStorageWindow.arfColors[2]; - if (GUILayout.Button("Create/Update World Anchor")) + GUI.backgroundColor = WorldStorageWindow.arfColors[1]; + if (GUILayout.Button("Create New World Anchor")) { - Debug.Log("PostAddWorldAnchor"); + Debug.Log("POST World Anchor"); + UUID = "0"; if (string.IsNullOrEmpty(UUID) || UUID == "0") UUID = System.Guid.Empty.ToString(); - WorldAnchor obj = GenerateWorldAnchor(UUID, customName, worldStorageUser.UUID); - WorldAnchorRequest.AddWorldAnchor(worldStorageServer, obj); - WorldStorageWindow.WorldStorageWindowSingleton.UpdateListWorldAnchors(); + WorldAnchor obj = GenerateWorldAnchor(); + UUID = WorldAnchorRequest.AddWorldAnchor(worldStorageServer, obj); + WorldStorageWindow.WorldStorageWindowSingleton.GetWorldAnchors(); WorldStorageWindow.WorldStorageWindowSingleton.Repaint(); + } - UUID = obj.UUID.ToString(); - customName = obj.Name; - unit = obj.Unit.ToString(); + GUI.backgroundColor = WorldStorageWindow.arfColors[2]; + if (GUILayout.Button("Modify World Anchor")) + { + Debug.Log("PUT World Anchor"); + + if (!string.IsNullOrEmpty(UUID) && UUID != "0") + { + WorldAnchor obj = GenerateWorldAnchor(); + UUID = WorldAnchorRequest.UpdateWorldAnchor(worldStorageServer, obj); + WorldStorageWindow.WorldStorageWindowSingleton.GetWorldAnchors(); + WorldStorageWindow.WorldStorageWindowSingleton.Repaint(); + } } // ########################################################### GUI.backgroundColor = WorldStorageWindow.arfColors[3]; if (GUILayout.Button("Delete World Anchor")) { - Debug.Log("Deleting World Anchor"); + Debug.Log("Delete World Anchor"); WorldAnchorRequest.DeleteWorldAnchor(worldStorageServer, UUID); UUID = System.Guid.Empty.ToString(); creatorUUID = System.Guid.Empty.ToString(); - unit = ""; - WorldStorageWindow.WorldStorageWindowSingleton.UpdateListWorldAnchors(); + unit = UnitSystem.CM; + WorldStorageWindow.WorldStorageWindowSingleton.GetWorldAnchors(); WorldStorageWindow.WorldStorageWindowSingleton.Repaint(); } GUI.backgroundColor = ori; @@ -175,49 +224,31 @@ namespace ETSI.ARF.WorldStorage.UI GUI.backgroundColor = ori; } - static public WorldAnchor GenerateWorldAnchor(string uuid, string name, string creatorUID) + public WorldAnchor GenerateWorldAnchor() { - EncodingInformationStructure trackableEncodingInformation = - new EncodingInformationStructure(EncodingInformationStructure.DataFormatEnum.ARCORE, "1.0"); - Debug.Log("Created encoding information"); - #if USING_OPENAPI_GENERATOR - List size = new List(); + List _worldAnchorSize = new List(); #else List trackableDimension = new List(); #endif - size.Add(5); - size.Add(5); + _worldAnchorSize.Add(worldAnchorSize.x); + _worldAnchorSize.Add(worldAnchorSize.x); + _worldAnchorSize.Add(worldAnchorSize.y); Debug.Log("Created dimension"); - byte[] bytes = new byte[100]; - - for (int i = 0; i < bytes.Length; i++) - { - bytes[i] = (byte)i; - } - - List crs = new List + Matrix4x4 localCRS = new Matrix4x4(); + localCRS = Matrix4x4.TRS(localCRS_pos, Quaternion.Euler(localCRS_rot), Vector3.one); + List _localCRS = new List { - -2, 1, -3, 4, - 4, 4, 4, 2, - 1, 0, -2, 1, - -1, -2, 0, 0 + localCRS.m00, localCRS.m01, localCRS.m02, localCRS.m03, + localCRS.m10, localCRS.m11, localCRS.m12, localCRS.m13, + localCRS.m20, localCRS.m21, localCRS.m22, localCRS.m23, + localCRS.m30, localCRS.m31, localCRS.m32, localCRS.m33, }; - Dictionary> kv = new Dictionary>(); - kv.Add("Scenario", new List { "ETSI WorldAnchor" }); - - System.Guid _uuid = System.Guid.Parse(uuid); - WorldAnchor t = new WorldAnchor( - _uuid, - name, - System.Guid.Parse(creatorUID), - crs, - UnitSystem.M, - size, - kv); - t.UUID = _uuid; + System.Guid _uuid = System.Guid.Parse(UUID); + System.Guid _creator = System.Guid.Parse(worldStorageUser.UUID); + WorldAnchor t = new WorldAnchor(_uuid, customName, _creator, _localCRS, unit, _worldAnchorSize, keyValueTags); return t; } } diff --git a/Assets/ETSI.ARF/ARF World Storage API/Editor/Windows/WorldLinkWindow.cs b/Assets/ETSI.ARF/ARF World Storage API/Editor/Windows/WorldLinkWindow.cs new file mode 100644 index 0000000..8334534 --- /dev/null +++ b/Assets/ETSI.ARF/ARF World Storage API/Editor/Windows/WorldLinkWindow.cs @@ -0,0 +1,248 @@ +// +// ARF - Augmented Reality Framework (ETSI ISG ARF) +// +// Copyright 2022 ETSI +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// +// Last change: June 2022 +// + +#define USING_OPENAPI_GENERATOR // alt. is Swagger +#define isDEBUG + +using System.Collections; +using System.Collections.Generic; +using UnityEngine; +using UnityEditor; +using ETSI.ARF.WorldStorage.REST; + +#if USING_OPENAPI_GENERATOR +using Org.OpenAPITools.Api; +using Org.OpenAPITools.Model; +#else +using IO.Swagger.Api; +using IO.Swagger.Model; +#endif + +namespace ETSI.ARF.WorldStorage.UI +{ + public class WorldLinkWindow : EditorWindow + { + [HideInInspector] public WorldStorageServer worldStorageServer; + [HideInInspector] public WorldStorageUser worldStorageUser; + + [SerializeField] public List anchors = new List(); + + bool groupEnabled; + + // World Anchors params + string UUID = System.Guid.Empty.ToString(); + string customName = "(no name for World Links)"; + string creatorUUID = System.Guid.Empty.ToString(); + string fromUUID = System.Guid.Empty.ToString(); + string toUUID = System.Guid.Empty.ToString(); + UnitSystem unit = UnitSystem.CM; + ObjectType fromType = ObjectType.NotIdentified, toType = ObjectType.NotIdentified; + Vector3 localCRS_pos; + Vector3 localCRS_rot; + [SerializeField] Dictionary> keyValueTags = new Dictionary>(); + + // UI stuffs + private Vector2 scrollPos; + private Color ori; + private GUIStyle gsTest; + + public static void ShowWindow(WorldStorageServer ws, WorldStorageUser user) + { + WorldLinkWindow win = EditorWindow.GetWindow(typeof(WorldLinkWindow), false, WorldStorageWindow.winName) as WorldLinkWindow; + win.worldStorageServer = ws; + win.worldStorageUser = user; + } + + public WorldLinkWindow() + { + // init somne stuffs + } + + void OnGUI() + { + ori = GUI.backgroundColor; // remember ori color + + gsTest = new GUIStyle("window"); + gsTest.normal.textColor = WorldStorageWindow.arfColors[0]; + gsTest.fontStyle = FontStyle.Bold; + + scrollPos = EditorGUILayout.BeginScrollView(scrollPos, GUILayout.ExpandWidth(true)); + WorldStorageWindow.DrawCopyright(); + + DrawAnchorStuffs(); + + EditorGUILayout.EndScrollView(); + + if (GUILayout.Button("Close Window")) + { + Close(); + } + } + + void DrawAnchorStuffs() + { + GUILayout.BeginVertical("World Link Editor", gsTest); + // + GUILayout.Label("Server: " + worldStorageServer.serverName, EditorStyles.whiteLargeLabel); + GUILayout.Label("User: " + worldStorageUser.userName, EditorStyles.whiteLargeLabel); + EditorGUILayout.Space(); + + //GUILayout.BeginHorizontal(); + customName = EditorGUILayout.TextField("Name of Link", customName); +#if isDEBUG + GUILayout.Label("UUID: " + UUID, EditorStyles.miniLabel); // readonly + GUILayout.Label("Creator UID: " + creatorUUID, EditorStyles.miniLabel); // readonly +#endif + EditorGUILayout.Space(); + + GUI.backgroundColor = WorldStorageWindow.arfColors[1]; + if (GUILayout.Button("Get Parameters")) + { + if (!customName.Contains("[")) UUID = customName; + else + { + // extract the UUID + UUID = customName.Split('[', ']')[1]; + } + WorldLink obj = WorldLinkRequest.GetWorldLink(worldStorageServer, UUID); + //customName = obj.Name; + creatorUUID = obj.CreatorUUID.ToString(); + fromUUID = obj.UUIDFrom.ToString(); + toUUID = obj.UUIDTo.ToString(); + fromType = obj.TypeFrom; + toType = obj.TypeTo; + unit = obj.Unit; + if (obj.Transform.Count == 16) + { + Matrix4x4 localCRS = new Matrix4x4(); + localCRS.m00 = obj.Transform[0]; localCRS.m01 = obj.Transform[1]; localCRS.m02 = obj.Transform[2]; localCRS.m03 = obj.Transform[3]; + localCRS.m10 = obj.Transform[4]; localCRS.m11 = obj.Transform[5]; localCRS.m12 = obj.Transform[6]; localCRS.m13 = obj.Transform[7]; + localCRS.m20 = obj.Transform[8]; localCRS.m21 = obj.Transform[9]; localCRS.m22 = obj.Transform[10]; localCRS.m23 = obj.Transform[11]; + localCRS.m30 = obj.Transform[12]; localCRS.m31 = obj.Transform[13]; localCRS.m32 = obj.Transform[14]; localCRS.m33 = obj.Transform[15]; + localCRS_pos = localCRS.GetPosition(); + localCRS_rot = localCRS.rotation.eulerAngles; + } + else + { + localCRS_pos = Vector3.zero; + localCRS_rot = Vector3.zero; + } + keyValueTags = obj.KeyvalueTags; + this.Repaint(); // TODO + } + GUI.backgroundColor = ori; + + unit = (UnitSystem)EditorGUILayout.EnumPopup("Unit System:", unit); + + fromType = (ObjectType)EditorGUILayout.EnumPopup("From Object Type:", fromType); + toType = (ObjectType)EditorGUILayout.EnumPopup("To Object Type:", toType); + + EditorGUILayout.Space(10); + GUILayout.Label("Local CRS:"); + localCRS_pos = EditorGUILayout.Vector3Field("Position:", localCRS_pos); + localCRS_rot = EditorGUILayout.Vector3Field("Rotation:", localCRS_rot); + + EditorGUILayout.Space(); + groupEnabled = EditorGUILayout.BeginToggleGroup("Optional Parameters:", groupEnabled); + //EditorGUILayout.IntField("Number of KeyValues", 0); + //EditorGUILayout.Space(); + //EditorGUILayout.TextField("Key", ""); + //EditorGUILayout.TextField("Value", ""); + if (GUILayout.Button("Generate Dummy Key Values")) + { + // dummy + keyValueTags.Clear(); + keyValueTags.Add("Location", new List { "Room1" }); + } + EditorGUILayout.EndToggleGroup(); + // + GUILayout.EndVertical(); + + // ########################################################### + GUI.backgroundColor = WorldStorageWindow.arfColors[1]; + if (GUILayout.Button("Create New World Link")) + { + Debug.Log("POST World Link"); + + UUID = "0"; + if (string.IsNullOrEmpty(UUID) || UUID == "0") UUID = System.Guid.Empty.ToString(); + WorldLink obj = GenerateWorldLink(); + UUID = WorldLinkRequest.AddWorldLink(worldStorageServer, obj); + WorldStorageWindow.WorldStorageWindowSingleton.GetWorldLinks(); + WorldStorageWindow.WorldStorageWindowSingleton.Repaint(); + } + + GUI.backgroundColor = WorldStorageWindow.arfColors[2]; + if (GUILayout.Button("Modify World Link")) + { + Debug.Log("PUT World Link"); + + if (!string.IsNullOrEmpty(UUID) && UUID != "0") + { + WorldLink obj = GenerateWorldLink(); + UUID = WorldLinkRequest.UpdateWorldLink(worldStorageServer, obj); + WorldStorageWindow.WorldStorageWindowSingleton.GetWorldLinks(); + WorldStorageWindow.WorldStorageWindowSingleton.Repaint(); + } + } + + // ########################################################### + GUI.backgroundColor = WorldStorageWindow.arfColors[3]; + if (GUILayout.Button("Delete World Link")) + { + Debug.Log("Delete World Link"); + WorldLinkRequest.DeleteWorldLink(worldStorageServer, UUID); + UUID = System.Guid.Empty.ToString(); + creatorUUID = System.Guid.Empty.ToString(); + unit = UnitSystem.CM; + WorldStorageWindow.WorldStorageWindowSingleton.GetWorldLinks(); + WorldStorageWindow.WorldStorageWindowSingleton.Repaint(); + } + GUI.backgroundColor = ori; + + // ########################################################### + GUI.backgroundColor = WorldStorageWindow.arfColors[5]; + if (GUILayout.Button("Generate GameObject Component")) + { + } + GUI.backgroundColor = ori; + } + + public WorldLink GenerateWorldLink() + { + Matrix4x4 localCRS = new Matrix4x4(); + localCRS = Matrix4x4.TRS(localCRS_pos, Quaternion.Euler(localCRS_rot), Vector3.one); + List _transform3d = new List + { + localCRS.m00, localCRS.m01, localCRS.m02, localCRS.m03, + localCRS.m10, localCRS.m11, localCRS.m12, localCRS.m13, + localCRS.m20, localCRS.m21, localCRS.m22, localCRS.m23, + localCRS.m30, localCRS.m31, localCRS.m32, localCRS.m33, + }; + + System.Guid _uuid = System.Guid.Parse(UUID); + System.Guid _creator = System.Guid.Parse(worldStorageUser.UUID); + System.Guid _from = System.Guid.Parse(fromUUID); + System.Guid _to = System.Guid.Parse(toUUID); + WorldLink t = new WorldLink(_uuid, _creator, _to, _from, fromType, toType, _transform3d, unit, keyValueTags); + return t; + } + } +} \ No newline at end of file diff --git a/Assets/ETSI.ARF/ARF World Storage API/Editor/Windows/WorldLinkWindow.cs.meta b/Assets/ETSI.ARF/ARF World Storage API/Editor/Windows/WorldLinkWindow.cs.meta new file mode 100644 index 0000000..6fdeb44 --- /dev/null +++ b/Assets/ETSI.ARF/ARF World Storage API/Editor/Windows/WorldLinkWindow.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: f66d40f8781c5784cbe1013328d78ae6 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/ETSI.ARF/ARF World Storage API/Editor/Windows/WorldStorageWindow.cs b/Assets/ETSI.ARF/ARF World Storage API/Editor/Windows/WorldStorageWindow.cs index 7bebf66..5d353c9 100644 --- a/Assets/ETSI.ARF/ARF World Storage API/Editor/Windows/WorldStorageWindow.cs +++ b/Assets/ETSI.ARF/ARF World Storage API/Editor/Windows/WorldStorageWindow.cs @@ -19,7 +19,7 @@ // #define USING_OPENAPI_GENERATOR // alt. is Swagger -//#define isDEBUG +#define isDEBUG using System.Collections; using System.Collections.Generic; @@ -49,6 +49,7 @@ namespace ETSI.ARF.WorldStorage.UI [SerializeField] public List creators = new List(); [SerializeField] public List trackables = new List(); [SerializeField] public List anchors = new List(); + [SerializeField] public List links = new List(); string ping = "-"; string state = "Unknow"; @@ -59,7 +60,7 @@ namespace ETSI.ARF.WorldStorage.UI private GUIStyle gsTest; static public string winName = "ARF Authoring Editor"; - static public Color[] arfColors = new Color[] + static public Color[] arfColors = new Color[] { Color.yellow, // paneltext new Color(0.3f, 1f, 1f), // button REST @@ -67,9 +68,9 @@ namespace ETSI.ARF.WorldStorage.UI new Color(1f, 0f, 0f), // button delete (red) new Color(1f, 0f, 1f), // button graph new Color(.7f, .5f, 1f) // button prefab - }; + }; + - //[MenuItem("[ ISG-ARF ]/World Storage Editor")] public static void ShowWindow() { @@ -97,59 +98,7 @@ namespace ETSI.ARF.WorldStorage.UI scrollPos = EditorGUILayout.BeginScrollView(scrollPos, GUILayout.ExpandWidth(true)); WorldStorageWindow.DrawCopyright(); - DrawServerStuffs(); - - GUI.backgroundColor = WorldStorageWindow.arfColors[2]; - if (GUILayout.Button("Create/Edit Trackable...")) - { - Debug.Log("Open Trackable Window"); - TrackableWindow.ShowWindow(worldStorageServer, worldStorageUser); - } - if (GUILayout.Button("Create/Edit World Anchor...")) - { - Debug.Log("Open World Anchor Window"); - WorldAnchorWindow.ShowWindow(worldStorageServer, worldStorageUser); - } - if (GUILayout.Button("Create/Edit Link...")) - { - } - - GUI.backgroundColor = WorldStorageWindow.arfColors[4]; - if (GUILayout.Button("Show Graph...")) - { - GraphWindow.ShowWindow(); - } - EditorGUILayout.EndScrollView(); - } - - public void UpdateListTrackables() - { - // Get all objects - Debug.Log("Get all server objects"); - List res = TrackableRequest.GetAllTrackables(worldStorageServer); - trackables.Clear(); - foreach (var item in res) - { - if (!string.IsNullOrEmpty(item.Name)) trackables.Add(item.Name + " [" + item.UUID.ToString() + "]"); - else trackables.Add(item.UUID.ToString()); - } - } - - public void UpdateListWorldAnchors() - { - // Get all objects - Debug.Log("Get all server objects"); - List res = WorldAnchorRequest.GetAllWorldAnchors(worldStorageServer); - anchors.Clear(); - foreach (var item in res) - { - if (!string.IsNullOrEmpty(item.Name)) anchors.Add(item.Name + " [" + item.UUID.ToString() + "]"); - else anchors.Add(item.UUID.ToString()); - } - } - void DrawServerStuffs() - { // Server info GUILayout.BeginVertical("World Storage Server", gsTest); // @@ -163,9 +112,28 @@ namespace ETSI.ARF.WorldStorage.UI GUILayout.Label("Port: " + worldStorageServer.port); #endif + GUI.backgroundColor = WorldStorageWindow.arfColors[4]; + if (GUILayout.Button("Open World Representation Graph Window...")) + { + GraphWindow.ShowWindow(); + } + GUI.backgroundColor = ori; + + DrawElementStuffs(); + + EditorGUILayout.EndScrollView(); + } + + + void DrawElementStuffs() + { + EditorGUILayout.Space(); -#region Ping + // ########################################################### + // Handle admin + // ########################################################### + #region Ping GUILayout.BeginHorizontal(); ping = EditorGUILayout.TextField("Last Ping", ping); if (GUILayout.Button("Ping")) @@ -174,9 +142,9 @@ namespace ETSI.ARF.WorldStorage.UI } GUI.backgroundColor = ori; GUILayout.EndHorizontal(); -#endregion + #endregion -#region State + #region State GUILayout.BeginHorizontal(); state = EditorGUILayout.TextField("State", state); @@ -186,9 +154,9 @@ namespace ETSI.ARF.WorldStorage.UI } GUI.backgroundColor = ori; GUILayout.EndHorizontal(); -#endregion + #endregion -#region Version + #region Version GUILayout.BeginHorizontal(); vers = EditorGUILayout.TextField("Version", vers); @@ -198,59 +166,62 @@ namespace ETSI.ARF.WorldStorage.UI } GUI.backgroundColor = ori; GUILayout.EndHorizontal(); -#endregion + #endregion ScriptableObject target = this; SerializedObject so = new SerializedObject(target); + // ########################################################### // Get creators -#region Get all creator UUID + // ########################################################### + #region Get all creator UUID EditorGUILayout.Space(10); GUI.backgroundColor = WorldStorageWindow.arfColors[1]; - if (GUILayout.Button("Request all Creator ID")) - { - // Get all objects - Debug.Log("Get all creators id"); - List res = TrackableRequest.GetAllTrackables(worldStorageServer); - creators.Clear(); - foreach (var item in res) - { - if (!creators.Contains(item.CreatorUUID.ToString())) creators.Add(item.CreatorUUID.ToString()); - } - } + if (GUILayout.Button("Request all Creator ID")) GetCreators(); GUI.backgroundColor = ori; SerializedProperty stringsProperty = so.FindProperty("creators"); EditorGUILayout.PropertyField(stringsProperty, true); // True means show children so.ApplyModifiedProperties(); // Remember to apply modified properties -#endregion + #endregion - // - // Get trackables - // -#region Get all trackable objects + // ########################################################### + // Handle trackables + // ########################################################### + #region Get all trackable objects EditorGUILayout.Space(10); - // ########################################################### GUI.backgroundColor = WorldStorageWindow.arfColors[1]; if (GUILayout.Button("Request Trackables")) { - UpdateListTrackables(); + GetTrackables(); + } + + GUI.backgroundColor = WorldStorageWindow.arfColors[2]; + if (GUILayout.Button("Create/Edit Trackable...")) + { + Debug.Log("Open Trackable Window"); + TrackableWindow.ShowWindow(worldStorageServer, worldStorageUser); } - GUI.backgroundColor = ori; - // ########################################################### GUI.backgroundColor = WorldStorageWindow.arfColors[3]; if (GUILayout.Button("Delete all Trackables (3 stay in!!!)")) { Debug.Log("Deleting all Trackable "); int n = 0; - foreach (var item in trackables) + string UUID; + foreach (var customName in trackables) { - if (++n > 3) TrackableRequest.DeleteTrackable(worldStorageServer, item); + if (!customName.Contains("[")) UUID = customName; + else + { + // extract the UUID + UUID = customName.Split('[', ']')[1]; + } + if (++n > 3) TrackableRequest.DeleteTrackable(worldStorageServer, UUID); } - - UpdateListTrackables(); + + GetTrackables(); WorldStorageWindow.WorldStorageWindowSingleton.Repaint(); } GUI.backgroundColor = ori; @@ -259,34 +230,46 @@ namespace ETSI.ARF.WorldStorage.UI stringsProperty = so.FindProperty("trackables"); EditorGUILayout.PropertyField(stringsProperty, /*new GUIContent("Trackbales"),*/ true); // True means show children so.ApplyModifiedProperties(); // Remember to apply modified properties -#endregion - // - // Get anchors - // -#region Get all anchor objects - EditorGUILayout.Space(10); + #endregion // ########################################################### + // Handle anchors + // ########################################################### + #region Get all anchor objects + EditorGUILayout.Space(10); + GUI.backgroundColor = WorldStorageWindow.arfColors[1]; if (GUILayout.Button("Request World Anchors")) { - UpdateListWorldAnchors(); + GetWorldAnchors(); + } + + GUI.backgroundColor = WorldStorageWindow.arfColors[2]; + if (GUILayout.Button("Create/Edit World Anchor...")) + { + Debug.Log("Open World Anchor Window"); + WorldAnchorWindow.ShowWindow(worldStorageServer, worldStorageUser); } - GUI.backgroundColor = ori; - // ########################################################### GUI.backgroundColor = WorldStorageWindow.arfColors[3]; if (GUILayout.Button("Delete all World Anchors (3 stay in!!!)")) { Debug.Log("Deleting all World Anchors "); int n = 0; - foreach (var item in anchors) + string UUID; + foreach (var customName in anchors) { - if (++n > 3) WorldAnchorRequest.DeleteWorldAnchor(worldStorageServer, item); + if (!customName.Contains("[")) UUID = customName; + else + { + // extract the UUID + UUID = customName.Split('[', ']')[1]; + } + if (++n > 3) WorldAnchorRequest.DeleteWorldAnchor(worldStorageServer, UUID); } - UpdateListWorldAnchors(); + GetWorldAnchors(); WorldStorageWindow.WorldStorageWindowSingleton.Repaint(); } GUI.backgroundColor = ori; @@ -295,22 +278,112 @@ namespace ETSI.ARF.WorldStorage.UI stringsProperty = so.FindProperty("anchors"); EditorGUILayout.PropertyField(stringsProperty, /*new GUIContent("Trackbales"),*/ true); // True means show children so.ApplyModifiedProperties(); // Remember to apply modified properties -#endregion + #endregion + + // ########################################################### + // Handle Links + // ########################################################### + #region Get all link objects + EditorGUILayout.Space(10); - // - // Get Links - // -#region Get all link objects GUI.backgroundColor = WorldStorageWindow.arfColors[1]; if (GUILayout.Button("Request World Links")) { + GetWorldLinks(); + } + + GUI.backgroundColor = WorldStorageWindow.arfColors[2]; + if (GUILayout.Button("Create/Edit World Link...")) + { + Debug.Log("Open World Link Window"); + WorldLinkWindow.ShowWindow(worldStorageServer, worldStorageUser); + } + + GUI.backgroundColor = WorldStorageWindow.arfColors[3]; + if (GUILayout.Button("Delete all World Links (3 stay in!!!)")) + { + Debug.Log("Deleting all World Links"); + int n = 0; + string UUID; + foreach (var customName in links) + { + if (!customName.Contains("[")) UUID = customName; + else + { + // extract the UUID + UUID = customName.Split('[', ']')[1]; + } + if (++n > 3) WorldLinkRequest.DeleteWorldLink(worldStorageServer, UUID); + } + GetWorldLinks(); + WorldStorageWindow.WorldStorageWindowSingleton.Repaint(); } GUI.backgroundColor = ori; -#endregion + + // Show list + stringsProperty = so.FindProperty("links"); + EditorGUILayout.PropertyField(stringsProperty, /*new GUIContent("Trackbales"),*/ true); // True means show children + so.ApplyModifiedProperties(); // Remember to apply modified properties + #endregion // GUILayout.EndVertical(); } + + // ########################################################### + // Get elements from current server + // ########################################################### + #region Helpers + public void GetCreators() + { + // Get all objects + Debug.Log("Get all creators id"); + List res = TrackableRequest.GetAllTrackables(worldStorageServer); + creators.Clear(); + foreach (var item in res) + { + if (!creators.Contains(item.CreatorUUID.ToString())) creators.Add(item.CreatorUUID.ToString()); + } + } + + public void GetTrackables() + { + // Get all objects + Debug.Log("Get all server objects"); + List res = TrackableRequest.GetAllTrackables(worldStorageServer); + trackables.Clear(); + foreach (var item in res) + { + if (!string.IsNullOrEmpty(item.Name)) trackables.Add(item.Name + " [" + item.UUID.ToString() + "]"); + else trackables.Add(item.UUID.ToString()); + } + } + + public void GetWorldAnchors() + { + // Get all objects + Debug.Log("Get all server objects"); + List res = WorldAnchorRequest.GetAllWorldAnchors(worldStorageServer); + anchors.Clear(); + foreach (var item in res) + { + if (!string.IsNullOrEmpty(item.Name)) anchors.Add(item.Name + " [" + item.UUID.ToString() + "]"); + else anchors.Add(item.UUID.ToString()); + } + } + + public void GetWorldLinks() + { + // Get all objects + Debug.Log("Get all server objects"); + List res = WorldLinkRequest.GetAllWorldLinks(worldStorageServer); + links.Clear(); + foreach (var item in res) + { + links.Add(item.UUID.ToString()); + } + } + #endregion } } \ No newline at end of file diff --git a/Assets/ETSI.ARF/ARF World Storage API/Editor/WorldStorageServerEditor.cs b/Assets/ETSI.ARF/ARF World Storage API/Editor/WorldStorageServerEditor.cs index aef63df..20cc3ab 100644 --- a/Assets/ETSI.ARF/ARF World Storage API/Editor/WorldStorageServerEditor.cs +++ b/Assets/ETSI.ARF/ARF World Storage API/Editor/WorldStorageServerEditor.cs @@ -55,7 +55,7 @@ namespace ETSI.ARF.WorldStorage.UI Debug.Log("Open Main ARF Window"); win = EditorWindow.GetWindow(typeof(WorldStorageWindow), false, "ETSI ARF - Authoring Editor") as WorldStorageWindow; win.worldStorageServer = worldStorageServer; - win.worldStorageUser = worldStorageServer.user; + win.worldStorageUser = worldStorageServer.currentUser; } GUI.backgroundColor = ori; } diff --git a/Assets/ETSI.ARF/ARF World Storage API/Scenes/WorldStorageSample.unity b/Assets/ETSI.ARF/ARF World Storage API/Scenes/WorldStorageSample.unity index 51b3ac9..3a33138 100644 --- a/Assets/ETSI.ARF/ARF World Storage API/Scenes/WorldStorageSample.unity +++ b/Assets/ETSI.ARF/ARF World Storage API/Scenes/WorldStorageSample.unity @@ -212,6 +212,7 @@ Transform: m_LocalRotation: {x: 0.40821788, y: -0.23456968, z: 0.10938163, w: 0.8754261} m_LocalPosition: {x: 0, y: 3, z: 0} m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 m_Children: [] m_Father: {fileID: 0} m_RootOrder: 1 @@ -259,6 +260,7 @@ MeshRenderer: m_CastShadows: 1 m_ReceiveShadows: 1 m_DynamicOccludee: 1 + m_StaticShadowCaster: 0 m_MotionVectors: 1 m_LightProbeUsage: 1 m_ReflectionProbeUsage: 1 @@ -307,6 +309,7 @@ Transform: m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} m_LocalPosition: {x: 0, y: 0, z: 0} m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 m_Children: [] m_Father: {fileID: 0} m_RootOrder: 2 @@ -390,6 +393,7 @@ Transform: m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} m_LocalPosition: {x: 0, y: 1, z: -10} m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 m_Children: [] m_Father: {fileID: 0} m_RootOrder: 0 @@ -434,6 +438,7 @@ Transform: m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} m_LocalPosition: {x: 0, y: 0, z: 0} m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 m_Children: [] m_Father: {fileID: 0} m_RootOrder: 3 diff --git a/Assets/ETSI.ARF/ARF World Storage API/World Storage/HHI Server - local.asset b/Assets/ETSI.ARF/ARF World Storage API/World Storage/HHI Server - local.asset index b4b6a1d..7706327 100644 --- a/Assets/ETSI.ARF/ARF World Storage API/World Storage/HHI Server - local.asset +++ b/Assets/ETSI.ARF/ARF World Storage API/World Storage/HHI Server - local.asset @@ -13,6 +13,7 @@ MonoBehaviour: m_Name: HHI Server - local m_EditorClassIdentifier: serverName: HHI Server (Detlef) + company: Fraunhofer HHI basePath: http://172.17.132.19 port: 8080 - user: {fileID: 11400000, guid: ce0f40be06008b14283766424922b729, type: 2} + currentUser: {fileID: 11400000, guid: ce0f40be06008b14283766424922b729, type: 2} diff --git a/Assets/ETSI.ARF/ARF World Storage API/World Storage/HHI Server.asset b/Assets/ETSI.ARF/ARF World Storage API/World Storage/HHI Server.asset index a556ade..34a6f86 100644 --- a/Assets/ETSI.ARF/ARF World Storage API/World Storage/HHI Server.asset +++ b/Assets/ETSI.ARF/ARF World Storage API/World Storage/HHI Server.asset @@ -13,6 +13,7 @@ MonoBehaviour: m_Name: HHI Server m_EditorClassIdentifier: serverName: HHI World Storage Server - basePath: https://ics1.hhi.fraunhofer.de/ + company: Fraunhofer HHI + basePath: https://ics1.hhi.fraunhofer.de port: 8080 - user: {fileID: 11400000, guid: ce0f40be06008b14283766424922b729, type: 2} + currentUser: {fileID: 11400000, guid: ce0f40be06008b14283766424922b729, type: 2} diff --git a/Assets/ETSI.ARF/ARF World Storage API/World Storage/Nathan.asset b/Assets/ETSI.ARF/ARF World Storage API/World Storage/Nathan.asset new file mode 100644 index 0000000..7d94f17 --- /dev/null +++ b/Assets/ETSI.ARF/ARF World Storage API/World Storage/Nathan.asset @@ -0,0 +1,17 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!114 &11400000 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 8a1e3e7961eae84468e6ee20d5b09ffd, type: 3} + m_Name: Nathan + m_EditorClassIdentifier: + userName: Nathan + company: b<>com + UUID: 9b7b144d-f456-46b0-ae03-2cbbf12eaf6a diff --git a/Assets/ETSI.ARF/ARF World Storage API/World Storage/Nathan.asset.meta b/Assets/ETSI.ARF/ARF World Storage API/World Storage/Nathan.asset.meta new file mode 100644 index 0000000..1a048ac --- /dev/null +++ b/Assets/ETSI.ARF/ARF World Storage API/World Storage/Nathan.asset.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: c0696089e4a855b46ad490437919b1e8 +NativeFormatImporter: + externalObjects: {} + mainObjectFileID: 11400000 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/ETSI.ARF/ARF World Storage API/World Storage/Sylvain.asset b/Assets/ETSI.ARF/ARF World Storage API/World Storage/Sylvain.asset index b904326..8dfe29c 100644 --- a/Assets/ETSI.ARF/ARF World Storage API/World Storage/Sylvain.asset +++ b/Assets/ETSI.ARF/ARF World Storage API/World Storage/Sylvain.asset @@ -12,5 +12,6 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: 8a1e3e7961eae84468e6ee20d5b09ffd, type: 3} m_Name: Sylvain m_EditorClassIdentifier: - userName: Sylvain R. + userName: Sylvain + company: Fraunhofer HHI UUID: faee4241-62ac-47d1-92c8-5b4b7a5fbc93 diff --git a/Packages/unity-world-storage-package b/Packages/unity-world-storage-package index 036c4ed..c8406f1 160000 --- a/Packages/unity-world-storage-package +++ b/Packages/unity-world-storage-package @@ -1 +1 @@ -Subproject commit 036c4edd918710fe3b17b9ca2b893c40291a4a94 +Subproject commit c8406f18a9f789d4cc0eb2ef995d274797ea4051 diff --git a/ProjectSettings/SceneTemplateSettings.json b/ProjectSettings/SceneTemplateSettings.json new file mode 100644 index 0000000..6f3e60f --- /dev/null +++ b/ProjectSettings/SceneTemplateSettings.json @@ -0,0 +1,167 @@ +{ + "templatePinStates": [], + "dependencyTypeInfos": [ + { + "userAdded": false, + "type": "UnityEngine.AnimationClip", + "ignore": false, + "defaultInstantiationMode": 0, + "supportsModification": true + }, + { + "userAdded": false, + "type": "UnityEditor.Animations.AnimatorController", + "ignore": false, + "defaultInstantiationMode": 0, + "supportsModification": true + }, + { + "userAdded": false, + "type": "UnityEngine.AnimatorOverrideController", + "ignore": false, + "defaultInstantiationMode": 0, + "supportsModification": true + }, + { + "userAdded": false, + "type": "UnityEditor.Audio.AudioMixerController", + "ignore": false, + "defaultInstantiationMode": 0, + "supportsModification": true + }, + { + "userAdded": false, + "type": "UnityEngine.ComputeShader", + "ignore": true, + "defaultInstantiationMode": 1, + "supportsModification": true + }, + { + "userAdded": false, + "type": "UnityEngine.Cubemap", + "ignore": false, + "defaultInstantiationMode": 0, + "supportsModification": true + }, + { + "userAdded": false, + "type": "UnityEngine.GameObject", + "ignore": false, + "defaultInstantiationMode": 0, + "supportsModification": true + }, + { + "userAdded": false, + "type": "UnityEditor.LightingDataAsset", + "ignore": false, + "defaultInstantiationMode": 0, + "supportsModification": false + }, + { + "userAdded": false, + "type": "UnityEngine.LightingSettings", + "ignore": false, + "defaultInstantiationMode": 0, + "supportsModification": true + }, + { + "userAdded": false, + "type": "UnityEngine.Material", + "ignore": false, + "defaultInstantiationMode": 0, + "supportsModification": true + }, + { + "userAdded": false, + "type": "UnityEditor.MonoScript", + "ignore": true, + "defaultInstantiationMode": 1, + "supportsModification": true + }, + { + "userAdded": false, + "type": "UnityEngine.PhysicMaterial", + "ignore": false, + "defaultInstantiationMode": 0, + "supportsModification": true + }, + { + "userAdded": false, + "type": "UnityEngine.PhysicsMaterial2D", + "ignore": false, + "defaultInstantiationMode": 0, + "supportsModification": true + }, + { + "userAdded": false, + "type": "UnityEngine.Rendering.PostProcessing.PostProcessProfile", + "ignore": false, + "defaultInstantiationMode": 0, + "supportsModification": true + }, + { + "userAdded": false, + "type": "UnityEngine.Rendering.PostProcessing.PostProcessResources", + "ignore": false, + "defaultInstantiationMode": 0, + "supportsModification": true + }, + { + "userAdded": false, + "type": "UnityEngine.Rendering.VolumeProfile", + "ignore": false, + "defaultInstantiationMode": 0, + "supportsModification": true + }, + { + "userAdded": false, + "type": "UnityEditor.SceneAsset", + "ignore": false, + "defaultInstantiationMode": 0, + "supportsModification": false + }, + { + "userAdded": false, + "type": "UnityEngine.Shader", + "ignore": true, + "defaultInstantiationMode": 1, + "supportsModification": true + }, + { + "userAdded": false, + "type": "UnityEngine.ShaderVariantCollection", + "ignore": true, + "defaultInstantiationMode": 1, + "supportsModification": true + }, + { + "userAdded": false, + "type": "UnityEngine.Texture", + "ignore": false, + "defaultInstantiationMode": 0, + "supportsModification": true + }, + { + "userAdded": false, + "type": "UnityEngine.Texture2D", + "ignore": false, + "defaultInstantiationMode": 0, + "supportsModification": true + }, + { + "userAdded": false, + "type": "UnityEngine.Timeline.TimelineAsset", + "ignore": false, + "defaultInstantiationMode": 0, + "supportsModification": true + } + ], + "defaultDependencyTypeInfo": { + "userAdded": false, + "type": "", + "ignore": false, + "defaultInstantiationMode": 1, + "supportsModification": true + }, + "newSceneOverride": 0 +} \ No newline at end of file diff --git a/UserSettings/Layouts/default-2021.dwlt b/UserSettings/Layouts/default-2021.dwlt index dc2e782..6b99358 100644 --- a/UserSettings/Layouts/default-2021.dwlt +++ b/UserSettings/Layouts/default-2021.dwlt @@ -14,10 +14,10 @@ MonoBehaviour: m_EditorClassIdentifier: m_PixelRect: serializedVersion: 2 - x: 6.2222223 - y: 48.444447 - width: 1694.2223 - height: 972 + x: 96 + y: 157.33333 + width: 1308 + height: 787.11115 m_ShowMode: 4 m_Title: Inspector m_RootView: {fileID: 8} @@ -39,10 +39,10 @@ MonoBehaviour: m_Children: [] m_Position: serializedVersion: 2 - x: 628.44446 + x: 517.7778 y: 0 - width: 722.22217 - height: 364.22223 + width: 522.6667 + height: 291.7778 m_MinSize: {x: 102, y: 121} m_MaxSize: {x: 4002, y: 4021} m_ActualView: {fileID: 20} @@ -68,13 +68,13 @@ MonoBehaviour: m_Position: serializedVersion: 2 x: 0 - y: 557.7778 - width: 1350.6666 - height: 364.22223 + y: 445.33334 + width: 1040.4445 + height: 291.7778 m_MinSize: {x: 200, y: 100} m_MaxSize: {x: 16192, y: 8096} vertical: 0 - controlID: 113 + controlID: 127 --- !u!114 &4 MonoBehaviour: m_ObjectHideFlags: 52 @@ -94,12 +94,12 @@ MonoBehaviour: serializedVersion: 2 x: 0 y: 30 - width: 1694.2222 - height: 922 + width: 1308 + height: 737.11115 m_MinSize: {x: 300, y: 200} m_MaxSize: {x: 24288, y: 16192} vertical: 0 - controlID: 102 + controlID: 76 --- !u!114 &5 MonoBehaviour: m_ObjectHideFlags: 52 @@ -115,10 +115,10 @@ MonoBehaviour: m_Children: [] m_Position: serializedVersion: 2 - x: 1350.6666 + x: 1040.4445 y: 0 - width: 343.55554 - height: 922 + width: 267.55554 + height: 737.11115 m_MinSize: {x: 276, y: 71} m_MaxSize: {x: 4001, y: 4021} m_ActualView: {fileID: 16} @@ -143,8 +143,8 @@ MonoBehaviour: serializedVersion: 2 x: 0 y: 0 - width: 334.22223 - height: 557.7778 + width: 252.88889 + height: 445.33334 m_MinSize: {x: 201, y: 221} m_MaxSize: {x: 4001, y: 4021} m_ActualView: {fileID: 17} @@ -169,8 +169,8 @@ MonoBehaviour: serializedVersion: 2 x: 0 y: 0 - width: 628.44446 - height: 364.22223 + width: 517.7778 + height: 291.7778 m_MinSize: {x: 231, y: 271} m_MaxSize: {x: 10001, y: 10021} m_ActualView: {fileID: 15} @@ -198,8 +198,8 @@ MonoBehaviour: serializedVersion: 2 x: 0 y: 0 - width: 1694.2222 - height: 972 + width: 1308 + height: 787.11115 m_MinSize: {x: 875, y: 300} m_MaxSize: {x: 10000, y: 10000} m_UseTopView: 1 @@ -223,7 +223,7 @@ MonoBehaviour: serializedVersion: 2 x: 0 y: 0 - width: 1694.2222 + width: 1308 height: 30 m_MinSize: {x: 0, y: 0} m_MaxSize: {x: 0, y: 0} @@ -244,8 +244,8 @@ MonoBehaviour: m_Position: serializedVersion: 2 x: 0 - y: 952 - width: 1694.2222 + y: 767.11115 + width: 1308 height: 20 m_MinSize: {x: 0, y: 0} m_MaxSize: {x: 0, y: 0} @@ -268,12 +268,12 @@ MonoBehaviour: serializedVersion: 2 x: 0 y: 0 - width: 1350.6666 - height: 922 + width: 1040.4445 + height: 737.11115 m_MinSize: {x: 200, y: 200} m_MaxSize: {x: 16192, y: 16192} vertical: 1 - controlID: 103 + controlID: 65 --- !u!114 &12 MonoBehaviour: m_ObjectHideFlags: 52 @@ -293,12 +293,12 @@ MonoBehaviour: serializedVersion: 2 x: 0 y: 0 - width: 1350.6666 - height: 557.7778 + width: 1040.4445 + height: 445.33334 m_MinSize: {x: 200, y: 100} m_MaxSize: {x: 16192, y: 8096} vertical: 0 - controlID: 104 + controlID: 66 --- !u!114 &13 MonoBehaviour: m_ObjectHideFlags: 52 @@ -314,10 +314,10 @@ MonoBehaviour: m_Children: [] m_Position: serializedVersion: 2 - x: 334.22223 + x: 252.88889 y: 0 - width: 1016.4444 - height: 557.7778 + width: 787.55554 + height: 445.33334 m_MinSize: {x: 202, y: 221} m_MaxSize: {x: 4002, y: 4021} m_ActualView: {fileID: 18} @@ -375,10 +375,10 @@ MonoBehaviour: m_Tooltip: m_Pos: serializedVersion: 2 - x: 6.2222223 - y: 636.44446 - width: 627.44446 - height: 343.22223 + x: 96 + y: 632.8889 + width: 516.7778 + height: 270.7778 m_ViewDataDictionary: {fileID: 0} m_OverlayCanvas: m_LastAppliedPresetName: Default @@ -396,22 +396,22 @@ MonoBehaviour: m_SkipHidden: 0 m_SearchArea: 1 m_Folders: - - Assets/ETSI.ARF/ARF World Storage API/Scenes + - Assets/ETSI.ARF/ARF World Storage API/World Storage m_Globs: [] m_OriginalText: m_ViewMode: 1 m_StartGridSize: 16 m_LastFolders: - - Assets/ETSI.ARF/ARF World Storage API/Scenes + - Assets/ETSI.ARF/ARF World Storage API/World Storage m_LastFoldersGridSize: 16 m_LastProjectPath: D:\Fraunhofer\Projects\ETSI\GitLab (STF)\unity-world-storage-editor m_LockTracker: m_IsLocked: 0 m_FolderTreeState: - scrollPos: {x: 0, y: 79} - m_SelectedIDs: 3a610000 - m_LastClickedID: 24890 - m_ExpandedIDs: 000000002a6100002c6100002e61000000ca9a3bffffff7f + scrollPos: {x: 0, y: 28.356365} + m_SelectedIDs: 664b0000 + m_LastClickedID: 19302 + m_ExpandedIDs: 000000004a4b00004c4b00004e4b0000504b0000524b0000544b0000564b000000ca9a3bffffff7f m_RenameOverlay: m_UserAcceptedRename: 0 m_Name: @@ -427,7 +427,7 @@ MonoBehaviour: m_IsRenaming: 0 m_OriginalEventType: 11 m_IsRenamingFilename: 1 - m_ClientGUIView: {fileID: 0} + m_ClientGUIView: {fileID: 7} m_SearchString: m_CreateAssetUtility: m_EndAction: {fileID: 0} @@ -439,7 +439,7 @@ MonoBehaviour: scrollPos: {x: 0, y: 0} m_SelectedIDs: m_LastClickedID: 0 - m_ExpandedIDs: 000000002a6100002c6100002e610000 + m_ExpandedIDs: 000000004a4b00004c4b00004e4b0000504b0000524b0000544b0000564b0000 m_RenameOverlay: m_UserAcceptedRename: 0 m_Name: @@ -467,7 +467,7 @@ MonoBehaviour: m_SelectedInstanceIDs: m_LastClickedInstanceID: 0 m_HadKeyboardFocusLastEvent: 1 - m_ExpandedInstanceIDs: c6230000 + m_ExpandedInstanceIDs: c6230000de4b0000 m_RenameOverlay: m_UserAcceptedRename: 0 m_Name: @@ -483,7 +483,7 @@ MonoBehaviour: m_IsRenaming: 0 m_OriginalEventType: 11 m_IsRenamingFilename: 1 - m_ClientGUIView: {fileID: 0} + m_ClientGUIView: {fileID: 7} m_CreateAssetUtility: m_EndAction: {fileID: 0} m_InstanceID: 0 @@ -494,7 +494,7 @@ MonoBehaviour: m_ScrollPosition: {x: 0, y: 0} m_GridSize: 16 m_SkipHiddenPackages: 0 - m_DirectoriesAreaWidth: 334 + m_DirectoriesAreaWidth: 257.8889 --- !u!114 &16 MonoBehaviour: m_ObjectHideFlags: 52 @@ -515,10 +515,10 @@ MonoBehaviour: m_Tooltip: m_Pos: serializedVersion: 2 - x: 1356.8889 - y: 78.666664 - width: 342.55554 - height: 901 + x: 1136.4445 + y: 187.55556 + width: 266.55554 + height: 716.11115 m_ViewDataDictionary: {fileID: 0} m_OverlayCanvas: m_LastAppliedPresetName: Default @@ -556,10 +556,10 @@ MonoBehaviour: m_Tooltip: m_Pos: serializedVersion: 2 - x: 6.2222223 - y: 78.666664 - width: 333.22223 - height: 536.7778 + x: 96 + y: 187.55556 + width: 251.88889 + height: 424.33334 m_ViewDataDictionary: {fileID: 0} m_OverlayCanvas: m_LastAppliedPresetName: Default @@ -567,9 +567,9 @@ MonoBehaviour: m_SceneHierarchy: m_TreeViewState: scrollPos: {x: 0, y: 0} - m_SelectedIDs: c05d0000 + m_SelectedIDs: 444b0000 m_LastClickedID: 0 - m_ExpandedIDs: 06e4ffff + m_ExpandedIDs: 34fbffff m_RenameOverlay: m_UserAcceptedRename: 0 m_Name: @@ -613,10 +613,10 @@ MonoBehaviour: m_Tooltip: m_Pos: serializedVersion: 2 - x: 340.44446 - y: 78.666664 - width: 1014.4444 - height: 536.7778 + x: 348.8889 + y: 187.55556 + width: 785.55554 + height: 424.33334 m_ViewDataDictionary: {fileID: 0} m_OverlayCanvas: m_LastAppliedPresetName: Default @@ -681,9 +681,9 @@ MonoBehaviour: floating: 0 collapsed: 0 displayed: 1 - snapOffset: {x: 67.5, y: 86} + snapOffset: {x: 67.5, y: -190.44443} snapOffsetDelta: {x: 0, y: 0} - snapCorner: 0 + snapCorner: 2 id: Orientation index: 0 layout: 4 @@ -949,8 +949,8 @@ MonoBehaviour: vZoomLockedByDefault: 0 m_HBaseRangeMin: -766 m_HBaseRangeMax: 766 - m_VBaseRangeMin: -395 - m_VBaseRangeMax: 395 + m_VBaseRangeMin: -384.5 + m_VBaseRangeMax: 384.5 m_HAllowExceedBaseRangeMin: 1 m_HAllowExceedBaseRangeMax: 1 m_VAllowExceedBaseRangeMin: 1 @@ -967,11 +967,11 @@ MonoBehaviour: m_DrawArea: serializedVersion: 2 x: 0 - y: 0 + y: 21 width: 1532 - height: 790 + height: 769 m_Scale: {x: 1, y: 1} - m_Translation: {x: 766, y: 395} + m_Translation: {x: 766, y: 384.5} m_MarginLeft: 0 m_MarginRight: 0 m_MarginTop: 0 @@ -979,9 +979,9 @@ MonoBehaviour: m_LastShownAreaInsideMargins: serializedVersion: 2 x: -766 - y: -395 + y: -384.5 width: 1532 - height: 790 + height: 769 m_MinimalGUI: 1 m_defaultScale: 1 m_LastWindowPixelSize: {x: 3447, y: 1777.5} @@ -1010,10 +1010,10 @@ MonoBehaviour: m_Tooltip: m_Pos: serializedVersion: 2 - x: 634.6667 - y: 636.44446 - width: 720.22217 - height: 343.22223 + x: 613.7778 + y: 632.8889 + width: 520.6667 + height: 270.7778 m_ViewDataDictionary: {fileID: 0} m_OverlayCanvas: m_LastAppliedPresetName: Default -- GitLab