WorldCanvas
Холст бесконечного 2D/3D пространства с поддержкой панорамирования, зума камеры, преобразования координат, фоновых слоев и привязанных экранных виджетов.
Обзор
WorldCanvas — холст бесконечного 2D/3D пространства с камерой, проецирующий мировые координаты в экранные пиксели интерфейса.
Ключевые возможности:
- Интерактивное панорамирование и масштабирование перетаскиванием мыши и колесиком (panningEnabled, zoomEnabled, wheelPanningEnabled).
- Модель области просмотра и мировые границы (viewport, worldBounds, clampToWorldBounds).
- Методы преобразования координат: worldToRoot, rootToWorld, worldToLocal, localToWorld.
- Многослойная архитектура с фоновыми слоями WorldLayer под интерактивными виджетами AnchorLayer.
Настройка холста мира со слоями и областью просмотра
WorldCanvas canvas = new WorldCanvas()
.viewport(0, 0, 1.0f)
.zoomRange(0.1f, 5.0f);
canvas.anchorLayer().add("marker", 100, 200, new Button("POI"));
Связанные ссылки
- AnchorLayer: Слой управления экранными UI-виджетами, привязанными к мировым координатам внутри WorldCanvas.
- MapCanvas: Интерактивный виджет 2D-карты, расширяющий WorldCanvas поддержкой размеров карты, слоями текстур и сетки, проекцией координат и маркерами.
- RibbonLayer: Слой WorldCanvas для отрисовки текстурированных или сплошных лент, маршрутов и полилиний в мировых координатах.
- WorldLayer: Функциональный контракт для фоновых или декоративных слоев отрисовки внутри WorldCanvas.
API
WorldCanvas::addWorldLayer(WorldLayer)
Регистрирует новый слой отрисовки мира.
| Параметр | Тип | Описание |
|---|---|---|
layer |
WorldLayer |
Экземпляр WorldLayer для добавления или удаления. |
Возвращает WorldCanvas: Текущий экземпляр для цепочки вызовов..
WorldCanvas::anchorLayer()
Возвращает AnchorLayer, управляющий экранными виджетами, привязанными к миру.
Возвращает AnchorLayer: AnchorLayer, управляющий привязанными к миру виджетами..
WorldCanvas::clampToWorldBounds(boolean)
Включает или отключает ограничение панорамирования пределами мировых границ.
| Параметр | Тип | Описание |
|---|---|---|
clampToWorldBounds |
boolean |
Ограничивать ли панорамирование пределами мировых границ. |
Возвращает WorldCanvas: Текущий экземпляр для цепочки вызовов..
WorldCanvas::clearWorldBounds()
Очищает мировые границы, разрешая бесконечное панорамирование камеры.
Возвращает WorldCanvas: Текущий экземпляр для цепочки вызовов..
WorldCanvas::clearWorldLayers()
Удаляет все зарегистрированные слои отрисовки мира.
Возвращает WorldCanvas: Текущий экземпляр для цепочки вызовов..
WorldCanvas::clippingEnabled()
Возвращает true, если отрисовка холста обрезается по границам виджета.
Возвращает boolean: True, если активно, включено или успешно..
WorldCanvas::clippingEnabled(boolean)
Включает или отключает отсечение отрисовки по границам компоновки виджета.
| Параметр | Тип | Описание |
|---|---|---|
clippingEnabled |
boolean |
Обрезать ли отрисовку по границам холста. |
Возвращает WorldCanvas: Текущий экземпляр для цепочки вызовов..
WorldCanvas::consumeWheelWhileHovered()
Возвращает true, если события колеса мыши перехватываются при наведении на этот холст.
Возвращает boolean: True, если активно, включено или успешно..
WorldCanvas::consumeWheelWhileHovered(boolean)
Устанавливает, должны ли события колеса мыши поглощаться при наведении.
| Параметр | Тип | Описание |
|---|---|---|
consumeWheelWhileHovered |
boolean |
Поглощать ли события колеса мыши при наведении курсора. |
Возвращает WorldCanvas: Текущий экземпляр для цепочки вызовов..
WorldCanvas::localToWorldX(float)
Преобразует локальную координату X виджета обратно в мировую координату X.
| Параметр | Тип | Описание |
|---|---|---|
localX |
float |
Локальная координата X виджета. |
Возвращает float: Координата или числовое значение с плавающей точкой..
WorldCanvas::localToWorldY(float)
Преобразует локальную координату Y виджета обратно в мировую координату Y.
| Параметр | Тип | Описание |
|---|---|---|
localY |
float |
Локальная координата Y виджета. |
Возвращает float: Координата или числовое значение с плавающей точкой..
WorldCanvas::onViewportChanged(EventListener)
Регистрирует слушатель, вызываемый при изменении положения или зума области просмотра.
| Параметр | Тип | Описание |
|---|---|---|
listener |
EventListener |
Слушатель событий изменения положения или зума области просмотра. |
Возвращает EventSubscription: EventSubscription для отписки слушателя..
WorldCanvas::panButton()
Возвращает кнопку мыши, используемую для перетаскивания и панорамирования.
Возвращает PointerButton: Кнопка мыши, используемая для перетаскивания и панорамирования..
WorldCanvas::panButton(PointerButton)
Задает кнопку мыши, используемую для перетаскивания и панорамирования.
| Параметр | Тип | Описание |
|---|---|---|
panButton |
PointerButton |
Кнопка мыши, используемая для перетаскивания и панорамирования. |
Возвращает WorldCanvas: Текущий экземпляр для цепочки вызовов..
WorldCanvas::panningEnabled()
Возвращает true, если перетаскивание мышью для панорамирования включено.
Возвращает boolean: True, если активно, включено или успешно..
WorldCanvas::panningEnabled(boolean)
Включает или отключает перетаскивание указателем для панорамирования области просмотра.
| Параметр | Тип | Описание |
|---|---|---|
panningEnabled |
boolean |
Включено ли панорамирование перетаскиванием указателя. |
Возвращает WorldCanvas: Текущий экземпляр для цепочки вызовов..
WorldCanvas::preferredHeight()
Возвращает предпочитаемую высоту компоновки холста.
Возвращает float: Координата или числовое значение с плавающей точкой..
WorldCanvas::preferredHeight(float)
Устанавливает предпочитаемую высоту компоновки холста.
| Параметр | Тип | Описание |
|---|---|---|
preferredHeight |
float |
Предпочитаемая высота. |
Возвращает WorldCanvas: Текущий экземпляр для цепочки вызовов..
WorldCanvas::preferredSize(float, float)
Устанавливает одновременно предпочитаемую ширину и высоту холста.
| Параметр | Тип | Описание |
|---|---|---|
width |
float |
Ширина. |
height |
float |
Высота. |
Возвращает WorldCanvas: Текущий экземпляр для цепочки вызовов..
WorldCanvas::preferredWidth()
Возвращает предпочитаемую ширину компоновки холста.
Возвращает float: Координата или числовое значение с плавающей точкой..
WorldCanvas::preferredWidth(float)
Устанавливает предпочитаемую ширину компоновки холста.
| Параметр | Тип | Описание |
|---|---|---|
preferredWidth |
float |
Предпочитаемая ширина. |
Возвращает WorldCanvas: Текущий экземпляр для цепочки вызовов..
WorldCanvas::removeWorldLayer(WorldLayer)
Удаляет зарегистрированный слой отрисовки мира.
| Параметр | Тип | Описание |
|---|---|---|
layer |
WorldLayer |
Экземпляр WorldLayer для добавления или удаления. |
Возвращает WorldCanvas: Текущий экземпляр для цепочки вызовов..
WorldCanvas::rootToWorldX(float)
Преобразует экранную корневую координату X обратно в мировую координату X.
| Параметр | Тип | Описание |
|---|---|---|
rootX |
float |
Экранная координата X. |
Возвращает float: Координата или числовое значение с плавающей точкой..
WorldCanvas::rootToWorldY(float)
Преобразует экранную корневую координату Y обратно в мировую координату Y.
| Параметр | Тип | Описание |
|---|---|---|
rootY |
float |
Экранная координата Y. |
Возвращает float: Координата или числовое значение с плавающей точкой..
WorldCanvas::viewport()
Возвращает активную модель 2D-области просмотра.
Возвращает Viewport2D: Активная модель области просмотра Viewport2D..
WorldCanvas::viewport(Viewport2D)
Устанавливает модель 2D-области просмотра для панорамирования и зума.
| Параметр | Тип | Описание |
|---|---|---|
viewport |
Viewport2D |
Модель 2D-области просмотра для панорамирования и зума. |
Возвращает WorldCanvas: Текущий экземпляр для цепочки вызовов..
WorldCanvas::viewport(float, float)
Устанавливает координаты центра области просмотра с сохранением текущего зума.
| Параметр | Тип | Описание |
|---|---|---|
x |
float |
Горизонтальная координата X. |
y |
float |
Вертикальная координата Y. |
Возвращает WorldCanvas: Текущий экземпляр для цепочки вызовов..
WorldCanvas::viewport(float, float, float)
Устанавливает одновременно координаты центра области просмотра и уровень зума.
| Параметр | Тип | Описание |
|---|---|---|
x |
float |
Горизонтальная координата X. |
y |
float |
Вертикальная координата Y. |
zoom |
float |
Масштаб зума. |
Возвращает WorldCanvas: Текущий экземпляр для цепочки вызовов..
WorldCanvas::wheelPanStep()
Возвращает расстояние перемещения камеры за один шаг прокрутки колеса.
Возвращает float: Координата или числовое значение с плавающей точкой..
WorldCanvas::wheelPanStep(float)
Задает расстояние перемещения камеры за один шаг прокрутки колеса.
| Параметр | Тип | Описание |
|---|---|---|
wheelPanStep |
float |
Расстояние перемещения за один шаг прокрутки колеса. |
Возвращает WorldCanvas: Текущий экземпляр для цепочки вызовов..
WorldCanvas::wheelPanningEnabled()
Возвращает true, если прокрутка колеса мыши выполняет панорамирование камеры.
Возвращает boolean: True, если активно, включено или успешно..
WorldCanvas::wheelPanningEnabled(boolean)
Включает или отключает прокрутку колеса мыши для панорамирования камеры.
| Параметр | Тип | Описание |
|---|---|---|
wheelPanningEnabled |
boolean |
Включено ли панорамирование прокруткой колеса мыши. |
Возвращает WorldCanvas: Текущий экземпляр для цепочки вызовов..
WorldCanvas::worldBounds(float, float, float, float)
Устанавливает прямоугольные мировые границы, ограничивающие перемещение камеры.
| Параметр | Тип | Описание |
|---|---|---|
x |
float |
Горизонтальная координата X. |
y |
float |
Вертикальная координата Y. |
width |
float |
Ширина. |
height |
float |
Высота. |
Возвращает WorldCanvas: Текущий экземпляр для цепочки вызовов..
WorldCanvas::worldLayers()
Возвращает неизменяемый список всех зарегистрированных слоев отрисовки мира.
Возвращает List: Неизменяемый список зарегистрированных слоев мира..
WorldCanvas::worldToLocalX(float)
Преобразует мировую координату X в локальную координату X виджета.
| Параметр | Тип | Описание |
|---|---|---|
worldX |
float |
Мировая координата X. |
Возвращает float: Координата или числовое значение с плавающей точкой..
WorldCanvas::worldToLocalY(float)
Преобразует мировую координату Y в локальную координату Y виджета.
| Параметр | Тип | Описание |
|---|---|---|
worldY |
float |
Мировая координата Y. |
Возвращает float: Координата или числовое значение с плавающей точкой..
WorldCanvas::worldToRootX(float)
Преобразует мировую координату X в экранную корневую координату X.
| Параметр | Тип | Описание |
|---|---|---|
worldX |
float |
Мировая координата X. |
Возвращает float: Координата или числовое значение с плавающей точкой..
WorldCanvas::worldToRootY(float)
Преобразует мировую координату Y в экранную корневую координату Y.
| Параметр | Тип | Описание |
|---|---|---|
worldY |
float |
Мировая координата Y. |
Возвращает float: Координата или числовое значение с плавающей точкой..
WorldCanvas::zoomEnabled()
Возвращает true, если масштабирование колесом мыши включено.
Возвращает boolean: True, если активно, включено или успешно..
WorldCanvas::zoomEnabled(boolean)
Включает или отключает масштабирование колесом мыши.
| Параметр | Тип | Описание |
|---|---|---|
zoomEnabled |
boolean |
Включено ли масштабирование зума колесом мыши. |
Возвращает WorldCanvas: Текущий экземпляр для цепочки вызовов..
WorldCanvas::zoomRange(float, float)
Задает допустимые границы минимального и максимального масштаба зума.
| Параметр | Тип | Описание |
|---|---|---|
minZoom |
float |
Минимально допустимый масштаб зума. |
maxZoom |
float |
Максимально допустимый масштаб зума. |
Возвращает WorldCanvas: Текущий экземпляр для цепочки вызовов..
WorldCanvas::zoomStep()
Возвращает множитель зума, применяемый при шаге колеса мыши.
Возвращает float: Координата или числовое значение с плавающей точкой..
WorldCanvas::zoomStep(float)
Задает множитель зума, применяемый при шаге колеса мыши.
| Параметр | Тип | Описание |
|---|---|---|
zoomStep |
float |
Множитель зума за один шаг колеса мыши. |
Возвращает WorldCanvas: Текущий экземпляр для цепочки вызовов..