Редактор для скриптинга сцен в cospaces. Презентация...
TRANSCRIPT
![Page 1: Редактор для скриптинга сцен в CoSpaces. Презентация участников](https://reader031.vdocuments.net/reader031/viewer/2022031905/58849ac91a28ab26058b6425/html5/thumbnails/1.jpg)
Редактор для скриптинга сцен в CoSpaces
Илья Шкуратовруководители: Даниил Еловков, Илья Яцышин
2016 г
1/12
![Page 2: Редактор для скриптинга сцен в CoSpaces. Презентация участников](https://reader031.vdocuments.net/reader031/viewer/2022031905/58849ac91a28ab26058b6425/html5/thumbnails/2.jpg)
CoSpaces – онлайн платформа для создания 3D сцен
Для создания динамических сцен, хочется предоставить возможность писать скрипты, управляющие объектами.
Для комфортного и легкого создания скриптов нужен DSL и удобный редактор для него.
Контекст
2/12
![Page 3: Редактор для скриптинга сцен в CoSpaces. Презентация участников](https://reader031.vdocuments.net/reader031/viewer/2022031905/58849ac91a28ab26058b6425/html5/thumbnails/3.jpg)
Поставленные задачи
● Проектирование и реализация DSL с помощью MPS on the Web
● Реализация JavaScript генератора
● Интеграция редактора в СoSpaces
● Поддержка контекстно-зависимого дополнения
Работающий редактор, который будет поддерживать простую функциональность языка JavaScript ● переменные● функции● условный оператор● цикл ● и т.д.
Ожидаемый результат
3/12
![Page 4: Редактор для скриптинга сцен в CoSpaces. Презентация участников](https://reader031.vdocuments.net/reader031/viewer/2022031905/58849ac91a28ab26058b6425/html5/thumbnails/4.jpg)
Используемые технологии
4/12
![Page 5: Редактор для скриптинга сцен в CoSpaces. Презентация участников](https://reader031.vdocuments.net/reader031/viewer/2022031905/58849ac91a28ab26058b6425/html5/thumbnails/5.jpg)
Базовая часть языкаБазовые конструкции
● определение переменных
● определение функций
● арифметические выражения
● for
● if, else
Литералы
● Integer
● Float
● Boolean
● String
● Object
5
![Page 6: Редактор для скриптинга сцен в CoSpaces. Презентация участников](https://reader031.vdocuments.net/reader031/viewer/2022031905/58849ac91a28ab26058b6425/html5/thumbnails/6.jpg)
Дополнительные конструкции
Методы для сцены
● создание / удаление объекта
● получение объекта по идентификатору
● и т.д.
Сервисы (наборы методов, доступные объекту)
6/12
![Page 7: Редактор для скриптинга сцен в CoSpaces. Презентация участников](https://reader031.vdocuments.net/reader031/viewer/2022031905/58849ac91a28ab26058b6425/html5/thumbnails/7.jpg)
Интеграция с СoSpaces
● Вызов редактора со сцены по нажатию кнопки
● Сохранение написанного скрипта на сервере
● Генерация кода получения объекта по идентификатору
● Получение доступных для объекта сервисов
● Запуск сгенерированного скрипта
7/12
![Page 8: Редактор для скриптинга сцен в CoSpaces. Презентация участников](https://reader031.vdocuments.net/reader031/viewer/2022031905/58849ac91a28ab26058b6425/html5/thumbnails/8.jpg)
Интеграция с CoSpaces
8
![Page 9: Редактор для скриптинга сцен в CoSpaces. Презентация участников](https://reader031.vdocuments.net/reader031/viewer/2022031905/58849ac91a28ab26058b6425/html5/thumbnails/9.jpg)
Поддержка контекстно-зависимого дополнения
● Ссылки на переменные и функции предлагаются с учётом области видимости
● Ссылки на методы и поля выводятся все, затем происходит разрешение ссылки
9/12
![Page 10: Редактор для скриптинга сцен в CoSpaces. Презентация участников](https://reader031.vdocuments.net/reader031/viewer/2022031905/58849ac91a28ab26058b6425/html5/thumbnails/10.jpg)
Разрешение ссылокБлочная область видимости (как в С/С++, Java)
Цветовая индикация неразрешённой ссылки
Разрешение ссылки при добавлении объявления в область видимости переменной
10/12
![Page 11: Редактор для скриптинга сцен в CoSpaces. Презентация участников](https://reader031.vdocuments.net/reader031/viewer/2022031905/58849ac91a28ab26058b6425/html5/thumbnails/11.jpg)
ПланируетсяПроверка ограничений
● проверки, связанные с типами
● дублирование объявление переменной
● забытый return в функции
● и т.п.
Сигнализация об обнаруженных ошибок в редакторе
Поддержка классов и свойств11/12
![Page 12: Редактор для скриптинга сцен в CoSpaces. Презентация участников](https://reader031.vdocuments.net/reader031/viewer/2022031905/58849ac91a28ab26058b6425/html5/thumbnails/12.jpg)
Результаты
● Реализована базовая часть языка для скриптинга и Web-редактор для него
● Реализован транслятор в JavaScript
● Произведена интеграция редактора в CoSpaces
12/12