PedCmdQueue


Команда для пешехода "пройти заданную очередь". Команда представляет одну физическую очередь. 

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

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

Параметры класса

Класс пешехода
Класс пешехода, проходящего сквозь объект. Он должен быть унаследован от класса Ped. Вы используете собственный класс для создания пешеходов, то рекомендуем Вам указать его здесь, чтобы иметь возможность явно обращаться к собственным полям этого класса в динамических параметрах. В противном случае собственные поля класса будут недоступны.
Синтаксис T extends Ped
Значение по умолчанию Ped

Порты

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

Параметры

Тип
Задает тип очереди. Возможные значения:
Линия, ломаная - линейная очередь, заданная с помощью линии или ломаной, указанной в параметре Фигура (линия, ломаная).
Область ожидания - очередь, заданная областью Область (PedArea), пешеходы ожидают внутри заданной области и покидают ее в порядке очереди.
Конкретные точки - пользователь должен индивидуально задать местоположение точки ожидания Позиция пешехода (точка) для каждого пешехода. 
Синтаксис int type
Значение по умолчанию: Линия, ломаная
Вместимость очереди
Вместимость очереди - максимальное количество пешеходов в очереди. Если пешеход попытается войти в переполненную очередь, то сразу же покинет блок через порт over.
Синтаксис: int capacity
Значение по умолчанию: Integer.MAX_VALUE
Фигура (линия, ломаная)
[Виден, если Тип установлен в Линия, ломаная] Задает фигуру для линейной очереди. Очередь начинается в первой точке фигуры.
СинтаксисShape queueShape
Пространство для пешехода, в метрах [динамический]
[Виден, если Тип установлен в Линия, ломаная] Пространство, выделенное под одного пешехода в линейной очереди, задается в метрах. Пространство можно задавать индивидуально для каждого пешехода. Значение по умолчанию соответствует диаметру пешехода + 30 см.
Синтаксисdouble spaceForOnePed
Локальная переменная: T ped - пешеход
Значение по умолчаниюдиаметр пешехода + 0.3
Область (PedArea)
[Виден, если Тип установлен в Область ожидания Объект PedArea задает область, в которой должен ожидать пешеход.
Синтаксис: PedArea areaShape
Позиция пешехода (точка)
[Виден, если Тип установлен в Конкретные точки] Фигура, задающая позицию пешехода в очереди (только в ручном режиме).
СинтаксисShape pedPosition
Локальные переменные: T ped - пешеход
                          int index - индекс, соответствующий позиции пешехода в очереди (0 соответствует началу очереди).
Приоритет пешехода [динамический]
Задает приоритет пешехода. Чем больше значение, тем выше приоритет.
Синтаксис int pedPriority
Локальная переменная: T ped - пешеход
Значение по умолчанию 0
Действие при входе [динамический]
Код, который выполняется, когда пешеход поступает в объект.
Синтаксис void onEnter
Локальная переменная: T ped - пешеход
Действие при выходе [динамический]
Код, который выполняется, когда пешеход покидает объект через порт out.
Синтаксис void onExit
Локальная переменная: T ped - пешеход
Действие при подходе к выходу [динамический]
Код, который выполняется, когда пешеход достигает начала очереди (то есть он будет обработан следующим).
Синтаксис void onAtExit
Локальная переменная: T ped - пешеход
Действие при отмене [динамический]
Код, который выполняется, когда пешеход покидает объект через порт ccl.
Синтаксис void onCancel
Локальная переменная: T ped - пешеход
Действие при выходе из-за превышения вместимости [динамический]
Код, который выполняется, когда вместимость очереди превышена и пешеход покидает объект через порт over.
Синтаксис void onExitCapacityExceeded
Локальная переменная: T ped - пешеход
Действие при изменении длины линейной очереди [динамический]
[Виден, если Тип установлен в Линия, ломаная] Код, выполняемый при изменении длины очереди и обновлении ее конечной точки. Этот код может уведомлять другие объекты об изменении очереди.
Синтаксис void onLineQueueChange
Локальная переменная: T lineQueueEnd - пешеход

Функции

void cancel(T ped) - Заставляет пешехода немедленно покинуть очередь через порт ccl. Для пешехода выполняется код параметра "Действие при отмене".

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

void take(T ped) - Передает заданного пешехода в очередь.

T fetch() - Метод извлекает следующего пешехода из очереди. Используется в порту, а также при программном управлении очередью.

void updateQueue() - Заставляет всех пешеходов перевычислить их позиции в очереди. Для линейной очереди вызывает исполнение кода параметра Действие при изменении длины линейной очереди.

int size() - Возвращает количество пешеходов, находящихся в этом объекте (как ожидающих, так и приближающихся). Чтобы получить число пешеходов, ожидающих в очереди, используйте метод sizeWaiting().

int sizeWaiting() - Возвращает число пешеходов, ожидающих в очереди.