0
Fork 0
mirror of https://github.com/penpot/penpot.git synced 2025-01-23 06:58:58 -05:00

this not fine

This commit is contained in:
Andrés Moya 2022-12-09 10:01:12 +01:00
parent a4916b8add
commit d145716e52

View file

@ -80,15 +80,15 @@
;shape-modif (-> modif-tree (:id main-shape) :modifiers) ;shape-modif (-> modif-tree (:id main-shape) :modifiers)
orig (fn [obj] (gpt/point (:x obj) (:y obj))) orig (fn [obj] (gpt/point (:x obj) (:y obj)))
get-displacement (fn [shape] ;; get-displacement (fn [shape]
;; Accumulate all :move modifiers of a shape ;; ;; Accumulate all :move modifiers of a shape
(let [modifiers (-> (get modif-tree (:id shape)) :modifiers)] ;; (let [modifiers (-> (get modif-tree (:id shape)) :modifiers)]
(reduce (fn [move modifier] ;; (reduce (fn [move modifier]
(if (= (:type modifier) :move) ;; (if (= (:type modifier) :move)
(gpt/add move (:vector modifier)) ;; (gpt/add move (:vector modifier))
move)) ;; move))
(gpt/point 0 0) ;; (gpt/point 0 0)
(:geometry-child modifiers)))) ;; (:geometry-child modifiers))))
;; Distance from main-root to copy-root ;; Distance from main-root to copy-root
root-delta (gpt/subtract (orig copy-root) (orig main-root)) root-delta (gpt/subtract (orig copy-root) (orig main-root))
@ -97,9 +97,9 @@
root-displacement (gpt/subtract (orig (:modif-selrect main-root)) root-displacement (gpt/subtract (orig (:modif-selrect main-root))
(orig (:selrect main-root))) (orig (:selrect main-root)))
;; Displacement to apply to the copy shape ;; ;; Displacement to apply to the copy shape
shape-displacement (gpt/subtract (get-displacement main-shape) ;; shape-displacement (gpt/subtract (get-displacement main-shape)
root-displacement) ;; root-displacement)
copy-rotation (fn [acc shape] copy-rotation (fn [acc shape]
(let [modifiers (-> (get modif-tree (:id shape)) :modifiers)] (let [modifiers (-> (get modif-tree (:id shape)) :modifiers)]
@ -114,14 +114,24 @@
acc)) acc))
acc acc
(:geometry-child modifiers)))) (:geometry-child modifiers))))
copy-move (fn [acc shape]
(let [modifiers (-> (get modif-tree (:id shape)) :modifiers)]
(reduce (fn [acc modifier]
(if (= (:type modifier) :move)
(let [vector (:vector modifier)]
(ctm/move acc (gpt/subtract vector root-displacement)))
acc))
acc
(:geometry-child modifiers))))
] ]
(debug/logjs "root-delta" root-delta)
(debug/logjs "root-displacement" root-displacement) (debug/logjs "root-displacement" root-displacement)
(debug/logjs "shape-displacement (antes)" (get-displacement main-shape))
(debug/logjs "shape-displacement" shape-displacement)
(-> (ctm/empty) (-> (ctm/empty)
;; (ctm/rotation center rotation) ;; (ctm/rotation center rotation)
(ctm/move shape-displacement) ;; (ctm/move shape-displacement)
(copy-rotation main-shape) (copy-rotation main-shape)
(copy-move main-shape)
(vary-meta assoc :copied-modifier? true)))) (vary-meta assoc :copied-modifier? true))))
;; $$ algoritmo tipo component sync (reposicionando la shape) ;; $$ algoritmo tipo component sync (reposicionando la shape)
@ -247,6 +257,7 @@
;; %% (assoc :rotation (:rotation (get-in modifiers [(:id main-shape-modif) :modifiers]))) ;; %% (assoc :rotation (:rotation (get-in modifiers [(:id main-shape-modif) :modifiers])))
;; %% ) ;; %% )
] ]
(debug/logjs "new modifiers" modifiers)
(if (seq modifiers) (if (seq modifiers)
(assoc-in modif-tree [(:id copy-shape) :modifiers] modifiers) (assoc-in modif-tree [(:id copy-shape) :modifiers] modifiers)
modif-tree))) modif-tree)))