AnchorWidget
Пространственный якорь, привязывающий экранный UI-виджет к мировым координатам с масштабированием от зума, настройкой pivot и отсечением вне экрана.
Обзор
AnchorWidget — пространственный контроллер для UI-виджета, закрепленного за точкой в мировых координатах внутри WorldCanvas.
Возможности:
- Позиционирование в мировых координатах (worldPosition, worldX, worldY).
- Экранные размеры независимо от зума (screenSize) или пропорциональное масштабирование (zoomScaling).
- Ограничения минимального и максимального размера для сохранения читаемости при экстремальном зуме.
- Настройка опорной точки (pivot), диапазона зума видимости (visibleZoomRange) и отсечения вне экрана (cullOutsideViewport).
Настройка свойств пространственного якоря
AnchorWidget anchor = canvas.anchorLayer().add("pin", 100, 200, new Button("Marker"))
.screenSize(64, 24)
.pivot(0.5f, 1.0f);
Связанные ссылки
- AnchorLayer: Слой управления экранными UI-виджетами, привязанными к мировым координатам внутри WorldCanvas.
- WorldCanvas: Холст бесконечного 2D/3D пространства с поддержкой панорамирования, зума камеры, преобразования координат, фоновых слоев и привязанных экранных виджетов.
API
AnchorWidget::arrangedVisible()
Возвращает true, если якорь видим после проверок зума, отсечения и компоновки.
Возвращает boolean: True, если активно, включено или успешно..
AnchorWidget::cullOutsideViewport()
Возвращает true, если якорь автоматически отсекается вне области просмотра холста.
Возвращает boolean: True, если активно, включено или успешно..
AnchorWidget::cullOutsideViewport(boolean)
Включает или отключает автоматическое отсечение якоря вне видимой области экрана.
| Параметр | Тип | Описание |
|---|---|---|
cullOutsideViewport |
boolean |
Отсекать ли этот якорь автоматически при выходе за пределы области просмотра. |
Возвращает AnchorWidget: Текущий экземпляр для цепочки вызовов..
AnchorWidget::id()
Возвращает уникальный идентификатор этого якоря в слое.
Возвращает String: Строковый идентификатор или текст..
AnchorWidget::maxScreenHeight()
Возвращает ограничение максимальной экранной высоты после зум-масштабирования.
Возвращает float: Координата или числовое значение с плавающей точкой..
AnchorWidget::maxScreenSize(float, float)
Устанавливает максимальные экранные размеры для предотвращения чрезмерного увеличения при приближении.
| Параметр | Тип | Описание |
|---|---|---|
width |
float |
Ширина. |
height |
float |
Высота. |
Возвращает AnchorWidget: Текущий экземпляр для цепочки вызовов..
AnchorWidget::maxScreenWidth()
Возвращает ограничение максимальной экранной ширины после зум-масштабирования.
Возвращает float: Координата или числовое значение с плавающей точкой..
AnchorWidget::maxVisibleZoom()
Возвращает верхний порог зума для видимости якоря.
Возвращает float: Координата или числовое значение с плавающей точкой..
AnchorWidget::minScreenHeight()
Возвращает ограничение минимальной экранной высоты после зум-масштабирования.
Возвращает float: Координата или числовое значение с плавающей точкой..
AnchorWidget::minScreenSize(float, float)
Устанавливает минимальные экранные размеры для предотвращения чрезмерного сжатия при отдалении.
| Параметр | Тип | Описание |
|---|---|---|
width |
float |
Ширина. |
height |
float |
Высота. |
Возвращает AnchorWidget: Текущий экземпляр для цепочки вызовов..
AnchorWidget::minScreenWidth()
Возвращает ограничение минимальной экранной ширины после зум-масштабирования.
Возвращает float: Координата или числовое значение с плавающей точкой..
AnchorWidget::minVisibleZoom()
Возвращает нижний порог зума для видимости якоря.
Возвращает float: Координата или числовое значение с плавающей точкой..
AnchorWidget::pivot(float, float)
Настраивает нормализованную точку привязки (pivot), совмещаемую с мировой позицией якоря.
| Параметр | Тип | Описание |
|---|---|---|
x |
float |
Горизонтальная координата X. |
y |
float |
Вертикальная координата Y. |
Возвращает AnchorWidget: Текущий экземпляр для цепочки вызовов..
AnchorWidget::pivotX()
Возвращает нормализованную горизонтальную координату pivot (0.0=слева, 0.5=центр, 1.0=справа).
Возвращает float: Координата или числовое значение с плавающей точкой..
AnchorWidget::pivotY()
Возвращает нормализованную вертикальную координату pivot (0.0=сверху, 0.5=центр, 1.0=снизу).
Возвращает float: Координата или числовое значение с плавающей точкой..
AnchorWidget::projectedRootX()
Возвращает последнюю рассчитанную экранную координату X точки привязки якоря.
Возвращает float: Координата или числовое значение с плавающей точкой..
AnchorWidget::projectedRootY()
Возвращает последнюю рассчитанную экранную координату Y точки привязки якоря.
Возвращает float: Координата или числовое значение с плавающей точкой..
AnchorWidget::referenceZoom()
Возвращает опорный коэффициент зума, при котором виджет отображается в базовом размере.
Возвращает float: Координата или числовое значение с плавающей точкой..
AnchorWidget::screenHeight()
Возвращает фиксированную экранную высоту в пикселях или -1 при использовании желаемого размера виджета.
Возвращает float: Координата или числовое значение с плавающей точкой..
AnchorWidget::screenSize(float, float)
Устанавливает фиксированные экранные размеры в пикселях интерфейса для этого якоря.
| Параметр | Тип | Описание |
|---|---|---|
width |
float |
Ширина. |
height |
float |
Высота. |
Возвращает AnchorWidget: Текущий экземпляр для цепочки вызовов..
AnchorWidget::screenWidth()
Возвращает фиксированную экранную ширину в пикселях или -1 при использовании желаемого размера виджета.
Возвращает float: Координата или числовое значение с плавающей точкой..
AnchorWidget::visible()
Возвращает флаг ручной видимости этого якоря.
Возвращает boolean: True, если активно, включено или успешно..
AnchorWidget::visible(boolean)
Вручную устанавливает состояние видимости этого якоря.
| Параметр | Тип | Описание |
|---|---|---|
visible |
boolean |
Флаг видимости. |
Возвращает AnchorWidget: Текущий экземпляр для цепочки вызовов..
AnchorWidget::visibleZoomRange(float, float)
Ограничивает видимость якоря заданным диапазоном зума области просмотра.
| Параметр | Тип | Описание |
|---|---|---|
minZoom |
float |
Минимально допустимый масштаб зума. |
maxZoom |
float |
Максимально допустимый масштаб зума. |
Возвращает AnchorWidget: Текущий экземпляр для цепочки вызовов..
AnchorWidget::widget()
Возвращает вложенный UI-виджет, позиционируемый этим якорем.
Возвращает Widget: Вложенный UI-виджет..
AnchorWidget::worldPosition(float, float)
Обновляет положение якоря в мировых координатах.
| Параметр | Тип | Описание |
|---|---|---|
x |
float |
Горизонтальная координата X. |
y |
float |
Вертикальная координата Y. |
Возвращает AnchorWidget: Текущий экземпляр для цепочки вызовов..
AnchorWidget::worldX()
Возвращает мировую координату X якоря.
Возвращает float: Координата или числовое значение с плавающей точкой..
AnchorWidget::worldY()
Возвращает мировую координату Y якоря.
Возвращает float: Координата или числовое значение с плавающей точкой..
AnchorWidget::zoomScaling()
Возвращает true, если размеры виджета масштабируются пропорционально зуму области просмотра.
Возвращает boolean: True, если активно, включено или успешно..
AnchorWidget::zoomScaling(boolean, float)
Настраивает динамическое масштабирование размеров виджета в зависимости от зума области просмотра.
| Параметр | Тип | Описание |
|---|---|---|
zoomScaling |
boolean |
True для динамического масштабирования размера виджета от зума. |
referenceZoom |
float |
Опорный коэффициент зума, при котором виджет имеет базовый экранный размер. |
Возвращает AnchorWidget: Текущий экземпляр для цепочки вызовов..