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 Original line Diff line number Diff line
@@ -40,6 +40,8 @@ namespace ETSI.ARF.WorldStorage.UI
{
{
    public class TrackableWindow : EditorWindow
    public class TrackableWindow : EditorWindow
    {
    {
        static public TrackableWindow winSingleton;

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


@@ -64,11 +66,16 @@ namespace ETSI.ARF.WorldStorage.UI
        private Color ori;
        private Color ori;
        private GUIStyle gsTest;
        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;
                winSingleton.UUID = UUID;
            win.worldStorageServer = ws;
                winSingleton.GetTrackableParams();
            win.worldStorageUser = user;
            }
        }
        }


        public TrackableWindow()
        public TrackableWindow()
@@ -114,41 +121,11 @@ namespace ETSI.ARF.WorldStorage.UI
            EditorGUILayout.Space();
            EditorGUILayout.Space();


            GUI.backgroundColor = WorldStorageWindow.arfColors[1];
            GUI.backgroundColor = WorldStorageWindow.arfColors[1];
            if (GUILayout.Button("Get Parameters"))
            if (GUILayout.Button("Read 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)
            {
            {
                    trackableSize = new Vector3((float)obj.TrackableSize[0], (float)obj.TrackableSize[1], (float)obj.TrackableSize[2]);
                UUID = WorldStorageWindow.GetUUIDFromString(customName);
                }
                if (UUID == null) UUID = customName; // try this
                else trackableSize = Vector3.zero;
                GetTrackableParams();
                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;
            GUI.backgroundColor = ori;


@@ -248,6 +225,36 @@ namespace ETSI.ARF.WorldStorage.UI
            GUI.backgroundColor = ori;
            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()
        public Trackable GenerateTrackable()
        {
        {
+45 −37
Original line number Original line Diff line number Diff line
@@ -39,6 +39,8 @@ namespace ETSI.ARF.WorldStorage.UI
{
{
    public class WorldAnchorWindow : EditorWindow
    public class WorldAnchorWindow : EditorWindow
    {
    {
        static public WorldAnchorWindow winSingleton;

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


@@ -61,11 +63,16 @@ namespace ETSI.ARF.WorldStorage.UI
        private Color ori;
        private Color ori;
        private GUIStyle gsTest;
        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;
                winSingleton.UUID = UUID;
            win.worldStorageServer = ws;
                winSingleton.GetWorldAnchorParams();
            win.worldStorageUser = user;
            }
        }
        }


        public WorldAnchorWindow()
        public WorldAnchorWindow()
@@ -111,40 +118,11 @@ namespace ETSI.ARF.WorldStorage.UI
            EditorGUILayout.Space();
            EditorGUILayout.Space();


            GUI.backgroundColor = WorldStorageWindow.arfColors[1];
            GUI.backgroundColor = WorldStorageWindow.arfColors[1];
            if (GUILayout.Button("Get Parameters"))
            if (GUILayout.Button("Read 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)
            {
            {
                    worldAnchorSize = new Vector3((float)obj.WorldAnchorSize[0], (float)obj.WorldAnchorSize[1], (float)obj.WorldAnchorSize[2]);
                UUID = WorldStorageWindow.GetUUIDFromString(customName);
                }
                if (UUID == null) UUID = customName; // try this
                else worldAnchorSize = Vector3.zero;
                GetWorldAnchorParams();
                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;
            GUI.backgroundColor = ori;


@@ -224,6 +202,36 @@ namespace ETSI.ARF.WorldStorage.UI
            GUI.backgroundColor = ori;
            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()
        public WorldAnchor GenerateWorldAnchor()
        {
        {
#if USING_OPENAPI_GENERATOR
#if USING_OPENAPI_GENERATOR
+89 −38
Original line number Original line Diff line number Diff line
@@ -39,19 +39,29 @@ namespace ETSI.ARF.WorldStorage.UI
{
{
    public class WorldLinkWindow : EditorWindow
    public class WorldLinkWindow : EditorWindow
    {
    {
        static public WorldLinkWindow winSingleton;

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


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


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


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

        UnitSystem unit = UnitSystem.CM;
        UnitSystem unit = UnitSystem.CM;
        ObjectType fromType = ObjectType.NotIdentified, toType = ObjectType.NotIdentified;
        ObjectType fromType = ObjectType.NotIdentified, toType = ObjectType.NotIdentified;
        Vector3 localCRS_pos;
        Vector3 localCRS_pos;
@@ -63,11 +73,16 @@ namespace ETSI.ARF.WorldStorage.UI
        private Color ori;
        private Color ori;
        private GUIStyle gsTest;
        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;
                winSingleton.UUID = UUID;
            win.worldStorageServer = ws;
                winSingleton.GetWorldLinkParams();
            win.worldStorageUser = user;
            }
        }
        }


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


            GUI.backgroundColor = WorldStorageWindow.arfColors[1];
            GUI.backgroundColor = WorldStorageWindow.arfColors[1];
            if (GUILayout.Button("Get Parameters"))
            if (GUILayout.Button("Read Parameters"))
            {
                if (!customName.Contains("[")) UUID = customName;
                else
            {
            {
                    // extract the UUID
                UUID = WorldStorageWindow.GetUUIDFromString(customName);
                    UUID = customName.Split('[', ']')[1];
                if (UUID == null) UUID = customName; // try this
                GetWorldLinkParams();
            }
            }
                WorldLink obj = WorldLinkRequest.GetWorldLink(worldStorageServer, UUID);
            GUI.backgroundColor = ori;
                //customName = obj.Name;

                creatorUUID = obj.CreatorUUID.ToString();
            unit = (UnitSystem)EditorGUILayout.EnumPopup("Unit System:", unit);
                fromUUID = obj.UUIDFrom.ToString();

                toUUID = obj.UUIDTo.ToString();
            EditorGUILayout.Space();
                fromType = obj.TypeFrom;
            showListFrom = EditorGUILayout.Foldout(showListFrom, "Parent Object (From)");
                toType = obj.TypeTo;
            if (showListFrom)
                unit = obj.Unit;
                if (obj.Transform.Count == 16)
            {
            {
                    Matrix4x4 localCRS = new Matrix4x4();
                EditorGUILayout.BeginHorizontal();
                    localCRS.m00 = obj.Transform[0]; localCRS.m01 = obj.Transform[1]; localCRS.m02 = obj.Transform[2]; localCRS.m03 = obj.Transform[3];
                fromUUID = EditorGUILayout.TextField("UUID", fromUUID);
                    localCRS.m10 = obj.Transform[4]; localCRS.m11 = obj.Transform[5]; localCRS.m12 = obj.Transform[6]; localCRS.m13 = obj.Transform[7];
                GUI.backgroundColor = WorldStorageWindow.arfColors[1];
                    localCRS.m20 = obj.Transform[8]; localCRS.m21 = obj.Transform[9]; localCRS.m22 = obj.Transform[10]; localCRS.m23 = obj.Transform[11];
                if (GUILayout.Button("Find", EditorStyles.miniButtonLeft, miniButtonWidth))
                    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;
                    // TODO Request the object from the server
                    localCRS_rot = Vector3.zero;
                    fromName = "(not implemented yet)";
                }
                    fromType = ObjectType.NotIdentified;
                keyValueTags = obj.KeyvalueTags;
                this.Repaint(); // TODO
                }
                }
                EditorGUILayout.EndHorizontal();
                GUI.backgroundColor = ori;
                GUI.backgroundColor = ori;
                fromName = EditorGUILayout.TextField("Name", fromName);
                fromType = (ObjectType)EditorGUILayout.EnumPopup("Type:", fromType);
            }


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

            showListTo = EditorGUILayout.Foldout(showListTo, "Child Object (To)");
            fromType = (ObjectType)EditorGUILayout.EnumPopup("From Object Type:", fromType);
            if (showListTo)
            toType = (ObjectType)EditorGUILayout.EnumPopup("To Object Type:", toType);
            {
                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);
            EditorGUILayout.Space(10);
            GUILayout.Label("Local CRS:");
            GUILayout.Label("Local CRS:");
@@ -225,6 +247,35 @@ namespace ETSI.ARF.WorldStorage.UI
            GUI.backgroundColor = ori;
            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()
        public WorldLink GenerateWorldLink()
        {
        {
            Matrix4x4 localCRS = new Matrix4x4();
            Matrix4x4 localCRS = new Matrix4x4();
+104 −7

File changed.

Preview size limit exceeded, changes collapsed.

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