/** * Enables the steps per display variable in the control; * * @param enable boolean */ public void enableStepsPerDisplay(boolean enable) { showStepsPerDisplay = enable; if (showStepsPerDisplay) { control.setAdjustableValue("steps per display", stepsPerDisplay); } else { control.removeParameter("steps per display"); } }
/** * Invokes the simulation's start method and then starts the animation thread. Simulations should * not override this method. Override the start method to perform custom actions just before a * thread starts. * * @deprecated */ public void startAnimation() { if (showStepsPerDisplay) { stepsPerDisplay = control.getInt("steps per display"); } start(); startRunning(); super.startAnimation(); }
/** * Steps the simulation. * * <p>This method is final in order to insure that all AbsractSimulations invoke startRunning(), * doStep(), stepCounter++ and stopRunning() in the correct order. */ public final void stepAnimation() { if (showStepsPerDisplay) { stepsPerDisplay = control.getInt("steps per display"); } startRunning(); super.stepAnimation(); stepCounter++; stopRunning(); org.opensourcephysics.display.GUIUtils.repaintAnimatedFrames(); }
/** * Resets the animation to its default condition. Simulations should invoke the reset method. * * @deprecated */ public void resetAnimation() { if (control == null) { return; // control can be null in applet mode so check for this } super.resetAnimation(); stepsPerDisplay = 1; if (showStepsPerDisplay) { control.setAdjustableValue("steps per display", stepsPerDisplay); } reset(); }
/** * Sets the number of animation steps before animated drawing panels are rendered. * * <p>The default steps per animation is 1. Increase this number if frequent rendering causes * slugish behavior. * * @param num int */ public void setStepsPerDisplay(int num) { stepsPerDisplay = Math.max(num, 1); if (showStepsPerDisplay) { control.setAdjustableValue("steps per display", stepsPerDisplay); } }