Улучшаем плагин - добавляем визуальный элемент управления

В созданный нами, ObjectData-плагин можно добавить улучшение в виде визуального манипулятора во вьюпорте:


handler

С помощью этого маркера можно будет изменять диаметр цилиндра прямо на сцене. Чтобы сделать это - нам потребуется дописать для класса SimpleGeneratorData 4 метода и одно свойство. Приступим:

Мы добавили свойство указывающее сколько хендлеров у нас будет (в нашем случае для простоты - 1) и метод возвращающий количество хендлеров.

Следующий метод - по индексу хендлера, заполняет информацию о типе (в нашем случае линейный), расположении в пространстве и направлении в котором можно смещать ручку:

Третий необходимый нам метод определяет как должны измениться параметры нашего объекта при смещении хендлера с индексом i в координату p:

Остался последний метод Draw, который будет рисовать наш хендлер и обновлять его при любом изменении:

Сверяемся с документацией:

Last updated

Was this helpful?