(FILECREATED "27-JUN-82 19:29:42" {PHYLUM}<LISPCORE>DEMO>RAIN.;5 5158   

      changes to:  (FNS RAINDEMO)

      previous date: "25-JUN-82 17:40:07" {PHYLUM}<LISPCORE>DEMO>RAIN.;4)


(* Copyright (c) 1982 by Xerox Corporation)

(PRETTYCOMPRINT RAINCOMS)

(RPAQQ RAINCOMS ((FNS BULL DRAWDROP DROPDROP RAINDEMO PUDDLE DNOTE DODNOTE DRAWBULL GETPT RANDPT)
		 (CURSORS DNOTE)
		 (VARS PUDDLE/PROPORTION (RAINWINDOW))))
(DEFINEQ

(BULL
  [LAMBDA NIL                                                (* rrb " 2-NOV-81 18:31")
    (PROG ((W (CREATEW NIL "Bull's Eye"))
	   DS)
          (SETQ DS (WINDOWPROP W (QUOTE DSP)))
      LP  (DRAWBULL (PROG1 (GETPT DS)
			   (AND (LASTMOUSESTATE BLUE)
				(RETURN)))
		    (EXPT 2 (RAND 0 3))
		    DS)
          (GO LP])

(DRAWDROP
  [LAMBDA (PT DS)                                            (* rrb " 2-NOV-81 18:25")
    (PROG (WIDTH STEP)
          (SETQ WIDTH (EXPT 2 (RAND 0 3)))
          (SETQ STEP (IQUOTIENT (ITIMES (ADD1 WIDTH)
					(RAND 2 7))
				2))
          (for I from 1 to (RAND 5 15) do (DRAWELLIPSE (fetch XCOORD of PT)
						       (fetch YCOORD of PT)
						       (FIX (FTIMES (ITIMES I STEP)
								    PUDDLE/PROPORTION))
						       (ITIMES I STEP)
						       0 WIDTH NIL DS])

(DROPDROP
  [LAMBDA NIL                                                (* rrb " 2-NOV-81 18:26")
    (PROG ((W (CREATEW NIL "Puddle"))
	   DS)
          (SETQ DS (WINDOWPROP W (QUOTE DSP)))
      LP  (DRAWDROP (PROG1 (GETPT DS)
			   (AND (LASTMOUSESTATE BLUE)
				(RETURN)))
		    DS)
          (GO LP])

(RAINDEMO
  [LAMBDA NIL                                                (* rrb "27-JUN-82 19:29")
                                                             (* draws circles in a window.)
    (PROG NIL
          [COND
	    ((TYPENAMEP RAINWINDOW (QUOTE WINDOW)))
	    (T (SETQ RAINWINDOW
		 (CREATEW (create REGION
				  LEFT ← 0
				  BOTTOM ← 0
				  WIDTH ← 500
				  HEIGHT ← 500)
			  "Puddle"]
          (CLEARW RAINWINDOW)
          (for I from 1 to 20 do (DRAWBULL (RANDPT (DSPCLIPPINGREGION NIL RAINWINDOW))
					   (RAND 1 6)
					   RAINWINDOW])

(PUDDLE
  [LAMBDA (W)                                                (* rrb "25-JUN-82 17:37")
    [OR W (SETQ W (COND
	    ((TYPENAMEP POLYGONSWINDOW (QUOTE WINDOW))
	      POLYGONSWINDOW)
	    (T (SETQ POLYGONSWINDOW (CREATEW NIL "puddle"]
    (CLEARW W)
    (do (DRAWBULL (GETPOSITION W)
		  5 W])

(DNOTE
  [LAMBDA (POS SCALE DS)                                     (* rrb " 2-NOV-81 18:43")
                                                             (* draws a note like figure at POS)
    (PROG [(X (fetch XCOORD of POS))
	   (Y (fetch YCOORD of POS))
	   [SIZE (FIX (FTIMES 50.0 (COND
				((NUMBERP SCALE)
				  SCALE)
				(T 1.0]
	   (DS (COND
		 ((TYPENAMEP DS (QUOTE DISPLAYSTREAM))
		   DS)
		 ((TYPENAMEP DS (QUOTE WINDOW))
		   (WINDOWPROP DS (QUOTE DSP)))
		 ((NULL DS)
		   (WINDOWPROP TOPW (QUOTE DSP)))
		 (T (ERROR DS "NOT A DISPLAYSTREAM."]
          (DRAWLINE X Y (IPLUS X SIZE)
		    Y 1 NIL DS)
          (RELDRAWTO 0 SIZE 1 NIL DS)
          (RELDRAWTO SIZE SIZE (IMAX (IQUOTIENT SIZE 5)
				     5)
		     NIL DS)
          (RELDRAWTO 0 (IMINUS SIZE)
		     1 NIL DS])

(DODNOTE
  [LAMBDA (W)                                                (* rrb " 2-NOV-81 18:43")
    (OR W (SETQ W TOPW))
    (PROG ((DNOTESIZE .3)
	   (DNOTEMODE (QUOTE PAINT)))
          (ADDMENU [SETQ SIZEMENU (BUTTONPANEL (QUOTE (.1 .3 .5 .7 .9 1.1 1.5]
		   NIL)
          (do (DNOTE (GETPT (WINDOWPROP W (QUOTE DSP))
			    DNOTE)
		     DNOTESIZE W])

(DRAWBULL
  [LAMBDA (PT WIDTH DS)                                      (* rrb "31-MAY-82 10:21")
    (PROG (STEP)
          (SETQ STEP (IQUOTIENT (ITIMES (ADD1 WIDTH)
					(RAND 3 5))
				2))
          (for I from 1 to (RAND 4 (ITIMES WIDTH 2)) do (DRAWCIRCLE (fetch XCOORD of PT)
								    (fetch YCOORD of PT)
								    (ITIMES I STEP)
								    WIDTH NIL DS)
							(BLOCK])

(GETPT
  [LAMBDA (DS CURSOR)                                        (* rrb " 5-OCT-81 16:42")
    (RESETFORM (CURSOR (COND
			 ((type? CURSOR CURSOR)
			   CURSOR)
			 (T CROSSHAIRS)))
	       (UNTILMOUSESTATE RED)
	       (UNTILMOUSESTATE (NOT RED))
	       (create POSITION
		       XCOORD ←(LASTMOUSEX DS)
		       YCOORD ←(LASTMOUSEY DS])

(RANDPT
  [LAMBDA (REGION)                                           (* rrb "28-SEP-81 18:49")
    (create POSITION
	    XCOORD ←(RAND (fetch LEFT of REGION)
			  (fetch RIGHT of REGION))
	    YCOORD ←(RAND (fetch BOTTOM of REGION)
			  (fetch TOP of REGION])
)
(RPAQ DNOTE (CURSORCREATE (READBITMAP) 0 0))
(16 16
"@@@@"
"@@B@"
"@@F@"
"@@N@"
"@AN@"
"@CN@"
"@GN@"
"@GJ@"
"@GB@"
"@FB@"
"@DB@"
"@D@@"
"@D@@"
"@D@@"
"@D@@"
"OL@@")
(RPAQQ PUDDLE/PROPORTION .5)

(RPAQQ RAINWINDOW NIL)
(DECLARE: DONTCOPY (PUTPROPS RAIN COPYRIGHT ("Xerox Corporation" 1982)))
(DECLARE: DONTCOPY
  (FILEMAP (NIL (425 4837 (BULL 435 . 781) (DRAWDROP 783 . 1306) (DROPDROP 1308 . 1628) (RAINDEMO 1630
 . 2227) (PUDDLE 2229 . 2545) (DNOTE 2547 . 3367) (DODNOTE 3369 . 3745) (DRAWBULL 3747 . 4170) (GETPT 
4172 . 4530) (RANDPT 4532 . 4835)))))
STOP