changeset 89:54f6e6d196c3

Make the transform functions public.
author Mikhail Kryshen <mikhail@kryshen.net>
date Mon, 22 Nov 2010 16:02:27 +0300
parents 18abc7d66d49
children dd7b8dbb20bc
files src/net/kryshen/indyvon/core.clj
diffstat 1 files changed, 10 insertions(+), 10 deletions(-) [+]
line diff
     1.1 --- a/src/net/kryshen/indyvon/core.clj	Wed Oct 06 18:45:51 2010 +0400
     1.2 +++ b/src/net/kryshen/indyvon/core.clj	Mon Nov 22 16:02:27 2010 +0300
     1.3 @@ -197,21 +197,26 @@
     1.4  ;; Rendering
     1.5  ;;
     1.6  
     1.7 -(defn- relative-transform
     1.8 -  "AffineTransform: layer context -> awt component."
     1.9 +(defn relative-transform
    1.10 +  "Returns AffineTransform: layer context -> AWT component."
    1.11    []
    1.12    (let [tr (.getTransform *graphics*)]
    1.13      (.preConcatenate tr *inverse-initial-transform*)
    1.14      tr))
    1.15  
    1.16 -(defn- inverse-relative-transform
    1.17 -  "AffineTransform: awt component -> layer context."
    1.18 +(defn inverse-relative-transform
    1.19 +  "Returns AffineTransform: AWT component -> layer context."
    1.20    []
    1.21    (let [tr (.getTransform *graphics*)]
    1.22      (.invert tr)                          ; absolute -> layer
    1.23      (.concatenate tr *initial-transform*) ; component -> absolute
    1.24      tr))
    1.25  
    1.26 +(defn transform-point [^AffineTransform tr x y]
    1.27 +  (let [p (Point2D$Double. x y)]
    1.28 +    (.transform tr p p)
    1.29 +    [(.x p) (.y p)]))
    1.30 +
    1.31  ;; (defn- clip
    1.32  ;;   "Intersect clipping area with the specified shape or bounds.
    1.33  ;;    Returns new clip (Shape or nil if empty)."
    1.34 @@ -471,14 +476,9 @@
    1.35  (defn- remove-all [coll1 coll2 pred]
    1.36    (filter #(not (some (partial pred %) coll2)) coll1))
    1.37  
    1.38 -(defn- transform [^AffineTransform tr x y]
    1.39 -  (let [p (Point2D$Double. x y)]
    1.40 -    (.transform tr p p)
    1.41 -    [(.x p) (.y p)]))
    1.42 -
    1.43  (defn- translate-mouse-event [^java.awt.event.MouseEvent event
    1.44                                ^AffineTransform tr id]
    1.45 -  (let [[x y] (transform tr (.getX event) (.getY event))]
    1.46 +  (let [[x y] (transform-point tr (.getX event) (.getY event))]
    1.47      (MouseEvent. id (.getWhen event) x y
    1.48                   (.getXOnScreen event) (.getYOnScreen event)
    1.49                   (.getButton event))))