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);
 }
示例#2
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);
 }