PedGoTo


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

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

Чтобы задать точный путь в блоке PedGoTo:

  1. Нарисуйте множество транзитов, которые пешеход должен пересечь на пути к заданной точке. Каждый транзит должен быть нарисован линией.
  2. Добавьте все транзиты в группу
  3. Укажите эту группу в параметре Дополнительные транзиты (группа линий, необязательный) блока PedGround, задающего текущий этаж пешеходов. 
  4. Соедините транзиты ломаной линией так, чтобы каждая точка ломаной лежала на транзите. Пешеходы начнут движение с транзита, на котором лежит первая точка ломаной, по направлению к транзиту, на котором лежит вторая точка, и т.д. 
  5. В свойствах объекта PedGoTo выберите Режим выбора пути Ручной(ломаная) и задайте ломаную линию, которая соединяет транзиты, в параметре Путь (ломаная).

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

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

Порты

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

Параметры

Цель (точка, линия) [динамический]
Фигура (линия или точка), задающая место назначения движения пешехода.
Синтаксис: Shape target
Локальная переменная: T ped - пешеход
Режим выбора пути
Режим выбора пути: Автоматический или Ручной (ломаная).
Синтаксис: int pathChoice
Значение по умолчанию: Автоматический (PedGoTo.PATH_CHOICE_AUTO)
Путь(ломаная) [динамический]
[Виден, если выбран Режим выбора пути Ручной (ломаная)] Ломаная линия, задающая путь. Ломаная соединяет транзиты, которые пешеход должен пересечь на пути к заданной точке. Узлы будут пройдены в порядке соединения с точками ломаной - транзит, на котором лежит первая точка ломаной, будет пройден первым, и т.д. 
Синтаксис: ShapePolyLine path
Локальная переменная: T ped - пешеход
Значение по умолчанию: null
Точность достижения цели, в метрах
Задает расстояние в метрах, на которое должен приблизиться пешеход к конечной точке, чтобы команда считалась завершенной. В случае линии или ломаной подразумевается расстояние до любой ее точки.
Синтаксис double targetReachTolerance
Значение по умолчанию 0.25
Действие при входе [динамический]
Код, который выполняется, когда пешеход заходит в блок.
Синтаксис void onEnter
Локальная переменная: T ped - пешеход
Действие при выходе [динамический]
Код, который выполняется, когда пешеход покидает блок через выходной порт out в случае успешного завершения команды.
Синтаксис void onExit
Локальная переменная: T ped - пешеход
Действие при отмене [динамический]
Код, который выполняется, когда пешеход покидает блок через выходной порт ccl.
Синтаксис void onCancel
Локальная переменная: T ped - пешеход
Таймаут определения блокировки, в секундах
Таймаут для определения блокирующих ситуаций. Блокирующей ситуацией называется такая ситуация, при которой пешеход сходит со своего пути по направлению к цели и не может достичь следующего транзита. Пешеходная библиотека через заданный таймут проверяет все блокирующие ситуации. В случае, если скорость некоторого пешехода в течение длительного времени существенно не меняется, и этот пешеход находится вблизи какой-либо стены, библиотека перевычисляет его путь заново, чтобы он смог восстановить движение по направлению к цели.  
Синтаксис double blockingDetectionTimeout
Значение по умолчанию3

Функции

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

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

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

void notifyTargetChange(Shape target) - Обновляет координаты точек назначения движения для всех пешеходов, чьи точки назначения равны указанной в параметре. Метод следует вызывать в том случае, если координаты точки назначения изменились (т.е. фигура была передвинута).

void forget(T ped) - Вызывает мгновенное уничтожение всей информации о заданном пешеходе.