X-Git-Url: https://mograsim.net/gitweb/?a=blobdiff_plain;f=net.mograsim.logic.ui%2Fsrc%2Fnet%2Fmograsim%2Flogic%2Fui%2Fmodel%2Fcomponents%2FSubmodelComponent.java;h=43ec22b02fb9c866f2e7fbbb4a9c7d9f8b0329d5;hb=efb72d6a77c6e8d71ad86c311f2c60c66219a468;hp=5e5d18a6e17daaad27c100185d3ecc0510d34b57;hpb=c1a8e2103a1a79039163ad2e414c0650f8cee3ea;p=Mograsim.git diff --git a/net.mograsim.logic.ui/src/net/mograsim/logic/ui/model/components/SubmodelComponent.java b/net.mograsim.logic.ui/src/net/mograsim/logic/ui/model/components/SubmodelComponent.java index 5e5d18a6..43ec22b0 100644 --- a/net.mograsim.logic.ui/src/net/mograsim/logic/ui/model/components/SubmodelComponent.java +++ b/net.mograsim.logic.ui/src/net/mograsim/logic/ui/model/components/SubmodelComponent.java @@ -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) {