Подтвердить что ты не робот

Возможно ли расширить функции графических объектов посредством наследования?

Я расширил функциональность объекта линии, используя класс, который принимает дескриптор строки в качестве входного аргумента его конструктору. Затем этот класс создает прослушиватель WindowMouseMotion для обнаружения мыши на линии, которая выделяет линию и отображает панель, содержащую элементы управления для установки некоторых свойств линий/данных. Это хорошо работает.

Теперь я пытаюсь обнаружить этот класс и ответить на удаляемую строку, прослушивая событие ObjectBeingDestroyed. Мой вопрос заключается в том, является ли привязка этого класса к объекту линии, сохраняя дескриптор строки наилучшим решением или, можно ли расширить класс линии, наследуя от него? Я просмотрел документацию MATLAB и искал в Интернете, но не могу найти окончательную информацию о наследовании от графических классов.

4b9b3361

Ответ 1

Можно подклассифицировать классы графики встроенного дескриптора. Пример: http://undocumentedmatlab.com/blog/udd-properties/. Он использует специально недокументированный механизм UDD. MathWorks неоднократно заявлял, что UDD предназначен для внутреннего развития и использует только и не поддерживается. Однако стоит отметить, что существует множество примеров подкласса UDD в m-коде, который предоставляет MathWorks. Также, если они считают, что есть определенная причина, чтобы что-то скрывать в тайне UDD, оно либо встроено, либо закодировано. Поэтому я считаю, что если вы найдете примеры того, как делать что-то в исходном коде, предоставленном The MathWorks, вы можете свободно их использовать.

Ответ 2

Получил этот ответ в MATLAB Central Answers: "Не существует документального способа наследования от (/subclass) обработки графических объектов. правило заключается в том, что если вы не можете найти его в документации, он не поддерживается."

Существует предположение, что здесь возможно расширить новые классы HG2 но это не официальная информация Mathworks.