npm install
npm run devФайл App.tsx
- Виджет должен отображать иерархию объектов, содержащихся в
viewer.model. - При клике на объект в виджете соответстующая мешка или группа должна выделиться в сцене.
- Детали реализации виджета и визуализации хайлайта остаются на усмотрение кандидата.
- Каждому объекту в
THREE.Object3Dдобавлено полеuserData, содержащее значение свойства:userData: { propertyValue: { statusCode: number, // Число в диапазоне от 1 до 4 statusText: string // Описание статуса установки } }
- Возможные значения
propertyValue.statusCode:1- Not Started2- In Progress3- Partially Installed4- Installed
- Значение этого свойства должно визуализироваться в центре объекта.
- Тип визуализации выбирается кандидатом (например, текстовые метки, 3D-объекты, SVG плашки и т.д.)
- Важно чтобы текст метки был читаемым
- В
README.mdнеобходимо описать, почему выбран именно этот способ рендера.
При большом количестве объектов текстовые метки могут перекрываться. Возможные решения:
- Группировка — если метки перекрываются, можно отображать пузырь с количеством скрытых меток.
- Скрытие перекрывающихся элементов — исключение части меток, которые перекрывают другие.
- Реализация одного из этих методов (или альтернативного) на усмотрение кандидата.
- Приветствуется создание новых классов, сервисов для разделения ответсвенности, а также дополнение класса
Viewerесли это необходимо - Приветствуется использование RXJS, пример реализации в компоненте
Loading - Расположение новых созданных файлов на усмотрение кандидата
- Реализованный интерактивный виджет с корректным отображением иерархии объектов.
- Отображение значений
userData.propertyValueв центре каждого объекта. - Опциональная реализация системы управления перекрывающимися метками.
- Репозиторий должен быть форкнут на личный аккаунт GitHub.
- По завершению работы необходимо предоставить ссылку на репозиторий с публичным доступом.
- Исходный код с коммитами.
- Файл
README.mdс описанием выбранного подхода к рендеру меток.