3ds Max C++ API Reference
maxapi.h File Reference
#include "maxheap.h"
#include <ole2.h>
#include "cmdmode.h"
#include "sceneapi.h"
#include "rtclick.h"
#include "evuser.h"
#include "maxcom.h"
#include "plugin.h"
#include "log.h"
#include "ActionTable.h"
#include "iTreeVw.h"
#include "iRenderPresets.h"
#include "excllist.h"
#include "DefaultActions.h"
#include "RendType.h"
#include "AssetManagement/AssetType.h"
#include "box3.h"
#include "InodeTransformModes.h"
#include "TabTypes.h"
#include "GetCOREInterface.h"
#include "ref.h"
#include "RollupConstants.h"
#include "ipoint3.h"
#include "MaxDirectories.h"
#include "maxscript/ScriptSource.h"

Classes

class  NameMaker
 Creates unique names. More...
 
struct  ViewWindowMetaData
 Meta data of ViewWindow class; it contains the description of how the window is created. More...
 
class  ViewWindow
 
class  ITrackBarFilterManager
 
class  ITrackBar
 
class  ViewExp
 
class  ViewExp10
 Extends ViewExp. More...
 
class  ViewExp11
 Extends ViewExp10. More...
 
class  DeviceRect
 Represents a viewport rectangle, but with coordinates in the range [0..1] instead of in pixels. More...
 
class  ViewExp13
 Extends ViewExp11. More...
 
class  ViewExp18
 Extends ViewExp13. More...
 
class  ViewExp22
 Extends ViewExp18. More...
 
class  CreateMouseCallBack
 
class  GenericCallback
 
class  TimeChangeCallback
 
class  CommandModeChangedCallback
 
class  ISceneCallbackPriority
 An interface to set priority to ViewportDisplayCallback's. More...
 
class  ViewportDisplayCallback
 Enables non-geometric plugins to draw in the viewport. More...
 
class  ExitMAXCallback
 A callback object that will get called before the program exits. More...
 
class  ExitMAXCallback2
 A callback object that will get called before the program exits. More...
 
class  CreateRendImgSeqCallback
 A callback object called for each sequence file created with Interface8::CreateRendImgSeq() More...
 
class  MAXFileOpenDialog
 
class  MAXFileSaveDialog
 
class  TrackViewFilter
 
class  TrackViewPick
 
class  PickModeCallback
 
class  PickNodeCallback
 
class  PickAnimatableCallback
 
class  PickClassCallback
 
class  HitByNameDlgCallback
 
class  SelectFilterCallback
 
class  DisplayFilterCallback
 
class  RedrawViewsCallback
 
class  AxisChangeCallback
 
class  PreviewParams
 
class  Interface
 
class  Interface::SuspendSceneRedrawGuard
 Scene redraw guard class. More...
 
class  IObjParam
 
class  IObjCreate
 
class  Interface7
 This class extends Max's previous version of core interface (class Interface) "7" is the major version number of Max that exposes this interface. More...
 
class  Interface8
 The interface class for max version 8. More...
 
class  Interface9
 The interface class for max version 9. More...
 
class  Interface10
 Extends Interface9 Client code should retrieve this interface using GetCOREInterface10. More...
 
class  Interface11
 Extends Interface10 Client code should retrieve this interface using GetCOREInterface11. More...
 
class  Interface12
 Extends Interface11 Client code should retrieve this interface using GetCOREInterface12. More...
 
class  Interface13
 Extends Interface12 Client code should retrieve this interface using GetCOREInterface13. More...
 
class  Interface14
 Extends Interface13 Client code should retrieve this interface using GetCOREInterface14. More...
 
class  Interface15
 Extends Interface14 Client code should retrieve this interface using GetCOREInterface15. More...
 
class  Interface16
 Extends Interface15 Client code should retrieve this interface using GetCOREInterface16. More...
 
class  Interface17
 Extends Interface16 Client code should retrieve this interface using GetCOREInterface17. More...
 
class  ScopedPrePostRefNotifyDependents
 

Namespaces

 MaxSDK
 
 MaxSDK::AssetManagement
 
 MaxSDK::Graphics
 

Macros

#define MERGE_DUPS_PROMPT   0
 Prompt user when duplicate node names are encountered. More...
 
#define MERGE_DUPS_MERGE   1
 Merge nodes and keep old ones in the scene. More...
 
#define MERGE_DUPS_SKIP   2
 Do not merge nodes with duplicated names. More...
 
#define MERGE_DUPS_DELOLD   3
 Merge nodes and delete old ones from the scene. More...
 
#define MERGE_LIST_NAMES   4
 Causes a list of objects to be placed into mrgList parameter of Interface::MergeFromFile. More...
 
#define MERGE_DUPS_RENAME   1000
 Merge nodes and automatically rename them. More...
 
#define MERGE_DUP_MTL_PROMPT   MERGE_DUPS_PROMPT
 Prompt user when duplicate material names are encountered. More...
 
#define MERGE_DUP_MTL_USE_MERGED   MERGE_DUPS_DELOLD
 Merge material and replace all scene materials with the same name with the merged material. More...
 
#define MERGE_DUP_MTL_USE_SCENE   MERGE_DUPS_SKIP
 Don't merge material, use instead the scene material with the same name. More...
 
#define MERGE_DUP_MTL_RENAME   MERGE_DUPS_RENAME
 Merge material and automatically rename them. More...
 
#define MERGE_REPARENT_PROMPT   0
 Prompt user for reparenting action. More...
 
#define MERGE_REPARENT_ALWAYS   1
 Maintain node hierarchies are maintained when merging nodes. More...
 
#define MERGE_REPARENT_NEVER   2
 Don't maintain node hierarchies are maintained when merging nodes. More...
 
#define XREF_AS_PROXY   (1<<0)
 The xref objects are created as proxies. More...
 
#define XREF_XREF_MODIFIERS   0
 Modifiers will be part of the xrefed object, i.e. More...
 
#define XREF_DROP_MODIFIERS   (1<<1)
 Modifiers will not be xrefed at all, i.e. More...
 
#define XREF_MERGE_MODIFIERS   (1<<2)
 Modifiers will be merged, i.e modifiers will be accessible in the main scene's modifier panel, but won't get update on subsequent updates of the xrefed objects. More...
 
#define XREF_MERGE_MANIPULATORS   (1<<3)
 Manipulators will be merged rather than xrefed. More...
 
#define XREF_SELECT_NODES   (1<<5)
 The xrefed nodes are added to the current selection set. More...
 
#define XREF_MERGE_CONTROLLERS   (1<<6)
 Controllers will be merged rather than being xrefed. More...
 
#define XREF_MERGE_MATERIALS   (1<<7)
 Materials will be merged rather than xrefed. More...
 
#define XREF_TRACKS_XREF   (1<<8)
 Controllers will not be merged, will be xrefed. More...
 
#define XREF_TRACKS_LOCAL   (1<<9)
 Controllers will not be merged, will be local. More...
 
#define XREF_MERGE_MERGE_DUPLICATEMATCHINGLAYERS   (1<<10)
 duplicate matching Layers without an identical parent hierarchy when merging. More...
 
#define PROPSET_SUMMARYINFO   0x01
 Corresponds to the File Properties Summary tab properties. More...
 
#define PROPSET_DOCSUMMARYINFO   0x02
 Corresponds to the File Properties Contents tab properties (Document Contents). More...
 
#define PROPSET_USERDEFINED   0x04
 Corresponds to the File Properties Custom tab properties. More...
 
#define PIDSI_CONTENTSTATUS   0x00000020L
 
#define PIDSI_CONTENTTYPE   0x00000021L
 
#define PIDSI_CREATOR   0x00000022L
 
#define PIDSI_IDENTIFIER   0x00000023L
 
#define PIDSI_LANGUAGE   0x00000024L
 
#define PIDSI_VERSION   0x00000025L
 
#define I_EXEC_ACTIVATE_TEXTURE   1
 
#define I_EXEC_DEACTIVATE_TEXTURE   2
 
#define I_EXEC_RENDER_MTL_SAMPLE   3
 
#define I_EXEC_GET_VPDISPLAY_DIB   4
 
#define I_EXEC_SET_DIR   10
 
#define I_EXEC_OFFSET_SPLINE   80
 
#define I_EXEC_OFFSET_MEASURE   81
 
#define I_EXEC_TRIM_EXTEND   82
 
#define I_EXEC_NEW_OBJ_XREF_DLG   83
 
#define I_EXEC_MODIFYTASK_INVALIDATEPANEL   86
 
#define I_EXEC_INVALIDATE_VIEWEXP   87
 
#define I_EXEC_SET_NUDGE   88
 
#define I_EXEC_COUNT_MTL_SCENEREFS   0x2001
 
#define I_EXEC_RET_NULL_NODE   1
 
#define I_EXEC_RET_NULL_OBJECT   2
 
#define I_EXEC_RET_NOT_SPLINE   3
 
#define I_EXEC_RET_OFFSET_FAIL   4
 
#define VP_DEFAULT_RENDER   0x0000
 same as REDRAW_INTERACTIVE More...
 
#define VP_DONT_RENDER   0x0001
 
#define VP_DONT_SIMPLIFY   0x0002
 same as REDRAW_NORMAL More...
 
#define VP_START_SEQUENCE   0x0004
 same as REDRAW_BEGIN More...
 
#define VP_END_SEQUENCE   0x0008
 same as REDRAW_END More...
 
#define VP_SECOND_PASS   0x0010
 for when both back- and fore-ground is rendered More...
 
#define SHADE_LEVELS   10
 
#define TRACKBAR_FILTER_ALL   1
 
#define TRACKBAR_FILTER_TMONLY   2
 
#define TRACKBAR_FILTER_CURRENTTM   3
 
#define TRACKBAR_FILTER_OBJECT   4
 
#define TRACKBAR_FILTER_MATERIAL   5
 
#define TRACKBAR_FILTER_MANAGER_INTERFACE   Interface_ID(0xc85046, 0x2def7c7d)
 The ITrackBarFilterManager interface is implemented by the TrackBar. More...
 
#define TRACKBAR_INTERFACE   Interface_ID(0x2aff3557, 0x16aa714b)
 
#define CREATE_CONTINUE   1
 
#define CREATE_STOP   0
 
#define CREATE_ABORT   -1
 
#define MOUSE_STOP   0
 
#define MOUSE_CONTINUE   1
 
#define MOUSE_CAPTURE_CONTINUE   2
 
#define VIEWPORT_BKG_START   0
 
#define VIEWPORT_BKG_END   1
 
#define VIEWPORT_BKG_BLANK   0
 
#define VIEWPORT_BKG_HOLD   1
 
#define VIEWPORT_BKG_LOOP   2
 
#define VIEWPORT_BKG_ASPECT_VIEW   0
 
#define VIEWPORT_BKG_ASPECT_BITMAP   1
 
#define VIEWPORT_BKG_ASPECT_OUTPUT   2
 
#define MOVE_BUTTON   1
 
#define ROTATE_BUTTON   2
 
#define NUSCALE_BUTTON   3
 
#define USCALE_BUTTON   4
 
#define SQUASH_BUTTON   5
 
#define SELECT_BUTTON   6
 
#define PLACE_BUTTON   7
 
#define AXIS_XY   2
 
#define AXIS_ZX   1
 
#define AXIS_YZ   0
 
#define AXIS_X   3
 
#define AXIS_Y   4
 
#define AXIS_Z   5
 
#define ORIGIN_LOCAL   0
 
#define ORIGIN_SELECTION   1
 
#define ORIGIN_SYSTEM   2
 
#define COORDS_HYBRID   0
 
#define COORDS_SCREEN   1
 
#define COORDS_WORLD   2
 
#define COORDS_PARENT   3
 
#define COORDS_LOCAL   4
 
#define COORDS_OBJECT   5
 
#define COORDS_GIMBAL   6
 
#define COORDS_WORKINGPIVOT   7
 
#define COORDS_LOCAL_ALIGNED   8
 
#define TASK_MODE_CREATE   1
 
#define TASK_MODE_MODIFY   2
 
#define TASK_MODE_HIERARCHY   3
 
#define TASK_MODE_MOTION   4
 
#define TASK_MODE_DISPLAY   5
 
#define TASK_MODE_UTILITY   6
 
#define SYSCUR_MOVE   1
 
#define SYSCUR_ROTATE   2
 
#define SYSCUR_USCALE   3
 
#define SYSCUR_NUSCALE   4
 
#define SYSCUR_SQUASH   5
 
#define SYSCUR_SELECT   6
 
#define SYSCUR_DEFARROW   7
 
#define SYSCUR_MOVE_SNAP   8
 
#define REDRAW_BEGIN   (1<<0)
 
#define REDRAW_INTERACTIVE   (1<<1)
 
#define REDRAW_END   (1<<2)
 
#define REDRAW_NORMAL   (1<<3)
 
#define REDRAW_RESET_PROGRESS   (1<<4)
 
#define NUMAXIS_ZERO   0
 
#define NUMAXIS_ALL   1
 
#define NUMAXIS_INDIVIDUAL   2
 
#define STATUS_UNIVERSE   1
 
#define STATUS_SCALE   2
 
#define STATUS_ANGLE   3
 
#define STATUS_OTHER   4
 
#define STATUS_UNIVERSE_RELATIVE   5
 
#define STATUS_POLAR   6
 
#define STATUS_POLAR_RELATIVE   7
 
#define EXT_DISP_NONE   0
 no flags More...
 
#define EXT_DISP_SELECTED   (1<<0)
 object is selected More...
 
#define EXT_DISP_TARGET_SELECTED   (1<<1)
 object's target is selected More...
 
#define EXT_DISP_LOOKAT_SELECTED   (1<<2)
 object's lookat node is selected More...
 
#define EXT_DISP_ONLY_SELECTED   (1<<3)
 object is only thing selected More...
 
#define EXT_DISP_DRAGGING   (1<<4)
 object is being "dragged" More...
 
#define EXT_DISP_ZOOM_EXT   (1<<5)
 object is being tested for zoom ext More...
 
#define EXT_DISP_GROUP_EXT   (1<<6)
 object is being tested for extents as member of group More...
 
#define EXT_DISP_ZOOMSEL_EXT   (1<<7)
 object is being tested for zoom selected ext More...
 
#define REND_TIMESINGLE   0
 
#define REND_TIMESEGMENT   1
 
#define REND_TIMERANGE   2
 
#define REND_TIMEPICKUP   3
 
#define HIDE_OBJECTS   0x0001
 
#define HIDE_SHAPES   0x0002
 
#define HIDE_LIGHTS   0x0004
 
#define HIDE_CAMERAS   0x0008
 
#define HIDE_HELPERS   0x0010
 
#define HIDE_WSMS   0x0020
 
#define HIDE_SYSTEMS   0x0040
 
#define HIDE_PARTICLES   0x0080
 
#define HIDE_BONEOBJECTS   0x0100
 
#define HIDE_ALL   0xffff
 
#define HIDE_NONE   0
 
#define VP_LAYOUT_1   0x0001
 1 single full-screen viewport More...
 
#define VP_LAYOUT_2V   0x0012
 2 vertical viewports More...
 
#define VP_LAYOUT_2H   0x0022
 2 horizontal viewports More...
 
#define VP_LAYOUT_2HT   0x0032
 2 horizontal viewports, small on top More...
 
#define VP_LAYOUT_2HB   0x0042
 2 horizontal viewports, small on bottom More...
 
#define VP_LAYOUT_3VL   0x0033
 3 viewports, 2 vertically on left More...
 
#define VP_LAYOUT_3VR   0x0043
 3 viewports, 2 vertically on right More...
 
#define VP_LAYOUT_3HT   0x0053
 3 viewports, 2 horizontally on top More...
 
#define VP_LAYOUT_3HB   0x0063
 3 viewports, 2 horizontally on bottom More...
 
#define VP_LAYOUT_4   0x0074
 
#define VP_LAYOUT_4VL   0x0084
 4 viewports, 3 vertically on left More...
 
#define VP_LAYOUT_4VR   0x0094
 4 viewports, 3 vertically on right More...
 
#define VP_LAYOUT_4HT   0x00a4
 4 viewports, 3 horizontally on top More...
 
#define VP_LAYOUT_4HB   0x00b4
 4 viewports, 3 horizontally on bottom More...
 
#define VP_LAYOUT_1C   0x00c1
 
#define VP_NUM_VIEWS_MASK   0x000f
 
#define ATTRIB_HIDE   0
 If set, node is not visible in the viewport. More...
 
#define ATTRIB_FREEZE   1
 If set, node is frozen. More...
 
#define ATTRIB_BOXMODE   2
 If set, node is displayed as box. More...
 
#define ATTRIB_BACKCULL   3
 If set (default), faces with normals pointing away from the camera are not displayed. More...
 
#define ATTRIB_ALLEDGES   4
 If set, all edges including hidden ones and polygon diagonals are displayed. More...
 
#define ATTRIB_LINKDISP   5
 If set, a wireframe representation of any hierarchical link (parent\child, etc) to the node is displayed. More...
 
#define ATTRIB_LINKREPL   6
 If set, the wireframe representation of the hierarchical link is displayed instead of the node. More...
 
#define ATTRIB_UNSEL   7
 for internal use only; something is not selected More...
 
#define ATTRIB_HIDE_UNSEL   8
 for internal use only More...
 
#define ATTRIB_FREEZE_UNSEL   9
 for internal use only More...
 
#define ATTRIB_VERTTICKS   10
 If set, the vertices of the object are displayed as tick marks. More...
 
#define ATTRIB_UNHIDE   11
 for internal use only More...
 
#define ATTRIB_UNFREEZE   12
 for internal use only More...
 
#define ATTRIB_CVERTS   13
 If set, the display of vertex color channel is enabled. More...
 
#define ATTRIB_SHADE_CVERTS   14
 If set, the vertex color is shaded if the viewport is in a shaded display mode. More...
 
#define ATTRIB_XRAY   15
 If set, makes the object translucent in the viewport. More...
 
#define ATTRIB_IGNORE_EXT   16
 if set, the object is ignored by the Zoom Extents operation More...
 
#define ATTRIB_TRAJECTORY   17
 if set, the object's trajectory is displayed More...
 
#define ATTRIB_FRZMTL   18
 set, the object turns gray when it's frozen More...
 
#define ATTRIB_HIDE_WITH_LAYER   19
 if set, the hide\unhide operation applies the whole layer the object is on More...
 
#define ATTRIB_FREEZE_WITH_LAYER   20
 if set, the freeze\unfreeze operation applies to the whole layer the object is on More...
 
#define ATTRIB_INHERITVISIBILITY   100
 if set, the object inherits a percentage of its visibility from its parent More...
 
#define ATTRIB_CASTSHADOWS   101
 If set, the object can cast shadows. More...
 
#define ATTRIB_RECEIVESHADOWS   102
 If set, the object can receive shadows. More...
 
#define ATTRIB_ISTARGET   103
 If set, the object is marked as the target of another object. More...
 
#define ATTRIB_RENDERABLE   104
 If set, the object is rendered. More...
 
#define ATTRIB_RENDEROCCLUDED   105
 If set, the object becomes transparent from the point of view of special effects, thus the objects being occluded are affected by the special effects. More...
 
#define ATTRIB_RCVCAUSTICS   106
 If set, the object can receive caustics. More...
 
#define ATTRIB_GENERATECAUSTICS   107
 If set, the object can generate caustics. More...
 
#define ATTRIB_RCVGLOBALILLUM   108
 If set, the object can receive global illumination. More...
 
#define ATTRIB_GENERATEGLOBALILLUM   109
 If set, the object can generate global illumination. More...
 
#define ATTRIB_SETWIRECOLOR   110
 If set, the supplied wire frame color is set on to the object. More...
 
#define ATTRIB_SETGBUFID   111
 If set, tags an object as target for a render effect based on the supplied G-buffer channel. More...
 
#define ATTRIB_PRIMARYVISIBILITY   112
 If set, the object is visible to cameras to an extent specified by the visibility parameter. More...
 
#define ATTRIB_SECONDARYVISIBILITY   113
 If set, the object appears in rendered reflections and refractions. More...
 
#define ATTRIB_MOTIONBLUR   114
 If set, motion blur is enabled for the object. More...
 
#define I_EXEC_REGISTER_POSTSAVE_CB   1001
 For example: More...
 
#define I_EXEC_UNREGISTER_POSTSAVE_CB   1002
 Un-registers a callback which is called after a File / Save operation has occurred. More...
 
#define I_EXEC_REGISTER_PRESAVE_CB   1003
 Registers a callback which is called before a File / Save operation has occurred. More...
 
#define I_EXEC_UNREGISTER_PRESAVE_CB   1004
 Un-registers a callback which is called before a File / Save operation has occurred. More...
 
#define SCENE_CALLBACK_PRIORITY_INTERFACE   Interface_ID(0xc5b791e, 0x66e58a4)
 Interface ID used with interface class ISceneCallbackPriority. More...
 
#define VPT_TRANS_NONE   0
 
#define VPT_TRANS_STIPPLE   1
 
#define VPT_TRANS_BLEND   2
 
#define VPT_TRANS_SORT_BLEND   3
 
#define DISPLAY_WIRE_AS_MTL   1
 
#define DISPLAY_SHADED_AS_MTL   (1<<1)
 
#define DISPLAY_SELECTED_ONLY   (1<<2)
 
#define PICKTRACK_FLAG_ANIMATED   (1<<0)
 
#define PICKTRACK_FLAG_VISTRACKS   (1<<1)
 turn off display of node Visibility track More...
 
#define PICKTRACK_FLAG_SELOBJECTS   (1<<2)
 turn on display of only selected nodes More...
 
#define PICKTRACK_FLAG_WORLDMODS   (1<<3)
 turn off display of World Space Modifiers More...
 
#define PICKTRACK_FLAG_OBJECTMODS   (1<<4)
 turn off display of Object Space Modifiers More...
 
#define PICKTRACK_FLAG_TRANSFORM   (1<<5)
 turn off display of node Transform track More...
 
#define PICKTRACK_FLAG_BASEPARAMS   (1<<6)
 turn off display of node base object More...
 
#define PICKTRACK_FLAG_CONTTYPES   (1<<7)
 turn off display of controller types More...
 
#define PICKTRACK_FLAG_NOTETRACKS   (1<<8)
 turn off display of note tracks More...
 
#define PICKTRACK_FLAG_SOUND   (1<<9)
 turn off display of the sound track More...
 
#define PICKTRACK_FLAG_MATMAPS   (1<<10)
 turn off display of maps in materials More...
 
#define PICKTRACK_FLAG_MATPARAMS   (1<<11)
 turn off display of material parameters More...
 
#define PICKTRACK_FLAG_VISIBLE_OBJS   (1<<12)
 turn on display of hidden nodes More...
 
#define PICKTRACK_FLAG_HIERARCHY   (1<<13)
 turn off display of hierarchy More...
 
#define PICKTRACK_FLAG_KEYABLE   (1<<14)
 turn off display of non-keyable tracks More...
 
#define PICKTRACK_FLAG_NODES   (1<<15)
 turn off display of nodes More...
 
#define PICKTRACK_FLAG_GEOM   (1<<16)
 turn off display of geometry nodes More...
 
#define PICKTRACK_FLAG_SHAPES   (1<<17)
 turn off display of shape nodes More...
 
#define PICKTRACK_FLAG_LIGHTS   (1<<18)
 turn off display of light nodes More...
 
#define PICKTRACK_FLAG_CAMERAS   (1<<19)
 turn off display of camera nodes More...
 
#define PICKTRACK_FLAG_HELPERS   (1<<20)
 turn off display of helper nodes More...
 
#define PICKTRACK_FLAG_WARPS   (1<<21)
 turn off display of warp nodes More...
 
#define PICKTRACK_FLAG_POSITION   (1<<22)
 turn off display of position controllers More...
 
#define PICKTRACK_FLAG_ROTATION   (1<<23)
 turn off display of rotation controllers More...
 
#define PICKTRACK_FLAG_SCALE   (1<<24)
 turn off display of scale controllers More...
 
#define PICKTRACK_FLAG_BONES   (1<<25)
 turn off display of bone nodes More...
 
#define PICKTRACK_FLAG_FOCUS_SEL_NODES   (1<<26)
 set focus to first selected node found More...
 
#define PICKTRACK_FLAG_ACTIVELAYER   (1<<27) /*-- show only the active animation layer--*/
 Only show the active animation layer, instead of all. More...
 
#define PICKTRACK_FLAG_LOCKED   (1<<28) /*-- turn off display of locked tracks--*/
 Only show the unlocked tracks, instead of all. More...
 
#define MAIN_MAX_INTERFACE   Interface_ID(0x64854123, 0x7b9e551c)
 
Bitmap/Texmap Related Methods


#define DOWNLOADDLG_NOPLACE   1<<0
 

Typedefs

typedef bool(* TRACKBAR_FILTER_PROC) (Animatable *anim, Animatable *parent, int subAnimIndex, Animatable *grandParent, INode *node)
 The TrackBar filter callback function. More...
 
typedef bool(* TRACKBAR_ADDITION_PROC) (Tab< Animatable * > &anims, Tab< int > &subAnims, Tab< INode * > &nodes)
 The TrackBar filter addition callback function. More...
 
typedef MAX_DEPRECATED Interface17 Interface18
 
typedef MAX_DEPRECATED Interface17 Interface19
 

Enumerations

enum  RenderSettingID { RS_Production = 0 , RS_Draft , RS_IReshade , RS_MEdit }
 
enum  CloneType { NODE_COPY , NODE_INSTANCE , NODE_REFERENCE , NODE_NONE }
 The Clone type when copying nodes. More...
 
enum  ShadeType {
  SMOOTH_HIGHLIGHT , SMOOTH , FACET_HIGHLITE , FACET ,
  CONSTANT , HIDDENLINE , LITE_WIREFRAME , Z_WIREFRAME ,
  WIREFRAME , BOX
}
 
enum  ViewType {
  VIEW_LEFT , VIEW_RIGHT , VIEW_TOP , VIEW_BOTTOM ,
  VIEW_FRONT , VIEW_BACK , VIEW_ISO_USER , VIEW_PERSP_USER ,
  VIEW_CAMERA , VIEW_GRID , VIEW_NONE , VIEW_TRACK ,
  VIEW_SPOT , VIEW_SHAPE , VIEW_SCHEMATIC , VIEW_RENDER ,
  VIEW_SCENEEXPLORER , VIEW_OTHER
}
 

Functions

CoreExport void SetDontRepeatRefMsg (bool value, bool commitToInit)
 Methods that control an internal optimization related to reference message propagation. More...
 
CoreExport bool DontRepeatRefMsg ()
 Call this method to find out if the optimization is active or not. More...
 
CoreExport void PreRefNotifyDependents ()
 In order to apply the optimization to a notification session, the Pre/PostRefNotifyDependents methods have to bracket it. More...
 
CoreExport void PostRefNotifyDependents ()
 
CoreExport void SetInvalidateTMOpt (bool value, bool commitToInit)
 Methods that control optimization for evaluating the transforms of complex rigs, especially of those with the expose transform helper. More...
 
CoreExport bool GetInvalidateTMOpt ()
 
CoreExport void SetEnableOptimizeDependentNotifications (bool value, bool commitToInit)
 Methods that control optimization for not sending duplicate notifications. More...
 
CoreExport bool GetEnableOptimizeDependentNotifications ()
 
CoreExport void GetOptimizeDependentNotificationsStatistics (ULONGLONG &numNotifySkipped, ULONGLONG &numNotifyNotSkipped)
 
CoreExport void ResetOptimizeDependentNotificationsStatistics ()
 
CoreExport void SetControllerIntervalOptimization (bool value, bool commitToInit)
 Set and get the controller validity interval optimization flag for the base controllers. More...
 
CoreExport bool GetControllerIntervalOptimization ()
 

Variables

static const int FLOAT_TRACKVIEW = 0
 
static const int DOCK_TRACKVIEW_TOP = 1
 
static const int DOCK_TRACKVIEW_BOTTOM = 2
 
static const int CAN_DOCK_TRACKVIEW_TOP = 3
 

Macro Definition Documentation

◆ PIDSI_CONTENTSTATUS

#define PIDSI_CONTENTSTATUS   0x00000020L

◆ PIDSI_CONTENTTYPE

#define PIDSI_CONTENTTYPE   0x00000021L

◆ PIDSI_CREATOR

#define PIDSI_CREATOR   0x00000022L

◆ PIDSI_IDENTIFIER

#define PIDSI_IDENTIFIER   0x00000023L

◆ PIDSI_LANGUAGE

#define PIDSI_LANGUAGE   0x00000024L

◆ PIDSI_VERSION

#define PIDSI_VERSION   0x00000025L

◆ I_EXEC_ACTIVATE_TEXTURE

#define I_EXEC_ACTIVATE_TEXTURE   1

◆ I_EXEC_DEACTIVATE_TEXTURE

#define I_EXEC_DEACTIVATE_TEXTURE   2

◆ I_EXEC_RENDER_MTL_SAMPLE

#define I_EXEC_RENDER_MTL_SAMPLE   3

◆ I_EXEC_GET_VPDISPLAY_DIB

#define I_EXEC_GET_VPDISPLAY_DIB   4

◆ I_EXEC_SET_DIR

#define I_EXEC_SET_DIR   10

◆ I_EXEC_OFFSET_SPLINE

#define I_EXEC_OFFSET_SPLINE   80

◆ I_EXEC_OFFSET_MEASURE

#define I_EXEC_OFFSET_MEASURE   81

◆ I_EXEC_TRIM_EXTEND

#define I_EXEC_TRIM_EXTEND   82

◆ I_EXEC_NEW_OBJ_XREF_DLG

#define I_EXEC_NEW_OBJ_XREF_DLG   83

◆ I_EXEC_MODIFYTASK_INVALIDATEPANEL

#define I_EXEC_MODIFYTASK_INVALIDATEPANEL   86

◆ I_EXEC_INVALIDATE_VIEWEXP

#define I_EXEC_INVALIDATE_VIEWEXP   87

◆ I_EXEC_SET_NUDGE

#define I_EXEC_SET_NUDGE   88

◆ I_EXEC_COUNT_MTL_SCENEREFS

#define I_EXEC_COUNT_MTL_SCENEREFS   0x2001

◆ I_EXEC_RET_NULL_NODE

#define I_EXEC_RET_NULL_NODE   1

◆ I_EXEC_RET_NULL_OBJECT

#define I_EXEC_RET_NULL_OBJECT   2

◆ I_EXEC_RET_NOT_SPLINE

#define I_EXEC_RET_NOT_SPLINE   3

◆ I_EXEC_RET_OFFSET_FAIL

#define I_EXEC_RET_OFFSET_FAIL   4

◆ TRACKBAR_FILTER_ALL

#define TRACKBAR_FILTER_ALL   1

◆ TRACKBAR_FILTER_TMONLY

#define TRACKBAR_FILTER_TMONLY   2

◆ TRACKBAR_FILTER_CURRENTTM

#define TRACKBAR_FILTER_CURRENTTM   3

◆ TRACKBAR_FILTER_OBJECT

#define TRACKBAR_FILTER_OBJECT   4

◆ TRACKBAR_FILTER_MATERIAL

#define TRACKBAR_FILTER_MATERIAL   5

◆ TRACKBAR_FILTER_MANAGER_INTERFACE

#define TRACKBAR_FILTER_MANAGER_INTERFACE   Interface_ID(0xc85046, 0x2def7c7d)

The ITrackBarFilterManager interface is implemented by the TrackBar.

You can get an instance of this interface from the TrackBar using the following: ITrackBarFilterManager* filterManager = (ITrackBarFilterManager*)GetCOREInterface()->GetTrackBar()->GetInterface(TRACKBAR_FILTER_MANAGER_INTERFACE);

◆ TRACKBAR_INTERFACE

#define TRACKBAR_INTERFACE   Interface_ID(0x2aff3557, 0x16aa714b)

◆ CREATE_CONTINUE

#define CREATE_CONTINUE   1

◆ CREATE_STOP

#define CREATE_STOP   0

◆ CREATE_ABORT

#define CREATE_ABORT   -1

◆ MOUSE_STOP

#define MOUSE_STOP   0

◆ MOUSE_CONTINUE

#define MOUSE_CONTINUE   1

◆ MOUSE_CAPTURE_CONTINUE

#define MOUSE_CAPTURE_CONTINUE   2

◆ VIEWPORT_BKG_START

#define VIEWPORT_BKG_START   0

◆ VIEWPORT_BKG_END

#define VIEWPORT_BKG_END   1

◆ VIEWPORT_BKG_BLANK

#define VIEWPORT_BKG_BLANK   0

◆ VIEWPORT_BKG_HOLD

#define VIEWPORT_BKG_HOLD   1

◆ VIEWPORT_BKG_LOOP

#define VIEWPORT_BKG_LOOP   2

◆ VIEWPORT_BKG_ASPECT_VIEW

#define VIEWPORT_BKG_ASPECT_VIEW   0

◆ VIEWPORT_BKG_ASPECT_BITMAP

#define VIEWPORT_BKG_ASPECT_BITMAP   1

◆ VIEWPORT_BKG_ASPECT_OUTPUT

#define VIEWPORT_BKG_ASPECT_OUTPUT   2

◆ MOVE_BUTTON

#define MOVE_BUTTON   1

◆ ROTATE_BUTTON

#define ROTATE_BUTTON   2

◆ NUSCALE_BUTTON

#define NUSCALE_BUTTON   3

◆ USCALE_BUTTON

#define USCALE_BUTTON   4

◆ SQUASH_BUTTON

#define SQUASH_BUTTON   5

◆ SELECT_BUTTON

#define SELECT_BUTTON   6

◆ PLACE_BUTTON

#define PLACE_BUTTON   7

◆ AXIS_XY

#define AXIS_XY   2

◆ AXIS_ZX

#define AXIS_ZX   1

◆ AXIS_YZ

#define AXIS_YZ   0

◆ AXIS_X

#define AXIS_X   3

◆ AXIS_Y

#define AXIS_Y   4

◆ AXIS_Z

#define AXIS_Z   5

◆ ORIGIN_LOCAL

#define ORIGIN_LOCAL   0

◆ ORIGIN_SELECTION

#define ORIGIN_SELECTION   1

◆ ORIGIN_SYSTEM

#define ORIGIN_SYSTEM   2

◆ COORDS_HYBRID

#define COORDS_HYBRID   0

◆ COORDS_SCREEN

#define COORDS_SCREEN   1

◆ COORDS_WORLD

#define COORDS_WORLD   2

◆ COORDS_PARENT

#define COORDS_PARENT   3

◆ COORDS_LOCAL

#define COORDS_LOCAL   4

◆ COORDS_OBJECT

#define COORDS_OBJECT   5

◆ COORDS_GIMBAL

#define COORDS_GIMBAL   6

◆ COORDS_WORKINGPIVOT

#define COORDS_WORKINGPIVOT   7

◆ COORDS_LOCAL_ALIGNED

#define COORDS_LOCAL_ALIGNED   8

◆ TASK_MODE_CREATE

#define TASK_MODE_CREATE   1

◆ TASK_MODE_MODIFY

#define TASK_MODE_MODIFY   2

◆ TASK_MODE_HIERARCHY

#define TASK_MODE_HIERARCHY   3

◆ TASK_MODE_MOTION

#define TASK_MODE_MOTION   4

◆ TASK_MODE_DISPLAY

#define TASK_MODE_DISPLAY   5

◆ TASK_MODE_UTILITY

#define TASK_MODE_UTILITY   6

◆ SYSCUR_MOVE

#define SYSCUR_MOVE   1

◆ SYSCUR_ROTATE

#define SYSCUR_ROTATE   2

◆ SYSCUR_USCALE

#define SYSCUR_USCALE   3

◆ SYSCUR_NUSCALE

#define SYSCUR_NUSCALE   4

◆ SYSCUR_SQUASH

#define SYSCUR_SQUASH   5

◆ SYSCUR_SELECT

#define SYSCUR_SELECT   6

◆ SYSCUR_DEFARROW

#define SYSCUR_DEFARROW   7

◆ SYSCUR_MOVE_SNAP

#define SYSCUR_MOVE_SNAP   8

◆ REDRAW_BEGIN

#define REDRAW_BEGIN   (1<<0)

◆ REDRAW_INTERACTIVE

#define REDRAW_INTERACTIVE   (1<<1)

◆ REDRAW_END

#define REDRAW_END   (1<<2)

◆ REDRAW_NORMAL

#define REDRAW_NORMAL   (1<<3)

◆ REDRAW_RESET_PROGRESS

#define REDRAW_RESET_PROGRESS   (1<<4)

◆ NUMAXIS_ZERO

#define NUMAXIS_ZERO   0

◆ NUMAXIS_ALL

#define NUMAXIS_ALL   1

◆ NUMAXIS_INDIVIDUAL

#define NUMAXIS_INDIVIDUAL   2

◆ STATUS_UNIVERSE

#define STATUS_UNIVERSE   1

◆ STATUS_SCALE

#define STATUS_SCALE   2

◆ STATUS_ANGLE

#define STATUS_ANGLE   3

◆ STATUS_OTHER

#define STATUS_OTHER   4

◆ STATUS_UNIVERSE_RELATIVE

#define STATUS_UNIVERSE_RELATIVE   5

◆ STATUS_POLAR

#define STATUS_POLAR   6

◆ STATUS_POLAR_RELATIVE

#define STATUS_POLAR_RELATIVE   7

◆ REND_TIMESINGLE

#define REND_TIMESINGLE   0

◆ REND_TIMESEGMENT

#define REND_TIMESEGMENT   1

◆ REND_TIMERANGE

#define REND_TIMERANGE   2

◆ REND_TIMEPICKUP

#define REND_TIMEPICKUP   3

◆ HIDE_OBJECTS

#define HIDE_OBJECTS   0x0001

◆ HIDE_SHAPES

#define HIDE_SHAPES   0x0002

◆ HIDE_LIGHTS

#define HIDE_LIGHTS   0x0004

◆ HIDE_CAMERAS

#define HIDE_CAMERAS   0x0008

◆ HIDE_HELPERS

#define HIDE_HELPERS   0x0010

◆ HIDE_WSMS

#define HIDE_WSMS   0x0020

◆ HIDE_SYSTEMS

#define HIDE_SYSTEMS   0x0040

◆ HIDE_PARTICLES

#define HIDE_PARTICLES   0x0080

◆ HIDE_BONEOBJECTS

#define HIDE_BONEOBJECTS   0x0100

◆ HIDE_ALL

#define HIDE_ALL   0xffff

◆ HIDE_NONE

#define HIDE_NONE   0

◆ VP_LAYOUT_1C

#define VP_LAYOUT_1C   0x00c1

◆ VP_NUM_VIEWS_MASK

#define VP_NUM_VIEWS_MASK   0x000f

◆ SCENE_CALLBACK_PRIORITY_INTERFACE

#define SCENE_CALLBACK_PRIORITY_INTERFACE   Interface_ID(0xc5b791e, 0x66e58a4)

Interface ID used with interface class ISceneCallbackPriority.

◆ VPT_TRANS_NONE

#define VPT_TRANS_NONE   0

◆ VPT_TRANS_STIPPLE

#define VPT_TRANS_STIPPLE   1

◆ VPT_TRANS_BLEND

#define VPT_TRANS_BLEND   2

◆ VPT_TRANS_SORT_BLEND

#define VPT_TRANS_SORT_BLEND   3

◆ DISPLAY_WIRE_AS_MTL

#define DISPLAY_WIRE_AS_MTL   1

◆ DISPLAY_SHADED_AS_MTL

#define DISPLAY_SHADED_AS_MTL   (1<<1)

◆ DISPLAY_SELECTED_ONLY

#define DISPLAY_SELECTED_ONLY   (1<<2)

◆ MAIN_MAX_INTERFACE

#define MAIN_MAX_INTERFACE   Interface_ID(0x64854123, 0x7b9e551c)

◆ DOWNLOADDLG_NOPLACE

#define DOWNLOADDLG_NOPLACE   1<<0

Typedef Documentation

◆ TRACKBAR_FILTER_PROC

typedef bool(* TRACKBAR_FILTER_PROC) (Animatable *anim, Animatable *parent, int subAnimIndex, Animatable *grandParent, INode *node)

The TrackBar filter callback function.


The anim argument is the node you are filtering. The parent argument is the owning animatable. It returns the anim with its corresponding subAnimIndex. anim == parent->SubAnim(subAnimIndex) The grandParent argument is provided as an additional layer that is needed in case the parent is a ParamBlock(2) or something similar.
For instance you may need to know that the grandParent is a Bend modifier and the subAnimIndex is an index into the param block storage unit. The node argument is the originating scene node. Return true if the node should be included, otherwise return false.

◆ TRACKBAR_ADDITION_PROC

typedef bool(* TRACKBAR_ADDITION_PROC) (Tab< Animatable * > &anims, Tab< int > &subAnims, Tab< INode * > &nodes)

The TrackBar filter addition callback function.


The anims argument is a Tab of the parent animatables to add The subAnims argument is a Tab of the SubAnim numbers.
The actual animatable added will be anim = anims[i]->SubAnim(subAnims[i]) The node argument is the originating scene node.

The anims, subAnims, and nodes Tab should all have the same count. Return true if the addition should occur or false if is should not.

◆ Interface18

typedef MAX_DEPRECATED Interface17 Interface18
Deprecated:
This has been deprecated as of 3ds Max 2022, with Interface18 specific methods moved to Interface13

◆ Interface19

typedef MAX_DEPRECATED Interface17 Interface19
Deprecated:
This has been deprecated as of 3ds Max 2022, with Interface19 specific methods moved to Interface14

Enumeration Type Documentation

◆ CloneType

enum CloneType

The Clone type when copying nodes.

Enumerator
NODE_COPY 
NODE_INSTANCE 
NODE_REFERENCE 
NODE_NONE 
115 {
116  NODE_COPY,
119  NODE_NONE
120 };
@ NODE_NONE
Definition: maxapi.h:119
@ NODE_COPY
Definition: maxapi.h:116
@ NODE_REFERENCE
Definition: maxapi.h:118
@ NODE_INSTANCE
Definition: maxapi.h:117

◆ ViewType

enum ViewType
Enumerator
VIEW_LEFT 
VIEW_RIGHT 
VIEW_TOP 
VIEW_BOTTOM 
VIEW_FRONT 
VIEW_BACK 
VIEW_ISO_USER 
VIEW_PERSP_USER 
VIEW_CAMERA 
VIEW_GRID 
VIEW_NONE 
VIEW_TRACK 
VIEW_SPOT 
VIEW_SHAPE 
VIEW_SCHEMATIC 
VIEW_RENDER 
VIEW_SCENEEXPLORER 
VIEW_OTHER 
@ VIEW_GRID
Definition: maxapi.h:306
@ VIEW_SCHEMATIC
Definition: maxapi.h:307
@ VIEW_TRACK
Definition: maxapi.h:306
@ VIEW_RENDER
Definition: maxapi.h:307
@ VIEW_SCENEEXPLORER
Definition: maxapi.h:307
@ VIEW_TOP
Definition: maxapi.h:305
@ VIEW_FRONT
Definition: maxapi.h:305
@ VIEW_RIGHT
Definition: maxapi.h:305
@ VIEW_OTHER
Definition: maxapi.h:307
@ VIEW_BOTTOM
Definition: maxapi.h:305
@ VIEW_SPOT
Definition: maxapi.h:307
@ VIEW_BACK
Definition: maxapi.h:305
@ VIEW_LEFT
Definition: maxapi.h:305
@ VIEW_CAMERA
Definition: maxapi.h:306
@ VIEW_ISO_USER
Definition: maxapi.h:306
@ VIEW_PERSP_USER
Definition: maxapi.h:306
@ VIEW_SHAPE
Definition: maxapi.h:307
@ VIEW_NONE
Definition: maxapi.h:306

Function Documentation

◆ SetDontRepeatRefMsg()

CoreExport void SetDontRepeatRefMsg ( bool  value,
bool  commitToInit 
)

Methods that control an internal optimization related to reference message propagation.

The optimization consists of preventing the same ref message from being sent repeatedly to the same refmaker. This optimization improves the performance of interactive manipulation of complex IK rigs, but it is not completely reliable in the presence of some objects such as VIZWalls.

Call this method to turn the optimization On (value = true) or Off (value = false) at runtime. When 'commitToInit' is true, 'value' is saved to the current market default file as 'DontRepeatRefMsg=<value>'

◆ DontRepeatRefMsg()

CoreExport bool DontRepeatRefMsg ( )

Call this method to find out if the optimization is active or not.

◆ PreRefNotifyDependents()

CoreExport void PreRefNotifyDependents ( )

In order to apply the optimization to a notification session, the Pre/PostRefNotifyDependents methods have to bracket it.

IMPORTANT: The notification session should not contain GetValue calls.

◆ PostRefNotifyDependents()

CoreExport void PostRefNotifyDependents ( )

◆ SetInvalidateTMOpt()

CoreExport void SetInvalidateTMOpt ( bool  value,
bool  commitToInit 
)

Methods that control optimization for evaluating the transforms of complex rigs, especially of those with the expose transform helper.

Note that this optimization may not work completely reliable with all objects and controllers

◆ GetInvalidateTMOpt()

CoreExport bool GetInvalidateTMOpt ( )

◆ SetEnableOptimizeDependentNotifications()

CoreExport void SetEnableOptimizeDependentNotifications ( bool  value,
bool  commitToInit 
)

Methods that control optimization for not sending duplicate notifications.

Note that this optimization may not work completely reliable with all objects and controllers

◆ GetEnableOptimizeDependentNotifications()

CoreExport bool GetEnableOptimizeDependentNotifications ( )

◆ GetOptimizeDependentNotificationsStatistics()

CoreExport void GetOptimizeDependentNotificationsStatistics ( ULONGLONG &  numNotifySkipped,
ULONGLONG &  numNotifyNotSkipped 
)

◆ ResetOptimizeDependentNotificationsStatistics()

CoreExport void ResetOptimizeDependentNotificationsStatistics ( )

◆ SetControllerIntervalOptimization()

CoreExport void SetControllerIntervalOptimization ( bool  value,
bool  commitToInit 
)

Set and get the controller validity interval optimization flag for the base controllers.

When this flag is active, all Linear and Bezier controllers will express validity intervals that take into account flat sections in the animation curves that drive them. This allows for a performance improvement during scene evaluation because work can be skipped when dependencies don't actually change.

By default, ControllerIntervalOptimization is true.

Parameters
[in]value- Whether or not to enable this optimization
[in]commitToInit- Whether or not to write this setting into the defaults ini file.

◆ GetControllerIntervalOptimization()

CoreExport bool GetControllerIntervalOptimization ( )

Variable Documentation

◆ FLOAT_TRACKVIEW

const int FLOAT_TRACKVIEW = 0
static

◆ DOCK_TRACKVIEW_TOP

const int DOCK_TRACKVIEW_TOP = 1
static

◆ DOCK_TRACKVIEW_BOTTOM

const int DOCK_TRACKVIEW_BOTTOM = 2
static

◆ CAN_DOCK_TRACKVIEW_TOP

const int CAN_DOCK_TRACKVIEW_TOP = 3
static