Viewing Reference Messages

This section discusses a utility plug-in called the Reference Watcher. This plug-in is used to help understand the reference structure of a chosen item and to monitor the reference messages it sends. This provides a quick, visual way for developers to examine the use of references in 3ds Max.

This plug-in allows you to create a reference to a chosen Reference Target and then watch the messages sent as you work with the target. For instance, follow the steps below to analyze the reference messages sent by a node in the scene.

Setting up Reference Watcher in Visual Studio

The project is in \MAXSDK\HOWTO\UTILITIES\REFERENCECHECK\

Load this project into VC++, set up your input and output paths and build it. Place REFCHECK.DLU into your 3ds Max DLL search path (for example in the \Plug-inS directory). You can then run the program by choosing How To/Reference Watcher in the utility panel.

Running Reference Watcher in 3ds Max

Reset 3ds Max and create a single Box in the scene called Sphere01. Leave it selected after creation.

Launch the Reference Watcher from the Utility branch of the command panel.

Click on the Pick Reference Target to Watch button and choose the Sphere01 node from the track bar dialog by opening the Objects branch and selecting the Sphere01 label then pressing OK.

Result

The Reference Watcher utility creates a reference to the box node in the scene and displays information about it.

As you work with the node (select it/deselect it, assign modifiers, bind to space warps, assign materials, change controllers, drag the item in the viewports, etc.), you can monitor the reference messages sent. You recognized them because the use the #define name from ref.h (for exampleREFMSG_CHANGE) in the upper most window. If you want to clear the message list so you can see what messages are sent for a particular action, press the Clear Message List button first.

ListBox - Reference Messages Recieved From Target

This upper most list box shows a list of reference messages. The list is blank at first, but once the sphere is moved, it fills with messages as shown at right.

 

ListBox - ReferenceMakers Who Reference This Item

The second list box in the dialog shows the items referencing the node you have selected. This provides a way to see who is referencing an item. In the case of the Sphere01 node these are:

  • 0: NodeSelection
  • 1: Animatable
  • 2: (This Reference Watcher)
  • 3: Animatable
  • 4: Animatable

ListBox - ReferenceTargets This Item References

The bottom most list box shows the references that the node itself has. Sphere01 node has 16 reference targets. Many ReferenceTargets are NULL but you can see a few references of interest in the following table: