Я нахожусь в процессе создания пользовательского плагина импорта для Maya. Я уже написал некоторый код импорта и создал кастом MPxSurfaceShape
класс (я в основном заинтересован в рисовании поверхности из области просмотра).
Форма создается MPxCommand
который читает файл с диска. Теперь я хотел бы добавить этот объект в мою сцену майя из плагина. Но, к сожалению, я не могу найти функцию, которая принимает MPxNode
/MPxSurfaceShape
и добавляет его в Maya, чтобы его можно было отобразить.
Во всех примерах, которые я видел, создается экземпляр узла из mel. Но я хочу связать этот экземпляр с файлом. Что мешает мне просто создать узел и затем отредактировать его.
Аналогичное решение может быть найдено либо в apiMeshShape
Пример в папке плагинов Maya или здесь: https://github.com/ADN-DevTech/Maya-Locator/ (также поддерживает загрузку внешних данных).
Вот кое-что, я надеюсь, поможет.
MDagModifier dagMod;
MObject newNode = dagMod.MDGModifier::createNode("Node Name")
dagMod.doIt()
или же
MDagModifier dagMod;
MObject newNode = dagMod.MDGModifier::createNode(Node::id)
dagMod.doIt()
Оттуда у вас есть MObject, который вы можете превратить в другие вещи.
//Dag Node example.
MFnDagNode new_MDagNode(newNode);
//Dependency Node.
MFnDependencyNode new_DependNode(newNode);
MPxNode также имеет thisMObject (), который даст вам текущий MObject в MPxNode.
http://download.autodesk.com/us/maya/2010help/API/class_m_px_node.html#9608c582da0945e792c3f9893661404d
Опять же, я не уверен, что полностью понимаю вопрос, но надеюсь, что это поможет.