2017-01-13 22 views
0

Ich schreibe ein Maya C++ Plugin, das Zugriff auf die ImageFile, die in der aktuellen ImagePlane geladen ist, benötigen. Ich habe das Plugin geschrieben, und ich bin in der Lage, erfolgreich durch die ImagePlanes zu iterieren, aber ich weiß nicht, wie man die ImageFile, die auf dem ImagePlane geladen ist, bekommt. Ich habe ein Plugin geschrieben, das einen Callback für die Szene hat, die geladen wird, und ich bin dabei, dass ich erfolgreich durch die imagePlanes iteriere, aber wie gehe ich von dort fort, um den Dateinamen des Bildes in den imagePlane zu bekommen? Hier ist ein Teil meines Codes für den sceneLoaded Rückruf:Maya C++ Plugin Zugriff auf imageFile geladen in der aktuellen imagePlane

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); 

      ... 
     } 
    } 
} 

Aber jetzt, dass ich die MObject habe, und ich weiß, ihr eine Bildebene, ich weiß nicht, wie man die imagefile zu erhalten, die in sie geladen wird. Vielen Dank im Voraus für jede Hilfe, die Sie anbieten können!

+0

Klingt wie Sie versuchen, den MObject zurück auf eine Bildebene zu werfen? Was ist der Datentyp von imagePlane? – akousmata

+0

Das ist mein Problem, ich kann den Datentyp für die ImagePlane nicht finden. In der Python-API hat Maya eine imagePlane-Klasse. Das ist genau das, was ich brauche, und ich bin mir sicher, dass es in ihrer C++ API etwas Gleichwertiges gibt, aber ich kann es in der Dokumentation nicht finden. Ich muss etwas verpassen ... – Muench

Antwort

0

Ich habe es herausgefunden! Ich brauche nur die folgenden Aussagen nach dem obigen Code hinzuzufügen, und ich kann alle Bildebene Methoden zugreifen und Attribute:

 // attach a dependency node to the file node 
     MFnDependencyNode fn(object); 

     // get the attribute for the imageName path 
     MPlug imagePath = fn.findPlug("imageName"); 
Verwandte Themen