Site3dConfigurator Class
Класс конфигуратора
Основная логика инициализации:
- Добавляем настройки и инициализируем их значениями по-умолчанию, а затем значениями из файла конфигуратора
- Создаем элементы (модели)
- Применяем все автозапускаемые настройки конфигуратора и его элементов (по-умолчанию все настройки автозапускаемые)
Основные понятия:
- Настройки - параметры конфигуратора или его элементов, которые можно сохранить
- Действия - инструменты управления состоянием конфигуратора или его элементов
- Панели - области интерфейса, которые могут содержать в себе настройки, действия или произвольное содержимое
- Панели управления - панели, которые содержат в себе настройки и действия
- Окна - панели с произвольным содержимым
Как устроены панели:
- Корневой HTML-элемент панели имеет свой идентификатор и к нему автоматически добавляется класс site3dConfiguratorPanel
- По-умолчанию доступны панель управления конфигуратором (site3dConfiguratorPanelControlsMain) и его элементами (site3dConfiguratorPanelControlsItem)
- Содержимое панели помещается в HTML-элемент с классом site3dConfiguratorPanelContent
- Внутри корневого HTML-элемента может быть HTML-элемент с классом site3dConfiguratorPanelCloseButton (при клике для корневого HTML-элемента будет добавлятся и удалятся класс site3dConfiguratorPanelShow)
Как устроены настройки и действия:
- Всегда объединяются в группы (по-умолчанию есть группа с идентификатором main)
- Идентификатор группы задается в атрибуте data-group
- Есть возможность отдельно выводить кнопки, которые показывают настройки или действия определенной группы
- Группы настроек и действий можно перемешивать друг с другом (при этом становятся недоступны отдельные кнопки переключения между группами)
Описание шаблонов:
- Все шаблоны находятся в папке templates и разбиты по папкам:
- main - главный шаблон конфигуратора
- panelControlsCaption - содержимое заголовков панелей управления настройками и действиями
- panelControlsContent - содержимое панелей управления настройками и действиями
- settingsContent - содержимое настроек
- settingsGroupsButton - кнопки показа и скрытия группы настроек
- settingsGroup - группы настроек
- settingsItem - элемент настроек
- actionsSimple - действия при клике
- actionsPicker - наборы действий в виде списка для переноса объектов на сцену
- actionsPickerItem - элементы наборов действий
- mixContent - смешанное содержимое панелей управления из настроек и действий
Constructor
Site3dConfigurator
-
s3d
-
options
Parameters:
-
s3d
Site3dОбъект 3D сцены
-
options
ObjectПараметры конфигуратора:
- name - Название конфигуратора
- path - Путь до файлов конфигуратора
- insertPlace - место содержимого конфигуратора (по умолчанию перед канвасом)
- connectModelName - имя модели в сцене, к которой будет привязан конфигуратор
- data - данные в формате json (путь к файлу или объект)
- dataMobile - данные в формате json (путь к файлу или объект) для мобильных устройств
- priceList - прайс-лист в формате json (путь к файлу или объект)
- buildLogic - логика построения
- load - обработчик завершения загрузки конфигуратора
Item Index
Methods
- create static
- getServerData
- checkDevice
- start
- init
- addBuildLogic
- addTemplates
- addPanels
- addData
- load
- updateLoadScreenBackgroundColor
- addSettings
- addActions
- addItems
- loadItemsCompleted
- autoStartSettingsCompleted
- build
- loadCompleted
- addTemplate
- getTemplate
- s
- setSettings
- loadItems
- itemsForEach
- getItemIntersect
- getItems
- getItemsByType
- getItemByIndex
- calcPrice
- updatePrice
- startLoading
- setLoadingStatus
- endLoading
- startLock
- endLock
- enableItems
- disableItems
- deselectActions
- getActionPath
- panel
- showPanel
- hide
- togglePanel
- callEvent
- event
- getSaveItems
- getSaveData
- loadDataItems
- loadDataItemSettings
- loadDataSettings
Methods
create
-
s3d
-
options
Метод создает объект конфигуратора
Parameters:
Returns:
Объект конфигуратора как результат промиса
getServerData
-
fileName
-
data
-
format
Метод вызывает серверный скрипт и возвращает результат через промис
Parameters:
Returns:
Результат
checkDevice
()
Метод производит проверку типа устройства
start
-
options
Метод запуска конфигуратора
Parameters:
-
options
ObjectПараметры конфигуратора
init
()
async
Метод инициализации конфигуратора. Используйте перегреженную версию для переопределения базовых параметров:
- templatesPath - путь к HTML-шаблонам
- actionsPath - путь к иконкам действий
- texturesPath - путь к текстурам
addBuildLogic
()
Метод формирования логики построения конфигуратора (для переопределения)
addTemplates
()
Метод добавления описаний для загрузки HTML-шаблонов (для переопределения с целью добавления новых шаблонов в свойство templates)
addPanels
()
async
Метод добавления панелей управления (для переопределения с целью добавления новых панелей в коллекцию panels)
addData
()
async
Метод добавления новых данных конфигуратора (для переопределения)
load
-
options
Метод загрузки параметров конфигуратора (используется для загрузки сохраненных ранее проектов)
Parameters:
-
options
ObjectПараметры конфигуратора
updateLoadScreenBackgroundColor
-
value
Метод обновляет цвет фона окна загрузки
Parameters:
-
value
StringЦвет фона в HEX формате с альфа каналом
addSettings
()
async
Метод добавления настроек конфигуратора (для переопределения)
addActions
()
async
Метод добавления действий для конфигуратора (для переопределения)
addItems
()
async
Метод добавления элементов конфигуратора (для переопределения)
loadItemsCompleted
()
async
Метод завершения загрузки частей конфигуратора (для переопределения)
autoStartSettingsCompleted
()
async
Метод завершения автозапуска настроек конфигуратора (для переопределения)
build
()
Метод сборки элементов конфигуратора (для переопределения)
loadCompleted
()
async
Метод завершения загрузки конфигуратора (для переопределения)
addTemplate
-
name
-
options
Метод загружает и добавляет содержимое шаблона в список templates
getTemplate
-
name
-
params
-
subName
Метод получения HTML-шаблона
Parameters:
Returns:
Содержимое шаблона
s
-
name
Метод получения значения настройки
Parameters:
-
name
StringИмя настройки
Returns:
Значение настройки
setSettings
()
Метод для массового изменения значений настроек конфигуратора
loadItems
-
promise
Метод регистрации результата добавления части конфигуратора (элемент или часть дерева элементов)
Parameters:
-
promise
PromiseПромис окончания загрузки части конфигуратора
Returns:
Промис
itemsForEach
-
childAction
-
parentAction
Метод прохода по дереву элементов конфигуратора. В функциях обработки в качестве аргументов передается сам элемент дерева и объект из элементов:
- index - идентификатор элемента
- parent - родительский элемент
- level - уровень вложенности
getItemIntersect
()
Object
Метод возвращает объект из элемента конфигуратора и его позиции, по которой кликнули мышкой
Returns:
Элемент конфигуратора
getItems
-
check
-
options
Метод возвращает список элементов конфигуратора по условию через функцию
Returns:
Список элементов конфигуратора
getItemsByType
-
type
-
options
Метод возвращает список элементов конфигуратора по типу
Returns:
Список элементов конфигуратора
getItemByIndex
-
index
-
options
Метод возвращает элемент конфигуратора по индексу
Returns:
Элемент конфигуратора
calcPrice
()
Метод расчета строимости (для переопределения)
updatePrice
()
Метод считает и показывает строимость (для возможного переопределения)
startLoading
()
Метод показывает статус загрузки
setLoadingStatus
-
content
Метод устанавливает статус загрузки
Parameters:
-
content
StringСтатус загрузки
endLoading
()
Метод скрывает статус загрузки
startLock
()
Метод запускает блокировку интерфейса
endLock
()
Метод скрывает блокировку интерфейса
enableItems
()
Метод активирует элементы конфигуратора
disableItems
()
Метод деактивирует элементы конфигуратора
deselectActions
()
Метод снимает выделения у всех действий конфигуратора
getActionPath
-
name
Метод возвращает путь до действия с учетом вложенности групп
Parameters:
-
name
StringИмя действия
Returns:
Путь
panel
-
name
Метод возвращает панель
Parameters:
-
name
StringНазвание панели
Returns:
Панель
showPanel
-
name
-
data
-
eventData
Метод показывает панель
togglePanel
-
name
Метод переключает видимость панели
Parameters:
-
name
StringНазвание панели
callEvent
-
name
-
data
Метод вызывает событие конфигуратора
event
-
name
-
call
Метод подписывает на события конфигуратора
getSaveItems
-
root
Метод возвращает элементы дерева конфигуратора для сохранения в json формате
Parameters:
-
root
ObjectКорневой элемент (по умолчанию все элементы)
getSaveData
()
Метод возвращает объект для сохранения конфигуратора в json формате
loadDataItems
-
items
-
loadItem
-
options
Метод загружает элементы конфигуратора из объекта в json формате
loadDataItemSettings
-
item
-
dataItemSettings
Метод загружает настройки конфигуратора или его элемента из объекта в json формате
Parameters:
-
item
Site3dConfigurator | Site3dConfiguratorItemКонфигуратор или его элемент
-
dataItemSettings
ObjectДанные настроек в json формате
loadDataSettings
-
settings
Метод загружает настройки конфигуратора из объекта в json формате
Parameters:
-
settings
ObjectДанные
Properties
insertPlace
Object
Свойство возвращает место содержимого конфигуратора ({domElement: HTMLElement, where: string})
connectModelName
String
Свойство возвращает имя модели в сцене, к которой присоединяются элементы конфигуратора
isVisible
Unknown
Свойство устанавливает видимость конфигуратора
panelControlsButtonClick
Function
Свойство возвращает событие клика для кнопки показа и скрытия главных панелей управления
panelControlsButtonClick
Unknown
Свойство устанавливает события клика для кнопки показа и скрытия главных панелей управления
Sub-properties:
-
click
FunctionОбработчик клика