! See http://factorcode.org/license.txt for BSD license.
USING: accessors arrays boids.simulation calendar classes colors
-kernel literals locals math math.functions math.trig models
-namespaces opengl opengl.demo-support opengl.gl sequences
+kernel literals math math.functions math.trig models
+models.range opengl opengl.demo-support opengl.gl sequences
threads ui ui.commands ui.gadgets ui.gadgets.borders
ui.gadgets.buttons ui.gadgets.frames ui.gadgets.grids
ui.gadgets.labeled ui.gadgets.labels ui.gadgets.packs
-ui.gadgets.sliders ui.gadgets.tracks ui.gadgets.worlds ui.render
-ui.tools.common ;
+ui.gadgets.sliders ui.render ui.tools.common ;
QUALIFIED-WITH: models.range mr
IN: boids
-TUPLE: boids-gadget < gadget paused boids behaviours dt ;
+TUPLE: boids-gadget < gadget paused boids behaviors dt ;
CONSTANT: initial-population 100
CONSTANT: initial-dt 5
-: initial-behaviours ( -- seq )
+: initial-behaviors ( -- seq )
1.0 75 -0.1 <cohesion>
1.0 40 -0.5 <alignment>
1.0 25 -1.0 <separation>
t >>clipped?
${ WIDTH HEIGHT } >>pref-dim
initial-population random-boids >>boids
- initial-behaviours >>behaviours
+ initial-behaviors >>behaviours
initial-dt >>dt ;
M: boids-gadget ungraft*
boids>> draw-boids ;
: iterate-system ( boids-gadget -- )
- dup [ boids>> ] [ behaviours>> ] [ dt>> ] tri
+ dup [ boids>> ] [ behaviors>> ] [ dt>> ] tri
simulate >>boids drop ;
:: start-boids-thread ( gadget -- )
boids-gadget simulation-panel
add-gadget
- boids-gadget behaviours>>
+ boids-gadget behaviors>>
[ behavior-panel add-gadget ] each
{ 5 5 } <border> add-gadget ;