X-Git-Url: https://mograsim.net/gitweb/?a=blobdiff_plain;f=plugins%2Fnet.mograsim.logic.model%2Fsrc%2Fnet%2Fmograsim%2Flogic%2Fmodel%2Fmodel%2Fcomponents%2Fsubmodels%2FSubmodelComponent.java;h=61c97b38c4fda089f2349ad2af4989e107182b85;hb=13577856cd85c46f2cd4ad956332697bc820f425;hp=9388e2fb09fdc7e51ba8370f1b2c76e5700397f3;hpb=58babf45ae7d259a296656451d796dbe601377a4;p=Mograsim.git diff --git a/plugins/net.mograsim.logic.model/src/net/mograsim/logic/model/model/components/submodels/SubmodelComponent.java b/plugins/net.mograsim.logic.model/src/net/mograsim/logic/model/model/components/submodels/SubmodelComponent.java index 9388e2fb..61c97b38 100644 --- a/plugins/net.mograsim.logic.model/src/net/mograsim/logic/model/model/components/submodels/SubmodelComponent.java +++ b/plugins/net.mograsim.logic.model/src/net/mograsim/logic/model/model/components/submodels/SubmodelComponent.java @@ -68,26 +68,14 @@ public abstract class SubmodelComponent extends ModelComponent * A pseudo-component containing all submodel interface pins on the submodel side. */ private final SubmodelInterface submodelInterface; - /** * The factor by which the submodel is scaled when rendering. */ private double submodelScale; - /** - * If this {@link SubmodelComponent} fills at least this amount of the visible region vertically or horizontally, the submodel starts to - * be visible. - */ - private double maxVisibleRegionFillRatioForAlpha0; - /** - * If this {@link SubmodelComponent} fills at least this amount of the visible region vertically or horizontally, the submodel is fully - * visible. - */ - private double minVisibleRegionFillRatioForAlpha1; /** * The renderer used for rendering the submodel. */ private final LogicUIRenderer renderer; - /** * The {@link Renderer} used to render the symbol of this SubmodelCoponent. */ @@ -118,8 +106,6 @@ public abstract class SubmodelComponent extends ModelComponent this.submodelInterface = new SubmodelInterface(submodelModifiable); this.submodelScale = 1; - this.maxVisibleRegionFillRatioForAlpha0 = 0.8; - this.minVisibleRegionFillRatioForAlpha1 = 0.9; this.renderer = new LogicUIRenderer(submodelModifiable); Consumer redrawHandlerChangedListener = submodelModifiable::setRedrawHandler; @@ -377,6 +363,16 @@ public abstract class SubmodelComponent extends ModelComponent GeneralGC tgc = new TranslatedGC(gc, getPosX(), getPosY(), submodelScale, true); conf.reset(tgc); double visibleRegionFillRatio = Math.max(getWidth() / visibleRegion.width, getHeight() / visibleRegion.height); + /** + * If this {@link SubmodelComponent} fills at least this amount of the visible region vertically or horizontally, the submodel + * starts to be visible. + */ + double maxVisibleRegionFillRatioForAlpha0 = Preferences.current().getDouble("net.mograsim.logic.model.submodel.zoomalpha0"); + /** + * If this {@link SubmodelComponent} fills at least this amount of the visible region vertically or horizontally, the submodel is + * fully visible. + */ + double minVisibleRegionFillRatioForAlpha1 = Preferences.current().getDouble("net.mograsim.logic.model.submodel.zoomalpha1"); double alphaFactor = map(visibleRegionFillRatio, maxVisibleRegionFillRatioForAlpha0, minVisibleRegionFillRatioForAlpha1, 0, 1); alphaFactor = Math.max(0, Math.min(1, alphaFactor)); // we need to take the old alpha into account to support nested submodules better. @@ -405,7 +401,7 @@ public abstract class SubmodelComponent extends ModelComponent * * @author Daniel Kirschten */ - protected void renderSymbol(GeneralGC gc, Rectangle visibleRegion) + private void renderSymbol(GeneralGC gc, Rectangle visibleRegion) { if (symbolRenderer != null) symbolRenderer.render(gc, visibleRegion); @@ -416,7 +412,7 @@ public abstract class SubmodelComponent extends ModelComponent * * @author Daniel Kirschten */ - protected void renderOutline(GeneralGC gc, Rectangle visibleRegion) + private void renderOutline(GeneralGC gc, Rectangle visibleRegion) { if (outlineRenderer != null) outlineRenderer.render(gc, visibleRegion);