public void ActionPointOrientationBaseUpdated(NamedOrientation orientation)
 {
     try {
         ActionPoint actionPoint = ProjectManager.Instance.GetActionPointWithOrientation(orientation.Id);
         actionPoint.BaseUpdateOrientation(orientation);
         OnActionPointUpdated?.Invoke(this, new ActionPointUpdatedEventArgs(actionPoint));
         OnProjectChanged?.Invoke(this, EventArgs.Empty);
     } catch (KeyNotFoundException ex) {
         Debug.LogError(ex);
         Notifications.Instance.ShowNotification("Failed to update action point orientation", ex.Message);
         return;
     }
 }
 public void ActionPointOrientationAdded(NamedOrientation orientation, string actionPointIt)
 {
     try {
         ActionPoint actionPoint = GetActionPoint(actionPointIt);
         actionPoint.AddOrientation(orientation);
         OnActionPointUpdated?.Invoke(this, new ActionPointUpdatedEventArgs(actionPoint));
         OnProjectChanged?.Invoke(this, EventArgs.Empty);
     } catch (KeyNotFoundException ex) {
         Debug.LogError(ex);
         Notifications.Instance.ShowNotification("Failed to add action point orientation", ex.Message);
         return;
     }
 }
 public void ActionPointJointsRemoved(ProjectRobotJoints joints)
 {
     try {
         ActionPoint actionPoint = GetActionPointWithJoints(joints.Id);
         actionPoint.RemoveJoints(joints);
         OnActionPointUpdated?.Invoke(this, new ActionPointUpdatedEventArgs(actionPoint));
         OnProjectChanged?.Invoke(this, EventArgs.Empty);
     } catch (KeyNotFoundException ex) {
         Debug.LogError(ex);
         Notifications.Instance.ShowNotification("Failed to remove action point joints", ex.Message);
         return;
     }
 }
 public void ActionPointBaseUpdated(ProjectActionPoint projectActionPoint)
 {
     try {
         ActionPoint actionPoint = GetActionPoint(projectActionPoint.Id);
         actionPoint.ActionPointBaseUpdate(projectActionPoint);
         OnActionPointsChanged?.Invoke(this, EventArgs.Empty);
         OnActionPointUpdated?.Invoke(this, new ActionPointUpdatedEventArgs(actionPoint));
         OnProjectChanged?.Invoke(this, EventArgs.Empty);
     } catch (KeyNotFoundException ex) {
         Debug.Log("Action point " + projectActionPoint.Id + " not found!");
         Notifications.Instance.ShowNotification("", "Action point " + projectActionPoint.Id + " not found!");
         return;
     }
 }