Commit 258ea2e6 authored by Sylvain Renault's avatar Sylvain Renault
Browse files

Merge branch 'develop' into 'main'

All functions and packages conform with API v1.0.0

See merge request !3
parents 949dd19e e4ed2abf
Loading
Loading
Loading
Loading
+45 −38
Original line number Diff line number Diff line
@@ -40,6 +40,8 @@ namespace ETSI.ARF.WorldStorage.UI
{
    public class TrackableWindow : EditorWindow
    {
        static public TrackableWindow winSingleton;

        [HideInInspector] public WorldStorageServer worldStorageServer;
        [HideInInspector] public WorldStorageUser worldStorageUser;

@@ -64,11 +66,16 @@ namespace ETSI.ARF.WorldStorage.UI
        private Color ori;
        private GUIStyle gsTest;

        public static void ShowWindow(WorldStorageServer ws, WorldStorageUser user)
        public static void ShowWindow(WorldStorageServer ws, WorldStorageUser user, string UUID = "")
        {
            winSingleton = EditorWindow.GetWindow(typeof(TrackableWindow), false, WorldStorageWindow.winName) as TrackableWindow;
            winSingleton.worldStorageServer = ws;
            winSingleton.worldStorageUser = user;
            if (!string.IsNullOrEmpty(UUID))
            {
            TrackableWindow win = EditorWindow.GetWindow(typeof(TrackableWindow), false, WorldStorageWindow.winName) as TrackableWindow;
            win.worldStorageServer = ws;
            win.worldStorageUser = user;
                winSingleton.UUID = UUID;
                winSingleton.GetTrackableParams();
            }
        }

        public TrackableWindow()
@@ -114,41 +121,11 @@ namespace ETSI.ARF.WorldStorage.UI
            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];
                }
                Trackable obj = TrackableRequest.GetTrackable(worldStorageServer, UUID);
                customName = obj.Name;
                creatorUUID = obj.CreatorUUID.ToString();
                type = obj.TrackableType;
                unit = obj.Unit;
                if (obj.TrackableSize.Count == 3)
            if (GUILayout.Button("Read Parameters"))
            {
                    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
                UUID = WorldStorageWindow.GetUUIDFromString(customName);
                if (UUID == null) UUID = customName; // try this
                GetTrackableParams();
            }
            GUI.backgroundColor = ori;

@@ -248,6 +225,36 @@ namespace ETSI.ARF.WorldStorage.UI
            GUI.backgroundColor = ori;
        }

        private void GetTrackableParams()
        {
            Trackable obj = TrackableRequest.GetTrackable(worldStorageServer, UUID);
            customName = obj.Name;
            creatorUUID = obj.CreatorUUID.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
        }

        public Trackable GenerateTrackable()
        {
+45 −37
Original line number Diff line number Diff line
@@ -39,6 +39,8 @@ namespace ETSI.ARF.WorldStorage.UI
{
    public class WorldAnchorWindow : EditorWindow
    {
        static public WorldAnchorWindow winSingleton;

        [HideInInspector] public WorldStorageServer worldStorageServer;
        [HideInInspector] public WorldStorageUser worldStorageUser;

@@ -61,11 +63,16 @@ namespace ETSI.ARF.WorldStorage.UI
        private Color ori;
        private GUIStyle gsTest;

        public static void ShowWindow(WorldStorageServer ws, WorldStorageUser user)
        public static void ShowWindow(WorldStorageServer ws, WorldStorageUser user, string UUID = "")
        {
            winSingleton = EditorWindow.GetWindow(typeof(WorldAnchorWindow), false, WorldStorageWindow.winName) as WorldAnchorWindow;
            winSingleton.worldStorageServer = ws;
            winSingleton.worldStorageUser = user;
            if (!string.IsNullOrEmpty(UUID))
            {
            WorldAnchorWindow win = EditorWindow.GetWindow(typeof(WorldAnchorWindow), false, WorldStorageWindow.winName) as WorldAnchorWindow;
            win.worldStorageServer = ws;
            win.worldStorageUser = user;
                winSingleton.UUID = UUID;
                winSingleton.GetWorldAnchorParams();
            }
        }

        public WorldAnchorWindow()
@@ -111,40 +118,11 @@ namespace ETSI.ARF.WorldStorage.UI
            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];
                }
                WorldAnchor obj = WorldAnchorRequest.GetWorldAnchor(worldStorageServer, UUID);
                customName = obj.Name;
                creatorUUID = obj.CreatorUUID.ToString();
                unit = obj.Unit;
                if (obj.WorldAnchorSize.Count == 3)
            if (GUILayout.Button("Read Parameters"))
            {
                    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
                UUID = WorldStorageWindow.GetUUIDFromString(customName);
                if (UUID == null) UUID = customName; // try this
                GetWorldAnchorParams();
            }
            GUI.backgroundColor = ori;

@@ -224,6 +202,36 @@ namespace ETSI.ARF.WorldStorage.UI
            GUI.backgroundColor = ori;
        }

        private void GetWorldAnchorParams()
        {
            WorldAnchor obj = WorldAnchorRequest.GetWorldAnchor(worldStorageServer, UUID);
            customName = obj.Name;
            creatorUUID = obj.CreatorUUID.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
        }

        public WorldAnchor GenerateWorldAnchor()
        {
#if USING_OPENAPI_GENERATOR
+89 −38
Original line number Diff line number Diff line
@@ -39,19 +39,29 @@ namespace ETSI.ARF.WorldStorage.UI
{
    public class WorldLinkWindow : EditorWindow
    {
        static public WorldLinkWindow winSingleton;

        [HideInInspector] public WorldStorageServer worldStorageServer;
        [HideInInspector] public WorldStorageUser worldStorageUser;

        [SerializeField] public List<string> anchors = new List<string>();

        bool groupEnabled;
        private static GUILayoutOption miniButtonWidth = GUILayout.Width(50);

        // World Anchors params
        string UUID = System.Guid.Empty.ToString();
        string customName = "(no name for World Links)";
        string creatorUUID = System.Guid.Empty.ToString();
        // From...
        private bool showListFrom = true;
        string fromName = "(none)";
        string fromUUID = System.Guid.Empty.ToString();
        // To...
        private bool showListTo = true;
        string toName = "(none)";
        string toUUID = System.Guid.Empty.ToString();

        UnitSystem unit = UnitSystem.CM;
        ObjectType fromType = ObjectType.NotIdentified, toType = ObjectType.NotIdentified;
        Vector3 localCRS_pos;
@@ -63,11 +73,16 @@ namespace ETSI.ARF.WorldStorage.UI
        private Color ori;
        private GUIStyle gsTest;

        public static void ShowWindow(WorldStorageServer ws, WorldStorageUser user)
        public static void ShowWindow(WorldStorageServer ws, WorldStorageUser user, string UUID = "")
        {
            winSingleton = EditorWindow.GetWindow(typeof(WorldLinkWindow), false, WorldStorageWindow.winName) as WorldLinkWindow;
            winSingleton.worldStorageServer = ws;
            winSingleton.worldStorageUser = user;
            if (!string.IsNullOrEmpty(UUID))
            {
            WorldLinkWindow win = EditorWindow.GetWindow(typeof(WorldLinkWindow), false, WorldStorageWindow.winName) as WorldLinkWindow;
            win.worldStorageServer = ws;
            win.worldStorageUser = user;
                winSingleton.UUID = UUID;
                winSingleton.GetWorldLinkParams();
            }
        }

        public WorldLinkWindow()
@@ -113,46 +128,53 @@ namespace ETSI.ARF.WorldStorage.UI
            EditorGUILayout.Space();

            GUI.backgroundColor = WorldStorageWindow.arfColors[1];
            if (GUILayout.Button("Get Parameters"))
            {
                if (!customName.Contains("[")) UUID = customName;
                else
            if (GUILayout.Button("Read Parameters"))
            {
                    // extract the UUID
                    UUID = customName.Split('[', ']')[1];
                UUID = WorldStorageWindow.GetUUIDFromString(customName);
                if (UUID == null) UUID = customName; // try this
                GetWorldLinkParams();
            }
                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)
            GUI.backgroundColor = ori;

            unit = (UnitSystem)EditorGUILayout.EnumPopup("Unit System:", unit);

            EditorGUILayout.Space();
            showListFrom = EditorGUILayout.Foldout(showListFrom, "Parent Object (From)");
            if (showListFrom)
            {
                    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
                EditorGUILayout.BeginHorizontal();
                fromUUID = EditorGUILayout.TextField("UUID", fromUUID);
                GUI.backgroundColor = WorldStorageWindow.arfColors[1];
                if (GUILayout.Button("Find", EditorStyles.miniButtonLeft, miniButtonWidth))
                {
                    localCRS_pos = Vector3.zero;
                    localCRS_rot = Vector3.zero;
                }
                keyValueTags = obj.KeyvalueTags;
                this.Repaint(); // TODO
                    // TODO Request the object from the server
                    fromName = "(not implemented yet)";
                    fromType = ObjectType.NotIdentified;
                }
                EditorGUILayout.EndHorizontal();
                GUI.backgroundColor = ori;
                fromName = EditorGUILayout.TextField("Name", fromName);
                fromType = (ObjectType)EditorGUILayout.EnumPopup("Type:", fromType);
            }

            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();
            showListTo = EditorGUILayout.Foldout(showListTo, "Child Object (To)");
            if (showListTo)
            {
                EditorGUILayout.BeginHorizontal();
                toUUID = EditorGUILayout.TextField("UUID", toUUID);
                GUI.backgroundColor = WorldStorageWindow.arfColors[1];
                if (GUILayout.Button("Find", EditorStyles.miniButtonLeft, miniButtonWidth))
                {
                    // TODO Request the object from the server
                    toName = "(not implemented yet)";
                    toType = ObjectType.NotIdentified;
                }
                EditorGUILayout.EndHorizontal();
                GUI.backgroundColor = ori;
                toName = EditorGUILayout.TextField("Name", toName);
                toType = (ObjectType)EditorGUILayout.EnumPopup("Type:", toType);
            }

            EditorGUILayout.Space(10);
            GUILayout.Label("Local CRS:");
@@ -225,6 +247,35 @@ namespace ETSI.ARF.WorldStorage.UI
            GUI.backgroundColor = ori;
        }

        private void GetWorldLinkParams()
        {
            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
        }

        public WorldLink GenerateWorldLink()
        {
            Matrix4x4 localCRS = new Matrix4x4();
+104 −7

File changed.

Preview size limit exceeded, changes collapsed.

Compare c8406f18 to 688bf209
Original line number Diff line number Diff line
Subproject commit c8406f18a9f789d4cc0eb2ef995d274797ea4051
Subproject commit 688bf209c3e6d27d10782b2583b0e9c8edea15c7
Loading