Loading Assets/ETSI.ARF/ARF World Storage API/Editor/Windows/TrackableWindow.cs +1 −1 Original line number Diff line number Diff line Loading @@ -193,7 +193,7 @@ namespace ETSI.ARF.WorldStorage.UI GUI.backgroundColor = ori; GUI.backgroundColor = WorldStorageWindow.arfColors[5]; if (GUILayout.Button("Generate GameObject")) if (GUILayout.Button("Generate/Update GameObject")) { GenerateAndUpdateVisual(UUID, customName, localCRS_pos, localCRS_rot); } Loading Assets/ETSI.ARF/ARF World Storage API/Editor/Windows/WorldAnchorWindow.cs +1 −1 Original line number Diff line number Diff line Loading @@ -189,7 +189,7 @@ namespace ETSI.ARF.WorldStorage.UI GUI.backgroundColor = ori; GUI.backgroundColor = WorldStorageWindow.arfColors[5]; if (GUILayout.Button("Generate GameObject")) if (GUILayout.Button("Generate/Update GameObject")) { GenerateAndUpdateVisual(UUID, customName, localCRS_pos, localCRS_rot); } Loading Assets/ETSI.ARF/ARF World Storage API/Editor/Windows/WorldLinkWindow.cs +60 −13 Original line number Diff line number Diff line Loading @@ -40,7 +40,7 @@ namespace ETSI.ARF.WorldStorage.UI { public class WorldLinkWindow : EditorWindow { private class Element public class Element { public string UUID = System.Guid.Empty.ToString(); public string name = "(none)"; Loading Loading @@ -94,24 +94,43 @@ namespace ETSI.ARF.WorldStorage.UI } } public static GameObject GenerateAndUpdateVisual(string UUID, string from, string to, Vector3 pos, Vector3 rot) public static GameObject GenerateAndUpdateVisual(string UUID, Element from, Element to) { ETSI.ARF.WorldStorage.UI.Prefabs.WorldStoragePrefabs prefabs; prefabs = (Prefabs.WorldStoragePrefabs)Resources.Load("ARFPrefabs"); GameObject arf = GameObject.Find("ARF Visuals"); GameObject visual = GameObject.Find(UUID); //Value between from and to Vector3 centerPos = (from.pos + to.pos) * 0.5f; Vector3 rot = Vector3.zero; // Direction if (arf == null) arf = new GameObject("ARF Visuals"); if (visual == null) { visual = SceneAsset.Instantiate<GameObject>(prefabs.worldLinkPrefab, pos, Quaternion.Euler(rot), arf.transform); // TODO rot visual = SceneAsset.Instantiate<GameObject>(prefabs.worldLinkPrefab, centerPos, Quaternion.Euler(rot), arf.transform); // TODO rot visual.name = UUID; } else { visual.transform.SetPositionAndRotation(pos, Quaternion.Euler(rot)); visual.transform.SetPositionAndRotation(centerPos, Quaternion.Euler(rot)); } // Update the gizno, if GaneObject are founds!!! GameObject go1 = GameObject.Find(from.UUID); GameObject go2 = GameObject.Find(to.UUID); if (go1 && go2) { LinkVisual gizmo = visual.GetComponent<LinkVisual>(); if (gizmo) { gizmo.fromElement = go1; gizmo.toElement = go2; } } visual.transform.Find("Canvas/Text").GetComponent<TextMeshProUGUI>().text = $"UUID: { UUID }\nFrom: { from }\nTo: { to }"; // Update the annotation visual.transform.Find("Canvas/Text").GetComponent<TextMeshProUGUI>().text = $"UUID: { UUID }\nFrom: { from.name }\nTo: { to.name }"; return visual; } Loading Loading @@ -270,12 +289,9 @@ namespace ETSI.ARF.WorldStorage.UI GUI.backgroundColor = ori; GUI.backgroundColor = WorldStorageWindow.arfColors[5]; if (GUILayout.Button("Generate GameObject")) if (GUILayout.Button("Generate/Update GameObject")) { //TODO: Value between from and to Vector3 pos = (FROM.pos + TO.pos) * 0.5f; Vector3 rot = Vector3.zero; // Direction GenerateAndUpdateVisual(UUID, FROM.name, TO.name, pos, rot); GenerateAndUpdateVisual(UUID, FROM, TO); } GUI.backgroundColor = ori; EditorGUILayout.EndHorizontal(); Loading @@ -284,12 +300,39 @@ namespace ETSI.ARF.WorldStorage.UI // --------------------- // Params // --------------------- string lastFromUUID = FROM.UUID; string lastToUUID = TO.UUID; if (GUILayout.Button("Get From/To Elements from Scene Selection")) { GameObject from, to; GameObject[] SelectedObjects = Selection.gameObjects; if (SelectedObjects.Length == 2) { Debug.Log("Creation du lien (Many thanks Eric ;-)"); from = SelectedObjects[0]; to = SelectedObjects[1]; FROM.UUID = from.name; TO.UUID = to.name; } else { EditorUtility.DisplayDialog("Selection", "Please select exactly 2 elements in the scene!", "OK"); } } showListFrom = EditorGUILayout.Foldout(showListFrom, "From (parent object)"); if (showListFrom) { EditorGUILayout.BeginHorizontal(); string lastFromUUID = FROM.UUID; FROM.UUID = EditorGUILayout.TextField("UUID:", FROM.UUID); if (FROM.UUID.Contains("[")) { // extract the UUID FROM.UUID = FROM.UUID.Split('[', ']')[1]; } GUI.backgroundColor = WorldStorageWindow.arfColors[1]; if (GUILayout.Button("Request", EditorStyles.miniButtonLeft, miniButtonWidth) || lastFromUUID != FROM.UUID) { Loading @@ -306,8 +349,12 @@ namespace ETSI.ARF.WorldStorage.UI if (showListTo) { EditorGUILayout.BeginHorizontal(); string lastToUUID = TO.UUID; TO.UUID = EditorGUILayout.TextField("UUID:", TO.UUID); if (TO.UUID.Contains("[")) { // extract the UUID TO.UUID = TO.UUID.Split('[', ']')[1]; } GUI.backgroundColor = WorldStorageWindow.arfColors[1]; if (GUILayout.Button("Request", EditorStyles.miniButtonLeft, miniButtonWidth) || lastToUUID != TO.UUID) { Loading Loading @@ -390,7 +437,7 @@ namespace ETSI.ARF.WorldStorage.UI System.Guid _creator = System.Guid.Parse(worldStorageUser.UUID); System.Guid _from = System.Guid.Parse(FROM.UUID); System.Guid _to = System.Guid.Parse(TO.UUID); WorldLink t = new WorldLink(_uuid, _creator, _to, _from, FROM.type, TO.type, _transform3d, unit, keyValueTags); WorldLink t = new WorldLink(_uuid, _creator, _from, _to, FROM.type, TO.type, _transform3d, unit, keyValueTags); return t; } } Loading Assets/ETSI.ARF/ARF World Storage API/Prefabs/ARFWorldLink.prefab +15 −0 Original line number Diff line number Diff line Loading @@ -9,6 +9,7 @@ GameObject: serializedVersion: 6 m_Component: - component: {fileID: 1814829793678878270} - component: {fileID: 2766171691247251799} m_Layer: 0 m_Name: ARFWorldLink m_TagString: Untagged Loading @@ -33,6 +34,20 @@ Transform: m_Father: {fileID: 0} m_RootOrder: 0 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} --- !u!114 &2766171691247251799 MonoBehaviour: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1239500166128132140} m_Enabled: 1 m_EditorHideFlags: 0 m_Script: {fileID: 11500000, guid: 33fce8a1d8d349d47b8565dfe031b6b1, type: 3} m_Name: m_EditorClassIdentifier: mFrom: {fileID: 0} mTo: {fileID: 0} --- !u!1 &4451045791079530586 GameObject: m_ObjectHideFlags: 0 Loading Assets/ETSI.ARF/ARF World Storage API/Scenes/WorldStorageSample.unity +3428 −2010 File changed.Preview size limit exceeded, changes collapsed. Show changes Loading
Assets/ETSI.ARF/ARF World Storage API/Editor/Windows/TrackableWindow.cs +1 −1 Original line number Diff line number Diff line Loading @@ -193,7 +193,7 @@ namespace ETSI.ARF.WorldStorage.UI GUI.backgroundColor = ori; GUI.backgroundColor = WorldStorageWindow.arfColors[5]; if (GUILayout.Button("Generate GameObject")) if (GUILayout.Button("Generate/Update GameObject")) { GenerateAndUpdateVisual(UUID, customName, localCRS_pos, localCRS_rot); } Loading
Assets/ETSI.ARF/ARF World Storage API/Editor/Windows/WorldAnchorWindow.cs +1 −1 Original line number Diff line number Diff line Loading @@ -189,7 +189,7 @@ namespace ETSI.ARF.WorldStorage.UI GUI.backgroundColor = ori; GUI.backgroundColor = WorldStorageWindow.arfColors[5]; if (GUILayout.Button("Generate GameObject")) if (GUILayout.Button("Generate/Update GameObject")) { GenerateAndUpdateVisual(UUID, customName, localCRS_pos, localCRS_rot); } Loading
Assets/ETSI.ARF/ARF World Storage API/Editor/Windows/WorldLinkWindow.cs +60 −13 Original line number Diff line number Diff line Loading @@ -40,7 +40,7 @@ namespace ETSI.ARF.WorldStorage.UI { public class WorldLinkWindow : EditorWindow { private class Element public class Element { public string UUID = System.Guid.Empty.ToString(); public string name = "(none)"; Loading Loading @@ -94,24 +94,43 @@ namespace ETSI.ARF.WorldStorage.UI } } public static GameObject GenerateAndUpdateVisual(string UUID, string from, string to, Vector3 pos, Vector3 rot) public static GameObject GenerateAndUpdateVisual(string UUID, Element from, Element to) { ETSI.ARF.WorldStorage.UI.Prefabs.WorldStoragePrefabs prefabs; prefabs = (Prefabs.WorldStoragePrefabs)Resources.Load("ARFPrefabs"); GameObject arf = GameObject.Find("ARF Visuals"); GameObject visual = GameObject.Find(UUID); //Value between from and to Vector3 centerPos = (from.pos + to.pos) * 0.5f; Vector3 rot = Vector3.zero; // Direction if (arf == null) arf = new GameObject("ARF Visuals"); if (visual == null) { visual = SceneAsset.Instantiate<GameObject>(prefabs.worldLinkPrefab, pos, Quaternion.Euler(rot), arf.transform); // TODO rot visual = SceneAsset.Instantiate<GameObject>(prefabs.worldLinkPrefab, centerPos, Quaternion.Euler(rot), arf.transform); // TODO rot visual.name = UUID; } else { visual.transform.SetPositionAndRotation(pos, Quaternion.Euler(rot)); visual.transform.SetPositionAndRotation(centerPos, Quaternion.Euler(rot)); } // Update the gizno, if GaneObject are founds!!! GameObject go1 = GameObject.Find(from.UUID); GameObject go2 = GameObject.Find(to.UUID); if (go1 && go2) { LinkVisual gizmo = visual.GetComponent<LinkVisual>(); if (gizmo) { gizmo.fromElement = go1; gizmo.toElement = go2; } } visual.transform.Find("Canvas/Text").GetComponent<TextMeshProUGUI>().text = $"UUID: { UUID }\nFrom: { from }\nTo: { to }"; // Update the annotation visual.transform.Find("Canvas/Text").GetComponent<TextMeshProUGUI>().text = $"UUID: { UUID }\nFrom: { from.name }\nTo: { to.name }"; return visual; } Loading Loading @@ -270,12 +289,9 @@ namespace ETSI.ARF.WorldStorage.UI GUI.backgroundColor = ori; GUI.backgroundColor = WorldStorageWindow.arfColors[5]; if (GUILayout.Button("Generate GameObject")) if (GUILayout.Button("Generate/Update GameObject")) { //TODO: Value between from and to Vector3 pos = (FROM.pos + TO.pos) * 0.5f; Vector3 rot = Vector3.zero; // Direction GenerateAndUpdateVisual(UUID, FROM.name, TO.name, pos, rot); GenerateAndUpdateVisual(UUID, FROM, TO); } GUI.backgroundColor = ori; EditorGUILayout.EndHorizontal(); Loading @@ -284,12 +300,39 @@ namespace ETSI.ARF.WorldStorage.UI // --------------------- // Params // --------------------- string lastFromUUID = FROM.UUID; string lastToUUID = TO.UUID; if (GUILayout.Button("Get From/To Elements from Scene Selection")) { GameObject from, to; GameObject[] SelectedObjects = Selection.gameObjects; if (SelectedObjects.Length == 2) { Debug.Log("Creation du lien (Many thanks Eric ;-)"); from = SelectedObjects[0]; to = SelectedObjects[1]; FROM.UUID = from.name; TO.UUID = to.name; } else { EditorUtility.DisplayDialog("Selection", "Please select exactly 2 elements in the scene!", "OK"); } } showListFrom = EditorGUILayout.Foldout(showListFrom, "From (parent object)"); if (showListFrom) { EditorGUILayout.BeginHorizontal(); string lastFromUUID = FROM.UUID; FROM.UUID = EditorGUILayout.TextField("UUID:", FROM.UUID); if (FROM.UUID.Contains("[")) { // extract the UUID FROM.UUID = FROM.UUID.Split('[', ']')[1]; } GUI.backgroundColor = WorldStorageWindow.arfColors[1]; if (GUILayout.Button("Request", EditorStyles.miniButtonLeft, miniButtonWidth) || lastFromUUID != FROM.UUID) { Loading @@ -306,8 +349,12 @@ namespace ETSI.ARF.WorldStorage.UI if (showListTo) { EditorGUILayout.BeginHorizontal(); string lastToUUID = TO.UUID; TO.UUID = EditorGUILayout.TextField("UUID:", TO.UUID); if (TO.UUID.Contains("[")) { // extract the UUID TO.UUID = TO.UUID.Split('[', ']')[1]; } GUI.backgroundColor = WorldStorageWindow.arfColors[1]; if (GUILayout.Button("Request", EditorStyles.miniButtonLeft, miniButtonWidth) || lastToUUID != TO.UUID) { Loading Loading @@ -390,7 +437,7 @@ namespace ETSI.ARF.WorldStorage.UI System.Guid _creator = System.Guid.Parse(worldStorageUser.UUID); System.Guid _from = System.Guid.Parse(FROM.UUID); System.Guid _to = System.Guid.Parse(TO.UUID); WorldLink t = new WorldLink(_uuid, _creator, _to, _from, FROM.type, TO.type, _transform3d, unit, keyValueTags); WorldLink t = new WorldLink(_uuid, _creator, _from, _to, FROM.type, TO.type, _transform3d, unit, keyValueTags); return t; } } Loading
Assets/ETSI.ARF/ARF World Storage API/Prefabs/ARFWorldLink.prefab +15 −0 Original line number Diff line number Diff line Loading @@ -9,6 +9,7 @@ GameObject: serializedVersion: 6 m_Component: - component: {fileID: 1814829793678878270} - component: {fileID: 2766171691247251799} m_Layer: 0 m_Name: ARFWorldLink m_TagString: Untagged Loading @@ -33,6 +34,20 @@ Transform: m_Father: {fileID: 0} m_RootOrder: 0 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} --- !u!114 &2766171691247251799 MonoBehaviour: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1239500166128132140} m_Enabled: 1 m_EditorHideFlags: 0 m_Script: {fileID: 11500000, guid: 33fce8a1d8d349d47b8565dfe031b6b1, type: 3} m_Name: m_EditorClassIdentifier: mFrom: {fileID: 0} mTo: {fileID: 0} --- !u!1 &4451045791079530586 GameObject: m_ObjectHideFlags: 0 Loading
Assets/ETSI.ARF/ARF World Storage API/Scenes/WorldStorageSample.unity +3428 −2010 File changed.Preview size limit exceeded, changes collapsed. Show changes