Gate: * @param name the name of the gate * @param director the model/container for this gate * @param time the activation time for this gate * @param line the queue holding entities waiting for this gate to open * @param onTimeRV distribution of time that gate will be open * @param offTimeRV distribution of time that gate will be closed * @param shut0 whether the gate is initially closed (true) or open (false) * @param cap the maximum number of entities that will be released when the gate is opened * @param prop the properties of this gate * @param pos the position (Euclidean coordinates) of this gate */ class Gate (name: String, director: Model, time: Double, line: WaitQueue, onTimeRV: Variate, offTimeRV: Variate, shut0: Boolean = false, cap: Int = 15, prop: Property = null, pos: VectorD = null) Junction: * @param name the name of this junction * @param director the `Model` directing the simulation * @param jTimeRV the jump-time through the junction * @param prop the properties of this junction * @param pos the Euclidean coordinates of this junction */ class Junction (name: String, director: Model, jTimeRV: Variate, prop: Property = null, pos: VectorD = null) Resource: * @param name the name of this server * @param director the `Model` directing the simulation * @param serviceRV the service time random variate * @param units the number of service units (e.g., bank tellers) * @param prop the properties of this server * @param pos the Euclidean coordinates of this server */ class Resource (name: String, director: Model, serviceRV: Variate = null, private var units: Int, prop: Property = null, pos: VectorD = null) Sink: * @param name the name of this sink * @param director the director controlling the model * @param prop the properties of this sink * @param pos the position (Euclidean coordinate) of this sink */ class Sink (name: String, director: Model, prop: Property = null, pos: VectorD = null) Source: * @param name the name of this source * @param director the director controlling the model * @param time the activation time for this source * @param iArrivalRV the inter-arrival time distribution * @param makeEntity the function to make entities of a specified type * @param units the number of entities to make * @param subtype the subtype can be used for behavior specialization * @param prop the properties of this source * @param pos the position (Euclidean coordinates) of this source */ class Source (name: String, director: Model, time: Double, iArrivalRV: Variate, makeEntity: () => SimAgent, units: Int, subtype: Int = 0, prop: Property = null, pos: VectorD = null) * @param name the name of this wait-queue * @param director the `Model` directing the simulation * @param cap the capacity of the queue (defaults to unbounded) * @param prop the properties of this wait-queue * @param pos the Euclidean coordinates for this wait-queue */ class WaitQueue (name: String, director: Model, cap: Int = Int.MaxValue, prop: Property = null, pos: VectorD = null) * @param name the name of this wait-queue * @param director the `Model` directing the simulation * @param cap the capacity of the queue (defaults to unbounded) * @param prop the properties of this wait-queue * @param pos the Euclidean coordinates for this wait-queue */ class WaitQueue_LCFS (name: String, director: Model, cap: Int = Int.MaxValue, prop: Property = null, pos: VectorD = null) ============================================================================= Gate: * @param director the director controlling the model * @param time the activation time for these gates * @param onTimeRV distribution of time that gates will be open * @param offTimeRV distribution of time that gates will be closed * @param cap the maximum number of entities that will be released when the gate is opened * @param prop the properties of these gates * @param xy the (x, y) coordinates for the top-left corner of the reference gate. * @param gte repeated gate specific info: */ def group (director: Model, time: Double, onTimeRV: Variate, offTimeRV: Variate, cap: Int = 15, prop: Property = null, xy: (Double, Double), gte: (String, WaitQueue, (Double, Double))*): VEC [Gate] = Junction: * @param director the director controlling the model * @param jTimeRV the jump-time through the junctions * @param prop the properties of these junctions * @param xy the (x, y) coordinates for the top-left corner of the reference junction. * @param jnt repeated junction specific info: */ def group (director: Model, jTimeRV: Variate, prop: Property = null, xy: (Double, Double), jnt: (String, (Double, Double))*): VEC [Junction] = Resource: * @param director the `Model` directing the simulation * @param serviceRV the service time distribution * @param prop the properties of these servers * @param xy the (x, y) coordinates for the top-left corner of the reference resource. * @param rsc repeated resource specific info: */ def group (director: Model, serviceRV: Variate, prop: Property = null, xy: (Double, Double), rsc: (String, Int, (Double, Double))*): VEC [Resource] = Sink: * @param director the director controlling the model * @param prop the properties of these sinks * @param xy the (x, y) coordinates for the top-left corner of the reference sink. * @param snk repeated sink specific info: */ def group (director: Model, prop: Property = null, xy: (Double, Double), snk: (String, (Double, Double))*): VEC [Sink] = Source: * @param director the director controlling the model * @param time the activation time for these sources * @param makeEntity the function to make entities of a specified type * @param units the number of entities to make * @param prop the properties of these sources * @param xy the (x, y) coordinates for the top-left corner of the reference source. * @param src repeated source specific info: */ def group (director: Model,time: Double, makeEntity: () => SimAgent, units: Int, prop: Property = null, xy: (Double, Double), src: (String, Variate, Int, (Double, Double))*): VEC [Source] = WaitQueue: * @param director the `Model` directing the simulation * @param cap the capacity of these queues (defaults to unbounded) * @param prop the properties of these queues * @param xy the (x, y) coordinates for the top-left corner of the reference queue. * @param que repeated queue specific info: */ def group (director: Model, cap: Int = Int.MaxValue, prop: Property = null, xy: (Double, Double), que: (String, (Double, Double))*): VEC [WaitQueue] = * @param director the `Model` directing the simulation * @param cap the capacity of these queues (defaults to unbounded) * @param prop the properties of these queues * @param xy the (x, y) coordinates for the top-left corner of the reference queue. * @param que repeated queue specific info: */ def group (director: Model, cap: Int = 15, prop: Property = null, xy: (Double, Double), que: (String, (Double, Double))*): VEC [WaitQueue_LCFS] =