Implemented GUIAm2901QReg
[Mograsim.git] / net.mograsim.logic.ui / src / net / mograsim / logic / ui / model / components / SubmodelComponent.java
index 5e5d18a..43ec22b 100644 (file)
@@ -58,6 +58,11 @@ public abstract class SubmodelComponent extends GUIComponent
                requestRedraw();// needed if there is no submodel interface pin
        }
 
+       protected double getSubmodelScale()
+       {
+               return submodelScale;
+       }
+
        /**
         * Returns the submodel pin.
         */
@@ -148,21 +153,21 @@ public abstract class SubmodelComponent extends GUIComponent
                if (submodelAlpha != 0)
                {
                        gc.setAlpha(submodelAlpha);
-                       renderer.render(tgc, visibleRegion.translate(-posX, -posY, 1 / submodelScale));
+                       renderer.render(tgc, visibleRegion.translate(posX / submodelScale, posY / submodelScale, 1 / submodelScale));
                }
                if (labelAlpha != 0)
                {
                        gc.setAlpha(labelAlpha);
-                       renderSymbol(gc);
+                       renderSymbol(gc, visibleRegion);
                }
                conf.reset(gc);
                // draw the outline after all other operations to make interface pins look better
-               renderOutline(gc);
+               renderOutline(gc, visibleRegion);
        }
 
-       protected abstract void renderOutline(GeneralGC gc);
+       protected abstract void renderOutline(GeneralGC gc, Rectangle visibleRegion);
 
-       protected abstract void renderSymbol(GeneralGC gc);
+       protected abstract void renderSymbol(GeneralGC gc, Rectangle visibleRegion);
 
        private static double map(double val, double valMin, double valMax, double mapMin, double mapMax)
        {