public ActionResult UpdateNode([Bind] EditNode Node, int InstanceID) { if (InstanceID == Node.InstanceID) { if (ModelState.IsValid) { var node = db.Nodes.Find(Node.NodeID); node.EditNode(Node); db.SaveChanges(); return(Json(node)); } else { return(Json(new { error = Generic.GetValidationErrors(ModelState) })); } } ModelState.AddModelError("Error", "Error on update."); return(Json(new { error = Generic.GetValidationErrors(ModelState) })); }
public void EditGraph(EditNode editor) { Root.Edit(editor); }
public override void OnInspectorGUI() { DrawDefaultInspector(); if (!PedestrianSystem || !PedestrianSystem.Instance) { return; } GUILayout.Space(10.0f); GUILayout.BeginVertical("box"); if (GUILayout.Button("Generate Node", GUILayout.Height(49))) { if (!PedestrianSystem.Instance.m_nodePrefab) { Debug.LogError("Node Prefab not set. You can find one in \"Assets\\Pedestrian System\\Prefabs\\Pathing\". Node Generation Cancelled."); return; } PedestrianNode node = PrefabUtility.InstantiatePrefab(PedestrianSystem.Instance.m_nodePrefab) as PedestrianNode; Selection.activeGameObject = node.gameObject; node.transform.parent = PedestrianSystem.Instance.transform; if (PedestrianSystem.Instance.m_autoLink) { if (PedestrianSystem.Instance.m_linkBothDir) { if (EditNode) { EditNode.AddNode(node); EditorUtility.SetDirty(EditNode); node.AddNode(EditNode); EditorUtility.SetDirty(node); Vector3 pos = EditNode.transform.position; pos.x += 4.0f; node.transform.position = pos; } else if (AnchorNode) { AnchorNode.AddNode(node); EditorUtility.SetDirty(AnchorNode); node.AddNode(AnchorNode); EditorUtility.SetDirty(node); Vector3 pos = AnchorNode.transform.position; pos.x += 4.0f; node.transform.position = pos; } } else if (EditNode) { EditNode.AddNode(node); EditorUtility.SetDirty(EditNode); Vector3 pos = EditNode.transform.position; pos.x += 4.0f; node.transform.position = pos; } else if (AnchorNode) { AnchorNode.AddNode(node); EditorUtility.SetDirty(AnchorNode); Vector3 pos = AnchorNode.transform.position; pos.x += 4.0f; node.transform.position = pos; } } if (EditNode) { if (AnchorNode) { AnchorNode.transform.parent = PedestrianSystem.transform; } AnchorNode = EditNode; AnchorNode.transform.parent = AnchorNodeFolder.transform; EditNode = node; EditNode.transform.parent = EditNodeFolder.transform; PedestrianSystem.Instance.SetPedestrianNode(PedestrianSystem.Tooltip.ANCHOR, AnchorNode); } else { EditNode = node; EditNode.transform.parent = EditNodeFolder.transform; } PedestrianSystem.Instance.SetPedestrianNode(PedestrianSystem.Tooltip.EDIT, node); } GUILayout.EndVertical(); bool guiChanged = false; if (EditNode && AnchorNode) { GUILayout.BeginHorizontal("box"); if (GUILayout.Button("Go to 'Edit' Piece", GUILayout.Height(49))) { Selection.activeObject = EditNode.transform; } if (GUILayout.Button("Go to 'Anchor' Piece", GUILayout.Height(49))) { Selection.activeObject = AnchorNode.transform; } GUILayout.EndHorizontal(); GUILayout.Space(10.0f); } PedestrianNode useAnchorNode = null; PedestrianNode useEditNode = null; if (PedestrianSystem.Instance.EditNode) { useEditNode = PedestrianSystem.Instance.EditNode; } else if (PedestrianSystem.Instance.PreviousEditNode) { useEditNode = PedestrianSystem.Instance.PreviousEditNode; } if (PedestrianSystem.Instance.AnchorNode) { useAnchorNode = PedestrianSystem.Instance.AnchorNode; } else if (PedestrianSystem.Instance.PreviousAnchorNode) { useAnchorNode = PedestrianSystem.Instance.PreviousAnchorNode; } if (useAnchorNode && useEditNode) { GUILayout.BeginHorizontal("box"); if (PedestrianSystem && PedestrianSystem.TextureIconAnchorToEdit) { if (GUILayout.Button(PedestrianSystem.TextureIconAnchorToEdit)) { // link Anchor To Edit PedestrianSystem.Instance.LinkNode(); guiChanged = true; } } else { if (GUILayout.Button("Link Anchor To Edit", GUILayout.Height(49))) { // link Anchor To Edit PedestrianSystem.Instance.LinkNode(); guiChanged = true; } } if (PedestrianSystem.TextureIconEditToAnchor) { if (GUILayout.Button(PedestrianSystem.TextureIconEditToAnchor)) { // link Edit to Anchor PedestrianSystem.Instance.LinkNode(false); guiChanged = true; } } else { if (GUILayout.Button("Link Edit to Anchor", GUILayout.Height(49))) { // link Edit to Anchor PedestrianSystem.Instance.LinkNode(false); guiChanged = true; } } GUILayout.EndHorizontal(); } // if(PedestrianSystem.Instance.EditNode) // { // SetPedestrianNode( PedestrianSystem.Tooltip.EDIT, PedestrianSystem.Instance.EditNode ); // PedestrianSystem.Instance.SetPedestrianNode( PedestrianSystem.Tooltip.EDIT, null ); // } // // if(PedestrianSystem.Instance.AnchorNode) // { // SetPedestrianNode( PedestrianSystem.Tooltip.ANCHOR, PedestrianSystem.Instance.AnchorNode ); // PedestrianSystem.Instance.SetPedestrianNode( PedestrianSystem.Tooltip.ANCHOR, null ); // } if (guiChanged) { EditorUtility.SetDirty(useAnchorNode); EditorUtility.SetDirty(useEditNode); } if (EditNodeFolder) { for (int cIndex = 0; cIndex < EditNodeFolder.childCount; cIndex++) { EditNodeFolder.GetChild(cIndex).transform.parent = PedestrianSystem.transform; } if (EditNode) { EditNode.transform.parent = EditNodeFolder; } } if (AnchorNodeFolder) { for (int cIndex = 0; cIndex < AnchorNodeFolder.childCount; cIndex++) { AnchorNodeFolder.GetChild(cIndex).transform.parent = PedestrianSystem.transform; } if (AnchorNode) { AnchorNode.transform.parent = AnchorNodeFolder; } } if (AnchorNode) { SetPedestrianNode(PedestrianSystem.Tooltip.ANCHOR, AnchorNode); } if (EditNode) { SetPedestrianNode(PedestrianSystem.Tooltip.EDIT, EditNode); } if (GUI.changed) { EditorUtility.SetDirty(PedestrianSystem); } }
private void Visual_MouseMove(object sender, MouseEventArgs e) { if (MapIn) { mxi = mxi + MXD; myi = myi + MYD; } MoveOn = false; RotateOn = false; if (e.Y < 100) { ShowIcons = true; if (e.X > 20 && e.X < 52) { if (e.Y > 20 && e.Y < 52) { MoveOn = true; RotateOn = false; ScaleOn = false; } } if (e.X > 65 && e.X < 97) { if (e.Y > 20 && e.Y < 52) { MoveOn = false; RotateOn = true; ScaleOn = false; } } if (e.X > 110 && e.X < 142) { if (e.Y > 20 && e.Y < 52) { ScaleOn = true; RotateOn = false; MoveOn = false; } } } else { ShowIcons = false; } MXD = e.X - MX; MYD = e.Y - MY; MX = e.X; MY = e.Y; if (MouseIn) { if (EditMode == 1) { EditNode?.EditMove(MXD, MYD); } if (EditMode == 2) { EditNode?.Rotate(MXD); } if (EditMode == 3) { EditNode?.Scale(MYD * 0.02f); } } }
private void MarkerClicked(PlanningNodeModel whichNode) { EditNode?.Invoke(whichNode); }