; Rakugaki.scm Ver1.0  Etigoya
; 「落描き君 Ver1.0」 
; 画像をランダムな色でランダムに描画します。。
; 苦労して作り上げた作品にこのスクリプトを適用すると、
; 心地よい脱力感を味わうことができます・・・。"

(define (script-fu-rakugaki image drawable randpoint brush)

(let* ((old-brush (car (gimp-context-get-brush)))
       (old-fg (car (gimp-context-get-foreground)))
       (width (car (gimp-drawable-width drawable)))
       (height (car (gimp-drawable-height drawable)))
       (point 4)
       (count 1)
       (random-color)
       (segment)
       (r 0)(g 0)(b 0)
       (xa 0)(ya 0))
       

   (gimp-image-undo-group-start image)
   (gimp-context-set-brush (car brush))
		
   (while (<= count randpoint)
      (set! r (rand 255))
      (set! g (rand 255))
      (set! b (rand 255))
      (set! random-color (list r g b))
      (gimp-context-set-foreground random-color)

      (set! segment (cons-array 4 'double))
      (set! xa (rand width))
      (set! ya (rand height))
      (aset segment 0 (* 1 xa))
      (aset segment 1 (* 1 ya))
      (aset segment 2 (* 1 xa))
      (aset segment 3 (* 1 ya))
      (gimp-paintbrush-default drawable point segment)
      (set! count (+ count 1)) )

   (gimp-context-set-foreground old-fg)
   (gimp-context-set-brush old-brush)	
   (gimp-image-undo-group-end image)
   (gimp-displays-flush) ))

(script-fu-register "script-fu-rakugaki"
_"Rakugaki..."
"画像をランダムな色でランダムに描画します"
                    "越後屋"
                    "越後屋"
                    "2005/03/11"
                    "RGB* GRAY*"
                    SF-IMAGE      "Image"       0
                    SF-DRAWABLE   "Drawable"    0
                    SF-ADJUSTMENT "落描き君 パワー"  '(30 1 1000 1 10 0 1)
                    SF-BRUSH      "Brush"            '("Galaxy, Big" 1.0 20 0) )

(script-fu-menu-register "script-fu-rakugaki"
_"<Image>/Script-Fu/Alchemy")
