我正在开发一个 C++ 插件,我想知道一种通过场景处理非 Maya 类对象的方法。我的意思是,我想要一个 Maya API 外部类的实例作为 Node 类的属性。该类相当复杂,由多个类组成。
我所看到的是节点可以为我提供结构化数据存储,但据我所知,它仅适用于 Maya 类型,这不足以满足我的目的。
现在我正在使用 MPxCommand 来执行该对象的计算,但是一旦完成,它就会被销毁。我想让它在场景中保持活力,所以我需要以某种方式使用节点。目前没有必要存储数据。
那么,您知道在 Maya 中执行与典型 OOP 类等效的方法吗?我在 devkit 或文档中没有找到任何示例。
class Foo : public MPxNode
{
public:
Foo () {};
virtual ~Foo () {};
virtual MStatus compute(const MPlug& plug, MDataBlock& data);
static void* creator();
static MStatus initialize();
static MObject inputMesh;
static MTypeId id;
// I want to keep it alive through the scene.
// static ClassBar myBarObject; // How can I do this??
// barFunction(...); // use ClassBar myBarObj
};
MObject Foo::inputMesh;
MTypeId Foo::id( 0x80000 );
//ClassBar Foo::myBarObj; // ????
非常感谢