Плагин Maya C++ для доступа к imageFile, загруженному на текущий imagePlane
Я пишу плагин Maya C++, который должен получить доступ к imageFile, который загружен в текущий imagePlane. Мне написали плагин, и я могу успешно выполнять итерации через imagePlanes, но я не знаю, как получить imageFile, который загружен на imagePlane. Я написал плагин с обратным вызовом для загружаемой сцены, и я успешно перебираю imagePlanes, но как мне перейти оттуда к имени файла изображения, загруженного в imagePlane? Вот часть моего кода для обратного вызова sceneLoaded:
void MayaExtractCalDataPlugin::sceneLoaded( void* clientData )
{
// Store the pointer to the current class
MayaExtractCalDataPlugin* crntPlugin = (MayaExtractCalDataPlugin*)clientData;
// We only enter the callback when isReadingFile() is false, as this indicates that all
// loading is complete. otherwise we would enter a whole series of callbacks when loading a scene
// with lots of references in.
if( !MFileIO::isReadingFile() )
{
// Traverse the scene and find image planes
// First we need to create an iterator to go through all image planes
MItDependencyNodes it(MFn::kImagePlane);
//iterate through all image planes
while(!it.isDone())
{
// Get the imagePlane object
MStatus status;
MObject object = it.thisNode(&status);
...
}
}
}
Но теперь, когда у меня есть MObject и я знаю, что это imagePlane, я не знаю, как добраться до загруженного в него файла imageFile. Заранее спасибо за любую помощь, которую вы можете предложить!
1 ответ
Я понял! Мне просто нужно было добавить следующие операторы после кода выше, и я могу получить доступ ко всем методам и атрибутам imagePlane:
// attach a dependency node to the file node
MFnDependencyNode fn(object);
// get the attribute for the imageName path
MPlug imagePath = fn.findPlug("imageName");