major optimization updates
[debian/openrocket] / src / net / sf / openrocket / simulation / RK4SimulationStepper.java
index 99fd475e9197ccd1c04704b2269b446a2645bbbb..8d5e27dbf94264479d1d27bea78074e420a57e0a 100644 (file)
@@ -21,6 +21,9 @@ public class RK4SimulationStepper extends AbstractSimulationStepper {
        
        private static final LogHelper log = Application.getLogger();
        
+       /** Random value with which to XOR the random seed value */
+       private static final int SEED_RANDOMIZATION = 0x23E3A01F;
+       
 
        /**
         * A recommended reasonably accurate time step.
@@ -50,8 +53,7 @@ public class RK4SimulationStepper extends AbstractSimulationStepper {
        private static final double MIN_TIME_STEP = 0.001;
        
 
-       // TODO: HIGH: Randomness source from simulation
-       private final Random random = new Random();
+       private Random random;
        
        
 
@@ -59,8 +61,6 @@ public class RK4SimulationStepper extends AbstractSimulationStepper {
        @Override
        public RK4SimulationStatus initialize(SimulationStatus original) {
                
-               log.info("Performing RK4SimulationStepper initialization");
-               
                RK4SimulationStatus status = new RK4SimulationStatus();
                
                status.copyFrom(original);
@@ -72,6 +72,8 @@ public class RK4SimulationStepper extends AbstractSimulationStepper {
                                Math.cos(sim.getLaunchRodAngle())
                                ));
                
+               this.random = new Random(original.getSimulationConditions().getRandomSeed() ^ SEED_RANDOMIZATION);
+               
                return status;
        }