Объект RouteData содержит информацию о маршруте транспортера в виде списка задач по движению. Задачи выполняются последовательно в том порядке, в котором они перечислены. Каждая задача описывает движение транспортера по одному сегменту маршрута. Сегмент заканчивается, когда меняется тип движения. Существуют следующие типы движения:
- PATH — движение по сетевому пути
-
PLAIN — движение внутри узла сети (в том числе движение между точечным узлом и путем)
Тип движения PLAIN также описывает движение транспортера с произвольным типом навигации внутри ячейки навигационной сетки.
- PORT — движение между двумя сетевыми портами
Для работы с объектом RouteData можно использовать следующие функции:
- Общие
-
Функция Описание boolean isEmpty() Возвращает true, если объект RouteData содержит какую-либо информацию о маршруте транспортера. В противном случае возвращает false. int size() Возвращает количество задач на движение в объекте RouteData. RouteData findShortestRoute(Collection<RouteData> collection, LengthUnits units) Возвращает кратчайший маршрут из коллекции объектов RouteDataв указанных единицах длины.
collection — коллекция объектов RouteData
units — константа, задающая единицу измерения длины - Информация о маршруте
-
Функция Описание IRouteLocation getSourceLocation() Возвращает начальную точку маршрута, описанного в объекте RouteData. IRouteLocation getTargetLocation() Возвращает конечную точку маршрута, описанного в объекте RouteData. double distance(LengthUnits units) Возвращает длину маршрута, описанного в объекте RouteData, в заданных единицах длины.
units — константа, задающая единицу измерения длиныboolean contains(INode node) Проверяет, содержит ли маршрут, описанный в объекте RouteData, указанный узел сети.
node — узел сетиboolean contains(IPath path) Проверяет, содержит ли маршрут, описанный в объекте RouteData, указанный сетевой путь.
path — сетевой путь - Информация о задачах по движению
-
Функция Описание IMovement getMovement(int index) Возвращает задачу по движению с указанным индексом из списка задач в объекте RouteData.
index — индекс задачи по движению из списка задач в объекте RouteDataIMovement getFirstMovement() Возвращает первую задачу по движению из списка задач в объекте RouteData. Если объект RouteData не содержит информации о маршруте, функция возвращает null. IMovement getLastMovement() Возвращает последнюю задачу по движению из списка задач в объекте RouteData. Если объект RouteData не содержит информации о маршруте, функция возвращает null. List<IMovement> getMovements() Возвращает список всех задач по движению из объекта RouteData. Возвращаемый список нельзя модифицировать. - Создание задач по движению
-
Функция Описание IMovement createPlainMovement(INetworkMarkupElement networkElement, Point source, Point target) Создает задачу по движению типа PLAINв пределах одного сетевого узла.
networkElement — сетевой узел, где должно произойти движение
source — точка начала движения в узле (задается в абсолютной системе координат)
target — точка завершения движения в узле (задается в абсолютной системе координат)IMovement createPathMovement(IPath path, boolean forward) Создает задачу по движению типа PATHв пределах одного сетевого пути в указанном направлении.
path — сетевой путь, где должно произойти движение
forward — если true, движение начинается с начальной точки пути; если false — с конечной точки путиIMovement createPathMovement(IPath path, double sourceOffset, double targetOffset, LengthUnits units) Создает задачу по движению типа PATH. Движение происходит в пределах одного сетевого пути, начинается со смещением от начальной точки пути и завершается со смещением от начальной точки пути. Смещение задается в указанных единицах длины.
path — сетевой путь, где должно произойти движение
sourceOffset — расстояние от начальной точки пути до точки начала движения
targetOffset — расстояние от начальной точки пути до точки завершения движения
units — константа, задающая единицу измерения длиныIMovement createPortMovement(MarkupPort source, MarkupPort target) Создает задачу по движению типа PORT между двумя указанными сетевыми портами.
source — сетевой порт, где должно начаться движение
target — сетевой порт, где должно завершиться движениеIMovement createNodeTransferMovement(INode node, IPath sourcePath, IPath targetPath) Создает задачу по движению типа PATH или PLAIN между двумя указанными сетевыми путями в пределах указанного сетевого узла. В случае прямоугольного или многоугольного узла это будет движение типа PLAIN, а в случае точечного узла, это будет движение типа PATH.
node — сетевой узел, где должно произойти движение
sourcePath — сетевой путь, где должно начаться движение
targetPath — сетевой путь, где должно завершиться движение - Добавление задач по движению
-
Функция Описание addMovement(IMovement movement) Добавляет указанную задачу по движению в объект RouteData. Эта задача помещается в конец существующего списка задач.
movement — задача по движениюaddMovement(int index, IMovement movement) Добавляет указанную задачу по движению в объект RouteData и помещает ее в существующий список задач с указанным индексом.
index — индекс, с которым новая задача должна быть помещена в существующий список задач
movement — задача по движениюaddMovements(IMovement... movements) Добавляет разрозненные задачи по движению в объект RouteDataв порядке перечисления этих движений в виде аргументов. Эти задачи помещаются в конец существующего списка.
movements — задача по движениюaddMovements(Collection <? extends IMovement> movements) Добавляет коллекцию задач по движению в объект RouteData в порядке расположения этих движений в коллекции. Эти задачи помещаются в конец существующего списка.
movements — коллекция задач по движениюaddPlainMovement(INetworkMarkupElement networkElement, Point source, Point target) Добавляет в объект RouteData задачу по движению типа PLAIN в пределах одного сетевого узла.
networkElement — сетевой узел, где должно произойти движение
source — точка начала движения в узле (задается в абсолютной системе координат)
target — точка завершения движения в узле (задается в абсолютной системе координат)addPathMovement(IPath path, boolean isForward) Добавляет в объект RouteData задачу по движению типа PATH в пределах одного сетевого пути в указанном направлении. Задача помещается в конец существующего списка.
path — сетевой путь, где должно происходить движение
forward — если true, движение начинается в начальной точке пути; если false — в конечной точке путиaddPathMovement(IPath path, double sourceOffset, double targetOffset, LengthUnits units) Добавляет в объект RouteData задачу по движению типа PATH. Движение происходит в пределах одного сетевого пути, начинается с заданным смещением от начальной точки пути и завершается с заданным смещением от начальной точки пути. Смещение рассчитывается в указанных единицах длины. Задача помещается в конец существующего списка.
path — сетевой путь, где должно происходить движение
sourceOffset — расстояние от начальной точки пути до точки начала движения
targetOffset — расстояние от начальной точки пути до точки завершения движения
units — константа, задающая единицу измерения длиныaddNodeTransferMovement(INode node, IPath sourcePath, IPath targetPath) Добавляет в объект RouteData задачу по движению типа PATH или PLAIN с одного заданного пути на другой в пределах указанного сетевого узла. В случае прямоугольного или многоугольного узла, это будет движение типа PLAIN, а в случае точечного узла, это будет движение типа PATH.
node — сетевой узел, где должно происходить движение
sourcePath — сетевой путь, где должно начинаться движение
targetPath — сетевой путь, где должно завершаться движениеaddPortMovement(MarkupPort source, MarkupPort target) Добавляет в объект RouteData движение типа PORT между двумя сетевыми портами.
source — сетевой порт, где должно начинаться движение
target — сетевой порт, где должно завершаться движение - Удаление задач по движению
-
Функция Описание boolean removeMovement(IMovement movement) Удаляет указанную задачу по движению из объекта RouteData. Если функция возвращает true, задача была найдена в списке задач и успешно удалена. Если функция возвращает false, задача не была найдена в списке.
movement — задача по движениюremoveMovement(int index) Удаляет задачу по движению с указанным индексом из списка задач в объекте RouteData.
index — индекс задачи по движениюremoveFirstMovement() Удаляет первую задачу по движению из списка задач в объекте RouteData. removeLastMovement() Удаляет последнюю задачу по движению из списка задач в объекте RouteData.
-
Как мы можем улучшить эту статью?
-