3ds Max C++ API Reference
mxsobjects.h File Reference
#include "../kernel/value.h"
#include "../foundation/collection.h"
#include "../../3dsmaxport.h"
#include "../../buildver.h"
#include "../../object.h"
#include "../../surf_api.h"
#include "../../tvnode.h"
#include "../../triobj.h"
#include "../../splshape.h"
#include "../protocols/timefunctions.inl"
#include "../macros/define_implementations.h"
#include "../protocols/node.inl"
#include "../protocols/arrays.inl"
#include "../protocols/atmospherics.inl"
#include "../protocols/xrefs.inl"

Classes

class  MAXWrapper
 
struct  parm_desc
 
struct  superclass_table
 
class  MAXSuperClass
 
struct  class_key
 
struct  class_table
 
class  MAXClass
 
class  FindMAXWrapperEnum
 
class  MAXNode
 
class  MAXNodeChildrenArray
 
class  MAXObject
 
class  MAXPB2ArrayParam
 
class  MAXModifier
 
class  MAXModifierArray
 
class  MAXControl
 
class  MAXSubAnim
 
class  MAXRefTarg
 
class  MAXTVNode
 
class  TrackViewPickValue
 
class  MAXTVUtility
 
class  MAXMeshClass
 
class  MeshValue
 
class  MAXBezierShapeClass
 
class  BezierShapeValue
 
class  MAXAtmospheric
 
class  MAXEffect
 
class  MAXMultiPassCameraEffect
 
class  MAXShadowType
 
class  MAXRenderer
 
class  MAXCustAttrib
 
class  MAXCustAttribArray
 
class  CHTimeChangeCallback
 
class  CHRedrawViewsCallback
 
class  ChangeHandler
 
class  MAXRootNode
 
struct  node_map
 
struct  node_find
 
struct  node_get
 
class  ConvertToRestore
 
struct  gbuff_chan_code
 
class  AssignControllerRestore
 
class  NodeTab
 
class  MAXSceneXRef
 
class  MAXRootScene
 

Macros

#define MESH_READ_ACCESS   0
 
#define MESH_WRITE_ACCESS   1
 
#define MESH_BASE_OBJ   2
 
#define BEZIERSHAPE_READ_ACCESS   0
 
#define BEZIERSHAPE_WRITE_ACCESS   1
 
#define BEZIERSHAPE_BASE_OBJ   2
 
#define check_for_deletion_test()
 
#define check_for_deletion()   if (check_for_deletion_test()) throw RuntimeError (get_deleted_obj_err_message(), class_name());
 
#define deletion_check_test(val)
 
#define deletion_check(val)   if (deletion_check_test(val)) throw RuntimeError (get_deleted_obj_err_message(), (val)->class_name());
 
#define def_generic(fn, name)    ScripterExport Value* fn##_vf(Value** arglist, int arg_count)
 
#define def_generic_debug_ok(fn, name)    ScripterExport Value* fn##_vf(Value** arglist, int arg_count)
 
#define def_property(p)
 
#define def_prop_getter(p)    ScripterExport Value* get_##p(Value** arg_list, int count)
 
#define def_prop_setter(p)    ScripterExport Value* set_##p(Value** arg_list, int count)
 
#define def_2_prop_path(p1, p2)
 
#define def_nested_prop(p1)
 
#define def_time_fn(_fn)   ScripterExport Value* _fn##_vf(Value** arglist, int arg_count)
 
#define def_time_fn(_fn)   ScripterExport Value* _fn(Animatable* anim, Value** arglist, int arg_count)
 
#define NO_TRANSLATE   0x0001
 
#define NO_SCALE   0x0002
 
#define ctrl_to_current_coordsys_rotate(p)   ctrl_to_current_coordsys(p, NO_TRANSLATE + NO_SCALE)
 
#define ctrl_from_current_coordsys_rotate(p)   ctrl_from_current_coordsys(p, NO_TRANSLATE + NO_SCALE)
 
#define object_to_current_coordsys_rotate(p)   object_to_current_coordsys(p, NO_TRANSLATE + NO_SCALE)
 
#define object_from_current_coordsys_rotate(p)   object_from_current_coordsys(p, NO_TRANSLATE + NO_SCALE)
 
#define world_to_current_coordsys_rotate(p)   world_to_current_coordsys(p, NO_TRANSLATE + NO_SCALE)
 
#define world_from_current_coordsys_rotate(p)   world_from_current_coordsys(p, NO_TRANSLATE + NO_SCALE)
 
#define object_to_current_coordsys_scaleRotate(p)   object_to_current_coordsys(p, NO_TRANSLATE)
 
#define object_from_current_coordsys_scaleRotate(p)   object_from_current_coordsys(p, NO_TRANSLATE)
 
#define is_maxsuperclass(v)   ((DbgVerify(!is_sourcepositionwrapper(v)), (v))->tag == class_tag(MAXSuperClass))
 
#define SC_SUPERCLASS_INITED   0x0001
 
#define SC_NON_REFTARG   0x0002
 
#define is_maxclass(v)   ((DbgVerify(!is_sourcepositionwrapper(v)), (v))->tag == class_tag(MAXClass))
 
#define MAXWRAPPER_CACHE_SIZE   2048
 
#define maxwrapper_cache_get(_mw_class, _mw_ref, _mw_var, _ce_var)
 
#define is_node(v)   ((DbgVerify(!is_sourcepositionwrapper(v)), (v))->tag == class_tag(MAXNode))
 
#define def_time_fn(_fn)   Value* _fn##_vf(Value** arglist, int arg_count)
 
#define INODE_CLASS_ID   Class_ID(BASENODE_CLASS_ID, 0) /* INode class ID for MAXScript metadata table indexing */
 
#define INODE_SUPERCLASS_ID   BASENODE_CLASS_ID
 
#define is_nodechildrenarray(v)   ((DbgVerify(!is_sourcepositionwrapper(v)), (v))->tag == class_tag(MAXNodeChildrenArray))
 
#define is_maxobject(v)   ((DbgVerify(!is_sourcepositionwrapper(v)), (v))->tag == class_tag(MAXObject))
 
#define is_tab_param(v)   ((DbgVerify(!is_sourcepositionwrapper(v)), (v))->tag == class_tag(MAXPB2ArrayParam))
 
#define is_modifier(v)   ((DbgVerify(!is_sourcepositionwrapper(v)), (v))->tag == class_tag(MAXModifier))
 
#define REFMSG_MAXCONTROL_NOT_NEW   REFMSG_USER + 0x4af551aa
 RefMessage sent by Controls to tell MAXControl values that they are not new. More...
 
#define is_controller(v)   ((DbgVerify(!is_sourcepositionwrapper(v)), (v))->tag == class_tag(MAXControl))
 
#define MAX_CTRL_NO_DIM   0x01
 
#define MAX_CTRL_NEW   0x02
 
#define is_subAnim(v)   ((DbgVerify(!is_sourcepositionwrapper(v)), (v))->tag == class_tag(MAXSubAnim))
 
#define is_trackviewpick(v)   ((DbgVerify(!is_sourcepositionwrapper(v)), (v))->tag == class_tag(TrackViewPickValue))
 
#define is_mesh(v)   ((DbgVerify(!is_sourcepositionwrapper(v)), (v))->tag == class_tag(MeshValue))
 
#define is_beziershape(v)   ((DbgVerify(!is_sourcepositionwrapper(v)), (v))->tag == class_tag(BezierShapeValue))
 
#define is_custattrib(v)   ((DbgVerify(!is_sourcepositionwrapper(v)), (v))->tag == class_tag(MAXCustAttrib))
 
#define CH_BROKEN   0x0001
 
#define CH_BUSY   0x0002
 
#define CH_NOTIFIED   0x0004
 
#define CH_DELETE   0x0008
 
#define is_rootnode(v)   ((DbgVerify(!is_sourcepositionwrapper(v)), (v))->tag == class_tag(MAXRootNode))
 
#define NM_INVERT   0x0001
 
#define NM_SELECT   0x0002
 
#define NM_GET   0x0004
 
#define NM_MXS_FN   0x0008
 

Typedefs

typedef Value *(* maker_fn) (MAXClass *cls, ReferenceTarget *obj, Value **arglist, int count)
 

Enumerations

enum  metadata_flag : byte { accessors = 1 , fns , paramblock , paramblock2 }
 
enum  parm_desc_flags : byte { PD_NO_INIT = 0x01 , PD_LOCAL_DUP = 0x02 , PD_HAS_LOCAL_DUPS = 0x04 , PD_SHOWN = 0x08 }
 
enum  metadata_flags {
  md_use_getref = 0x0001 , md_use_getref0 = 0x0002 , md_use_getref1 = 0x0004 , md_no_create = 0x0008 ,
  md_no_access = 0x0010 , md_direct_index = 0x0020 , md_new_plugin = 0x0040 , md_auto_parms = 0x0080 ,
  md_name_clash = 0x0100 , md_initialized = 0x0200 , md_no_cd = 0x0400 , md_was_new_plugin = 0x0800 ,
  md_needs_localization = 0x1000
}
 
enum  { TYPE_POINT3_ANGLE = TYPE_USER + 128 , TYPE_POINT3_PCNT }
 
enum  GetINodeTabResult { ResultOk , ErrSelectionEmpty , ErrRequireNodes }
 

Functions

ScripterExport const MCHARget_deleted_obj_err_message ()
 
ScripterExport MAXSuperClasslookup_MAXSuperClass (SClass_ID scid)
 
Valuemake_max_node (MAXClass *cls, ReferenceTarget *obj, Value **arg_list, int count)
 
Valuemake_max_object (MAXClass *cls, ReferenceTarget *obj, Value **arg_list, int count)
 
Valuemake_max_light (MAXClass *cls, ReferenceTarget *obj, Value **arg_list, int count)
 
Valuemake_max_camera (MAXClass *cls, ReferenceTarget *obj, Value **arg_list, int count)
 
Valuemake_max_modifier (MAXClass *cls, ReferenceTarget *obj, Value **arg_list, int count)
 
Valuemake_max_material (MAXClass *cls, ReferenceTarget *obj, Value **arg_list, int count)
 
Valuemake_max_texturemap (MAXClass *cls, ReferenceTarget *obj, Value **arg_list, int count)
 
Valuemake_max_mtlbase (MAXClass *cls, ReferenceTarget *obj, Value **arg_list, int count)
 
Valuemake_max_system (MAXClass *cls, ReferenceTarget *obj, Value **arg_list, int count)
 
Valuemake_max_helper (MAXClass *cls, ReferenceTarget *obj, Value **arg_list, int count)
 
Valuemake_max_controller (MAXClass *cls, ReferenceTarget *obj, Value **arg_list, int count)
 
Valuemake_max_atmospheric (MAXClass *cls, ReferenceTarget *obj, Value **arg_list, int count)
 
Valuemake_max_effect (MAXClass *cls, ReferenceTarget *obj, Value **arg_list, int count)
 
Valuemake_max_mpassCamEffect (MAXClass *cls, ReferenceTarget *obj, Value **arg_list, int count)
 
Valuemake_max_filter (MAXClass *cls, ReferenceTarget *obj, Value **arg_list, int count)
 
Valuemake_max_shadow (MAXClass *cls, ReferenceTarget *obj, Value **arg_list, int count)
 
Valuemake_max_reftarg (MAXClass *cls, ReferenceTarget *obj, Value **arg_list, int count)
 
Valueno_max_maker (MAXClass *cls, ReferenceTarget *obj, Value **arg_list, int count)
 
Valuemake_max_renderer (MAXClass *cls, ReferenceTarget *obj, Value **arg_list, int count)
 
Valuemake_max_custattrib (MAXClass *cls, ReferenceTarget *obj, Value **arg_list, int count)
 
ScripterExport MAXClasslookup_MAXClass (Class_ID *cid, SClass_ID scid, bool make_new_if_missing=false)
 
BOOL _maxwrapper_cache_get (LONG_PTR index_ptr, MAXWrapper ***pw)
 
LONG_PTR maxwrapper_genref (void *pObject, LONG_PTR index)
 
LONG_PTR maxwrapper_genref (void *pObject1, void *pObject2)
 
ScripterExport void InvalidateNodeRect (INode *node, TimeValue t)
 
ScripterExport GetINodeTabResult GetINodeTabFromValue (Value *val, INodeTab &nodeTab, INodeTab **pResult)
 
bool for_all_nodes (INode *root, node_map *m)
 
Valuefind_first_node (INode *root, node_find *f)
 
Valueget_node (INode *root, node_get *g)
 
bool for_all_path_nodes (INode *root, PathName *path, node_map *m)
 
BOOL all_objects_selector (INode *node, int level, const void *selector_arg)
 
int max_name_compare (const MCHAR *max_name, const MCHAR *other)
 
Valueget_subanim_property (Animatable *anim, Value *prop)
 
Valueget_subanim_property (Animatable *anim, int i)
 
Valueset_subanim_property (Animatable *anim, Value *prop, Value *val)
 
Valueset_subanim_property (Animatable *anim, int i, Value *val)
 
BOOL set_subanim_controller (Animatable *anim, Value *prop, Control *newc, MAXControl *newcv)
 
Controlfind_subanim_controller (Animatable *anim, Value *prop, ParamDimension **dim)
 
void deselect_if_motion_panel_open ()
 
ScripterExport Valuecollect_nodes (Value **arg_list, int count)
 

Variables

ScripterExport InterfaceMAXScript_interface
 
ScripterExport Interface7MAXScript_interface7
 
ScripterExport Interface8MAXScript_interface8
 
ScripterExport Interface9MAXScript_interface9
 
ScripterExport Interface11MAXScript_interface11
 
ScripterExport Interface13MAXScript_interface13
 
ScripterExport Interface14MAXScript_interface14
 
ScripterExport MAXWrappermaxwrapper_cache []
 
gbuff_chan_code gbuff_chan_codes []
 

Macro Definition Documentation

◆ MESH_READ_ACCESS

#define MESH_READ_ACCESS   0

◆ MESH_WRITE_ACCESS

#define MESH_WRITE_ACCESS   1

◆ MESH_BASE_OBJ

#define MESH_BASE_OBJ   2

◆ BEZIERSHAPE_READ_ACCESS

#define BEZIERSHAPE_READ_ACCESS   0

◆ BEZIERSHAPE_WRITE_ACCESS

#define BEZIERSHAPE_WRITE_ACCESS   1

◆ BEZIERSHAPE_BASE_OBJ

#define BEZIERSHAPE_BASE_OBJ   2

◆ check_for_deletion_test

#define check_for_deletion_test ( )
Value:
( ref_deleted || \
( NumRefs() > 0 && (GetReference(0) == NULL) ) || \
( NumRefs() > 0 && \
GetReference(0)->TestAFlag(A_IS_DELETED) && \
( (GetReference(0)->GetInterface(INODE_INTERFACE)==NULL) || \
(((INode*)GetReference(0))->GetTMController() == NULL) || \
(((INode*)GetReference(0))->GetParentNode() == NULL) \
) \
) \
)
#define NULL
Definition: autoptr.h:18
Definition: inode.h:55
#define A_IS_DELETED
Used internally.
Definition: AnimatableFlags.h:164
#define INODE_INTERFACE
Definition: inode.h:37

◆ check_for_deletion

#define check_for_deletion ( )    if (check_for_deletion_test()) throw RuntimeError (get_deleted_obj_err_message(), class_name());

◆ deletion_check_test

#define deletion_check_test (   val)
Value:
( (val)->ref_deleted || \
( (val)->NumRefs() > 0 && ((val)->GetReference(0) == NULL) ) || \
( (val)->NumRefs() > 0 && \
(val)->GetReference(0)->TestAFlag(A_IS_DELETED) && \
( ((val)->GetReference(0)->GetInterface(INODE_INTERFACE)==NULL) || \
(((INode*)(val)->GetReference(0))->GetTMController() == NULL) || \
(((INode*)(val)->GetReference(0))->GetParentNode() == NULL) \
) \
) \
)

◆ deletion_check

#define deletion_check (   val)    if (deletion_check_test(val)) throw RuntimeError (get_deleted_obj_err_message(), (val)->class_name());

◆ def_generic

#define def_generic (   fn,
  name 
)     ScripterExport Value* fn##_vf(Value** arglist, int arg_count)

◆ def_generic_debug_ok

#define def_generic_debug_ok (   fn,
  name 
)     ScripterExport Value* fn##_vf(Value** arglist, int arg_count)

◆ def_property

#define def_property (   p)
Value:
ScripterExport Value* get_##p(Value** arg_list, int count); \
ScripterExport Value* set_##p(Value** arg_list, int count)
#define ScripterExport
Definition: ScripterExport.h:7
Definition: value.h:107

◆ def_prop_getter

#define def_prop_getter (   p)     ScripterExport Value* get_##p(Value** arg_list, int count)

◆ def_prop_setter

#define def_prop_setter (   p)     ScripterExport Value* set_##p(Value** arg_list, int count)

◆ def_2_prop_path

#define def_2_prop_path (   p1,
  p2 
)
Value:
ScripterExport Value* get_##p1##_##p2(Value** arg_list, int count); \
ScripterExport Value* set_##p1##_##p2(Value** arg_list, int count)

◆ def_nested_prop

#define def_nested_prop (   p1)
Value:
ScripterExport Value* get_nested_##p1(Value** arg_list, int count); \
ScripterExport Value* set_nested_##p1(Value** arg_list, int count)

◆ def_time_fn [1/3]

#define def_time_fn (   _fn)    ScripterExport Value* _fn##_vf(Value** arglist, int arg_count)

◆ def_time_fn [2/3]

#define def_time_fn (   _fn)    ScripterExport Value* _fn(Animatable* anim, Value** arglist, int arg_count)

◆ NO_TRANSLATE

#define NO_TRANSLATE   0x0001

◆ NO_SCALE

#define NO_SCALE   0x0002

◆ ctrl_to_current_coordsys_rotate

#define ctrl_to_current_coordsys_rotate (   p)    ctrl_to_current_coordsys(p, NO_TRANSLATE + NO_SCALE)

◆ ctrl_from_current_coordsys_rotate

#define ctrl_from_current_coordsys_rotate (   p)    ctrl_from_current_coordsys(p, NO_TRANSLATE + NO_SCALE)

◆ object_to_current_coordsys_rotate

#define object_to_current_coordsys_rotate (   p)    object_to_current_coordsys(p, NO_TRANSLATE + NO_SCALE)

◆ object_from_current_coordsys_rotate

#define object_from_current_coordsys_rotate (   p)    object_from_current_coordsys(p, NO_TRANSLATE + NO_SCALE)

◆ world_to_current_coordsys_rotate

#define world_to_current_coordsys_rotate (   p)    world_to_current_coordsys(p, NO_TRANSLATE + NO_SCALE)

◆ world_from_current_coordsys_rotate

#define world_from_current_coordsys_rotate (   p)    world_from_current_coordsys(p, NO_TRANSLATE + NO_SCALE)

◆ object_to_current_coordsys_scaleRotate

#define object_to_current_coordsys_scaleRotate (   p)    object_to_current_coordsys(p, NO_TRANSLATE)

◆ object_from_current_coordsys_scaleRotate

#define object_from_current_coordsys_scaleRotate (   p)    object_from_current_coordsys(p, NO_TRANSLATE)

◆ is_maxsuperclass

#define is_maxsuperclass (   v)    ((DbgVerify(!is_sourcepositionwrapper(v)), (v))->tag == class_tag(MAXSuperClass))

◆ SC_SUPERCLASS_INITED

#define SC_SUPERCLASS_INITED   0x0001

◆ SC_NON_REFTARG

#define SC_NON_REFTARG   0x0002

◆ is_maxclass

#define is_maxclass (   v)    ((DbgVerify(!is_sourcepositionwrapper(v)), (v))->tag == class_tag(MAXClass))

◆ MAXWRAPPER_CACHE_SIZE

#define MAXWRAPPER_CACHE_SIZE   2048

◆ maxwrapper_cache_get

#define maxwrapper_cache_get (   _mw_class,
  _mw_ref,
  _mw_var,
  _ce_var 
)
Value:
(_maxwrapper_cache_get((LONG_PTR)(_mw_ref) ^ (LONG_PTR)class_tag(_mw_class), (MAXWrapper***)&_ce_var) && \
(_mw_var = *_ce_var)->tag == class_tag(_mw_class))
Definition: mxsobjects.h:94
BOOL _maxwrapper_cache_get(LONG_PTR index_ptr, MAXWrapper ***pw)
Definition: mxsobjects.h:657
#define class_tag(_cls)
Definition: value.h:548

◆ is_node

#define is_node (   v)    ((DbgVerify(!is_sourcepositionwrapper(v)), (v))->tag == class_tag(MAXNode))

◆ def_time_fn [3/3]

#define def_time_fn (   _fn)    Value* _fn##_vf(Value** arglist, int arg_count)

◆ INODE_CLASS_ID

#define INODE_CLASS_ID   Class_ID(BASENODE_CLASS_ID, 0) /* INode class ID for MAXScript metadata table indexing */

◆ INODE_SUPERCLASS_ID

#define INODE_SUPERCLASS_ID   BASENODE_CLASS_ID

◆ is_nodechildrenarray

#define is_nodechildrenarray (   v)    ((DbgVerify(!is_sourcepositionwrapper(v)), (v))->tag == class_tag(MAXNodeChildrenArray))

◆ is_maxobject

#define is_maxobject (   v)    ((DbgVerify(!is_sourcepositionwrapper(v)), (v))->tag == class_tag(MAXObject))

◆ is_tab_param

#define is_tab_param (   v)    ((DbgVerify(!is_sourcepositionwrapper(v)), (v))->tag == class_tag(MAXPB2ArrayParam))

◆ is_modifier

#define is_modifier (   v)    ((DbgVerify(!is_sourcepositionwrapper(v)), (v))->tag == class_tag(MAXModifier))

◆ REFMSG_MAXCONTROL_NOT_NEW

#define REFMSG_MAXCONTROL_NOT_NEW   REFMSG_USER + 0x4af551aa

RefMessage sent by Controls to tell MAXControl values that they are not new.

Clears flag bit MAX_CTRL_NEW The hTarg argument is the Control being operated on

◆ is_controller

#define is_controller (   v)    ((DbgVerify(!is_sourcepositionwrapper(v)), (v))->tag == class_tag(MAXControl))

◆ MAX_CTRL_NO_DIM

#define MAX_CTRL_NO_DIM   0x01

◆ MAX_CTRL_NEW

#define MAX_CTRL_NEW   0x02

◆ is_subAnim

#define is_subAnim (   v)    ((DbgVerify(!is_sourcepositionwrapper(v)), (v))->tag == class_tag(MAXSubAnim))

◆ is_trackviewpick

#define is_trackviewpick (   v)    ((DbgVerify(!is_sourcepositionwrapper(v)), (v))->tag == class_tag(TrackViewPickValue))

◆ is_mesh

#define is_mesh (   v)    ((DbgVerify(!is_sourcepositionwrapper(v)), (v))->tag == class_tag(MeshValue))

◆ is_beziershape

#define is_beziershape (   v)    ((DbgVerify(!is_sourcepositionwrapper(v)), (v))->tag == class_tag(BezierShapeValue))

◆ is_custattrib

#define is_custattrib (   v)    ((DbgVerify(!is_sourcepositionwrapper(v)), (v))->tag == class_tag(MAXCustAttrib))

◆ CH_BROKEN

#define CH_BROKEN   0x0001

◆ CH_BUSY

#define CH_BUSY   0x0002

◆ CH_NOTIFIED

#define CH_NOTIFIED   0x0004

◆ CH_DELETE

#define CH_DELETE   0x0008

◆ is_rootnode

#define is_rootnode (   v)    ((DbgVerify(!is_sourcepositionwrapper(v)), (v))->tag == class_tag(MAXRootNode))

◆ NM_INVERT

#define NM_INVERT   0x0001

◆ NM_SELECT

#define NM_SELECT   0x0002

◆ NM_GET

#define NM_GET   0x0004

◆ NM_MXS_FN

#define NM_MXS_FN   0x0008

Typedef Documentation

◆ maker_fn

typedef Value*(* maker_fn) (MAXClass *cls, ReferenceTarget *obj, Value **arglist, int count)

Enumeration Type Documentation

◆ metadata_flag

enum metadata_flag : byte
Enumerator
accessors 
fns 
paramblock 
paramblock2 
371 {
372  accessors = 1, // beginning of accessor section (only section type currently defined). Terminated with a 'p_end'.
373  fns, // beginning of function type accessors section. Terminated with a 'p_end'.
374  paramblock, // beginning of paramblock type accessors section. Terminated with a 'p_end'.
375  paramblock2, // beginning of paramblock2 type accessors section. Terminated with a 'p_end'.
376 };
@ paramblock
Definition: mxsobjects.h:374
@ paramblock2
Definition: mxsobjects.h:375
@ fns
Definition: mxsobjects.h:373
@ accessors
Definition: mxsobjects.h:372

◆ parm_desc_flags

enum parm_desc_flags : byte
Enumerator
PD_NO_INIT 
PD_LOCAL_DUP 
PD_HAS_LOCAL_DUPS 
PD_SHOWN 
380 {
381  PD_NO_INIT = 0x01, // flags this property as requiring no init
382  PD_LOCAL_DUP = 0x02, // this is a duplicate local translation
383  PD_HAS_LOCAL_DUPS = 0x04, // this has duplicate local translations
384  PD_SHOWN = 0x08 // temp flag to mark already shown props in showProps()
385 };
@ PD_LOCAL_DUP
Definition: mxsobjects.h:382
@ PD_NO_INIT
Definition: mxsobjects.h:381
@ PD_SHOWN
Definition: mxsobjects.h:384
@ PD_HAS_LOCAL_DUPS
Definition: mxsobjects.h:383

◆ metadata_flags

Enumerator
md_use_getref 
md_use_getref0 
md_use_getref1 
md_no_create 
md_no_access 
md_direct_index 
md_new_plugin 
md_auto_parms 
md_name_clash 
md_initialized 
md_no_cd 
md_was_new_plugin 
md_needs_localization 
511 {
512  md_use_getref = 0x0001, // parameter block is held as a reference by the class object
513  md_use_getref0 = 0x0002, // parameter block is ref 0
514  md_use_getref1 = 0x0004, // parameter block is ref 1
515  md_no_create = 0x0008, // class not creatable by default by maxscript, can force create using createInstance
516  md_no_access = 0x0010, // unused
517  md_direct_index = 0x0020, // parm_desc::parm_id values are indices instead of param id values
518  md_new_plugin = 0x0040, // maxclass is being dynamically created
519  md_auto_parms = 0x0080, // automatically build cached paramblock descriptors on first usage
520  md_name_clash = 0x0100, // when exporting maxclass to global variable, a global variable with desired name already existed
521  md_initialized = 0x0200, // maxclass has been initialized
522  md_no_cd = 0x0400, // when automatically creating maxclass from superclassid/classid, no corresponding classdesc existed
523  md_was_new_plugin = 0x0800, // maxclass was dynamically created
524  md_needs_localization = 0x1000, // maxclass needs localized pb1 parameter names to be added
525 };
@ md_no_cd
Definition: mxsobjects.h:522
@ md_was_new_plugin
Definition: mxsobjects.h:523
@ md_initialized
Definition: mxsobjects.h:521
@ md_use_getref1
Definition: mxsobjects.h:514
@ md_use_getref
Definition: mxsobjects.h:512
@ md_no_create
Definition: mxsobjects.h:515
@ md_direct_index
Definition: mxsobjects.h:517
@ md_name_clash
Definition: mxsobjects.h:520
@ md_no_access
Definition: mxsobjects.h:516
@ md_new_plugin
Definition: mxsobjects.h:518
@ md_use_getref0
Definition: mxsobjects.h:513
@ md_auto_parms
Definition: mxsobjects.h:519
@ md_needs_localization
Definition: mxsobjects.h:524

◆ anonymous enum

anonymous enum
Enumerator
TYPE_POINT3_ANGLE 
TYPE_POINT3_PCNT 
528 {
529  TYPE_POINT3_ANGLE = TYPE_USER + 128, /* MAXScript special paramblock types... */
531 };
@ TYPE_POINT3_ANGLE
Definition: mxsobjects.h:529
@ TYPE_POINT3_PCNT
Definition: mxsobjects.h:530
@ TYPE_USER
Used to define user types.
Definition: paramtype.h:36

◆ GetINodeTabResult

Enumerator
ResultOk 
ErrSelectionEmpty 
ErrRequireNodes 
771 {
772  ResultOk,
775 };
@ ErrSelectionEmpty
Definition: mxsobjects.h:773
@ ErrRequireNodes
Definition: mxsobjects.h:774
@ ResultOk
Definition: mxsobjects.h:772

Function Documentation

◆ get_deleted_obj_err_message()

ScripterExport const MCHAR* get_deleted_obj_err_message ( )

◆ lookup_MAXSuperClass()

ScripterExport MAXSuperClass* lookup_MAXSuperClass ( SClass_ID  scid)

◆ make_max_node()

Value* make_max_node ( MAXClass cls,
ReferenceTarget obj,
Value **  arg_list,
int  count 
)

◆ make_max_object()

Value* make_max_object ( MAXClass cls,
ReferenceTarget obj,
Value **  arg_list,
int  count 
)

◆ make_max_light()

Value* make_max_light ( MAXClass cls,
ReferenceTarget obj,
Value **  arg_list,
int  count 
)

◆ make_max_camera()

Value* make_max_camera ( MAXClass cls,
ReferenceTarget obj,
Value **  arg_list,
int  count 
)

◆ make_max_modifier()

Value* make_max_modifier ( MAXClass cls,
ReferenceTarget obj,
Value **  arg_list,
int  count 
)

◆ make_max_material()

Value* make_max_material ( MAXClass cls,
ReferenceTarget obj,
Value **  arg_list,
int  count 
)

◆ make_max_texturemap()

Value* make_max_texturemap ( MAXClass cls,
ReferenceTarget obj,
Value **  arg_list,
int  count 
)

◆ make_max_mtlbase()

Value* make_max_mtlbase ( MAXClass cls,
ReferenceTarget obj,
Value **  arg_list,
int  count 
)

◆ make_max_system()

Value* make_max_system ( MAXClass cls,
ReferenceTarget obj,
Value **  arg_list,
int  count 
)

◆ make_max_helper()

Value* make_max_helper ( MAXClass cls,
ReferenceTarget obj,
Value **  arg_list,
int  count 
)

◆ make_max_controller()

Value* make_max_controller ( MAXClass cls,
ReferenceTarget obj,
Value **  arg_list,
int  count 
)

◆ make_max_atmospheric()

Value* make_max_atmospheric ( MAXClass cls,
ReferenceTarget obj,
Value **  arg_list,
int  count 
)

◆ make_max_effect()

Value* make_max_effect ( MAXClass cls,
ReferenceTarget obj,
Value **  arg_list,
int  count 
)

◆ make_max_mpassCamEffect()

Value* make_max_mpassCamEffect ( MAXClass cls,
ReferenceTarget obj,
Value **  arg_list,
int  count 
)

◆ make_max_filter()

Value* make_max_filter ( MAXClass cls,
ReferenceTarget obj,
Value **  arg_list,
int  count 
)

◆ make_max_shadow()

Value* make_max_shadow ( MAXClass cls,
ReferenceTarget obj,
Value **  arg_list,
int  count 
)

◆ make_max_reftarg()

Value* make_max_reftarg ( MAXClass cls,
ReferenceTarget obj,
Value **  arg_list,
int  count 
)

◆ no_max_maker()

Value* no_max_maker ( MAXClass cls,
ReferenceTarget obj,
Value **  arg_list,
int  count 
)

◆ make_max_renderer()

Value* make_max_renderer ( MAXClass cls,
ReferenceTarget obj,
Value **  arg_list,
int  count 
)

◆ make_max_custattrib()

Value* make_max_custattrib ( MAXClass cls,
ReferenceTarget obj,
Value **  arg_list,
int  count 
)

◆ lookup_MAXClass()

ScripterExport MAXClass* lookup_MAXClass ( Class_ID cid,
SClass_ID  scid,
bool  make_new_if_missing = false 
)

◆ _maxwrapper_cache_get()

BOOL _maxwrapper_cache_get ( LONG_PTR  index_ptr,
MAXWrapper ***  pw 
)
inline
658 {
659  // compute cache index - fold halfwords & fold to cache size, get cache entry
660  int index = DL_abs((int)((PointerLoPart(index_ptr) ^ PointerHiPart(index_ptr)))) % MAXWRAPPER_CACHE_SIZE;
661  *pw = &maxwrapper_cache[index];
662  // we match initially if entry contains a non-deleted MAXWrapper
663  MAXWrapper* w = **pw;
664  return (w && !w->ref_deleted);
665 }
int DL_abs(int n)
Definition: 3dsmaxdlport.h:534
WORD PointerLoPart(ULONG_PTR ptr)
Definition: 3dsmaxdlport.h:386
WORD PointerHiPart(ULONG_PTR ptr)
Definition: 3dsmaxdlport.h:381
short ref_deleted
Definition: mxsobjects.h:97
ScripterExport MAXWrapper * maxwrapper_cache[]
#define MAXWRAPPER_CACHE_SIZE
Definition: mxsobjects.h:649

◆ maxwrapper_genref() [1/2]

LONG_PTR maxwrapper_genref ( void pObject,
LONG_PTR  index 
)
inline
710 {
711  return(reinterpret_cast<LONG_PTR>(pObject) ^ index);
712 }

◆ maxwrapper_genref() [2/2]

LONG_PTR maxwrapper_genref ( void pObject1,
void pObject2 
)
inline
715 {
716  return(maxwrapper_genref(pObject1, reinterpret_cast<LONG_PTR>(pObject2)));
717 }
LONG_PTR maxwrapper_genref(void *pObject, LONG_PTR index)
Definition: mxsobjects.h:709

◆ InvalidateNodeRect()

ScripterExport void InvalidateNodeRect ( INode node,
TimeValue  t 
)

◆ GetINodeTabFromValue()

ScripterExport GetINodeTabResult GetINodeTabFromValue ( Value val,
INodeTab nodeTab,
INodeTab **  pResult 
)

◆ for_all_nodes()

bool for_all_nodes ( INode root,
node_map m 
)

◆ find_first_node()

Value* find_first_node ( INode root,
node_find f 
)

◆ get_node()

Value* get_node ( INode root,
node_get g 
)

◆ for_all_path_nodes()

bool for_all_path_nodes ( INode root,
PathName path,
node_map m 
)

◆ all_objects_selector()

BOOL all_objects_selector ( INode node,
int  level,
const void selector_arg 
)

◆ max_name_compare()

int max_name_compare ( const MCHAR max_name,
const MCHAR other 
)

◆ get_subanim_property() [1/2]

Value* get_subanim_property ( Animatable anim,
Value prop 
)

◆ get_subanim_property() [2/2]

Value* get_subanim_property ( Animatable anim,
int  i 
)

◆ set_subanim_property() [1/2]

Value* set_subanim_property ( Animatable anim,
Value prop,
Value val 
)

◆ set_subanim_property() [2/2]

Value* set_subanim_property ( Animatable anim,
int  i,
Value val 
)

◆ set_subanim_controller()

BOOL set_subanim_controller ( Animatable anim,
Value prop,
Control newc,
MAXControl newcv 
)

◆ find_subanim_controller()

Control* find_subanim_controller ( Animatable anim,
Value prop,
ParamDimension **  dim 
)

◆ deselect_if_motion_panel_open()

void deselect_if_motion_panel_open ( )

◆ collect_nodes()

ScripterExport Value* collect_nodes ( Value **  arg_list,
int  count 
)

Variable Documentation

◆ MAXScript_interface

ScripterExport Interface* MAXScript_interface
extern

◆ MAXScript_interface7

ScripterExport Interface7* MAXScript_interface7
extern

◆ MAXScript_interface8

ScripterExport Interface8* MAXScript_interface8
extern

◆ MAXScript_interface9

ScripterExport Interface9* MAXScript_interface9
extern

◆ MAXScript_interface11

ScripterExport Interface11* MAXScript_interface11
extern

◆ MAXScript_interface13

ScripterExport Interface13* MAXScript_interface13
extern

◆ MAXScript_interface14

ScripterExport Interface14* MAXScript_interface14
extern

◆ maxwrapper_cache

ScripterExport MAXWrapper* maxwrapper_cache[]
extern

◆ gbuff_chan_codes

gbuff_chan_code gbuff_chan_codes[]
extern