Improves selrect calculation

This commit is contained in:
alonso.torres 2021-06-17 12:34:33 +02:00 committed by Andrés Moya
parent 7b4603e33e
commit c82d936e96
3 changed files with 100 additions and 47 deletions

View file

@ -51,22 +51,28 @@
(set! file (fb/close-group file)))
(createRect [self data]
(set! file (fb/create-rect file (parse-data data))))
(set! file (fb/create-rect file (parse-data data)))
(str (:last-id file)))
(createCircle [self data]
(set! file (fb/create-circle file (parse-data data))))
(set! file (fb/create-circle file (parse-data data)))
(str (:last-id file)))
(createPath [self data]
(set! file (fb/create-path file (parse-data data))))
(set! file (fb/create-path file (parse-data data)))
(str (:last-id file)))
(createText [self data]
(set! file (fb/create-text file (parse-data data))))
(set! file (fb/create-text file (parse-data data)))
(str (:last-id file)))
(createImage [self data]
(set! file (fb/create-image file (parse-data data))))
(set! file (fb/create-image file (parse-data data)))
(str (:last-id file)))
(createSVG [self data]
(set! file (fb/create-svg-raw file (parse-data data))))
(set! file (fb/create-svg-raw file (parse-data data)))
(str (:last-id file)))
(closeSVG [self]
(set! file (fb/close-svg-raw file)))

View file

@ -189,31 +189,10 @@
(defn parse-path
[props center svg-data]
(let [transform-inverse (:transform-inverse props (gmt/matrix))
transform (:transform props (gmt/matrix))
content (upp/parse-path (:d svg-data))
content-tr (gsh/transform-content
content
(gmt/transform-in center transform-inverse))
selrect (gsh/content->selrect content-tr)
points (-> (gsh/rect->points selrect)
(gsh/transform-points center transform))]
(let [content (upp/parse-path (:d svg-data))]
(-> props
(assoc :content content)
(assoc :selrect selrect)
(assoc :points points))))
(defn setup-selrect [props]
(let [data (select-keys props [:x :y :width :height])
transform (:transform props (gmt/matrix))
selrect (gsh/rect->selrect data)
points (gsh/rect->points data)
center (gsh/center-rect data)]
(assoc props
:selrect selrect
:points (gsh/transform-points points center transform))))
(assoc :center center))))
(def url-regex #"url\(#([^\)]*)\)")
@ -325,10 +304,7 @@
(parse-circle svg-data)
(= type :path)
(parse-path center svg-data)
(or (has-position? type) (= type :svg-raw) (= type :circle))
(setup-selrect))))
(parse-path center svg-data))))
(defn add-fill
[props node svg-data]