Example #1
0
        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) }));
        }
Example #2
0
 public void EditGraph(EditNode editor)
 {
     Root.Edit(editor);
 }
Example #3
0
    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);
        }
    }
Example #4
0
        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);
                }
            }
        }
Example #5
0
 private void MarkerClicked(PlanningNodeModel whichNode)
 {
     EditNode?.Invoke(whichNode);
 }