ShapeMonitor/ShapeMonitor.h
#ifndef _ShapeMonitor_
#define _ShapeMonitor_
#include <maya/MNodeMessage.h>
#include "AWarray.h"
class MonitoredObject
{
public:
MonitoredObject() { renamedCallbackId = 0; dirtyCallbackId = 0; }
virtual ~MonitoredObject() {}
MCallbackId renamedCallbackId;
MCallbackId dirtyCallbackId;
};
class ShapeMonitor
{
public:
static ShapeMonitor* instance();
static ShapeMonitor* initialize();
static void destroy();
void watch(
MString mayaNodeName, MonitoredObject* pMon);
void stopWatching(
MString mayaNodeName);
void stopWatchingAll();
void stopWatchingUnselectedDagObjects(
MSelectionList& selectedObjects);
private:
ShapeMonitor();
~ShapeMonitor();
static ShapeMonitor* privateInstance;
AWarray< MonitoredObject* > monitoredObjectsPtrArray;
MonitoredObject* retrieveMonitorObject(
MString nodeName);
static void watchedObjectDirtyCallback( void* clientData );
static void watchedObjectRenamedCallback(
MObject & node,
void* clientData );
void removeCallbacks(MonitoredObject *mon);
};
#endif // _ShapeMonitor_