Browse Source

#76: fixed bug for computation of wasted energy

I. Dix 7 years ago
parent
commit
84dff9a37b

+ 2 - 1
src/ui/controller/SimulationManager.java

@@ -51,7 +51,8 @@ public class SimulationManager {
         for (SubNet singleSubNet : subNets) {
             float production = calculateEnergy("prod", singleSubNet, timeStep);
             float consumption = calculateEnergy("cons", singleSubNet, timeStep);
-            float wastedEnergy = production - consumption;
+            // wasted energy is computed by sum, since consumption is a negative value
+            float wastedEnergy = production + consumption;
 
             float minConsumption = calculateMinimumEnergy(singleSubNet, timeStep);
             setFlowSimulation(singleSubNet);

+ 3 - 0
src/ui/view/AbstractCanvas.java

@@ -359,4 +359,7 @@ public abstract class AbstractCanvas extends JPanel {
 
         return on;
     }
+
+
+    abstract void drawDeleteEdge();
 }

+ 6 - 4
src/ui/view/MyCanvas.java

@@ -657,17 +657,20 @@ public class MyCanvas extends AbstractCanvas implements MouseListener, MouseMoti
     /**
      * Draws or Deletes an Edge.
      */
-    private void drawDeleteEdge() {
+    void drawDeleteEdge() {
         if (getMousePosition() != null) {
             boolean node = true;
             boolean newEdge = true;
             boolean onEdge = true;
             boolean deleteNode = false;
             CpsEdge e = null;
+
             for (AbstractCpsObject cps : model.getObjectsOnCanvas()) {
                 cx = cps.getPosition().x - controller.getScaleDiv2();
                 cy = cps.getPosition().y - controller.getScaleDiv2();
-                if (x - controller.getScale() <= cx && y - controller.getScale() <= cy && x >= cx && y >= cy
+                if (x - controller.getScale() <= cx
+                        && y - controller.getScale() <= cy
+                        && x >= cx && y >= cy
                         && cps != tempCps) {
                     node = false;
                     onEdge = false;
@@ -687,8 +690,7 @@ public class MyCanvas extends AbstractCanvas implements MouseListener, MouseMoti
                         if (e.getB().getClass() == CpsNode.class && e.getB().getConnections().isEmpty()) {
                             deleteNode = true;
                         }
-                    }
-                    if (newEdge) {
+                    } else {
                         e = new CpsEdge(cps, tempCps, model.getMaxCapacity());
                         controller.addEdgeOnCanvas(e);
                     }

+ 1 - 1
src/ui/view/UpperNodeCanvas.java

@@ -907,7 +907,7 @@ public class UpperNodeCanvas extends AbstractCanvas implements MouseListener, Mo
     /**
      * Draws or Deletes an Edge.
      */
-    private void drawDeleteEdge() {
+    void drawDeleteEdge() {
         boolean node = true; // new node?
         boolean newEdge = true;
         boolean onEdge = true;