/// <summary> /// Constructor /// </summary> /// <param name="emitter">Parent emitter of the event</param> public GenericEvent(EventEmitter emitter) { Emitter = emitter; // calculate time jitter double timeJitter = 0; if(emitter.Distribution != null) { // allow user to wobble in both directions if(emitter.Distribution is MN.Normal) timeJitter = emitter.Distribution.Sample() - emitter.Distribution.Sample(); else timeJitter = emitter.Distribution.Sample(); } var distance = emitter.Step + timeJitter; if (distance < 0) throw new ArgumentOutOfRangeException("Event cannot be created with negative time offset!"); Time = Simulation.GetTime() + emitter.Step + timeJitter; }
/// <summary> /// Create a new event from the emitter and put it into the queue /// </summary> /// <param name="emitter"></param> public static void RegisterEmitter(EventEmitter emitter) { RegisterEvent(emitter.Emit()); }