From b2b57a8db9df9241acd4fc91cb940fea305ecd4b Mon Sep 17 00:00:00 2001 From: Chas Emerick Date: Wed, 4 May 2011 08:00:12 -0400 Subject: [PATCH] added isRunning function --- src/kernel.js | 24 ++++++++++++++++++------ src/physics/system.js | 3 +++ src/physics/worker.js | 2 +- 3 files changed, 22 insertions(+), 7 deletions(-) diff --git a/src/kernel.js b/src/kernel.js index 5455aaf..d848999 100644 --- a/src/kernel.js +++ b/src/kernel.js @@ -25,6 +25,7 @@ var _tickInterval = null var _lastTick = null var _paused = false + var _running = false var that = { system:pSystem, @@ -98,11 +99,15 @@ }, workerMsg:function(e){ - var type = e.data.type - if (type=='geometry'){ - that.workerUpdate(e.data) - }else{ - trace('physics:',e.data) + switch (e.data.type) { + case 'geometry': + that.workerUpdate(e.data) + break + case 'stopping': + _running = false + break + default: + trace('physics:',e.data) } }, _lastPositions:null, @@ -184,6 +189,7 @@ // trace('stopping') clearInterval(_tickInterval) _tickInterval = null + _running = false; }else{ // trace('pausing') } @@ -222,6 +228,8 @@ _tickInterval = setInterval(that.physicsUpdate, that.system.parameters().timeout) } + + _running = true }, stop:function(){ _paused = true @@ -233,7 +241,11 @@ _tickInterval = null } } - + + _running = false; + }, + isRunning:function() { + return _running; } } diff --git a/src/physics/system.js b/src/physics/system.js index a1877fb..52bd3d3 100644 --- a/src/physics/system.js +++ b/src/physics/system.js @@ -75,6 +75,9 @@ stop:function(){ state.kernel.stop() }, + isRunning:function(){ + return state.kernel.isRunning() + }, addNode:function(name, data){ // return that.newNode(name,data) diff --git a/src/physics/worker.js b/src/physics/worker.js index 0a5a2c8..a4d0652 100644 --- a/src/physics/worker.js +++ b/src/physics/worker.js @@ -70,7 +70,7 @@ var PhysicsWorker = function(){ if (_physicsInterval===null) return clearInterval(_physicsInterval); _physicsInterval = null; - // postMessage('stopping') + postMessage({type:'stopping'}) }, tick:function(){ // iterate the system