Опрос

Что такое, по вашему мнению, «демократия»?













Класс MObject

15.01.2010 11:44 Администратор
Печать PDF
Рейтинг пользователей: / 0
ХудшийЛучший 
Индекс материала
Класс MObject
Страница 2
Страница 3
Страница 4
Страница 5

Если в предыдущем разделе иерархия классов Maya была описана на уровне абстрактных понятий, то теперь мы рассмотрим ее конкретные особенности. Описанные в приведенном примере объекты данных были вам хорошо известны. Вы знали о существовании классов Object, MotorcycleObj, CarObj и TruckObj. Зная же о различных объектах, вы могли обращаться к ним напрямую. В Maya разработчику открывается лишь корневой класс Object. Все остальные классы от него скрыты. В Maya эквивалент упомянутого в примере класса Object носит название MObject.

Класс MObject участвует в обращении к любым данным и потому служит для доступа ко всему спектру типов данных Maya. Вам может показаться, что он сам фактически содержит данные, которые вы используете. В действительности он представляет собой лишь описатель другого о(5ъекта, расположенного на уровне ядра, А поскольку это только описатель, его можно считать указателем на некий внутренний элемент данных, который входит в ядро, и лишь ядро может распоряжаться этим указателем. Помимо названного указателя, объект MObject как таковой не содержит никаких данных. Эта ситуация проиллюстрирована на рис, 4.6. Реально объект MObject содержит пустой указатель (void *) на некие внутренние данные, подробные сведения о которых никогда не раскрываются, так что в своем коде вам не удастся преобразовать этот указатель в нечто значащее.

Только ядро Maya точно знает о том, на что ссылается указатель. Класс MObject не содержит никаких данных, а напротив, включает в себя лишь ссылку; поэтому удаляя или создавая объект класса, вы просто удаляете и создаете описатель. На деле вы не уничтожаете и не порождаете никаких внутренних данных Maya.

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



Добавить комментарий


Защитный код
Обновить

Поиск

В закладку

 
 

Авторизация



Погода