3ds Max C++ API Reference
MaxSDK::NotificationAPI Namespace Reference

Classes

class  IInteractiveRenderingManager
 IInteractiveRenderingManager class is the entry point of the Interactive Rendering API, you can create or remove a Interactive Rendering Client Interactive rendering API is a middle API that makes the link between the low level NotificationAPI and the customer. More...
 
class  IInteractiveRenderingCallback
 InteractiveRenderingCallback is the the class to derive from to create a callback to receive events from InteractiveRendering. More...
 
class  IInteractiveRenderingClient
 Base class for Interactive Rendering clients. More...
 
class  IImmediateInteractiveRenderingClient
 Immediate client is to get notifications as soon as they happen (by opposite to OnDemand client) More...
 
class  IOnDemandInteractiveRenderingClient
 Is a client where you get the notifications on demand, they are stored until you ask for them. More...
 
class  IGenericEvent
 IGenericEvent is a common class to all notifications events received: More...
 
struct  ParamBlockData
 Is a data structure for parameter blocks updates, used with events such as : EventType_Material_ParamBlock, EventType_Node_ParamBlock, ... All related to paramblocks updates. More...
 
class  IMaterialEvent
 You receive a IMaterialEvent instance when something is changed in a Material: Events monitored : all related to materials. More...
 
class  ITexmapEvent
 You receive a ITexmapEvent instance when something is changed in a Texmap: Events monitored : all related to texmaps. More...
 
class  IReferenceTargetEvent
 You receive a IReferenceTargetEvent instance when something is changed in a ReferenceTarget: Events monitored : all related to reference targetss. More...
 
class  INodeEvent
 Base class for all events associated with notifier types: NotifierType_Node_*. More...
 
class  INodeParamBlockEvent
 Event related to a parameter block change in a node's object. More...
 
class  INodePropertyEvent
 Event related to a change in a node's object GI properties. More...
 
class  IViewEvent
 You receive a IViewEvent instance when something dealing with the view has changed: Events received with that class : EventType_View_Transform or EventType_View_Active. More...
 
class  ISceneNodeEvent
 You receive a ISceneNodeEvent instance when some nodes have been added/removed to/from the scene Event monitored: EventType_Scene_Node_Added/EventType_Scene_Node_Removed. More...
 
class  INotificationManager
 INotificationManager class is the entry point of the Notification API, you can create or remove a Notification Client. More...
 
class  INotificationCallback
 The notification callback used to process all events from the notification API. More...
 
class  INotificationClient
 Base class for a notification client, is used to subscribe to notification events by monitoring 3ds Max data. More...
 
class  IImmediateNotificationClient
 Immediate client is to get notifications as soon as they happen (by opposite to OnDemand client) More...
 
class  IOnDemandNotificationClient
 Is a notification client where you get the notifications on demand, they are stored until you ask for them. More...
 

Enumerations

enum  NodeEventType {
  EventType_Node_ParamBlock =1<<0 , EventType_Node_Uncategorized =1<<1 , EventType_Node_WireColor =1<<2 , EventType_Node_Transform =1<<3 ,
  EventType_Node_Deleted =1<<4 , EventType_Node_Hide =1<<5 , EventType_Node_Selection =1<<6 , EventType_Node_Material_Replaced =1<<7 ,
  EventType_Node_Material_Updated =1<<8 , EventType_Node_Reference =1<<9 , EventType_Node_RenderProperty =1<<10 , EventType_Node_GIProperty =1<<11 ,
  EventType_Node_DisplayProperty =1<<12 , EventType_Mesh_Vertices =1<<13 , EventType_Mesh_Faces =1<<14 , EventType_Mesh_UVs =1<<15
}
 The classes instances we receive when we are notified of a change: More...
 
enum  MaterialEventType { EventType_Material_ParamBlock =1<<0 , EventType_Material_Deleted =1<<1 , EventType_Material_Reference =1<<2 , EventType_Material_Uncategorized =1<<3 }
 The update types for materials, you will receive a IMaterialEvent. More...
 
enum  TexmapEventType { EventType_Texmap_ParamBlock =1<<0 , EventType_Texmap_Deleted =1<<1 , EventType_Texmap_Uncategorized =1<<2 }
 The update types for materials, you will receive a ITexmapEvent. More...
 
enum  ReferenceTargetEventType { EventType_ReferenceTarget_ParamBlock =1<<0 , EventType_ReferenceTarget_Deleted =1<<1 , EventType_ReferenceTarget_Uncategorized =1<<2 }
 The update types for materials, you will receive a ITexmapEvent. More...
 
enum  ViewEventType { EventType_View_Properties = 1<<0 , EventType_View_Active = 1<<1 , EventType_View_Deleted = 1<<2 , EventType_View_Type = 1<<3 }
 
enum  SceneEventType { EventType_Scene_Node_Added =1<<0 , EventType_Scene_Node_Removed =1<<1 }
 
enum  RenderSettingsEventType { EventType_RenderSettings_LockView =1<<0 }
 
enum  RenderEnvironmentEventType { EventType_RenderEnvironment_BackgroundColor =1<<0 , EventType_RenderEnvironment_EnvironmentMap =1<<1 , EventType_RenderEnvironment_EnvironmentMapState =2<<2 }
 
enum  NotifierType {
  NotifierType_Node_Camera , NotifierType_Node_Light , NotifierType_Node_Helper , NotifierType_Node_Geom ,
  NotifierType_Material , NotifierType_Texmap , NotifierType_ReferenceTarget , NotifierType_View ,
  NotifierType_SceneNode , NotifierType_RenderSettings , NotifierType_RenderEnvironment
}
 The types of notifiers which may be registered, each corresponding to its own event class. More...
 

Enumeration Type Documentation

◆ NodeEventType

The classes instances we receive when we are notified of a change:

The update types flags for nodes, you will receive a INodeEvent

Enumerator
EventType_Node_ParamBlock 

Parameter from Parameter block updated, event sent is INodeParamBlockEvent.

EventType_Node_Uncategorized 

A generic event for changes which cannot be categorized, for example as a result of NotifyRefChanged(REFMSG_CHANGE, PART_ALL).

In some cases, this event may be sent alongside other, categorized events (e.g. ParamBlock changes), as some plugins may send multiple events for a single change.

EventType_Node_WireColor 

INode wirecolor updated.

EventType_Node_Transform 

INode transform matrix updated.

EventType_Node_Deleted 

INode deleted from the scene.

EventType_Node_Hide 

INode hidden or unhidden, query the node to know.

EventType_Node_Selection 

INode selected or unselected.

EventType_Node_Material_Replaced 

INode material has been replaced by another material, in that case you will receive a INodeMaterialEvent.

EventType_Node_Material_Updated 

INode material has been updated, in that case you will receive a INodeEvent.

EventType_Node_Reference 

INode subanim structure changed, for example a shadow generator instance referenced by a light node has changed, when you receive this message, you need to retranslate the whole node.

EventType_Node_RenderProperty 

INodePropertyEvent.

EventType_Node_GIProperty 

INodePropertyEvent.

EventType_Node_DisplayProperty 

INodePropertyEvent.

EventType_Mesh_Vertices 

Mesh vertices updated.

EventType_Mesh_Faces 

Mesh faces updated.

EventType_Mesh_UVs 

Mesh UVs updated.

38  {
46 
48  EventType_Node_Hide =1<<5,
53 
57 
59  EventType_Mesh_Faces =1<<14,
60  EventType_Mesh_UVs =1<<15,
62  };
@ EventType_Node_Material_Updated
INode material has been updated, in that case you will receive a INodeEvent.
Definition: NotificationAPI_Events.h:51
@ EventType_Mesh_Faces
Mesh faces updated.
Definition: NotificationAPI_Events.h:59
@ EventType_Node_Selection
INode selected or unselected.
Definition: NotificationAPI_Events.h:49
@ EventType_Node_Transform
INode transform matrix updated.
Definition: NotificationAPI_Events.h:45
@ EventType_Node_GIProperty
INodePropertyEvent.
Definition: NotificationAPI_Events.h:55
@ EventType_Mesh_UVs
Mesh UVs updated.
Definition: NotificationAPI_Events.h:60
@ EventType_Node_Hide
INode hidden or unhidden, query the node to know.
Definition: NotificationAPI_Events.h:48
@ EventType_Node_Deleted
INode deleted from the scene.
Definition: NotificationAPI_Events.h:47
@ EventType_Node_Uncategorized
A generic event for changes which cannot be categorized, for example as a result of NotifyRefChanged(...
Definition: NotificationAPI_Events.h:43
@ EventType_Mesh_Vertices
Mesh vertices updated.
Definition: NotificationAPI_Events.h:58
@ EventType_Node_Reference
INode subanim structure changed, for example a shadow generator instance referenced by a light node h...
Definition: NotificationAPI_Events.h:52
@ EventType_Node_ParamBlock
Parameter from Parameter block updated, event sent is INodeParamBlockEvent.
Definition: NotificationAPI_Events.h:42
@ EventType_Node_WireColor
INode wirecolor updated.
Definition: NotificationAPI_Events.h:44
@ EventType_Node_DisplayProperty
INodePropertyEvent.
Definition: NotificationAPI_Events.h:56
@ EventType_Node_RenderProperty
INodePropertyEvent.
Definition: NotificationAPI_Events.h:54
@ EventType_Node_Material_Replaced
INode material has been replaced by another material, in that case you will receive a INodeMaterialEv...
Definition: NotificationAPI_Events.h:50

◆ MaterialEventType

The update types for materials, you will receive a IMaterialEvent.

Enumerator
EventType_Material_ParamBlock 

Parameter from Parameter block updated, in that case use the GetParamBlockData function from the Event to retrieve which param has changed.

EventType_Material_Deleted 

material deleted

EventType_Material_Reference 

material reference has changed, use this message only if EventType_Material_ParamBlock does not work for the event you are trying to catch as if you monitor both kinds of events you are likely to receive 2 notifications for a change in a paramblock such as add a texmap in a slot.

EventType_Material_Uncategorized 

A generic event for changes which cannot be categorized, for example as a result of NotifyRefChanged(REFMSG_CHANGE, PART_ALL).

In some cases, this event may be sent alongside other, categorized events (e.g. ParamBlock changes), as some plugins may send multiple events for a single change.

65  {
74  };
@ EventType_Material_Uncategorized
A generic event for changes which cannot be categorized, for example as a result of NotifyRefChanged(...
Definition: NotificationAPI_Events.h:72
@ EventType_Material_Deleted
material deleted
Definition: NotificationAPI_Events.h:70
@ EventType_Material_ParamBlock
Parameter from Parameter block updated, in that case use the GetParamBlockData function from the Even...
Definition: NotificationAPI_Events.h:69
@ EventType_Material_Reference
material reference has changed, use this message only if EventType_Material_ParamBlock does not work ...
Definition: NotificationAPI_Events.h:71

◆ TexmapEventType

The update types for materials, you will receive a ITexmapEvent.

Enumerator
EventType_Texmap_ParamBlock 

Parameter from Parameter block updated, in that case use the GetParamBlockData function from the Event to retrieve which param has changed.

EventType_Texmap_Deleted 

texmap deleted

EventType_Texmap_Uncategorized 

A generic event for changes which cannot be categorized, for example as a result of NotifyRefChanged(REFMSG_CHANGE, PART_ALL).

In some cases, this event may be sent alongside other, categorized events (e.g. ParamBlock changes), as some plugins may send multiple events for a single change.

77  {
85  };
@ EventType_Texmap_Uncategorized
A generic event for changes which cannot be categorized, for example as a result of NotifyRefChanged(...
Definition: NotificationAPI_Events.h:83
@ EventType_Texmap_ParamBlock
Parameter from Parameter block updated, in that case use the GetParamBlockData function from the Even...
Definition: NotificationAPI_Events.h:81
@ EventType_Texmap_Deleted
texmap deleted
Definition: NotificationAPI_Events.h:82

◆ ReferenceTargetEventType

The update types for materials, you will receive a ITexmapEvent.

Enumerator
EventType_ReferenceTarget_ParamBlock 

Parameter from Parameter block updated, in that case use the GetParamBlockData function from the Event to retrieve which param has changed.

EventType_ReferenceTarget_Deleted 

reference target deleted

EventType_ReferenceTarget_Uncategorized 

A generic event for changes which cannot be categorized, for example as a result of NotifyRefChanged(REFMSG_CHANGE, PART_ALL).

In some cases, this event may be sent alongside other, categorized events (e.g. ParamBlock changes), as some plugins may send multiple events for a single change.

88  {
92  };
@ EventType_ReferenceTarget_Uncategorized
A generic event for changes which cannot be categorized, for example as a result of NotifyRefChanged(...
Definition: NotificationAPI_Events.h:91
@ EventType_ReferenceTarget_Deleted
reference target deleted
Definition: NotificationAPI_Events.h:90
@ EventType_ReferenceTarget_ParamBlock
Parameter from Parameter block updated, in that case use the GetParamBlockData function from the Even...
Definition: NotificationAPI_Events.h:89

◆ ViewEventType

Enumerator
EventType_View_Properties 

View properties updated -transform, FOV, etc.

  • (view can be a camera, light or viewport) , you will receive a IViewEvent
EventType_View_Active 

Active view switched to another view (new view can be a camera, light or viewport) , you will receive a IViewEvent.

EventType_View_Deleted 

Active view was deleted (camera node was deleted for example), new view type is monitored automatically, you will receive a IViewEvent.

EventType_View_Type 

Active view type has changed say from perspective to top view or from a camera to persp.

view, you will receive a IViewEvent

94  {
99  EventType_View_Active = 1<<1,
100  EventType_View_Deleted = 1<<2,
101  EventType_View_Type = 1<<3,
103  };
@ EventType_View_Type
Active view type has changed say from perspective to top view or from a camera to persp.
Definition: NotificationAPI_Events.h:101
@ EventType_View_Properties
View properties updated -transform, FOV, etc.
Definition: NotificationAPI_Events.h:98
@ EventType_View_Active
Active view switched to another view (new view can be a camera, light or viewport) ,...
Definition: NotificationAPI_Events.h:99
@ EventType_View_Deleted
Active view was deleted (camera node was deleted for example), new view type is monitored automatical...
Definition: NotificationAPI_Events.h:100

◆ SceneEventType

Enumerator
EventType_Scene_Node_Added 

INode added to the scene, you will receive a ISceneNodeEvent.

EventType_Scene_Node_Removed 

INode removed from the scene, you will receive a ISceneNodeEvent.

105  {
112  };
@ EventType_Scene_Node_Added
INode added to the scene, you will receive a ISceneNodeEvent.
Definition: NotificationAPI_Events.h:109
@ EventType_Scene_Node_Removed
INode removed from the scene, you will receive a ISceneNodeEvent.
Definition: NotificationAPI_Events.h:110

◆ RenderSettingsEventType

Enumerator
EventType_RenderSettings_LockView 

Lock/Unlock view check button triggered from the render settings dialog, you will receive a IGenericEvent.

114  {
120  };
@ EventType_RenderSettings_LockView
Lock/Unlock view check button triggered from the render settings dialog, you will receive a IGenericE...
Definition: NotificationAPI_Events.h:118

◆ RenderEnvironmentEventType

Enumerator
EventType_RenderEnvironment_BackgroundColor 

Rendering environment background color changed.

EventType_RenderEnvironment_EnvironmentMap 

Rendering environment background environment map changed.

EventType_RenderEnvironment_EnvironmentMapState 

Rendering environment background environment map state changed.

Invoked by the "Use Map" checkbox toggling

122  {
130  };
@ EventType_RenderEnvironment_EnvironmentMapState
Rendering environment background environment map state changed.
Definition: NotificationAPI_Events.h:128
@ EventType_RenderEnvironment_BackgroundColor
Rendering environment background color changed.
Definition: NotificationAPI_Events.h:126
@ EventType_RenderEnvironment_EnvironmentMap
Rendering environment background environment map changed.
Definition: NotificationAPI_Events.h:127

◆ NotifierType

The types of notifiers which may be registered, each corresponding to its own event class.

Enumerator
NotifierType_Node_Camera 

INodeEvent, for a node that evaluates to a CameraObject.

NotifierType_Node_Light 

INodeEvent, for a node that evaluates to a LightObject.

NotifierType_Node_Helper 

INodeEvent, for a node that evaluates to a HelperObject.

NotifierType_Node_Geom 

INodeEvent, for a node that evaluates to a GeomObject.

NotifierType_Material 

IMaterialEvent.

NotifierType_Texmap 

ITexmapEvent.

NotifierType_ReferenceTarget 

IReferenceTargetEvent.

NotifierType_View 

IViewEvent.

NotifierType_SceneNode 

ISceneNodeEvent.

NotifierType_RenderSettings 

GenericEvent.

NotifierType_RenderEnvironment 

GenericEvent.

134  {
146  };
@ NotifierType_RenderEnvironment
GenericEvent.
Definition: NotificationAPI_Events.h:145
@ NotifierType_Node_Camera
INodeEvent, for a node that evaluates to a CameraObject.
Definition: NotificationAPI_Events.h:135
@ NotifierType_RenderSettings
GenericEvent.
Definition: NotificationAPI_Events.h:144
@ NotifierType_Material
IMaterialEvent.
Definition: NotificationAPI_Events.h:139
@ NotifierType_ReferenceTarget
IReferenceTargetEvent.
Definition: NotificationAPI_Events.h:141
@ NotifierType_Node_Light
INodeEvent, for a node that evaluates to a LightObject.
Definition: NotificationAPI_Events.h:136
@ NotifierType_Node_Geom
INodeEvent, for a node that evaluates to a GeomObject.
Definition: NotificationAPI_Events.h:138
@ NotifierType_View
IViewEvent.
Definition: NotificationAPI_Events.h:142
@ NotifierType_SceneNode
ISceneNodeEvent.
Definition: NotificationAPI_Events.h:143
@ NotifierType_Node_Helper
INodeEvent, for a node that evaluates to a HelperObject.
Definition: NotificationAPI_Events.h:137
@ NotifierType_Texmap
ITexmapEvent.
Definition: NotificationAPI_Events.h:140