From 4de326869fc9632756f4000e1f831e1455cb7c7d Mon Sep 17 00:00:00 2001 From: Eduardo Cavazos Date: Mon, 1 Dec 2008 17:40:21 -0600 Subject: [PATCH] boids: Implement Slava's suggestion to have the system iteration happen outside of 'draw-gadget*' --- extra/boids/boids.factor | 19 +++++++++++-------- 1 file changed, 11 insertions(+), 8 deletions(-) diff --git a/extra/boids/boids.factor b/extra/boids/boids.factor index b0d5bda508..8319a2d8d9 100644 --- a/extra/boids/boids.factor +++ b/extra/boids/boids.factor @@ -25,7 +25,7 @@ USING: kernel ui.render multi-methods multi-method-syntax - combinators.short-circuit.smart + combinators.short-circuit processing.shapes flatland ; @@ -86,7 +86,7 @@ TUPLE: < { radius initial: 25 } ; [ BEHAVIOUR view-angle>> in-view? ] [ eq? not ] } - && ; + 2&& ; :: neighborhood ( SELF OTHERS BEHAVIOUR -- boids ) OTHERS [| OTHER | SELF OTHER BEHAVIOUR within-neighborhood? ] filter ; @@ -154,7 +154,7 @@ M: ungraft* ( -- ) t >>paused drop ; ! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! -M:: draw-gadget* ( BOIDS-GADGET -- ) +:: iterate-system ( BOIDS-GADGET -- ) [let | SKY [ BOIDS-GADGET gadget->sky ] BOIDS [ BOIDS-GADGET boids>> ] @@ -183,11 +183,14 @@ M:: draw-gadget* ( BOIDS-GADGET -- ) map - BOIDS-GADGET (>>boids) + BOIDS-GADGET (>>boids) ] ; - origin get - [ BOIDS-GADGET boids>> [ draw-boid ] each ] - with-translation ] ; +! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! + +M:: draw-gadget* ( BOIDS-GADGET -- ) + origin get + [ BOIDS-GADGET boids>> [ draw-boid ] each ] + with-translation ; ! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! @@ -197,7 +200,7 @@ M:: draw-gadget* ( BOIDS-GADGET -- ) [ GADGET paused>> [ f ] - [ GADGET relayout-1 25 milliseconds sleep t ] + [ GADGET iterate-system GADGET relayout-1 1 milliseconds sleep t ] if ] loop