Ich versuche, Funktion zu erstellen, die einen MFnMesh
Zeiger erhalten und Dinge darauf tun.Erstellen Sie einen Zeiger auf ein MFnMesh
Das Problem ist, dass ich nicht meinen MFnMesh
auf einen Zeiger umwandeln kann, denke ich, das Problem ist nicht nur auf dieser Klasse ist aber auf MFnBaseClass
weil ich diesen Fehler.
/usr/autodesk/maya2015-x64/include/maya/MFnBase.h:168:14: error: ‘MFnMesh* MFnMesh::operator&() const’ is private
MFnClass * operator&() const
^
/usr/autodesk/maya2015-x64/include/maya/MFnDagNode.h:237:2: note: in expansion of macro ‘declareMinimalMFn’
declareMinimalMFn(MFnClass); \
^
/usr/autodesk/maya2015-x64/include/maya/MFnMesh.h:243:2: note: in expansion of macro ‘declareDagMFn’
declareDagMFn(MFnMesh, MFnDagNode);
^
/home/k.masson/Documents/maya/km_extendedColorSet/src/km_particlesToColorSet.cpp:159:9: error: within this context
test(&meshFn);
^
Hier ist die Funktionsprüfung, die in somefile.h
und in die Datei, die die Funktion aufrufen ist.
void test(MFnMesh * meshFn){
MStatus status = MS::kSuccess;
MString csName("YOLOSWAQDAZD");
status = meshFn->createColorSetDataMesh(csName);
MCheckStatus(status,"Error creating new color set");
}
Und hier ist das, was ich vor der test
Funktion aufrufen.
// Get the out mesh data
MDataHandle outMeshHandle = data.outputValue(aOutGeometry, &status);
MCheckStatus(status,"ERROR getting aOutGeometry");
// Copy the in mesh to the output
outMeshHandle.copy(inMeshData);
// Create a function set for the out mesh
MFnMesh meshFn(outMeshHandle.asMesh());
test(&meshFn);
Ich habe jede mögliche Weise nicht gefunden zu meinem konvertieren MFnMesh
auf einen Zeiger so versuchte ich es direkt als Objekt zu rufen und nicht einen Zeiger wie diese.
test(meshFn);
void test(MFnMesh meshFn){
MStatus status = MS::kSuccess;
MString csName("YOLOSWAQDAZD");
status = meshFn.createColorSetDataMesh(csName);
MCheckStatus(status,"Error creating new color set");
}
Und ich bekomme diese:
/usr/autodesk/maya2015-x64/include/maya/MFnMesh.h:243:16: error: ‘MFnMesh::MFnMesh(const MFnMesh&)’ is private
declareDagMFn(MFnMesh, MFnDagNode);
^
/usr/autodesk/maya2015-x64/include/maya/MFnBase.h:166:9: note: in definition of macro ‘declareMinimalMFn’
MFnClass(const MFnClass &rhs); \
^
/usr/autodesk/maya2015-x64/include/maya/MFnMesh.h:243:2: note: in expansion of macro ‘declareDagMFn’
declareDagMFn(MFnMesh, MFnDagNode);
^
/home/k.masson/Documents/maya/km_extendedColorSet/src/km_particlesToColorSet.cpp:159:14: error: within this context
test(meshFn);
^
In file included from /home/k.masson/Documents/maya/km_extendedColorSet/src/km_particlesToColorSet.cpp:29:0:
/home/k.masson/Documents/maya/km_extendedColorSet/src/kmColorSetTool.h:29:6: error: initializing argument 1 of ‘void test(MFnMesh)’
void test(MFnMesh meshFn){
So wissen Sie, wenn es trotzdem zu ist eine Funktion erstellen, die in einer Art und Weise Art und Weise auf einer MFnBase
Klasse wirkt oder sogar eine Klasse mit einem MFnBase
Attribut? Ich weiß nicht, wir können nicht diese Art von Prozess, der wirklich aktuell ist.
Ich bin neu in C++ so kann es möglich sein, dass ich einen dummen Fehler gemacht habe.
Ok Ich habe eine Lösung gefunden, aber ich weiß nicht, was das bedeutet, ich habe mich geändert die Signatur zu 'MFnMesh & Mesh' und es funktioniert –