All checks were successful
Build and Deploy / build-and-deploy (push) Successful in 2m33s
Merges full history from art-dag/mono.git into the monorepo under the artdag/ directory. Contains: core (DAG engine), l1 (Celery rendering server), l2 (ActivityPub registry), common (shared templates/middleware), client (CLI), test (e2e). Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com> git-subtree-dir: artdag git-subtree-mainline:1a179de547git-subtree-split:4c2e716558
30 lines
1008 B
Common Lisp
30 lines
1008 B
Common Lisp
;; Tile Grid effect - tiles image in grid
|
|
(require-primitives "geometry" "image")
|
|
|
|
(define-effect tile_grid
|
|
:params (
|
|
(rows :type int :default 2 :range [1 10])
|
|
(cols :type int :default 2 :range [1 10])
|
|
(gap :type int :default 0 :range [0 50])
|
|
)
|
|
(let* ((w (image:width frame))
|
|
(h (image:height frame))
|
|
(tile-w (floor (/ (- w (* gap (- cols 1))) cols)))
|
|
(tile-h (floor (/ (- h (* gap (- rows 1))) rows)))
|
|
(tile (image:resize frame tile-w tile-h "area"))
|
|
(result (make-image w h (list 0 0 0))))
|
|
(begin
|
|
;; Manually place tiles using nested iteration
|
|
;; This is a simplified version - full version would loop
|
|
(paste result tile 0 0)
|
|
(if (> cols 1)
|
|
(paste result tile (+ tile-w gap) 0)
|
|
nil)
|
|
(if (> rows 1)
|
|
(paste result tile 0 (+ tile-h gap))
|
|
nil)
|
|
(if (and (> cols 1) (> rows 1))
|
|
(paste result tile (+ tile-w gap) (+ tile-h gap))
|
|
nil)
|
|
result)))
|