X-Git-Url: https://gerrit.simantics.org/r/gitweb?a=blobdiff_plain;f=org.simantics.district.maps%2Fsrc%2Forg%2Fsimantics%2Fmaps%2FMapScalingTransform.java;h=7a47777dfec4cfe238e8f51267921494dce93f08;hb=b018055e3c5809d33161154aebdc47f733721cdb;hp=f64a99f43c108e5931c822b10deb4c4d8f4fa99e;hpb=36d6d10e40cf262fd59ec67351f8e5d966af0fb6;p=simantics%2Fdistrict.git diff --git a/org.simantics.district.maps/src/org/simantics/maps/MapScalingTransform.java b/org.simantics.district.maps/src/org/simantics/maps/MapScalingTransform.java index f64a99f4..7a47777d 100644 --- a/org.simantics.district.maps/src/org/simantics/maps/MapScalingTransform.java +++ b/org.simantics.district.maps/src/org/simantics/maps/MapScalingTransform.java @@ -6,8 +6,9 @@ public class MapScalingTransform { private MapScalingTransform() { } - - public static final AffineTransform INSTANCE = new AffineTransform(10000, 0, 0, 10000, 0, 0); + public static final double scale = 256.0d / 360.0d; + public static final AffineTransform INSTANCE = AffineTransform.getScaleInstance(scale, scale); + public static final AffineTransform INVERSE = AffineTransform.getScaleInstance(1/scale, 1/scale); public static double getScaleX() { return INSTANCE.getScaleX(); @@ -16,4 +17,15 @@ public class MapScalingTransform { public static double getScaleY() { return INSTANCE.getScaleY(); } + + public static int zoomLevel(AffineTransform current) { + double org = INSTANCE.getScaleX(); + double cur = current.getScaleX(); + double f = cur / org; + double zoomLevel = Math.log10(f) / Math.log10(2); + if (zoomLevel < 0) { + zoomLevel = 0; + } + return (int) zoomLevel; + } }