Плагин 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");
Другие вопросы по тегам