There are two classes that make it relatively easy to track changes to nodes (INode
) via indirect references: INodeMonitor
and INodeTransformMonitor
. These classes are necessary to prevent circular references, and unnecessary propagation of reference messages. Both of these classes can be cast to ReferenceTarget
.
The INodeMonitor
class will retransmit REFMSG_TARGET_DELETED
messages from an INode
to your plug-in, while the INodeMonitor
will in addition send REFMSG_CHANGE
messages when PartID
is equal to PART_TM
Creation of a reference to an INodeMonitor
is shown below:
Interface* ip = GetCOREInterface();
ReplaceReference(0, static_cast<ReferenceTarget*>(ip->CreateInstance(REF_TARGET_CLASS_ID, NODEMONITOR_CLASS_ID)));