12
Редактор для скриптинга сцен в CoSpaces Илья Шкуратов руководители: Даниил Еловков, Илья Яцышин 2016 г 1/12

Редактор для скриптинга сцен в CoSpaces. Презентация участников

Embed Size (px)

Citation preview

Page 1: Редактор для скриптинга сцен в CoSpaces. Презентация участников

Редактор для скриптинга сцен в CoSpaces

Илья Шкуратовруководители: Даниил Еловков, Илья Яцышин

2016 г

1/12

Page 2: Редактор для скриптинга сцен в CoSpaces. Презентация участников

CoSpaces – онлайн платформа для создания 3D сцен

Для создания динамических сцен, хочется предоставить возможность писать скрипты, управляющие объектами.

Для комфортного и легкого создания скриптов нужен DSL и удобный редактор для него.

Контекст

2/12

Page 3: Редактор для скриптинга сцен в CoSpaces. Презентация участников

Поставленные задачи

● Проектирование и реализация DSL с помощью MPS on the Web

● Реализация JavaScript генератора

● Интеграция редактора в СoSpaces

● Поддержка контекстно-зависимого дополнения

Работающий редактор, который будет поддерживать простую функциональность языка JavaScript ● переменные● функции● условный оператор● цикл ● и т.д.

Ожидаемый результат

3/12

Page 4: Редактор для скриптинга сцен в CoSpaces. Презентация участников

Используемые технологии

4/12

Page 5: Редактор для скриптинга сцен в CoSpaces. Презентация участников

Базовая часть языкаБазовые конструкции

● определение переменных

● определение функций

● арифметические выражения

● for

● if, else

Литералы

● Integer

● Float

● Boolean

● String

● Object

5

Page 6: Редактор для скриптинга сцен в CoSpaces. Презентация участников

Дополнительные конструкции

Методы для сцены

● создание / удаление объекта

● получение объекта по идентификатору

● и т.д.

Сервисы (наборы методов, доступные объекту)

6/12

Page 7: Редактор для скриптинга сцен в CoSpaces. Презентация участников

Интеграция с СoSpaces

● Вызов редактора со сцены по нажатию кнопки

● Сохранение написанного скрипта на сервере

● Генерация кода получения объекта по идентификатору

● Получение доступных для объекта сервисов

● Запуск сгенерированного скрипта

7/12

Page 8: Редактор для скриптинга сцен в CoSpaces. Презентация участников

Интеграция с CoSpaces

8

Page 9: Редактор для скриптинга сцен в CoSpaces. Презентация участников

Поддержка контекстно-зависимого дополнения

● Ссылки на переменные и функции предлагаются с учётом области видимости

● Ссылки на методы и поля выводятся все, затем происходит разрешение ссылки

9/12

Page 10: Редактор для скриптинга сцен в CoSpaces. Презентация участников

Разрешение ссылокБлочная область видимости (как в С/С++, Java)

Цветовая индикация неразрешённой ссылки

Разрешение ссылки при добавлении объявления в область видимости переменной

10/12

Page 11: Редактор для скриптинга сцен в CoSpaces. Презентация участников

ПланируетсяПроверка ограничений

● проверки, связанные с типами

● дублирование объявление переменной

● забытый return в функции

● и т.п.

Сигнализация об обнаруженных ошибок в редакторе

Поддержка классов и свойств11/12

Page 12: Редактор для скриптинга сцен в CoSpaces. Презентация участников

Результаты

● Реализована базовая часть языка для скриптинга и Web-редактор для него

● Реализован транслятор в JavaScript

● Произведена интеграция редактора в CoSpaces

12/12