diff --git a/common/src/app/common/geom/matrix.cljc b/common/src/app/common/geom/matrix.cljc index f891532a1..f83f5cca7 100644 --- a/common/src/app/common/geom/matrix.cljc +++ b/common/src/app/common/geom/matrix.cljc @@ -74,6 +74,15 @@ (mth/close? (.-e m1) (.-e m2)) (mth/close? (.-f m1) (.-f m2)))) +(defn unit? [m1] + (and (some? m1) + (mth/close? (.-a m1) 1) + (mth/close? (.-b m1) 0) + (mth/close? (.-c m1) 0) + (mth/close? (.-d m1) 1) + (mth/close? (.-e m1) 0) + (mth/close? (.-f m1) 0))) + (defn multiply ([^Matrix m1 ^Matrix m2] (let [m1a (.-a m1) diff --git a/frontend/src/app/main/data/workspace/transforms.cljs b/frontend/src/app/main/data/workspace/transforms.cljs index 09ec05e42..5a20b2946 100644 --- a/frontend/src/app/main/data/workspace/transforms.cljs +++ b/frontend/src/app/main/data/workspace/transforms.cljs @@ -282,9 +282,9 @@ (defn set-pixel-precision "Adjust modifiers so they adjust to the pixel grid" - [modifiers shape] + [{:keys [resize-transform] :as modifiers} shape] - (if (some? (:resize-transform modifiers)) + (if (and (some? resize-transform) (not (gmt/unit? resize-transform))) ;; If we're working with a rotation we don't handle pixel precision because ;; the transformation won't have the precision anyway modifiers