private void Canvas_MouseLeftButtonDown(object sender, System.Windows.Input.MouseButtonEventArgs e)
        {
            if (DrawNodes)
            {
                Point pos = e.GetPosition((Canvas)sender);
                pos          = UntransformPoint(pos);
                m_DragAnchor = e.GetPosition((Canvas)sender);
                int newID = IdCount;


                Node n = new Node(newID, "Node " + newID, pos.X, pos.Y);
                n.Floor          = SelectedFloor.FloorNum;
                n.FloorName      = SelectedFloor.Name;
                n.ActualPosition = ScalePos(pos);
                m_SelectedNode   = n;
                FloorNodes.Add(n);


                m_SelectedPoint = FloorNodes.Count - 1;
                m_Dragging      = true;
                updatePoints();
            }
            else if (DrawEdges)
            {
            }
            else if (DrawScale)
            {
                m_ScaleAnchor = e.GetPosition((Canvas)sender);
            }
        }
        protected void removeNode()
        {
            Node node = SelectedNode;

            for (int i = 0; i < m_Floors.Count; i++)
            {
                List <Edge> toRemove = new List <Edge>();
                List <Edge> fEdge    = m_Floors[i].Edges;
                for (int j = 0; j < fEdge.Count; j++)
                {
                    if (fEdge[j].contains(node.ID))
                    {
                        toRemove.Add(fEdge[j]);
                    }
                }
                foreach (Edge e in toRemove)
                {
                    fEdge.Remove(e);
                }
            }

            FloorNodes.Remove(node);
            m_SelectedNode = null;
            m_SelectedEdge = null;
            updatePoints();
            updateEdges();
        }
예제 #3
0
 public void RemoveFloorNode(Node node)
 {
     FloorNodes.Remove(node);
 }