This section describes some of the common messages used by references and the meaning of the PartID parameter associated with these messages.
Some messages are sent by the system while others are sent by the plugin. Each method may need to pass along additional information so the reference maker may process the message. This information is passed in the PartID parameter. The meaning of the information stored in the PartID is specific to the message sent along with it.
Macros | |
#define | REFMSG_LOOPTEST 0x00000010 |
This tests for a cyclic reference. It will return REF_FAIL if there is a loop. More... | |
#define | REFMSG_TARGET_DELETED 0x00000020 |
This message is sent when a ReferenceTarget is deleted. More... | |
#define | REFMSG_MODAPP_DELETING 0x00000021 |
Used Internally. More... | |
#define | REFMSG_EVAL 0x00000030 |
Used Internally. More... | |
#define | REFMSG_RESET_ORIGIN 0x00000040 |
Used Internally. More... | |
#define | REFMSG_CHANGE 0x00000050 |
Sent to dependents of a ReferenceTarget that has changed in some way. More... | |
#define | REFMSG_FLAGDEPENDENTS 0x00000070 |
Used Internally. More... | |
#define | REFMSG_TARGET_SELECTIONCHANGE 0x00000080 |
Used Internally. More... | |
#define | REFMSG_BEGIN_EDIT 0x00000090 |
This is used by modifiers to indicate when they are beginning an edit. More... | |
#define | REFMSG_END_EDIT 0x000000A0 |
This is used by modifiers to indicate when they are ending an edit. More... | |
#define | REFMSG_DISABLE 0x000000B0 |
Used Internally. More... | |
#define | REFMSG_ENABLE 0x000000C0 |
Used Internally. More... | |
#define | REFMSG_TURNON 0x000000D0 |
Used Internally. More... | |
#define | REFMSG_TURNOFF 0x000000E0 |
Used Internally. More... | |
#define | REFMSG_LOOKAT_TARGET_DELETED 0x000000F0 |
Used Internally. More... | |
#define | REFMSG_INVALIDATE_IF_BG 0x000000F1 |
Used Internally. More... | |
#define | REFMSG_MOD_DISPLAY_ON 0x000000F2 |
This is used by modifiers to indicate that their apparatus (gizmo) is displayed. More... | |
#define | REFMSG_MOD_DISPLAY_OFF 0x000000F3 |
This is used by modifiers to indicate that their apparatus (gizmo) is no longer displayed. More... | |
#define | REFMSG_MOD_EVAL 0x000000F4 |
Modifier uses this to tell Modapps to call their Eval() procedure. More... | |
#define | REFMSG_IS_OK_TO_CHANGE_TOPOLOGY 0x000000F5 |
Ask if it is ok to change topology. More... | |
#define | REFMSG_NODE_LINK 0x000000F6 |
Sent by a node when it has a child linked to it or unlinked from it. More... | |
#define | REFMSG_NODE_NAMECHANGE 0x000000F7 |
Sent by a node when it's name has been changed. More... | |
#define | REFMSG_OBREF_CHANGE 0x000000F8 |
Sent by a node (or derived object) when the object it references changes. More... | |
#define | REFMSG_MODIFIER_ADDED 0x000000F9 |
Sent by a derived object when a modifier is a added or deleted. More... | |
#define | REFMSG_CONTROLREF_CHANGE 0x000000FA |
Sent when an animatable switches controllers for one of it's parameters. More... | |
#define | REFMSG_GET_PARAM_NAME 0x000000FB |
A parameter block sends the message to it's client when it needs the anim name of the ith parameter. More... | |
#define | REFMSG_GET_PARAM_DIM 0x000000FC |
A parameter block sends this message to it's client when it needs to know the dimension type of the ith parameter. More... | |
#define | REFMSG_GET_CONTROL_DIM 0x000000FD |
A controller can send this to it's client to get it's param dimension. More... | |
#define | REFMSG_TM_CHANGE 0x000000FE |
Sent when a Nodes transform matrix (TM) has changed in a different time. More... | |
#define | REFMSG_RANGE_CHANGE 0x000000FF |
A node sends this message when it's animation range changes. More... | |
#define | REFMSG_LINEHEIGHT_CHANGE 0x00000100 |
Sent to the tree view when an animatable's line height changes. More... | |
#define | REFMSG_BECOMING_ANIMATED 0x00000101 |
A controller should send this message to the track view when it becomes animated. More... | |
#define | REFMSG_SUBANIM_STRUCTURE_CHANGED 0x00000102 |
Used in the TrackView to regenerate an objects sub components. More... | |
#define | REFMSG_REF_DELETED 0x00000103 |
A target has had a reference deleted. More... | |
#define | REFMSG_REF_ADDED 0x00000104 |
A target has had a reference added. More... | |
#define | REFMSG_BRANCHED_HISTORY_CHANGED 0x00000105 |
Sent by an object that provides branching in the history to notify that the structure of the branches changed. More... | |
#define | REFMSG_NODEINSELSET_CHANGED 0x00000106 |
The selection set sends this notification when it receives REFMSG_CHANGE from an item in the selection set. More... | |
#define | REFMSG_TEST_DEPENDENCY 0x00000107 |
This method is used to see if this reference target depends on something. More... | |
#define | REFMSG_WANT_SHOWPARAMLEVEL 0x00000108 |
Queries whether to display "Parameters" in the track view. More... | |
#define | REFMSG_BEFORE_PASTE 0x00000109 |
Sent before a paste has been done. More... | |
#define | REFMSG_NOTIFY_PASTE 0x0000010A |
Sent after a paste has been done. More... | |
#define | REFMSG_UV_SYM_CHANGE 0x0000010B |
Sent when a UV Generator changes symmetry, so interactive texture display updates. More... | |
#define | REFMSG_GET_NODE_NAME 0x0000010C |
Gets the node's name. More... | |
#define | REFMSG_SEL_NODES_DELETED 0x0000010D |
Sent by the selection set whenever it has just deleted nodes. More... | |
#define | REFMSG_PRENOTIFY_PASTE 0x0000010E |
Sent before a reference target is pasted. Sent by the target about to be replaced. More... | |
#define | REFMSG_SHAPE_START_CHANGE 0x0000010F |
Sent when a shape starts changing. More... | |
#define | REFMSG_SHAPE_END_CHANGE 0x00000110 |
Sent when a shape stops changing. More... | |
#define | REFMSG_TEXMAP_REMOVED 0x00000111 |
A texture map has been removed. More... | |
#define | REFMSG_FLAG_NODES_WITH_SEL_DEPENDENTS 0x00000112 |
Sent by an unselected node to see if any selected nodes depend on it. More... | |
#define | REFMSG_CONTAINED_SHAPE_POS_CHANGE 0x00000120 |
Sent by objects which contain shapes when the shape position changes. More... | |
#define | REFMSG_CONTAINED_SHAPE_SEL_CHANGE 0x00000121 |
Sent by objects which contain shapes when the shape position changes. More... | |
#define | REFMSG_CONTAINED_SHAPE_GENERAL_CHANGE 0x00000122 |
Sent by objects which contain shapes when general changes occur. More... | |
#define | REFMSG_SELECT_BRANCH 0x00000130 |
Select sub-object branch. More... | |
#define | REFMSG_MOUSE_CYCLE_STARTED 0x00000140 |
Sent when a user begins a mouse operation in the viewport. More... | |
#define | REFMSG_MOUSE_CYCLE_COMPLETED 0x00000150 |
Sent when a user ends a mouse operation in the viewport. More... | |
#define | REFMSG_CHECK_FOR_INVALID_BIND 0x00000161 |
Sent when linking nodes. More... | |
#define | REFMSG_OBJECT_CACHE_DUMPED 0x00000162 |
Sent when a cache is dumped in the pipeline. More... | |
#define | REFMSG_SFX_CHANGE 0x00000170 |
Sent by Atmospheric or Effect when it makes or deletes a reference to a node. More... | |
#define | REFMSG_OBJXREF_UPDATEMAT 0x00000180 |
For internal use only. More... | |
#define | REFMSG_OBJXREF_UPDATECTRL 0x00000181 |
For internal use only. More... | |
#define | REFMSG_OBJECT_REPLACED 0x00000200 |
Sent when objects are replaced from another scene (File->Replace). More... | |
#define | REFMSG_NODE_WIRECOLOR_CHANGED 0x00000210 |
Sent when nodes wireframe color is changed. More... | |
#define | REFMSG_NUM_SUBOBJECTTYPES_CHANGED 0x00000211 |
Indicates that the subobject types have changed and that the StackView should be updated. More... | |
#define | REFMSG_GET_NODE_HANDLE 0x00000220 |
Returns a unique (per session) node handle integer. More... | |
#define | REFMSG_END_MODIFY_PARAMS 0x00000230 |
This will cause EndEditParams to be called on the object displayed in the modify panel. More... | |
#define | REFMSG_BEGIN_MODIFY_PARAMS 0x00000231 |
This will cause BeginEditParams to be called on the object displayed in the modify panel. More... | |
#define | REFMSG_NODE_HANDLE_CHANGED 0x00000233 |
Sent to merged objects so that they can convert node handles. More... | |
#define | REFMSG_NODE_WSCACHE_UPDATED 0x00000234 |
The pipeline was reevaluated and the wscache was updated. More... | |
#define | REFMSG_NODE_MATERIAL_CHANGED 0x00000235 |
This notification is sent after a new material was assigned to a node. More... | |
#define | REFMSG_SUBANIM_NUMBER_CHANGED 0x00000236 |
This notification is sent to dependents when a subanim's changes order. More... | |
#define | REFMSG_NODE_FLAGOMB_RENDER 0x00000237 |
A Node is rendered with motion blur. More... | |
#define | REFMSG_NODE_GI_PROP_CHANGED 0x00000238 |
For Internal use only. More... | |
#define | REFMSG_KEY_SELECTION_CHANGED 0x00000239 |
Sent when key selection changes. More... | |
#define | REFMSG_NODE_RENDERING_PROP_CHANGED 0x00000240 |
Sent AFTER the Node Rendering Properties have changed The part id will contain information about the property that has changed. More... | |
#define | REFMSG_NODE_DISPLAY_PROP_CHANGED 0x00000241 |
Notification sent AFTER the Node Display Properties have changed. More... | |
#define | REFMSG_NODE_LAYER_PROP_CHANGED 0x00000242 |
Sent AFTER an ILayer's properties have changed Sent only to the immediate dependents of the ILayer. More... | |
#define | REFMSG_MXS_CUSTATTRIB_CHANGE 0x00000250 |
Message type propagated to dependents of scripted Custom Attribute (CA) when CA gets a REFMSG_CHANGE. More... | |
#define | REFMSG_NODE_PRE_DELETE 0x00000255 |
This message is sent immediately prior to a node being deleted. More... | |
#define | REFMSG_LOCKED 0x00000260 |
This message is sent after an item has been locked. More... | |
#define | REFMSG_UNLOCKED 0x00000261 |
This message is sent after an item has been unlocked. More... | |
#define | REFMSG_OBJECT_DEFINITION_CHANGE_BEGIN 0x00000270 |
This message is sent immediately before an object instance is updated to a new object definition. More... | |
#define | REFMSG_OBJECT_DEFINITION_CHANGE_END 0x00000271 |
This message is sent immediately after an object instance is updated to a new object definition. More... | |
#define | REFMSG_DISPLAY_MATERIAL_CHANGE 0x00000275 |
Notification sent when any parameters of the material or texture map changed. More... | |
#define | REFMSG_USER 0x00010000 |
Message numbers above this value can be defined for use by sub-classes, below are reserved. More... | |
Typedefs | |
typedef unsigned int | RefMessage |
The message passed to notify and evaluate. More... | |
Defines XRef Messages | |
Sent to build a list of nodes which use a particular XRef object. | |
#define | REFMSG_OBJXREF_GETNODES 0x00000190 |
For Internal use only. More... | |
#define | REFMSG_CTRLXREF_GETNODES 0x00000191 |
For internal use only. More... | |
#define | REFMSG_MTLXREF_GETNODES 0x00000192 |
For internal use only. More... | |
Notifications sent by ParamBlock2 and IRefTargContainer-derived classes | |
#define | REFMSG_CONTAINER_ELEMENT_NULLED 0x00000232 |
Sent when a reftarg held by ParamBlock2 or a IRefTargContainer-derived class instance is deleted. More... | |
#define | REFMSG_CONTAINER_ELEMENT_ADDED 0x00000280 |
Notification sent by by IRefTargContainer-derived class instances to immediate dependents when a item slot is added. More... | |
#define | REFMSG_CONTAINER_ELEMENT_REMOVED 0x00000281 |
Notification sent by by IRefTargContainer-derived class instances to immediate dependents when a item slot is removed. More... | |
#define | REFMSG_CONTAINER_ELEMENT_SET 0x00000282 |
Notification sent by IRefTargContainer-derived class instances to immediate dependents when a item slot is set. More... | |
#define | REFMSG_HISTORY_POS_CHANGED 0x00000283 |
Notification sent when any position in modifier stack has changed. More... | |
Messages sent from ReferenceMaker to ReferenceTarget | |
#define | TARGETMSG_USER 0x00010000 |
Codes used by a ReferenceMaker to send 'reverse' notification messages to a RefTarget. More... | |
#define | TARGETMSG_ATTACHING_NODE 0x00000010 |
Sent to a Node's Modifiers and ObjectRef when the node is attaching the object to itself. More... | |
#define | TARGETMSG_DELETING_NODE 0x00000020 |
Sent to a Node's Modifiers and ObjectRef when the node is about to be explicitly deleted. More... | |
#define | TARGETMSG_DETACHING_NODE 0x00000030 |
Sent to a Node's Modifiers and ObjectRef when the node is detaching the object from itself. More... | |
#define | TARGETMSG_TRANSFORMING_NODE 0x00000040 |
Sent to a Node's Modifiers and ObjectRef when the node's transform is changed. More... | |
#define REFMSG_LOOPTEST 0x00000010 |
This tests for a cyclic reference. It will return REF_FAIL if there is a loop.
#define REFMSG_TARGET_DELETED 0x00000020 |
This message is sent when a ReferenceTarget is deleted.
In response to this notification, a ReferenceMaker that makes a weak reference to the ReferenceTarget or if the target is a node (INode), must set its reference storage (data member) to NULL. Note that the ReferenceMaker must not call ReferenceMaker::DeleteReference() or ReferenceMaker::ReplaceReference() to set its reference handle to NULL. Also, the ReferenceMaker must not delete itself in response to this notification. Instead, it should return a value of REF_AUTO_DELETE if it is to be deleted. In the event that multiple references to the ReferenceTarget being deleted are being held, the handler for this message must set just the first (in GetReference index order) reference handle to the ReferenceTarget to NULL. This message will be sent once per reference count, and the calling code performs validations that the message was handled properly. The validation assumes that the lowest reference index pointing to the ReferenceTarget being deleted is the reference that is cleared. For instance if a ReferenceMaker holds multiple references to a particular node in reference slots 4, 67 and 345, this message will be sent three times. The first call must clear reference slot 4, the second reference slot 67, and the third reference slot 345. Normally you do not need to handle this message if your ReferenceMaker holds only strong references to objects other than nodes, as the strong reference should prevent the object from being deleted. In the event that the object is deleted anyhow (typically by an improper hard delete being performed on the object) 3ds Max will automatically delete all references to that object.
#define REFMSG_MODAPP_DELETING 0x00000021 |
Used Internally.
#define REFMSG_EVAL 0x00000030 |
Used Internally.
#define REFMSG_RESET_ORIGIN 0x00000040 |
Used Internally.
#define REFMSG_CHANGE 0x00000050 |
Sent to dependents of a ReferenceTarget that has changed in some way.
Any time a reference target changes in a way that may affect items which reference it, this message should be sent. Note the following for the PartID that are sent during this message:
Objects and Modifier set the PartID to the channel which changed. See the section on the Geometric Pipeline for more information on channels. There are several specific PartID referring to channels. See partid_object_channel.
#define REFMSG_FLAGDEPENDENTS 0x00000070 |
Used Internally.
#define REFMSG_TARGET_SELECTIONCHANGE 0x00000080 |
Used Internally.
#define REFMSG_BEGIN_EDIT 0x00000090 |
This is used by modifiers to indicate when they are beginning an edit.
For example, in SimpleMod::BeginEditParams() this message is sent.
#define REFMSG_END_EDIT 0x000000A0 |
This is used by modifiers to indicate when they are ending an edit.
For example in SimpleMod::EndEditParams() this message is sent. Typically what a modifier will do while it is being edited it will have its LocalValidity() return NEVER so that a cache is built before it. This will ensure it is more interactive while it is being edited. When this message is sent to indicate the edit is finished the system can discard the cache.
#define REFMSG_DISABLE 0x000000B0 |
Used Internally.
#define REFMSG_ENABLE 0x000000C0 |
Used Internally.
#define REFMSG_TURNON 0x000000D0 |
Used Internally.
#define REFMSG_TURNOFF 0x000000E0 |
Used Internally.
#define REFMSG_LOOKAT_TARGET_DELETED 0x000000F0 |
Used Internally.
#define REFMSG_INVALIDATE_IF_BG 0x000000F1 |
Used Internally.
#define REFMSG_MOD_DISPLAY_ON 0x000000F2 |
This is used by modifiers to indicate that their apparatus (gizmo) is displayed.
For example in SimpleMod::BeginEditParams() this message is sent.
#define REFMSG_MOD_DISPLAY_OFF 0x000000F3 |
This is used by modifiers to indicate that their apparatus (gizmo) is no longer displayed.
#define REFMSG_MOD_EVAL 0x000000F4 |
Modifier uses this to tell Modapps to call their Eval() procedure.
This is sent by a modifier to cause its ModApp to call Eval() on the modifier. If a modifier wants its ModifyObject() method to be called it can send this message. The PartID should contain the bits that specify which channels are to be evaluated, for example PART_GEOM|PART_TOPO or ALL_CHANNELS. The interval passed should be set to Interval(t, t), where t is the time the to evaluate. Note that before NotifyDependents() returns, ModifyObject() will be called.
#define REFMSG_IS_OK_TO_CHANGE_TOPOLOGY 0x000000F5 |
Ask if it is ok to change topology.
If any dependents have made topology-dependent modifications, they should return REF_FAIL:
#define REFMSG_NODE_LINK 0x000000F6 |
Sent by a node when it has a child linked to it or unlinked from it.
#define REFMSG_NODE_NAMECHANGE 0x000000F7 |
Sent by a node when it's name has been changed.
For example, the path controller displays the name of the node in the scene which it follows. It responds to this message by changing the name displayed in the UI.
#define REFMSG_OBREF_CHANGE 0x000000F8 |
Sent by a node (or derived object) when the object it references changes.
#define REFMSG_MODIFIER_ADDED 0x000000F9 |
Sent by a derived object when a modifier is a added or deleted.
#define REFMSG_CONTROLREF_CHANGE 0x000000FA |
Sent when an animatable switches controllers for one of it's parameters.
#define REFMSG_GET_PARAM_NAME 0x000000FB |
A parameter block sends the message to it's client when it needs the anim name of the ith parameter.
#define REFMSG_GET_PARAM_DIM 0x000000FC |
A parameter block sends this message to it's client when it needs to know the dimension type of the ith parameter.
PartID is set to a pointer to a GetParamDim structure defined in iparamb.h
#define REFMSG_GET_CONTROL_DIM 0x000000FD |
A controller can send this to it's client to get it's param dimension.
It should set PartID to a ParamDimension.
#define REFMSG_TM_CHANGE 0x000000FE |
Sent when a Nodes transform matrix (TM) has changed in a different time.
This message is sent by a node when it's TM has changed because it was evaluated at a different time. Normally this isn't necessary - anyone depending on the node's TM would have a validity interval that reflected the validity of the TM. The axis system doesn't store a validity interval (it probably should) so this message is needed for it.
#define REFMSG_RANGE_CHANGE 0x000000FF |
A node sends this message when it's animation range changes.
#define REFMSG_LINEHEIGHT_CHANGE 0x00000100 |
Sent to the tree view when an animatable's line height changes.
#define REFMSG_BECOMING_ANIMATED 0x00000101 |
A controller should send this message to the track view when it becomes animated.
If the user has the animated only filter on then the track view will display this item.
#define REFMSG_SUBANIM_STRUCTURE_CHANGED 0x00000102 |
Used in the TrackView to regenerate an objects sub components.
This is intended mainly for the TrackView to tell it to regenerate it's view below the message sender's level. If a plugin has a variable number of parameters this message may be used.
#define REFMSG_REF_DELETED 0x00000103 |
A target has had a reference deleted.
#define REFMSG_REF_ADDED 0x00000104 |
A target has had a reference added.
#define REFMSG_BRANCHED_HISTORY_CHANGED 0x00000105 |
Sent by an object that provides branching in the history to notify that the structure of the branches changed.
#define REFMSG_NODEINSELSET_CHANGED 0x00000106 |
The selection set sends this notification when it receives REFMSG_CHANGE from an item in the selection set.
The selection set doesn't propagate the REFMSG_CHANGE message.
#define REFMSG_TEST_DEPENDENCY 0x00000107 |
This method is used to see if this reference target depends on something.
If the PartID is nonzero, the dependency test will include child nodes. Otherwise, child nodes will not be considered dependents. See ReferenceTarget::BeginDependencyTest().
#define REFMSG_WANT_SHOWPARAMLEVEL 0x00000108 |
Queries whether to display "Parameters" in the track view.
A Parameter block sends this to its client to ask if it should display a distinct "Parameters" level in the track view hierarchy. A pointer to a boolean is passed in for PartID - set this to the desired answer. The default is NO – in this case the message doesn't need to be responded to.
#define REFMSG_BEFORE_PASTE 0x00000109 |
Sent before a paste has been done.
Sent as PartID is a pointer to a data structure containing three RefTargetHandle's: the reference maker, the old target, and the new target. The message is sent to the reference maker initially.
#define REFMSG_NOTIFY_PASTE 0x0000010A |
Sent after a paste has been done.
Sent as PartID is a pointer to a data structure containing three RefTargetHandle's: the reference maker, the old target, and the new target. The message is sent to the reference maker initially.
#define REFMSG_UV_SYM_CHANGE 0x0000010B |
Sent when a UV Generator changes symmetry, so interactive texture display updates.
#define REFMSG_GET_NODE_NAME 0x0000010C |
Gets the node's name.
The first node that gets this message will fill in the MSTR, which PartID points to, with its name and stop the message from propagating.
#define REFMSG_SEL_NODES_DELETED 0x0000010D |
Sent by the selection set whenever it has just deleted nodes.
#define REFMSG_PRENOTIFY_PASTE 0x0000010E |
Sent before a reference target is pasted. Sent by the target about to be replaced.
#define REFMSG_SHAPE_START_CHANGE 0x0000010F |
Sent when a shape starts changing.
Sent when a shape enters a state where it'll be changing a lot and it would be a good idea for anybody using it for mesh generation to suppress updates.
#define REFMSG_SHAPE_END_CHANGE 0x00000110 |
Sent when a shape stops changing.
#define REFMSG_TEXMAP_REMOVED 0x00000111 |
A texture map has been removed.
This tells the material editor to remove it from the viewport if it is active.
#define REFMSG_FLAG_NODES_WITH_SEL_DEPENDENTS 0x00000112 |
Sent by an unselected node to see if any selected nodes depend on it.
The PartID param points to a boolean. If a selected node receives this message it should set the boolean to true and return REF_STOP.
#define REFMSG_CONTAINED_SHAPE_POS_CHANGE 0x00000120 |
Sent by objects which contain shapes when the shape position changes.
#define REFMSG_CONTAINED_SHAPE_SEL_CHANGE 0x00000121 |
Sent by objects which contain shapes when the shape position changes.
#define REFMSG_CONTAINED_SHAPE_GENERAL_CHANGE 0x00000122 |
Sent by objects which contain shapes when general changes occur.
#define REFMSG_SELECT_BRANCH 0x00000130 |
Select sub-object branch.
When an object receives this message it should do what ever it needs to do (usually select the appropriate sub-object) to make the dependent object be the object returned from GetPipeBranch(). The PartID will point to an INode pointer that will be filled in by the first node to receive this message.
#define REFMSG_MOUSE_CYCLE_STARTED 0x00000140 |
Sent when a user begins a mouse operation in the viewport.
These messages are sent to dependents of the transform matrix controllers for selected objects when the user begins and ends a mouse transformation in the viewports (move/rotate/scale).
#define REFMSG_MOUSE_CYCLE_COMPLETED 0x00000150 |
Sent when a user ends a mouse operation in the viewport.
#define REFMSG_CHECK_FOR_INVALID_BIND 0x00000161 |
Sent when linking nodes.
Sent by a node to other nodes (which depend on that node) when the user attempts to link another node to a node. The PartID parameter contains a pointer to the new parent node.
#define REFMSG_OBJECT_CACHE_DUMPED 0x00000162 |
Sent when a cache is dumped in the pipeline.
Sent when a cache is dumped in the pipeline. A REFMSG_CHANGE message used to be sent, however that was misleading since the object itself didn't change even though any old object pointer has become invalid. For example, if a path controller depends on a spline object and that object dumps some caches in the pipeline, the path controller hasn't actually changed. Also modifiers that reference INode to only get its transformation data should stop the propagation of this message. For example:
#define REFMSG_SFX_CHANGE 0x00000170 |
Sent by Atmospheric or Effect when it makes or deletes a reference to a node.
When Atmospherics or Effects add or delete a gizmo they should send this message via NotifyDependents().
#define REFMSG_OBJXREF_UPDATEMAT 0x00000180 |
For internal use only.
Sent when updating object xrefs. PartID contains new material. When a node receives this message it will set its material to the new one.
#define REFMSG_OBJXREF_UPDATECTRL 0x00000181 |
For internal use only.
Sent when updating object xrefs. PartID contains new controller. When a node receives this message it will set its controller to the new one.
#define REFMSG_OBJXREF_GETNODES 0x00000190 |
For Internal use only.
#define REFMSG_CTRLXREF_GETNODES 0x00000191 |
For internal use only.
PartID points to a table of base node pointers.
#define REFMSG_MTLXREF_GETNODES 0x00000192 |
For internal use only.
PartID points to a table of base node pointers.
#define REFMSG_OBJECT_REPLACED 0x00000200 |
Sent when objects are replaced from another scene (File->Replace).
Other objects referencing the object that is replaced may want to perform some validity checking; this message is more specific than REFMSG_SUBANIM_STRUCTURE_CHANGED.
#define REFMSG_NODE_WIRECOLOR_CHANGED 0x00000210 |
Sent when nodes wireframe color is changed.
#define REFMSG_NUM_SUBOBJECTTYPES_CHANGED 0x00000211 |
Indicates that the subobject types have changed and that the StackView should be updated.
#define REFMSG_GET_NODE_HANDLE 0x00000220 |
Returns a unique (per session) node handle integer.
The partID contains a pointer to a ULONG. The first node that gets this message will assign its node handle to this ULONG, and will return REF_STOP to terminate further propagation of the message.
#define REFMSG_END_MODIFY_PARAMS 0x00000230 |
This will cause EndEditParams to be called on the object displayed in the modify panel.
#define REFMSG_BEGIN_MODIFY_PARAMS 0x00000231 |
This will cause BeginEditParams to be called on the object displayed in the modify panel.
#define REFMSG_NODE_HANDLE_CHANGED 0x00000233 |
Sent to merged objects so that they can convert node handles.
After merging nodes into the scene, all merged objects will receive this reference notification. The PartID will be a pointer to a merge manager interface that you can use to see if a specific handle was converted and convert between the old and the new handle.
Node handles can change when a scene is merged and if you keep track of nodes using their handles you need to intercept this message. The PartID will be a pointer to an IMergeManager object that you can use to map between the old and new handle.
#define REFMSG_NODE_WSCACHE_UPDATED 0x00000234 |
The pipeline was reevaluated and the wscache was updated.
Sent from the node (without propagation) whenever the world state cache gets updated (e.g. when the pipeline gets reevaluated).
#define REFMSG_NODE_MATERIAL_CHANGED 0x00000235 |
This notification is sent after a new material was assigned to a node.
#define REFMSG_SUBANIM_NUMBER_CHANGED 0x00000236 |
This notification is sent to dependents when a subanim's changes order.
It is used by things like scripted plugin's and custom attributes to tell expression and wire controllers when the user redefines the ordering of parameters so these controllers can keep pointing at the correct parameter. The PartID is a Tab<DWORD>* in which each DWORD contains an old-to-new mapping with the LOWORD() = old subanim number and the HIWORD() = new subanim number. A new subanim ID of -1 implies the subanim was removed. See maxsdk/samples/control/exprctrl.cpp for example use. NOTE: If you send this message, the 'propagate' argument of NotifyDependents must be false. Otherwise, dependents of dependents think that their ref's subAnim numbering is changing.
#define REFMSG_NODE_FLAGOMB_RENDER 0x00000237 |
A Node is rendered with motion blur.
#define REFMSG_NODE_GI_PROP_CHANGED 0x00000238 |
For Internal use only.
Notification sent AFTER the Global Illumination (radiosity) properties of a node changed.
The PartId will contain information about the property that has changed.
#define REFMSG_KEY_SELECTION_CHANGED 0x00000239 |
Sent when key selection changes.
#define REFMSG_NODE_RENDERING_PROP_CHANGED 0x00000240 |
Sent AFTER the Node Rendering Properties have changed The part id will contain information about the property that has changed.
#define REFMSG_NODE_DISPLAY_PROP_CHANGED 0x00000241 |
Notification sent AFTER the Node Display Properties have changed.
The part id will contain information about the property that has changed.
#define REFMSG_NODE_LAYER_PROP_CHANGED 0x00000242 |
#define REFMSG_MXS_CUSTATTRIB_CHANGE 0x00000250 |
Message type propagated to dependents of scripted Custom Attribute (CA) when CA gets a REFMSG_CHANGE.
Scripted custom attributes sit on an object, but do not directly affect the output of that object. If a REFMSG_CHANGE message is propagated to the dependents of the CA, the REFMSG_CHANGE message will be propagated to the dependents of the object, and those dependents will think that the object has changed. This can result in caches being thrown away needlessly. In r8 and r9.0, when a scripted CA received a REFMSG_CHANGE, a REF_STOP result was returned stopping propagation to dependents. This affected things like the trackbar, where moving keys on the CA wasn't causing the trackbar to update. In r9.1, a REFMSG_CHANGE notification to the scripted custom attribute causes a REFMSG_MXS_CUSTATTRIB_CHANGE notification to be sent to the dependents of the CA.
#define REFMSG_NODE_PRE_DELETE 0x00000255 |
This message is sent immediately prior to a node being deleted.
This allows the reference maker to handle this condition if it depends on the deleted node. At the time this message is sent, the node's children have not been detached nor has the node been disconnected from its parent. This message is sent to only the immediate dependents of the node. This message is sent immediately after the NOTIFY_SCENE_PRE_DELETED_NODE Broadcast Notification
#define REFMSG_LOCKED 0x00000260 |
This message is sent after an item has been locked.
#define REFMSG_UNLOCKED 0x00000261 |
This message is sent after an item has been unlocked.
#define REFMSG_OBJECT_DEFINITION_CHANGE_BEGIN 0x00000270 |
This message is sent immediately before an object instance is updated to a new object definition.
MAXScript allows scripted plugin and scripted custom attribute definitions to be updated by re-evaluating the definition script. The new definition can add or remove local variables, parameter blocks, parameter block items, rollouts, and rollout controls. After the new definition is evaluated, existing plugin instances are converted to this new definition. This message is sent to the dependents of a scripted plugin instance immediately before the instance is converted to the new definition. The partID passed is a ReferenceTarget pointer to the plugin instance. A dependent may use this notification to, for example, rebuild the rollout display for the instance.
#define REFMSG_OBJECT_DEFINITION_CHANGE_END 0x00000271 |
This message is sent immediately after an object instance is updated to a new object definition.
MAXScript allows scripted plugin and scripted custom attribute definitions to be updated by re-evaluating the definition script. The new definition can add or remove local variables, parameter blocks, parameter block items, rollouts, and rollout controls. After the new definition is evaluated, existing plugin instances are converted to this new definition. This message is sent to the dependents of a scripted plugin instance immediately after the instance is converted to the new definition. The partID passed is a ReferenceTarget pointer to the plugin instance. A dependent may use this notification to, for example, rebuild the rollout display for the instance.
#define REFMSG_DISPLAY_MATERIAL_CHANGE 0x00000275 |
Notification sent when any parameters of the material or texture map changed.
This message is used by viewport material notifier only. Nitrous material notification system ignores validity of a material. It updates material only when receiving this notification.
#define REFMSG_CONTAINER_ELEMENT_NULLED 0x00000232 |
Sent when a reftarg held by ParamBlock2 or a IRefTargContainer-derived class instance is deleted.
Sent by ParamBlock2 and IRefTargContainer-derived class instances to its owner whenever a reftarg parameter is forcibly deleted and the reference set to NULL (typically for INODE_TABs when a scene node is deleted in the viewport). For ParamBlock2 instances, you can use IParamBlock2::LastNotifyParamID(int& tabIndex) to determine which parameter/element was NULLed. For IRefTargContainer-derived instances, IRefTargContainer::GetChangedRefTargetIndex() can be used.
#define REFMSG_CONTAINER_ELEMENT_ADDED 0x00000280 |
Notification sent by by IRefTargContainer-derived class instances to immediate dependents when a item slot is added.
#define REFMSG_CONTAINER_ELEMENT_REMOVED 0x00000281 |
Notification sent by by IRefTargContainer-derived class instances to immediate dependents when a item slot is removed.
#define REFMSG_CONTAINER_ELEMENT_SET 0x00000282 |
Notification sent by IRefTargContainer-derived class instances to immediate dependents when a item slot is set.
#define REFMSG_HISTORY_POS_CHANGED 0x00000283 |
Notification sent when any position in modifier stack has changed.
#define REFMSG_USER 0x00010000 |
Message numbers above this value can be defined for use by sub-classes, below are reserved.
#define TARGETMSG_USER 0x00010000 |
Codes used by a ReferenceMaker to send 'reverse' notification messages to a RefTarget.
Developers who define their own reference target messages should do so using a value greater than:
Target notify message IDs above this value can be used by other plugins
Best if large random IDs
#define TARGETMSG_ATTACHING_NODE 0x00000010 |
Sent to a Node's Modifiers and ObjectRef when the node is attaching the object to itself.
#define TARGETMSG_DELETING_NODE 0x00000020 |
Sent to a Node's Modifiers and ObjectRef when the node is about to be explicitly deleted.
#define TARGETMSG_DETACHING_NODE 0x00000030 |
Sent to a Node's Modifiers and ObjectRef when the node is detaching the object from itself.
#define TARGETMSG_TRANSFORMING_NODE 0x00000040 |
Sent to a Node's Modifiers and ObjectRef when the node's transform is changed.
typedef unsigned int RefMessage |
The message passed to notify and evaluate.