예제 #1
0
 public override bool doTool()
 {
     node.setValues(newX, newY, newScale);
     if (newX != oldX || newY != oldY)
     {
         foreach (Trajectory.Side side in trajectory.getSides())
         {
             if (side.getIDEnd().Equals(node.getID()) || side.getIDStart().Equals(node.getID()))
             {
                 oldLengths.Add(side.getIDStart() + ";" + side.getIDEnd(), side.getLength());
                 Trajectory.Node start = trajectory.getNodeForId(side.getIDStart());
                 Trajectory.Node end   = trajectory.getNodeForId(side.getIDEnd());
                 float           x     = start.getX() - end.getX();
                 float           y     = start.getY() - end.getY();
                 side.setLenght((float)Mathf.Sqrt(Mathf.Pow(x, 2) + Mathf.Pow(y, 2)));
                 side.setRealLength((float)Mathf.Sqrt(Mathf.Pow(x, 2) + Mathf.Pow(y, 2)));
             }
         }
     }
     return(true);
 }
 public override bool redoTool()
 {
     trajectory.getNodes().Add(newNode);
     trajectoryDataControl.getNodes().Add(newNodeDataControl);
     if (wasInitial)
     {
         trajectory.setInitial(newNode.getID());
         trajectoryDataControl.initialNode = newNodeDataControl;
     }
     Controller.getInstance().updatePanel();
     return(true);
 }
예제 #3
0
 public override bool doTool()
 {
     node.setValues(newX, newY, newScale);
     if (newX != oldX || newY != oldY)
     {
         foreach (Trajectory.Side side in trajectory.getSides())
         {
             if (side.getIDEnd().Equals(node.getID()) || side.getIDStart().Equals(node.getID()))
             {
                 Node  start     = trajectory.getNodeForId(side.getIDStart());
                 Node  end       = trajectory.getNodeForId(side.getIDEnd());
                 float x         = start.getX() - end.getX();
                 float y         = start.getY() - end.getY();
                 var   newLength = new Vector2(x, y).magnitude;
                 if (Mathf.Approximately(side.getLength(), side.getRealLength()))
                 {
                     side.setLenght(newLength);
                 }
                 side.setRealLength(newLength);
             }
         }
     }
     return(true);
 }
예제 #4
0
        public SetNodeValuesTool(Node node, Trajectory trajectory, int newX, int newY, float newScale)
        {
            this.newX      = newX;
            this.newY      = newY;
            this.newScale  = newScale;
            this.oldX      = node.getX();
            this.oldY      = node.getY();
            this.oldScale  = node.getScale();
            this.oldLength = new Dictionary <string, float>();
            bool isEnd;

            foreach (Trajectory.Side side in trajectory.getSides())
            {
                isEnd = side.getIDEnd().Equals(node.getID());
                if (isEnd || side.getIDStart().Equals(node.getID()))
                {
                    oldLength.Add(isEnd ? side.getIDStart() : side.getIDEnd(), side.getLength());
                }
            }


            this.node       = node;
            this.trajectory = trajectory;
        }
        public override bool undoTool()
        {
            Node temp = (Node)oldNodeDataControl.getContent();

            trajectory.getNodes().Add(temp);
            trajectoryDataControl.getNodes().Add(oldNodeDataControl);

            if (wasInitial)
            {
                trajectory.setInitial(temp.getID());
                trajectoryDataControl.initialNode = oldNodeDataControl;
            }

            foreach (SideDataControl side in oldSides)
            {
                trajectory.getSides().Add((Side)side.getContent());
                trajectoryDataControl.getSides().Add(side);
            }

            Controller.Instance.updatePanel();

            return(true);
        }