 
 : mouse-x ( -- x ) mouse first  ;
 : mouse-y ( -- y ) mouse second ;
+
+: draw ( point -- )
+    gl-scale-factor get-global [
+        stroke-color get fill-color set
+        >integer draw-circle
+    ] [
+        draw-point
+    ] if* ;
 
 GENERIC: collide ( particle -- )
 GENERIC: move    ( particle -- )


M: hadron move

  T{ gray f 1 0.11 } stroke-color set  dup pos>> 1 v-y draw-point
  T{ gray f 0 0.11 } stroke-color set  dup pos>> 1 v+y draw-point

  dup vel>> move-by


: axion-white ( dy -- dy ) dup 1 swap dy>alpha gray boa stroke-color set ;
: axion-black ( dy -- dy ) dup 0 swap dy>alpha gray boa stroke-color set ;

: axion-point- ( particle dy -- particle ) [ dup pos>> ] dip v-y draw ;
: axion-point+ ( particle dy -- particle ) [ dup pos>> ] dip v+y draw ;

M: axion move

  T{ gray f 0.06 0.59 } stroke-color set
  dup pos>> draw

  1 4 [a,b] [ axion-white axion-point- ] each
  1 4 [a,b] [ axion-black axion-point+ ] each
