mirror of
https://github.com/penpot/penpot.git
synced 2025-05-18 22:36:11 +02:00
✨ Improves selrect calculation
This commit is contained in:
parent
7b4603e33e
commit
c82d936e96
3 changed files with 100 additions and 47 deletions
|
@ -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)))
|
||||
|
|
|
@ -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]
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue