From f724543115bd13652e5a91088933653f75745e92 Mon Sep 17 00:00:00 2001 From: Sylvain Buche <sylvain.buche@orange.com> Date: Fri, 17 May 2024 10:18:20 +0200 Subject: [PATCH] upadate with last version of API, add conversion between equivalent WS and WA types --- .../OpenAPI/Generated/WorldAnalysisOpenAPI.cs | 4 +- Runtime/Scripts/WorldAnalysisInterface.cs | 4 +- Runtime/Scripts/WorldAnalysisREST.cs | 2 +- Runtime/Scripts/WorldAnalysisUnityHelper.cs | 67 +++++++++++++++++++ 4 files changed, 72 insertions(+), 5 deletions(-) diff --git a/Runtime/Scripts/OpenAPI/Generated/WorldAnalysisOpenAPI.cs b/Runtime/Scripts/OpenAPI/Generated/WorldAnalysisOpenAPI.cs index de7c51f..d9ac029 100644 --- a/Runtime/Scripts/OpenAPI/Generated/WorldAnalysisOpenAPI.cs +++ b/Runtime/Scripts/OpenAPI/Generated/WorldAnalysisOpenAPI.cs @@ -2343,8 +2343,8 @@ namespace ETSI.ARF.OpenAPI.WorldAnalysis [Newtonsoft.Json.JsonConverter(typeof(Newtonsoft.Json.Converters.StringEnumConverter))] public TypeWorldStorage Type { get; set; } - [Newtonsoft.Json.JsonProperty("capability", Required = Newtonsoft.Json.Required.DisallowNull, NullValueHandling = Newtonsoft.Json.NullValueHandling.Ignore)] - public Capability Capability { get; set; } + [Newtonsoft.Json.JsonProperty("capabilities", Required = Newtonsoft.Json.Required.DisallowNull, NullValueHandling = Newtonsoft.Json.NullValueHandling.Ignore)] + public System.Collections.Generic.ICollection<Capability> Capabilities { get; set; } private System.Collections.Generic.IDictionary<string, object> _additionalProperties; diff --git a/Runtime/Scripts/WorldAnalysisInterface.cs b/Runtime/Scripts/WorldAnalysisInterface.cs index 24f1b3b..727ebc5 100644 --- a/Runtime/Scripts/WorldAnalysisInterface.cs +++ b/Runtime/Scripts/WorldAnalysisInterface.cs @@ -173,9 +173,9 @@ public interface WorldAnalysisInterface /// <param name="uuid">id of the trackable or anchor</param> /// <param name="isSupported">trackable or anchor can be estimated on current system</param> /// <param name="type">the specified id corresponds to an anchor or trackable</param> - /// <param name="capability">metadata associated with the pose estimation of this element</param> + /// <param name="capability">list metadata associated with the pose estimation of this element</param> /// <returns>Capabilities have correctly identified or not</returns> - public CapabilityResult GetCapability(string token, string uuid, out bool isSupported, out TypeWorldStorage type, out Capability capability); + public CapabilityResult GetCapability(string token, string uuid, out bool isSupported, out TypeWorldStorage type, out Capability [] capability); #endregion } \ No newline at end of file diff --git a/Runtime/Scripts/WorldAnalysisREST.cs b/Runtime/Scripts/WorldAnalysisREST.cs index a497001..9d1de9d 100644 --- a/Runtime/Scripts/WorldAnalysisREST.cs +++ b/Runtime/Scripts/WorldAnalysisREST.cs @@ -89,7 +89,7 @@ public class WorldAnalysisREST : MonoBehaviour, WorldAnalysisInterface return CapabilityResult.OK; } - public CapabilityResult GetCapability(string token, string uuid, out bool isSupported, out TypeWorldStorage type, out Capability capability) + public CapabilityResult GetCapability(string token, string uuid, out bool isSupported, out TypeWorldStorage type, out Capability [] capability) { isSupported = false; type = TypeWorldStorage.UNKNOWN; diff --git a/Runtime/Scripts/WorldAnalysisUnityHelper.cs b/Runtime/Scripts/WorldAnalysisUnityHelper.cs index 65d3829..b6f5b21 100644 --- a/Runtime/Scripts/WorldAnalysisUnityHelper.cs +++ b/Runtime/Scripts/WorldAnalysisUnityHelper.cs @@ -87,6 +87,73 @@ public class WorldAnalysisUnityHelper return Quaternion.LookRotation(matrix.GetColumn(2), matrix.GetColumn(1)); } + /// <summary> + /// Duplicated generated code means that we need conversion between similar types + /// </summary> + /// <param name="value">world storage capability</param> + /// <returns>clone</returns> + public static ETSI.ARF.OpenAPI.WorldAnalysis.Capability ConvertWorldStorageCapability(ETSI.ARF.OpenAPI.WorldStorage.Capability value) + { + ETSI.ARF.OpenAPI.WorldAnalysis.Capability resul = new ETSI.ARF.OpenAPI.WorldAnalysis.Capability(); + + resul.TrackableType = (ETSI.ARF.OpenAPI.WorldAnalysis.TrackableType)((int)value.TrackableType); + resul.EncodingInformation = ConvertWorldStorageEncodingInformation(value.EncodingInformation); + resul.Framerate = value.Framerate; + resul.Latency = value.Latency; + resul.Accuracy = value.Accuracy; + resul.AdditionalProperties = value.AdditionalProperties; // need copy? + + return resul; + } + + /// <summary> + /// Duplicated generated code means that we need conversion between similar types + /// </summary> + /// <param name="value">world storage encodinginformation</param> + /// <returns>clone</returns> + public static ETSI.ARF.OpenAPI.WorldAnalysis.EncodingInformationStructure ConvertWorldStorageEncodingInformation(ETSI.ARF.OpenAPI.WorldStorage.EncodingInformationStructure value) + { + ETSI.ARF.OpenAPI.WorldAnalysis.EncodingInformationStructure resul = new ETSI.ARF.OpenAPI.WorldAnalysis.EncodingInformationStructure(); + resul.DataFormat = (ETSI.ARF.OpenAPI.WorldAnalysis.EncodingInformationStructureDataFormat)((int)value.DataFormat); + resul.Version = value.Version; + resul.AdditionalProperties = value.AdditionalProperties; // need copy ? + return resul; + } + + /// <summary> + /// Duplicated generated code means that we need conversion between similar types + /// </summary> + /// <param name="value">world storage capability</param> + /// <returns>clone</returns> + public static ETSI.ARF.OpenAPI.WorldStorage.Capability ConvertWorldAnalysisCapability(ETSI.ARF.OpenAPI.WorldAnalysis.Capability value) + { + ETSI.ARF.OpenAPI.WorldStorage.Capability resul = new ETSI.ARF.OpenAPI.WorldStorage.Capability(); + resul.TrackableType = (ETSI.ARF.OpenAPI.WorldStorage.TrackableType)((int)value.TrackableType); + resul.EncodingInformation = ConvertWorldAnalysisEncodingInformation(value.EncodingInformation); + + resul.Framerate = value.Framerate; + resul.Latency = value.Latency; + resul.Accuracy = value.Accuracy; + + resul.AdditionalProperties = value.AdditionalProperties; // need copy? + return resul; + } + + + /// <summary> + /// Duplicated generated code means that we need conversion between similar types + /// </summary> + /// <param name="value">world analysis encodinginformation</param> + /// <returns>clone</returns> + public static ETSI.ARF.OpenAPI.WorldStorage.EncodingInformationStructure ConvertWorldAnalysisEncodingInformation(ETSI.ARF.OpenAPI.WorldAnalysis.EncodingInformationStructure value) + { + ETSI.ARF.OpenAPI.WorldStorage.EncodingInformationStructure resul = new ETSI.ARF.OpenAPI.WorldStorage.EncodingInformationStructure(); + resul.DataFormat = (ETSI.ARF.OpenAPI.WorldStorage.EncodingInformationStructureDataFormat)((int)value.DataFormat); + resul.Version = value.Version; + resul.AdditionalProperties = value.AdditionalProperties; // need copy ? + return resul; + } + } namespace ETSI.ARF.OpenAPI.WorldAnalysis -- GitLab