/// <summary> /// Randomizes the emulation by changing speed and direction /// </summary> /// <param name="seed"> The randomizer to use. </param> /// <param name="speedLow"> The minimum travel speed. </param> /// <param name="speedHigh"> The maximum travel speed. </param> /// <param name="bearingStart"> The initial direction of travel. </param> /// <param name="bearingArc"> The arc in which random directional changes will occur. </param> /// <remarks> /// GPS coordinate emulation can be randomized by any number of factors, depending on the emulator type used. /// Any emulation can have it's direction and speed randomized within specified tolerances. By default, speed is /// limited to between 0 (low) and 5 (high) meters/second and bearing changes are limited to +/- 45 degrees /// (a 90 degree arc) from North (0) degrees. /// </remarks> public void Randomize(Random seed, Speed speedLow, Speed speedHigh, Azimuth bearingStart, Azimuth bearingArc) { // Flag it so the emulation will use random values _isRandom = true; // Get the randomizer parameters _seed = seed; // Get the speed variance _speedLow = speedLow.ToMetersPerSecond().Value; _speedHigh = speedHigh.ToMetersPerSecond().Value; // Get the normalized arc values _bearingStart = bearingStart.Normalize().DecimalDegrees; _bearingArc = bearingArc.Normalize().DecimalDegrees; }