public async void CreateActionObject() { string newActionObjectName = (string)nameInput.GetValue(); if (Base.Parameter.CheckIfAllValuesValid(actionParameters)) { List <IO.Swagger.Model.Parameter> parameters = new List <IO.Swagger.Model.Parameter>(); foreach (IParameter actionParameter in actionParameters) { if (!parametersMetadata.TryGetValue(actionParameter.GetName(), out Base.ParameterMetadata actionParameterMetadata)) { Base.Notifications.Instance.ShowNotification("Failed to create new action", "Failed to get metadata for action parameter: " + actionParameter.GetName()); return; } IO.Swagger.Model.ActionParameter ap = new IO.Swagger.Model.ActionParameter(name: actionParameter.GetName(), value: JsonConvert.SerializeObject(actionParameter.GetValue()), type: actionParameterMetadata.Type); parameters.Add(DataHelper.ActionParameterToParameter(ap)); } try { IO.Swagger.Model.Pose pose = null; if (actionObjectMetadata.HasPose) { Vector3 abovePoint = SceneManager.Instance.GetCollisionFreePointAbove(SceneManager.Instance.SceneOrigin.transform, actionObjectMetadata.GetModelBB(), SceneManager.Instance.SceneOrigin.transform.localRotation); IO.Swagger.Model.Position offset = DataHelper.Vector3ToPosition(TransformConvertor.UnityToROS(abovePoint)); pose = new IO.Swagger.Model.Pose(position: offset, orientation: new IO.Swagger.Model.Orientation(1, 0, 0, 0)); } await Base.WebsocketManager.Instance.AddObjectToScene(newActionObjectName, actionObjectMetadata.Type, pose, parameters); Close(); } catch (Base.RequestFailedException e) { Base.Notifications.Instance.ShowNotification("Failed to add action", e.Message); } } }
public void SetValue(object value) { IO.Swagger.Model.Pose pose = (IO.Swagger.Model.Pose)value; this.pose = pose; posX.SetValue(pose.Position.X); posY.SetValue(pose.Position.Y); posZ.SetValue(pose.Position.Z); orX.SetValue(pose.Orientation.X); orY.SetValue(pose.Orientation.Y); orZ.SetValue(pose.Orientation.Z); orW.SetValue(pose.Orientation.W); }
public static void GetPose(IO.Swagger.Model.Pose pose, out Vector3 position, out Quaternion orientation) { position = PositionToVector3(pose.Position); orientation = OrientationToQuaternion(pose.Orientation); }