PedWait

Заставляет пешеходов перейти в заданное место и ожидать там в течение определенного периода времени.

Задание места ожидания

Место ожидания может быть линией, точкой или областью. Область моделируется с помощью прямоугольного узла или многоугольного узла.

В последнем случае конкретная точка может быть выбрана случайно внутри заданной области или явно задано с помощью аттрактора (аттракторов). Аттракторы это места внутри узлов, которые притягивают пешеходов во время их ожидания. Используйте аттракторы для моделирования информационных стендов и экранов, витрин с товарами в магазинах и т.д.

Демо модель: Pedestrian Attractors

Задание времени ожидания

Пешеходы могут ожидать в течение заданного промежутка времени, отсчитанного относительно одного из следующих событий (достижения точки ожидания, входа в область, либо же время может быть задано вручную), или вечно, в таком случае прекращение ожидания осуществляется вручную путем вызова метода free().

Параметры

Место ожидания
Тип места ожидания:
Имя: locationType
Возможные значения:
Область [динамический]
[Виден, если Место ожидания: область] Здесь нужно выбрать элемент разметки Прямоугольный узел или Многоугольный узел, в котором пешеходы будут ожидать.
Тип значения: AreaNode
Локальная переменная: ped - пешеход
Использовать аттрактор
[Виден, если Место ожидания: Область] Здесь вы можете выбрать, к какому аттрактору пешеходы будут приходить для ожидания: случайному, свободному или заданному. Конкретный аттрактор задается ниже, в параметре Аттрактор.
Имя: attractorChoice
Возможные значения:
Аттрактор [динамический]
[Виден, если Место ожидания: Область и Использовать аттрактор: Заданный] Укажите здесь имя аттрактора – элемента, задающего точку, которая будет притягивать пешеходов на время их ожидания.
Тип значения: Attractor
Локальные переменные: ped - пешеход
AreaNode areaNode - область
Целевая линия [динамический]
[Виден, если Место ожидания: линия] Здесь нужно выбрать элемент разметки - целевую линию, в одной из точек которой пешеходы будут ожидать.
Тип значения: TargetLine
Локальная переменная: ped - пешеход
X, Y [динамический]
[Виден, если Место ожидания: точка (x,y)] X (Y) координата точки, в которой будут ожидать пешеходы.
Тип значения: double
Локальная переменная: ped - пешеход
Ожидание заканчивается
Задает, будут ли пешеходы ожидать в области в течение указанного времени (опция По истечении заданного времени) или же они будут ожидать, пока пользователь не вызовет метод free() (опция По вызову функции free()).
Имя: delayType
Возможные значения:
Время задержки [динамический]
[Виден, если Ожидание заканчивается: По истечении заданного времени] Выражение, вычисляющее время ожидания для пешехода.
Тип значения: double
Локальная переменная: ped - пешеход
Задержка начинается когда
[Виден, если выбран Ожидание заканчивается: По истечении заданного времени] Параметр задает, при каком событии будет начинаться время ожидания. Возможны следующие варианты: Имя: delayStartsWhen
Изменить значение: set_delayStartsWhen(новое значение)
Возможные значения:
Члены группы уходят вместе
[Виден, если Ожидание заканчивается: По истечении заданного времени] Если опция выбрана, то по завершении времени ожидания пешеход останется в области ожидания, пока все остальные члены его группы не освободятся, и вся группа целиком покинет блок. В противном случае пешеход покинет блок один. Вы можете инициировать выход из блока для пешехода в любом случае с помощью вызова функции free().
Имя: waitForGroup
Тип значения: boolean
Изменить значение: set_waitForGroup(новое значение)
Максимальная вместимость
Если опция выбрана, то вместимость блока будет максимальной, ограничений на вместимость не будет. Если же вам нужно ограничить вместимость блока, сбросьте этот флажок и задайте значение вместимости в расположенном ниже поле.
Имя: maximumCapacity
Тип значения: boolean
Изменить значение: set_maximumCapacity(новое значение)
Вместимость
[Виден, если не выбрана опция Максимальная вместимость] Вместимость очереди - максимальное количество пешеходов, которые могут единовременно ожидать, выполняя заданную этим блоком команду.
Имя: capacity
Тип значения: int
Изменить значение: set_capacity(новое значение)
Специфические
Точность достижения цели
Задает расстояние в метрах, на которое пешеход должен приблизиться к месту ожидания, чтобы ожидание началось. Если речь идет о группе, это свойство применимо только к лидеру группы.
Значение по умолчанию: 0.25 метров
Действия
При входе [код]
Код, который выполняется, когда пешеход поступает в блок.
Локальная переменная: ped - пешеход.
При начале ожидания [код]
Код, который выполняется, когда пешеход начинает ожидание.
Локальная переменная: ped - пешеход.
При подходе к выходу [код]
Код, который выполняется, когда пешеход решает, что он скорее всего покинет этот блок.
Локальная переменная: ped - пешеход.
При выходе [код]
Код, который выполняется, когда пешеход покидает блок через выходной порт out в случае успешного завершения команды.
Локальная переменная: ped - пешеход.
При отмене [код]
Код, который выполняется, когда пешеход покидает блок через выходной порт ccl (аварийный сценарий).
Локальная переменная: ped - пешеход.
При извлечении [код]
Код, выполняемый, когда пешеход умышленно извлекается из блока посредством вызова функции блока remove().
Локальная переменная: ped - пешеход.

Функции

void activate(Agent ped) - Начинает ожидание для заданного пешехода (в случае, если выбран режим Задержка начинается когда: Пользователь вызывает функцию activate()).

Attractor getRandomAttractor(AreaNode areaNode) - Возвращает один случайно выбранный аттрактор, находящийся внутри переданной в качестве аргумента области.

Attractor getFreeAttractor(AreaNode areaNode) - Возвращает один свободный аттрактор, находящийся внутри переданной в качестве аргумента области.

long countPeds() - Возвращает количество всех прошедших через блок пешеходов.

int size() - Возвращает количество пешеходов, находящихся внутри этого блока.

void free(Agent ped) - Прерывает выполнение команды для заданного пешехода и заставляет его покинуть блок через порт out. Для каждого пешехода, покидающего блок, вызывается код параметра Действие при выходе.

void freeAll() - Прерывает выполнение команды для всех пешеходов в блоке и заставляет их покинуть блок через порт out. Для каждого пешехода, покидающего блок, вызывается код параметра Действие при выходе.

void freeAllWaitingPeds() - Прерывает ожидание пешехода и заставляет его покинуть блок через порт out. Для каждого пешехода, покидающего блок, вызывается код параметра Действие при выходе. Если функция вызывается для участника пешеходной группы, ожидание будет прервано для всей группы целиком.

void cancel(Agent ped) - Прерывает команду для заданного пешехода и заставляет его покинуть блок через порт ccl. Для каждого пешехода, покидающего блок, вызывается код параметра Действие при отмене.

void cancelAll() - Прерывает выполнение команды для всех пешеходов и заставляет их покинуть блок через порт ccl. Для каждого пешехода, покидающего блок, вызывается код параметра Действие при отмене.

Set<Agent>getPeds() - Возвращает неизменяемую переменную типа коллекция, содержащую пешеходов, находящихся в этом блоке.

Agent remove(Agent agent) - Извлекает указанного агента из блока.

Порты

in
Входной порт.
out
Выходной порт, через который пешеходы покидают блок в случае успешного завершения команды.
ccl
Выходной порт, через который пешеходы покидают объект в случае события "отмены", которое возникло в результате вызова функции cancel() или функции cancelAll().