/// <summary> /// Serializes the <see cref="ScenarioNavOrigin"/> to the data node /// </summary> /// <param name="data"><see cref="JSONNode"/> where the data will be serialized</param> /// <param name="scenarioNavOrigin"><see cref="ScenarioNavOrigin"/> that will be serialized</param> private void SerializeNavOrigin(JSONNode data, ScenarioNavOrigin scenarioNavOrigin) { var navOriginNode = new JSONObject(); data.Add(navOriginNode); var transformNode = new JSONObject(); navOriginNode.Add("transform", transformNode); var position = new JSONObject().WriteVector3(scenarioNavOrigin.TransformToMove.position); transformNode.Add("position", position); var rotation = new JSONObject().WriteVector3(scenarioNavOrigin.TransformToRotate.rotation.eulerAngles); transformNode.Add("rotation", rotation); var parametersNode = new JSONObject(); navOriginNode.Add("parameters", parametersNode); var originX = new JSONNumber(scenarioNavOrigin.NavOrigin.OriginX); parametersNode.Add("originX", originX); var originY = new JSONNumber(scenarioNavOrigin.NavOrigin.OriginY); parametersNode.Add("originY", originY); var rotationParameter = new JSONNumber(scenarioNavOrigin.NavOrigin.Rotation); parametersNode.Add("rotation", rotationParameter); }
/// <summary> /// Registers the <see cref="ScenarioNavOrigin"/> in the extension, for example for the serialization /// </summary> /// <param name="navOrigin"><see cref="ScenarioNavOrigin"/> that will be registered</param> public void RegisterNavOrigin(ScenarioNavOrigin navOrigin) { if (!navOrigins.Contains(navOrigin)) { if (navOrigins.Count > 0) { ScenarioManager.Instance.logPanel.EnqueueWarning($"Scenario editor supports only one {nameof(NavOrigin)}."); navOrigin.RemoveFromMap(); navOrigin.Dispose(); } else { navOrigins.Add(navOrigin); } } }
/// <summary> /// Method called when another scenario element has been selected /// </summary> /// <param name="previousElement">Scenario element that has been deselected</param> /// <param name="selectedElement">Scenario element that has been selected</param> private void OnSelectedOtherElement(ScenarioElement previousElement, ScenarioElement selectedElement) { //Detach from current agent events if (selectedNavOrigin != null) { } selectedNavOrigin = selectedElement as ScenarioNavOrigin; //Attach to selected <see cref="ScenarioNavOrigin"/> if (selectedNavOrigin != null) { Show(); } else { Hide(); } }
/// <summary> /// Unregisters the <see cref="ScenarioNavOrigin"/> from the extension /// </summary> /// <param name="navOrigin"><see cref="ScenarioNavOrigin"/> that will be unregistered</param> public void UnregisterNavOrigin(ScenarioNavOrigin navOrigin) { navOrigins.Remove(navOrigin); }