Дистанция¶
Содержание
- объект Дистанция; DistanceReactor¶
Производный от:
Reactor
Поддерживаемые интерфейсы:
reactor
distance
Дистанция позволяет измерять расстояние между различными объектами в сцене, например, между двумя метками. Объекты, между которыми рассчитывается расстояние, должны поддерживать интерфейс node.transform
.
Примечание
Расстояние имеет смысл измерять только когда оба объекта в поле зрения камеры. В противном случае рассчитанное расстояние неопределено.
Примечание
Все значения, касаемые расстояния, указываются в метрах, если явно не оговорено иное.

При своей работе дистанция вызывает различные события, соответствующие различным условиям на расстояние: Больше чем (onGreater), Меньше чем (onLess), Принадлежит отрезку (onInsideSegment) и т.п.
Дистанция¶
Вводится в Дистанция (DistanceReactor)
Параметр |
Описание |
---|---|
Первый объект для расчёта. |
|
Второй объект для расчёта. |
- параметр Первый объект; firstNodeReactor¶
Параметр позволяет выбрать первый объект для расчёта расстояния. Это может быть, например, система координат, метка, текст, модель и т.д.
- параметр Второй объект; secondNodeReactor¶
Аналогично параметру Первый объект (firstNodeReactor).
Расчет расстояния¶
- действие Рассчитать расстояние; updateState()¶
Единственное действие объекта. Рассчитывает расстояние между выбранными объектами. При каждом вызове возбуждаются все события, удовлетворяющие текущемму расстоянию. Подробнее, см. Анализ расстояния.
Анализ расстояния¶
Событие |
Описание |
---|---|
Возбуждается, когда расстояние равно заданному значению. |
|
Возбуждается, когда расстояние не равно заданному значению |
|
Возбуждается, когда расстояние больше заданного значения. |
|
Возбуждается, когда расстояние меньше заданного значения. |
|
Возбуждается, когда расстояние принадлежит заданному отрезку. |
|
Возбуждается, когда расстояние не принадлежит заданному отрезку. |
|
Возбуждается, когда расстояние становится больше заданного. |
|
Возбуждается, когда расстояние становится меньше заданного. |
Очень часто во время использования приложения с дополненной реальностью оптический трекинг работает в неидеальных условиях: может дрожать рука со смартфоном или веб камерой, меняться освещение, метки перемещаются по поверхности. Все это не позволяет рассчитывать расстояние в реальном времени со стопроцентной точностью. В связи c этим некоторые события имеют параметры для указания погрешности вычислений для более стабильной и плавной работы приложения.
- событие Равно; onEqual()¶
Возбуждается, когда расстояние равно заданному значению.
- Параметры
Значение / value – расстояние.
Погрешность / measurementError – погрешность (радиус окрестности указанного значения).
- событие Неравно; onNotEqual()¶
Возбуждается, когда расстояние не равно заданному значению
- Параметры
Значение / value – расстояние.
Погрешность / measurementError –
погрешность (радиус окрестности указанного значения).
События Равно (onEqual) и Неравно (onNotEqual) возбуждаются, если текущее расстояние находится в пределах от Значение - Погрешность
до Значение + Погрешность
. На рисунке эта область обозначена оранжевым штрихом.

- событие Больше чем; onGreater()¶
Возбуждается, когда расстояние больше заданного значения.
- Параметры
Значение / value – расстояние.
- событие Меньше чем; onLess()¶
Возбуждается, когда расстояние меньше заданного значения.
- Параметры
Значение / value – расстояние.
- событие Принадлежит отрезку; onInsideSegment()¶
Возбуждается, когда расстояние принадлежит заданному отрезку (включая его границы).
- Параметры
От / valueFrom – левая граница отрезка.
До / valueTo – правая граница отрезка.
Примечание
Если расстояние равно граничным значениям, событие возбуждается.
- событие Не принадлежит отрезку; onOutsideSegment()¶
Возбуждается, когда расстояние не принадлежит заданному отрезку.
- Параметры
От / valueFrom – левая граница отрезка.
До / valueTo – правая граница отрезка.
Примечание
Если расстояние равно граничным значениям, событие не возбуждается.
События Равно (onEqual), Неравно (onNotEqual), Больше чем (onGreater), Меньше чем (onLess), Принадлежит отрезку (onInsideSegment) и Не принадлежит отрезку (onOutsideSegment) возбуждаются при каждом вызове Рассчитать расстояние (updateState), если текущее расстояние удовлетворяет указанным в событиях параметрам. Например, в следующем сценарии событие Больше чем (onGreater) будет возбуждаться на каждом кадре (обычно, 60 раз в секунду!), если текущее расстояние будет больше 15 сантиметров:

- событие Объекты отдалились; onMovedAside()¶
Возбуждается, когда расстояние становится больше заданного.
- событие Объекты сблизились; onMovedCloser()¶
Возбуждается, когда расстояние становится меньше заданного.
События Объекты отдалились (onMovedAside) и Объекты сблизились (onMovedCloser) возбуждаются