Сцена

объект Сцена; SceneReactor

Производный от: Система координат (TransformNodeReactor)

Сцена - это основной объект приложения. Он присутствует в презентации всегда, все объекты, производные от Узел (NodeReactor) (Метка (MarkerReactor), Модель (ModelReactor), Проекция на экран (HudReactor) и т.д.) должны быть потомкам, или потомками потомков сцены.

Кроме того, все объекты типа Метка (MarkerReactor) должны находиться непосредственно в сцене.

Нажатия на экран

Вводится в Сцена (SceneReactor)

Данные события срабатывают, когда пользователь нажимает на любую точку экрана, причём в отличие от нажатий на объект данные события будут срабатывать при нажатии на любую точку экрана.

У Сцена (SceneReactor) также остаются и нажатия на объект, которые будут срабатывать при нажатии на любой объект сцены.

../_images/scene_screenclicks_actions.png
Событие Описание
Нажатие на экран (onScreenClick) Вызывается, когда пользователь нажимает на экран
Двойное нажатие на экран (onScreenDoubleClick) Вызывается, когда пользователь дважды нажимает на экран
событие Нажатие на экран; onScreenClick()

Вызывается, когда пользователь нажимает на экран

событие Двойное нажатие на экран; onScreenDoubleClick()

Вызывается, когда пользователь дважды нажимает на экран

Предупреждение

Каждому вызову Двойное нажатие на экран (onScreenDoubleClick) будет предшествовать вызов Нажатие на экран (onScreenClick). Таким образом, не стоит подписываться на оба события для одного объекта одновременно, либо необходимо фильтровать клики при помощи объекта Таймер (TimerReactor).

Работа с потомками и иерархией

Вводится в Группа (GroupNodeReactor)

Каждый объект, производный от Группа (GroupNodeReactor) может иметь одного или нескольких потомков, производных от Узел (NodeReactor). Например, любой Модель (ModelReactor) может быть добавлен на метку - в Метка (MarkerReactor), или любой объект может быть добавлен в Сцена (SceneReactor).

Примечание

Вся система объектов, производных от Узел (NodeReactor) повторяет структуру библиотеки OpenSceneGraph . Соответственно, многие особенности библиотеки распрастраняются и на систему объектов EV Toolbox.

Иерархия объектов может быть изменена в списке объектов при помощи drag’n’drop или при помощи контекстного меню.

Параметр Описание
Список потомков (children) Список потомков данного объекта
Действие Описание
Группа - добавить узел (addChild) Добавить потомка в конец списка потомков
Группа - удалить узел (removeChild) Убирает указанный объект из списка потомков.
Группа - удалить все дочерние узлы (clearChildren) Полностью очищает список потомков объекта.
параметр Список потомков; children

Список всех дочерних объектов. Имеет тип table, в котором находятся ссылки на все дочерние объекты.

Примечание

В интерфейсе версии Standard данный параметр устанавливается неявно, путём переноса объектов в списке объектов

Пример использования:

local marker = ...      -- Тип MarkerReactor
local model = ...       -- Тип NodeReactor или производный
local transform = ...   -- Тип TransformNodeReactor

-- Подписываемся на onHide маркера - событие исчезновения его из вида
marker:subscribeEvent("onHide", function()
    -- Переносим трансформацию маркера на transform
    transform.trans = marker.trans
    transform.rotate = marker.rotate
    transform.scale = marker.scale

    -- Удаляем модель из маркера
    marker:removeChild(model)

    -- Добавляем модель в transform
    transform:addChild(model)
end)

-- При показе метки
marker:subscribeEvent("onShow", function()
    -- Удаляем модель из transform'а
    transform:removeChild(model)

    -- Добавляем модель в маркер
    marker:addChild(model)
end)

действие Группа - добавить узел; addChild(child)

Добавить потомка в конец списка потомков

Параметры:Узел / child – Объект, производный от Узел (NodeReactor), который будет добавлен в качестве потомка

Предупреждение

|change_graph_dynamically_warn|

действие Группа - удалить узел; removeChild(child)

Убирает указанный объект из списка потомков.

Если данного объекта не было в спике потомков, то ничего не происходит. Если в списке потомков данный объект встречался дважды, будет удалено только первое вхождение.

Параметры:Узел / child – Объект, который необходимо убрать из списка потомков

Предупреждение

|change_graph_dynamically_warn|

действие Группа - удалить все дочерние узлы; clearChildren()

Полностью очищает список потомков объекта.

Предупреждение

|change_graph_dynamically_warn|