3ds Max C++ API Reference
|
#include "BuildWarnings.h"
#include "maxheap.h"
#include "strbasic.h"
#include "noncopyable.h"
#include "autoptr.h"
#include <WTypes.h>
#include "CoreExport.h"
#include "Animatable.h"
#include "AnimatableFlags.h"
#include "hold.h"
#include "channels.h"
Classes | |
class | RemapDir |
For remapping references during a Clone. More... | |
class | PostPatchProc |
class | DependentEnumProc |
A callback class for enumerating dependents. More... | |
class | SaveEnumProc |
A callback class for saving dependents. More... | |
class | DefaultRemapDir |
Implements a default version of a RemapDir. More... | |
class | ReferenceMaker |
A scene entity that owns other scene entities and listens to messages from them. More... | |
class | ReferenceTarget |
A scene entity that is being owned and listened to by other scene entities. More... | |
class | DependentIterator |
Iterates through all direct dependents of a given ReferenceTarget. More... | |
class | DeletedRestore |
class | RefEnumProc |
A callback class for ReferenceMaker::EnumRefHierarchy. More... | |
class | GlobalReferenceMaker |
This class lets you tap in to ALL reference messages in the entire system. More... | |
class | GlobalReferenceMaker::GlobalReferenceDisableGuard |
This class is used to temporarily disable global reference makers. More... | |
class | SingleRefMaker |
Reference Maker to single entity. More... | |
class | TypedSingleRefMaker< T > |
class | AnimateSuspend |
Suspends the "animate" mode in an exception safe manner. More... | |
class | SuspendAll |
Suspends various system states in an exception safe manner. More... | |
Namespaces | |
namespace | MaxSDK |
Macros | |
#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. | |
#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. | |
#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. | |
#define | REFMSG_END_EDIT 0x000000A0 |
This is used by modifiers to indicate when they are ending an edit. | |
#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. | |
#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. | |
#define | REFMSG_IS_OK_TO_CHANGE_TOPOLOGY 0x000000F5 |
Ask if it is ok to change topology. | |
#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 its name has been changed. | |
#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. | |
#define | REFMSG_GET_CONTROL_DIM 0x000000FD |
A controller can send this to it's client to get it's param dimension. | |
#define | REFMSG_TM_CHANGE 0x000000FE |
Sent when a Nodes transform matrix (TM) has changed in a different time. | |
#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. | |
#define | REFMSG_SUBANIM_STRUCTURE_CHANGED 0x00000102 |
Used in the TrackView to regenerate an objects sub components. | |
#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. | |
#define | REFMSG_TEST_DEPENDENCY 0x00000107 |
This method is used to see if this reference target depends on something. | |
#define | REFMSG_WANT_SHOWPARAMLEVEL 0x00000108 |
Queries whether to display "Parameters" in the track view. | |
#define | REFMSG_BEFORE_PASTE 0x00000109 |
Sent before a paste has been done. | |
#define | REFMSG_NOTIFY_PASTE 0x0000010A |
Sent after a paste has been done. | |
#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. | |
#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. | |
#define | REFMSG_SHAPE_END_CHANGE 0x00000110 |
Sent when a shape stops changing. | |
#define | REFMSG_TEXMAP_REMOVED 0x00000111 |
A texture map has been removed. | |
#define | REFMSG_FLAG_NODES_WITH_SEL_DEPENDENTS 0x00000112 |
Sent by an unselected node to see if any selected nodes depend on it. | |
#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. | |
#define | REFMSG_MOUSE_CYCLE_STARTED 0x00000140 |
Sent when a user begins a mouse operation in the viewport. | |
#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. | |
#define | REFMSG_OBJECT_CACHE_DUMPED 0x00000162 |
Sent when a cache is dumped in the pipeline. | |
#define | REFMSG_SFX_CHANGE 0x00000170 |
Sent by Atmospheric or Effect when it makes or deletes a reference to a node. | |
#define | REFMSG_OBJXREF_UPDATEMAT 0x00000180 |
For internal use only. | |
#define | REFMSG_OBJXREF_UPDATECTRL 0x00000181 |
For internal use only. | |
#define | REFMSG_OBJXREF_UPDATEMAT_QUERY 0x00000182 |
For internal use only. | |
#define | REFMSG_OBJXREF_UPDATECTRL_QUERY 0x00000183 |
For internal use only. | |
#define | REFMSG_OBJECT_REPLACED 0x00000200 |
Sent when objects are replaced from another scene (File->Replace). | |
#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. | |
#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. | |
#define | REFMSG_NODE_WSCACHE_UPDATED 0x00000234 |
The pipeline was reevaluated and the wscache was updated. | |
#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. | |
#define | REFMSG_NODE_FLAGOMB_RENDER 0x00000237 |
A Node is rendered with motion blur. | |
#define | REFMSG_NODE_GI_PROP_CHANGED 0x00000238 |
For Internal use only. | |
#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. | |
#define | REFMSG_NODE_LAYER_PROP_CHANGED 0x00000242 |
Sent AFTER an ILayer's properties have changed Sent only to the immediate dependents of the ILayer. | |
#define | REFMSG_MXS_CUSTATTRIB_CHANGE 0x00000250 |
Message type propagated to dependents of scripted Custom Attribute (CA) when CA gets a REFMSG_CHANGE. | |
#define | REFMSG_NODE_PRE_DELETE 0x00000255 |
This message is sent immediately prior to a node being deleted. | |
#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. | |
#define | REFMSG_OBJECT_DEFINITION_CHANGE_END 0x00000271 |
This message is sent immediately after an object instance is updated to a new object definition. | |
#define | REFMSG_DISPLAY_MATERIAL_CHANGE 0x00000275 |
Notification sent when any parameters of the material or texture map changed. | |
#define | REFMSG_GET_PARAM_NAME_NONLOCALIZED 0x00000286 |
A parameter block sends the message to its client when it needs the nonlocalized anim name of the ith parameter. | |
#define | REFMSG_GET_PARAM_NAME_LOCALIZED 0x00000287 |
A parameter block sends the message to its client when it needs the localized anim name of the ith parameter. | |
#define | REFMSG_USER 0x00010000 |
Message numbers above this value can be defined for use by sub-classes, below are reserved. | |
#define | VALID(x) (x) |
#define | NOTIFY_ALL 0xfffffff0 |
If this super class is passed to NotifyDependents() all dependents will be notified. | |
#define | REFERENCE_MAKER_INTERFACE 0x2f96f73 |
A ULONG Interface Id to determine if an Animatable is a Reference Maker or Target. | |
#define | REFERENCE_TARGET_INTERFACE 0x66b073ea |
A ULONG Interface Id to determine if an Animatable is a Reference Maker or Target. | |
Defines XRef Messages | |
Sent to build a list of nodes which use a particular XRef object. For Internal use only. | |
#define | REFMSG_OBJXREF_GETNODES 0x00000190 |
For internal use only. | |
#define | REFMSG_CTRLXREF_GETNODES 0x00000191 |
For internal use only. | |
#define | REFMSG_MTLXREF_GETNODES 0x00000192 |
For internal use only. | |
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. | |
#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_NODE_USER_PROPERTY_CHANGED 0x00000284 |
Notification sent when a node's user defined properties changed. | |
#define | REFMSG_MODIFIER_NAMECHANGE 0x00000285 |
Sent by a modifier when its name has been changed. | |
Messages sent from ReferenceMaker to ReferenceTarget | |
#define | TARGETMSG_USER 0x00010000 |
Codes used by a ReferenceMaker to send 'reverse' notification messages to a RefTarget. | |
#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. | |
Defines enumeration return values | |
Possible return values for RefEnumProc::proc() Continues enumeration | |
#define | DEP_ENUM_CONTINUE 0 |
Halts enumeration. | |
#define | DEP_ENUM_HALT 1 |
Halts enumeration. | |
#define | DEP_ENUM_SKIP 2 |
Skip enumeration. | |
#define | REF_ENUM_CONTINUE 0 |
Halts enumeration. | |
#define | REF_ENUM_HALT 1 |
Halts enumeration. | |
#define | REF_ENUM_SKIP 2 |
Skip enumeration. | |
Typedefs | |
typedef void * | ReferenceData |
typedef unsigned int | TargetParam |
typedef ULONG_PTR | PartID |
This is NOT just a bitmask, the parameter is also used to stuff pointers, hence the ULONG_PTR. | |
typedef unsigned int | RefMessage |
The message passed to notify and evaluate. | |
typedef ReferenceTarget * | RefTargetHandle |
Creates a typename for ReferenceTarget pointers. | |
typedef ReferenceMaker * | RefMakerHandle |
Creates a typename for ReferenceMaker pointers. | |
Enumerations | |
enum | RefResult { REF_FAIL = 0 , REF_HALT = 0 , REF_SUCCEED , REF_DONTCARE , REF_STOP , REF_INVALID , REF_AUTO_DELETE } |
Return codes for reference handling and message processing methods. More... | |
enum | NotifyDependentsOption { REFNOTIFY_ALLOW_OPTIMIZATIONS = 0 , REFNOTIFY_DISALLOW_OPTIMIZATIONS , REFNOTIFY_INTERNAL_PROPAGATION_ALLOW_OPTIMIZATIONS , REFNOTIFY_INTERNAL_PROPAGATION_ALLOW_OPTIMIZATIONS_ENABLED , REFNOTIFY_INTERNAL_PROPAGATION_DISALLOW_OPTIMIZATIONS } |
Specified as argument to NotifyDependents to specify level of optimizations used. More... | |
Functions | |
CoreExport bool | CanOptimizeDependentNotifications (NotifyDependentsOption notifyDependentsOption, RefMessage message, NotifyDependentsOption &propagated_notifyDependentsOption) |
Returns true if this RefMessage can have redundant notifications optimized (inhibited). | |
CoreExport RemapDir * | NewRemapDir (BOOL use_A_WORK2_flag=FALSE) |
Gets a pointer to a default version of a RemapDir. | |
CoreExport ReferenceTarget * | CloneRefHierarchy (ReferenceTarget *rm) |
This function is used to clone a single ReferenceTarget. | |
CoreExport void | RegisterGlobalReference (GlobalReferenceMaker *maker) |
Registers an instance of this class whose NotifyRefChanged() method will receive the messages. | |
CoreExport void | UnRegisterGlobalReference (GlobalReferenceMaker *maker) |
Unregisters the class so it won't be called anymore. | |
CoreExport void | ClearAFlagInHierarchy (RefMakerHandle rm, DWORD mask) |
Clears the specified Animatable Flag bits in a reference hierarchy. | |
CoreExport void | ClearAFlagInAllAnimatables (DWORD mask) |
Clears the specified Animatable Flag bits on all Animatables. | |
CoreExport BOOL | DependsOn (RefMakerHandle mkr, RefMakerHandle targ) |
Checks if there is a path of references from a ReferenceMaker to a ReferenceTarget. | |
CoreExport DWORD | GetSavingVersion () |
Function to find out if we are saving an old version of a .MAX file. | |
CoreExport DWORD | SetSavingVersion (DWORD version) |
Function used internally to maintain the SavingVersion number, which should not be called by plugins. | |
CoreExport void | DisableRefMsgs () |
Disable reference messages globally. | |
CoreExport void | EnableRefMsgs () |
Enable reference messages globally. | |
CoreExport DWORD | IsRefMsgsDisabled () |
Returns the number of times reference messages have been marked as disabled. 0 means reference messages are enabled. | |
Variables | |
Object Channel PartIDs | |
OBJECT STATE: SUB-PARTS These are the 4 sub-channels in the object state. Don't change these defines.
| |
const PartID | PART_TOPO = (PartID)TOPO_CHANNEL |
See TOPO_CHANNEL. | |
const PartID | PART_GEOM = (PartID)GEOM_CHANNEL |
See GEOM_CHANNEL | |
const PartID | PART_TEXMAP = (PartID)TEXMAP_CHANNEL |
See TEXMAP_CHANNEL. | |
const PartID | PART_MTL = (PartID)MTL_CHANNEL |
See MTL_CHANNEL. | |
const PartID | PART_SELECT = (PartID)SELECT_CHANNEL |
See SELECT_CHANNEL. | |
const PartID | PART_SUBSEL_TYPE = (PartID)SUBSEL_TYPE_CHANNEL |
See SUBSEL_TYPE_CHANNEL. | |
const PartID | PART_DISPLAY = (PartID)DISP_ATTRIB_CHANNEL |
See DISP_ATTRIB_CHANNEL. | |
const PartID | PART_VERTCOLOR = (PartID)VERTCOLOR_CHANNEL |
See VERTCOLOR_CHANNEL. | |
const PartID | PART_GFX_DATA = (PartID)GFX_DATA_CHANNEL |
See GFX_DATA_CHANNEL. | |
const PartID | PART_DISP_APPROX = (PartID)DISP_APPROX_CHANNEL |
See DISP_APPROX_CHANNEL. | |
const PartID | PART_EXTENSION = (PartID)EXTENSION_CHANNEL |
See EXTENSION_CHANNEL. | |
const PartID | PART_TM_CHAN = (PartID)TM_CHANNEL |
Transform Channel. | |
const PartID | PART_MTL_CHAN = (PartID)GLOBMTL_CHANNEL |
Material Channel. | |
const PartID | PART_OBJECT_TYPE = (PartID)(1<<11) |
The type of object in the pipeline changed. | |
const PartID | PART_TM = (PartID)(1<<12) |
node transform matrix | |
const PartID | PART_OBJ = (PartID)(PART_TOPO|PART_GEOM) |
Combination of PART_TOPO and PART_GEOM. | |
const PartID | PART_ALL = (PartID)(ALL_CHANNELS|PART_TM) |
Combination of ALL_CHANNELS and PART_TM. | |
Node Global Illumination Property PartIDs | |
Part IDs sent with the REFMSG_NODE_GI_PROP_CHANGED message.
| |
const PartID | PART_GI_EXCLUDED = (PartID)(1<<0) |
Excluded. | |
const PartID | PART_GI_OCCLUDER = (PartID)(1<<1) |
Excluder. | |
const PartID | PART_GI_RECEIVER = (PartID)(1<<2) |
Receiver. | |
const PartID | PART_GI_DIFFUSE = (PartID)(1<<3) |
Diffuse. | |
const PartID | PART_GI_SPECULAR = (PartID)(1<<4) |
Specular. | |
const PartID | PART_GI_NBREFINESTEPS = (PartID)(1<<5) |
Refine Steps. | |
const PartID | PART_GI_MESHSIZE = (PartID)(1<<6) |
Mesh Size. | |
const PartID | PART_GI_MESHINGENABLED = (PartID)(1<<7) |
Meshing Enabled. | |
const PartID | PART_GI_USEGLOBALMESHING = (PartID)(1<<8) |
Use Global Meshing. | |
const PartID | PART_GI_EXCLUDEFROMREGATHERING = (PartID)(1<<9) |
Exclude From Regathering. | |
const PartID | PART_GI_STOREILLUMMESH = (PartID)(1<<10) |
Store Illumination Mesh. | |
const PartID | PART_GI_RAYMULT = (PartID)(1<<11) |
Ray Multiplier. | |
const PartID | PART_GI_USE_ADAPTIVE_SUBDIVISION = (PartID)(1<<12) |
Use Adaptive Subdivision. | |
const PartID | PART_GI_MIN_MESH_SIZE = (PartID)(1<<13) |
Minium Mesh size. | |
const PartID | PART_GI_INITIAL_MESH_SIZE = (PartID)(1<<14) |
Initial Mesh size. | |
const PartID | PART_GI_CONTRAST_THRESHOLD = (PartID)(1<<15) |
Contrast Threshold. | |
Node Render Property PartIDs | |
Sent with REFMSG_NODE_RENDERING_PROP_CHANGED | |
const PartID | PART_REND_PROP_RENDERABLE = (PartID)(1<<0) |
Renderable. | |
const PartID | PART_REND_PROP_CAST_SHADOW = (PartID)(1<<1) |
Cast Shadow. | |
const PartID | PART_REND_PROP_RCV_SHADOW = (PartID)(1<<2) |
Recieve Shadow. | |
const PartID | PART_REND_PROP_RENDER_OCCLUDED = (PartID)(1<<3) |
Render Occluded. | |
const PartID | PART_REND_PROP_VISIBILITY = (PartID)(1<<4) |
Visibility. | |
const PartID | PART_REND_PROP_INHERIT_VIS = (PartID)(1<<5) |
Inherit Visibility. | |
const PartID | PART_REND_PROP_PRIMARY_INVISIBILITY = (PartID)(1<<6) |
Primary Visibility. | |
const PartID | PART_REND_PROP_SECONDARY_INVISIBILITY = (PartID)(1<<7) |
Secondary Visibility. | |
PartIDs for Changing Display Properties | |
PartIDs sent with the REFMSG_NODE_DISPLAY_PROP_CHANGED message. | |
const PartID | PART_DISP_PROP_IS_HIDDEN = (PartID)(1<<0) |
Is hidden. | |
const PartID | PART_DISP_PROP_IS_FROZEN = (PartID)(1<<1) |
Is frozen. | |
const PartID | PART_DISP_PROP_SHOW_FRZN_WITH_MTL = (PartID)(1<<2) |
Show frozen with material. | |
const PartID | PART_DISP_PROP_BOX_MODE = (PartID)(1<<3) |
Box mode. | |
const PartID | PART_DISP_PROP_BACKCULL = (PartID)(1<<4) |
Backface culling. | |
const PartID | PART_DISP_PROP_ALL_EDGES = (PartID)(1<<5) |
All edges. | |
const PartID | PART_DISP_PROP_BONE_ONLY = (PartID)(1<<6) |
Bones only. | |
const PartID | PART_DISP_PROP_BONE_AS_LINE = (PartID)(1<<7) |
Bones as lines. | |
const PartID | PART_DISP_PROP_SHOW_PATH = (PartID)(1<<8) |
Show path. | |
const PartID | PART_DISP_PROP_VERT_TICKS = (PartID)(1<<9) |
Vertex ticks. | |
const PartID | PART_DISP_PROP_XRAY_MTL = (PartID)(1<<10) |
XRay material. | |
const PartID | PART_DISP_PROP_IGNORE_EXTENTS = (PartID)(1<<11) |
Ignore extents. | |
const PartID | PART_DISP_PROP_COLOR_VERTS = (PartID)(1<<12) |
Vertex colors. | |
Miscellaneous PartIDs | |
const PartID | PART_EXCLUDE_RADIOSITY = (PartID)(1<<29) |
Special part ID that prevents the radiosity engine from processing the change. | |
const PartID | PART_HIDESTATE = (PartID)(1<<30) |
Special part ID sent by visibility controllers. | |
const PartID | PART_MXS_PROPCHANGE = (PartID)(1<<16) |
Special part ID sent by MAXScript when it changes an object's parameter. | |
PartIDs when notify dependents is called with REFMSG_FLAGDEPENDENTS | |
| |
const PartID | PART_PUT_IN_FG = (PartID)(1<<0) |
Put in Foreground. | |
const PartID | PART_SHOW_DEPENDENCIES = (PartID)(1<<1) |
Show dependencies. | |
const PartID | PART_SHOWDEP_ON = (PartID)(1<<2) |
Show dependencies on. | |
#define NOTIFY_ALL 0xfffffff0 |
If this super class is passed to NotifyDependents() all dependents will be notified.
#define DEP_ENUM_CONTINUE 0 |
Halts enumeration.
#define DEP_ENUM_HALT 1 |
Halts enumeration.
#define DEP_ENUM_SKIP 2 |
Skip enumeration.
#define REFERENCE_MAKER_INTERFACE 0x2f96f73 |
A ULONG Interface Id to determine if an Animatable is a Reference Maker or Target.
#define REFERENCE_TARGET_INTERFACE 0x66b073ea |
A ULONG Interface Id to determine if an Animatable is a Reference Maker or Target.
#define REF_ENUM_CONTINUE 0 |
Halts enumeration.
#define REF_ENUM_HALT 1 |
Halts enumeration.
#define REF_ENUM_SKIP 2 |
Skip enumeration.
typedef void* ReferenceData |
typedef unsigned int TargetParam |
typedef ReferenceTarget* RefTargetHandle |
Creates a typename for ReferenceTarget pointers.
typedef ReferenceMaker* RefMakerHandle |
Creates a typename for ReferenceMaker pointers.
enum RefResult |
Return codes for reference handling and message processing methods.
Enumerator | |
---|---|
REF_FAIL | The operation failed. |
REF_HALT | Return this from your implementation of ReferenceMaker::NotifyRefChanged() in order to immediately stop sending the reference message to dependents of the RefereneTarget the message originates from. |
REF_SUCCEED | The operation succeeded. |
REF_DONTCARE | The results of the operation don't matter. |
REF_STOP | Return this from your implementation of ReferenceMaker::NotifyRefChanged() to stop propagating the reference message to your dependents, but allow it to be sent to the other dependents of the ReferenceTarget the message originates from. |
REF_INVALID | Attempts to delete an invalid reference will return this value. |
REF_AUTO_DELETE | Return this from your implementation of ReferenceMaker::NotifyRefChanged() in response to a REFMGS_TAGET_DELETED message to indicate that all the reference targets you depended on have been deleted, and you also wish to be deleted from the scene. |
Specified as argument to NotifyDependents to specify level of optimizations used.
CoreExport bool CanOptimizeDependentNotifications | ( | NotifyDependentsOption | notifyDependentsOption, |
RefMessage | message, | ||
NotifyDependentsOption & | propagated_notifyDependentsOption | ||
) |
Returns true if this RefMessage can have redundant notifications optimized (inhibited).
notifyDependentsOption | - Specifies the level of optimization currently in use. |
message | - Type of notification message that may be sent. |
propagated_notifyDependentsOption | - Returns the level of optimization dependents should request. |
CoreExport RemapDir * NewRemapDir | ( | BOOL | use_A_WORK2_flag = FALSE | ) |
Gets a pointer to a default version of a RemapDir.
use_A_WORK2_flag | - used to set this flag on all entries in the remap directory. |
CoreExport ReferenceTarget * CloneRefHierarchy | ( | ReferenceTarget * | rm | ) |
This function is used to clone a single ReferenceTarget.
you should say:
If you are cloning multiple ReferenceTargets, you should be creating a RemapDir and cloning the ReferenceTargets using RemapDir::CloneRef. Otherwise, any common ReferenceTarget under the ReferenceTargets being cloned would be cloned as separate ReferenceTargets, rather than a single ReferenceTarget that is shared. So, for example:
rm | - A pointer to the reference target to clone. |
CoreExport void RegisterGlobalReference | ( | GlobalReferenceMaker * | maker | ) |
Registers an instance of this class whose NotifyRefChanged() method will receive the messages.
maker | - Points to an instance of this class whose NotifyRefChanged() method will receive the messages |
CoreExport void UnRegisterGlobalReference | ( | GlobalReferenceMaker * | maker | ) |
Unregisters the class so it won't be called anymore.
maker | - Points to an instance of this class whose NotifyRefChanged() method will no longer receive the messages |
CoreExport void ClearAFlagInHierarchy | ( | RefMakerHandle | rm, |
DWORD | mask | ||
) |
Clears the specified Animatable Flag bits in a reference hierarchy.
This method calls ClearAFlag on the ReferenceMaker and all references from it, recursively, with the specified mask
rm | - The handle to the root ReferenceMaker to enumerate from |
mask | The bits to turn off in the Animatable flags |
CoreExport void ClearAFlagInAllAnimatables | ( | DWORD | mask | ) |
Clears the specified Animatable Flag bits on all Animatables.
This method calls ClearAFlag on all Animatables with the specified mask
mask | The bits to turn off in the Animatable flags |
CoreExport BOOL DependsOn | ( | RefMakerHandle | mkr, |
RefMakerHandle | targ | ||
) |
Checks if there is a path of references from a ReferenceMaker to a ReferenceTarget.
mkr | - The handle to the ReferenceMaker |
targ | - The handle to the ReferenceTarget |
CoreExport DWORD GetSavingVersion | ( | ) |
Function to find out if we are saving an old version of a .MAX file.
CoreExport DWORD SetSavingVersion | ( | DWORD | version | ) |
Function used internally to maintain the SavingVersion number, which should not be called by plugins.
CoreExport void DisableRefMsgs | ( | ) |
Disable reference messages globally.
The references messages are enabled by default.
Important: It is not recommended that 3rd party plugins disable reference messages. For 3ds Max to function correctly, every call to DisableRefMsgs() needs to be matched with a call to EnableRefMsgs().
Note: the following reference messages are not disabled even when reference messages are globally disabled:
CoreExport void EnableRefMsgs | ( | ) |
Enable reference messages globally.
The references messages are enabled by default.
Important: For 3ds Max to function correctly, every call to DisableRefMsgs() needs to be matched with a call to EnableRefMsgs(). Occasionally, when a plugin needs to re-enable reference messages while in a context in which they have been disabled (very likely by the plugin itself), it is important that it calls EnableRefMsgs() as many times as DisableRefMsgs() has been called. When the plugin finished its task, it should restore the reference message propagation to the previous state. The correct way to achieve this is as follows:
CoreExport DWORD IsRefMsgsDisabled | ( | ) |
Returns the number of times reference messages have been marked as disabled. 0 means reference messages are enabled.