Made GUIMerger/GUISplitter bit order more intuitive (MSB on top)
authorDaniel Kirschten <daniel.kirschten@gmx.de>
Mon, 2 Sep 2019 10:20:08 +0000 (12:20 +0200)
committerDaniel Kirschten <daniel.kirschten@gmx.de>
Mon, 2 Sep 2019 10:20:48 +0000 (12:20 +0200)
net.mograsim.logic.model/src/net/mograsim/logic/model/model/components/atomic/GUIMerger.java
net.mograsim.logic.model/src/net/mograsim/logic/model/model/components/atomic/GUISplitter.java

index 656c91f..85cafec 100644 (file)
@@ -41,9 +41,9 @@ public class GUIMerger extends GUIComponent
        {
                super(model, name);
                this.logicWidth = logicWidth;
-               setSize(width, logicWidth * heightPerPin);
-               double inputHeight = 0;
-               for (int i = 0; i < logicWidth; i++, inputHeight += 10)
+               setSize(width, (logicWidth - 1) * heightPerPin);
+               double inputHeight = (logicWidth - 1) * heightPerPin;
+               for (int i = 0; i < logicWidth; i++, inputHeight -= 10)
                        addPin(new Pin(this, "I" + i, 1, PinUsage.TRISTATE, 0, inputHeight));
                addPin(this.outputPin = new Pin(this, "O", logicWidth, PinUsage.TRISTATE, width, (logicWidth - 1) * heightPerPin / 2));
                inputEnds = new ReadEnd[logicWidth];
index 63650a6..8fc4679 100644 (file)
@@ -41,10 +41,10 @@ public class GUISplitter extends GUIComponent
        {
                super(model, name);
                this.logicWidth = logicWidth;
-               setSize(width, logicWidth * heightPerPin);
+               setSize(width, (logicWidth - 1) * heightPerPin);
                addPin(this.inputPin = new Pin(this, "I", logicWidth, PinUsage.TRISTATE, 0, (logicWidth - 1) * heightPerPin / 2));
-               double outputHeight = 0;
-               for (int i = 0; i < logicWidth; i++, outputHeight += 10)
+               double outputHeight = (logicWidth - 1) * heightPerPin;
+               for (int i = 0; i < logicWidth; i++, outputHeight -= 10)
                        addPin(new Pin(this, "O" + i, 1, PinUsage.TRISTATE, width, outputHeight));
                outputEnds = new ReadEnd[logicWidth];
        }