diff --git a/index.html b/index.html index 149178f36c83f36f1d590fc08b9ca048504a7797..1278abba7b8c39e711b1d47f0a74b2d875e6d1f5 100755 --- a/index.html +++ b/index.html @@ -536,7 +536,8 @@ </div><br/> <b>Animation Settings:</b><br/> <div class="indent"> - <span class="smallTxt">Δ t = <span id="deltaT"></span> seconds</span><br/><br/> + <span class="smallTxt">Δ t = <span id="deltaT"></span> seconds</span><br/> + <span class="smallTxt">Num steps per render: <input id="numStepsPerRender" value="" placeholder="" class="int form-control" type="text"></span><br/><br/> <a href="#" id="shouldCenterGeo" class="floatRight btn btn-lg btn-default">Re-center geometry</a> </div> <div class="extraSpace"></div> diff --git a/js/controls.js b/js/controls.js index 1655539d1884411dbf467f1596a68e90f9c4967f..9e7336b19049efa7000710724fa4d83f432736a7 100755 --- a/js/controls.js +++ b/js/controls.js @@ -275,6 +275,10 @@ function initControls(globals){ globals.shouldCenterGeo = true; }); + setInput("#numStepsPerRender", globals.numSteps, function(val){ + globals.numSteps = val; + }, 1); + function setButtonGroup(id, callback){ $(id+" a").click(function(e){ e.preventDefault(); diff --git a/js/dynamic/dynamicSolver.js b/js/dynamic/dynamicSolver.js index be9460ad84996a156b2ec5c30662aa92b79697e3..e4d292961704dc530d1fd06c9c8d50ec96d03f25 100755 --- a/js/dynamic/dynamicSolver.js +++ b/js/dynamic/dynamicSolver.js @@ -44,10 +44,9 @@ function initDynamicSolver(globals){ initTypedArrays(); initTexturesAndPrograms(globals.gpuMath); - steps = parseInt(setSolveParams()); + setSolveParams(); } - var steps; var programsInited = false;//flag for initial setup var textureDim = 0; @@ -111,7 +110,7 @@ function initDynamicSolver(globals){ } } - if (_numSteps == undefined) _numSteps = steps; + if (_numSteps == undefined) _numSteps = globals.numSteps; for (var j=0;j<_numSteps;j++){ solveStep(); } @@ -229,7 +228,6 @@ function initDynamicSolver(globals){ function setSolveParams(){ var dt = calcDt()/2;//todo factor of ten? $("#deltaT").html(dt); - var numSteps = 0.5/dt; globals.gpuMath.setProgram("thetaCalc"); globals.gpuMath.setUniformForProgram("thetaCalc", "u_dt", dt, "1f"); globals.gpuMath.setProgram("velocityCalc"); @@ -237,7 +235,6 @@ function initDynamicSolver(globals){ globals.gpuMath.setProgram("positionCalc"); globals.gpuMath.setUniformForProgram("positionCalc", "u_dt", dt, "1f"); globals.controls.setDeltaT(dt); - return numSteps; } function calcDt(){ diff --git a/js/globals.js b/js/globals.js index 8293b6bcfb8bb51b03e96d20d9f2fcbf0521fc01..64a37ecab80632a154220728ebcc6059109a0fcb 100755 --- a/js/globals.js +++ b/js/globals.js @@ -67,7 +67,9 @@ function initGlobals(){ pausedForPatternView: false, userInteractionEnabled: false, - vrEnabled: false + vrEnabled: false, + + numSteps: 100 };