3ds Max C++ API Reference
Loading...
Searching...
No Matches
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 "../protocols/node.inl"
#include "../protocols/arrays.inl"
#include "../macros/define_implementations.h"
#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()
#define deletion_check_test(val)
#define deletion_check(val)
#define def_generic(fn, name)
#define def_generic_debug_ok(fn, name)
#define def_property(p)
#define def_prop_getter(p)
#define def_prop_setter(p)
#define def_2_prop_path(p1, p2)
#define def_nested_prop(p1)
#define def_time_fn(_fn)
#define def_time_fn(_fn)
#define NO_TRANSLATE   0x0001
#define NO_SCALE   0x0002
#define ctrl_to_current_coordsys_rotate(p)
#define ctrl_from_current_coordsys_rotate(p)
#define object_to_current_coordsys_rotate(p)
#define object_from_current_coordsys_rotate(p)
#define world_to_current_coordsys_rotate(p)
#define world_from_current_coordsys_rotate(p)
#define object_to_current_coordsys_scaleRotate(p)
#define object_from_current_coordsys_scaleRotate(p)
#define is_maxsuperclass(v)
#define SC_SUPERCLASS_INITED   0x0001
#define SC_NON_REFTARG   0x0002
#define is_maxclass(v)
#define MAXWRAPPER_CACHE_SIZE   2048
#define maxwrapper_cache_get(_mw_class, _mw_ref, _mw_var, _ce_var)
#define is_node(v)
#define def_time_fn(_fn)
#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)
#define is_maxobject(v)
#define is_tab_param(v)
#define is_modifier(v)
#define REFMSG_MAXCONTROL_NOT_NEW   REFMSG_USER + 0x4af551aa
 RefMessage sent by Controls to tell MAXControl values that they are not new.
#define is_controller(v)
#define def_generic(fn, name)
#define def_visible_generic(fn, name)
#define def_struct_generic(fn, name)
#define def_node_generic(fn, name)
#define def_mapped_generic(fn, name)
#define use_generic(fn, name)
#define def_generic_debug_ok(fn, name)
#define def_visible_generic_debug_ok(fn, name)
#define def_struct_generic_debug_ok(fn, name)
#define def_node_generic_debug_ok(fn, name)
#define def_mapped_generic_debug_ok(fn, name)
#define def_primitive(fn, name)
#define def_lazy_primitive(fn, name)
#define def_visible_lazy_primitive(fn, name)
#define def_visible_primitive(fn, name)
#define def_mapped_primitive(fn, name)
#define def_struct_primitive(fn, _struct, name)
#define def_primitive_debug_ok(fn, name)
#define def_visible_primitive_debug_ok(fn, name)
#define def_mapped_primitive_debug_ok(fn, name)
#define def_lazy_primitive_debug_ok(fn, name)
#define def_visible_lazy_primitive_debug_ok(fn, name)
#define def_struct_primitive_debug_ok(fn, _struct, name)
#define def_property(p)
#define def_prop_getter(p)
#define def_prop_setter(p)
#define def_property_alias(p, real_p)
#define def_2_prop_path(p1, p2)
#define def_2_prop_path_alias(p1, p2, real_p1, real_p2)
#define def_nested_prop(p1)
#define def_backpatched_setter(_prop, _superclass)
#define def_local_prop_alias(p, real_p)
#define def_time_fn(_fn)
#define def_name(name)
#define def_marker(var, str)
#define _def_num_bin_op(_class, _conv, _op_fn, _op, _member)
#define _def_bin_op(_class, _conv, _op_fn, _op, _member)
#define _def_rel_op(_class, _conv, _op_fn, _rel_op, _member)
#define def_eq_op(_class, comparison_method, _member)
#define def_ne_op(_class, comparison_method, _member)
#define _def_num_un_op(_class, _op_fn, _op, _member)
#define _def_un_op(_class, _op_fn, _op, _member)
#define def_bin_op(_class, _conv, _op_fn, _op)
#define def_rel_op(_class, _conv, _op_fn, _rel_op)
#define def_un_op(_class, _op_fn, _op)
#define PI_double   (3.14159265358979323846)
#define TWOPI_double   (6.28318530717958647652)
#define HALFPI_double   (1.57079632679489661973)
#define DEG_TO_RAD_double   (PI_double/180.0)
#define RAD_TO_DEG_double   (180.0/PI_double)
#define DegToRad_double(deg)
#define RadToDeg_double(rad)
#define DegToRad_float(deg)
#define RadToDeg_float(rad)
#define def_math_fn(_class, _outclass, _type, _conv, _fn)
#define def_angle_trig_fn(_class, _outclass, _type, _conv, _fn)
#define def_float_trig_fn(_class, _outclass, _type, _conv, _fn)
#define def_math_bin_fn(_class, _outclass, _type, _conv, _fn)
#define def_angle_trig_bin_fn(_class, _outclass, _type, _conv, _fn)
#define def_num_prop_accessors(_class, _prop, _member, _type, _conv)
#define def_prop_accessors(_class, _prop, _member, _type, _conv)
#define def_fn_prop_accessors(_class, _prop, _getter, _setter)
#define def_fn_prop_getter(_class, _prop, _getter)
#define def_fn_prop_setter(_class, _prop, _setter)
#define def_float_prop_accessors(_class, _prop, _member)
#define def_int_prop_accessors(_class, _prop, _member)
#define def_point3_prop_accessors(_class, _prop, _member)
#define def_angle_prop_accessors(_class, _prop, _member)
#define def_time_bin_op(_op_fn, _op)
#define def_time_rel_op(_op_fn, _rel_op)
#define def_time_un_op(_op_fn, _op)
#define def_quat_bin_op(_class, _conv, _op_fn, _op)
#define def_quat_rel_op(_class, _conv, _op_fn, _rel_op)
#define def_quat_un_op(_class, _op_fn, _op)
#define def_new_quat_fn(_fn, _arg_count, _call)
#define def_mut_quat_fn(_fn, _arg_count, _call)
#define def_new_mat_fn(_fn, _arg_count, _call)
#define def_mut_mat_fn(_fn, _arg_count, _call)
#define def_mat_primitive(_fn, _arg_count, _call)
#define def_mat_bin_op(_class, _conv, _op_fn, _op)
#define def_mat_rel_op(_class, _conv, _op_fn, _rel_op)
#define def_mat_un_op(_class, _op_fn, _op)
#define def_bool_node_fns(name, getter, setter)
#define def_bool_node_getter(name, getter)
#define def_ulong_node_fns(name, getter, setter)
#define def_color_node_fns(name, getter, setter)
#define def_bool_node_noredraw_fns(name, getter, setter)
#define def_ulong_node_noredraw_fns(name, getter, setter)
#define def_color_node_noredraw_fns(name, getter, setter)
#define MAX_CTRL_NO_DIM   0x01
#define MAX_CTRL_NEW   0x02
#define is_subAnim(v)
#define is_trackviewpick(v)
#define is_mesh(v)
#define is_beziershape(v)
#define is_custattrib(v)
#define CH_BROKEN   0x0001
#define CH_BUSY   0x0002
#define CH_NOTIFIED   0x0004
#define CH_DELETE   0x0008
#define CH_DISABLED   0x0010
#define is_rootnode(v)
#define NM_INVERT   0x0001
#define NM_SELECT   0x0002
#define NM_GET   0x0004
#define NM_MXS_FN   0x0008

Typedefs

using maker_fn = Value* (*)(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) \
) \
) \
)
CoreExport FPInterface * GetInterface(SClass_ID super, Class_ID cls, Interface_ID id)
Get ID'd interface from ClassDesc for given class/sclass.
#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
63#define check_for_deletion_test() \
64 ( ref_deleted || \
65 ( NumRefs() > 0 && (GetReference(0) == NULL) ) || \
66 ( NumRefs() > 0 && \
67 GetReference(0)->TestAFlag(A_IS_DELETED) && \
68 ( (GetReference(0)->GetInterface(INODE_INTERFACE)==NULL) || \
69 (((INode*)GetReference(0))->GetTMController() == NULL) || \
70 (((INode*)GetReference(0))->GetParentNode() == NULL) \
71 ) \
72 ) \
73 )

◆ check_for_deletion

#define check_for_deletion ( )
Value:
Definition exceptions.h:253
#define check_for_deletion_test()
Definition mxsobjects.h:63
ScripterExport const MCHAR * get_deleted_obj_err_message()

◆ 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) \
) \
) \
)
75#define deletion_check_test(val) \
76 ( (val)->ref_deleted || \
77 ( (val)->NumRefs() > 0 && ((val)->GetReference(0) == NULL) ) || \
78 ( (val)->NumRefs() > 0 && \
79 (val)->GetReference(0)->TestAFlag(A_IS_DELETED) && \
80 ( ((val)->GetReference(0)->GetInterface(INODE_INTERFACE)==NULL) || \
81 (((INode*)(val)->GetReference(0))->GetTMController() == NULL) || \
82 (((INode*)(val)->GetReference(0))->GetParentNode() == NULL) \
83 ) \
84 ) \
85 )

◆ deletion_check

#define deletion_check ( val)
Value:
if (deletion_check_test(val)) throw RuntimeError (get_deleted_obj_err_message(), (val)->class_name());
#define deletion_check_test(val)
Definition mxsobjects.h:75

◆ def_generic [1/2]

#define def_generic ( fn,
name )
Value:
ScripterExport Value* fn##_vf(Value** arglist, int arg_count)
#define ScripterExport
Definition ScripterExport.h:7
Definition value.h:107
167#define def_generic(fn, name) \
168 ScripterExport Value* fn##_vf(Value** arglist, int arg_count)

◆ def_generic_debug_ok [1/2]

#define def_generic_debug_ok ( fn,
name )
Value:
ScripterExport Value* fn##_vf(Value** arglist, int arg_count)
170#define def_generic_debug_ok(fn, name) \
171 ScripterExport Value* fn##_vf(Value** arglist, int arg_count)

◆ def_property [1/2]

#define def_property ( p)
Value:
ScripterExport Value* get_##p(Value** arg_list, int count); \
ScripterExport Value* set_##p(Value** arg_list, int count)
173#define def_property(p) \
174 ScripterExport Value* get_##p(Value** arg_list, int count); \
175 ScripterExport Value* set_##p(Value** arg_list, int count)

◆ def_prop_getter [1/2]

#define def_prop_getter ( p)
Value:
ScripterExport Value* get_##p(Value** arg_list, int count)
176#define def_prop_getter(p) \
177 ScripterExport Value* get_##p(Value** arg_list, int count)

◆ def_prop_setter [1/2]

#define def_prop_setter ( p)
Value:
ScripterExport Value* set_##p(Value** arg_list, int count)
178#define def_prop_setter(p) \
179 ScripterExport Value* set_##p(Value** arg_list, int count)

◆ def_2_prop_path [1/2]

#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)
180#define def_2_prop_path(p1, p2) \
181 ScripterExport Value* get_##p1##_##p2(Value** arg_list, int count); \
182 ScripterExport Value* set_##p1##_##p2(Value** arg_list, int count)

◆ def_nested_prop [1/2]

#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)
183#define def_nested_prop(p1) \
184 ScripterExport Value* get_nested_##p1(Value** arg_list, int count); \
185 ScripterExport Value* set_nested_##p1(Value** arg_list, int count)

◆ def_time_fn [1/4]

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

◆ def_time_fn [2/4]

#define def_time_fn ( _fn)
Value:
ScripterExport Value* _fn(Animatable* anim, Value** arglist, int arg_count)
Definition Animatable.h:118

◆ NO_TRANSLATE

#define NO_TRANSLATE   0x0001

◆ NO_SCALE

#define NO_SCALE   0x0002

◆ ctrl_to_current_coordsys_rotate

#define ctrl_to_current_coordsys_rotate ( p)
Value:
ctrl_to_current_coordsys(p, NO_TRANSLATE + NO_SCALE)
#define NO_TRANSLATE
Definition mxsobjects.h:354
#define NO_SCALE
Definition mxsobjects.h:355

◆ ctrl_from_current_coordsys_rotate

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

◆ object_to_current_coordsys_rotate

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

◆ object_from_current_coordsys_rotate

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

◆ world_to_current_coordsys_rotate

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

◆ world_from_current_coordsys_rotate

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

◆ object_to_current_coordsys_scaleRotate

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

◆ object_from_current_coordsys_scaleRotate

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

◆ is_maxsuperclass

#define is_maxsuperclass ( v)
Value:
Definition mxsobjects.h:449
#define DbgVerify(expr)
Definition assert1.h:85
#define is_sourcepositionwrapper(v)
Definition value.h:645
#define class_tag(_cls)
Definition value.h:602

◆ SC_SUPERCLASS_INITED

#define SC_SUPERCLASS_INITED   0x0001

◆ SC_NON_REFTARG

#define SC_NON_REFTARG   0x0002

◆ is_maxclass

#define is_maxclass ( v)
Value:
Definition mxsobjects.h:540

◆ 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:666
677#define maxwrapper_cache_get(_mw_class, _mw_ref, _mw_var, _ce_var) \
678 (_maxwrapper_cache_get((LONG_PTR)(_mw_ref) ^ (LONG_PTR)class_tag(_mw_class), (MAXWrapper***)&_ce_var) && \
679 (_mw_var = *_ce_var)->tag == class_tag(_mw_class))

◆ is_node

#define is_node ( v)
Value:
Definition mxsobjects.h:796

◆ def_time_fn [3/4]

#define def_time_fn ( _fn)
Value:
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)
Value:
Definition mxsobjects.h:972

◆ is_maxobject

#define is_maxobject ( v)
Value:
Definition mxsobjects.h:1013

◆ is_tab_param

#define is_tab_param ( v)
Value:
Definition mxsobjects.h:1049

◆ is_modifier

#define is_modifier ( v)
Value:
Definition mxsobjects.h:1093

◆ 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)
Value:
Definition mxsobjects.h:1161

◆ def_generic [2/2]

#define def_generic ( fn,
name )
Value:
Value* fn##_vf(Value** arglist, int arg_count)
167#define def_generic(fn, name) \
168 ScripterExport Value* fn##_vf(Value** arglist, int arg_count)

◆ def_visible_generic

#define def_visible_generic ( fn,
name )
Value:
def_generic(fn, name)
#define def_generic(fn, name)
Definition functions.h:15

◆ def_struct_generic

#define def_struct_generic ( fn,
name )
Value:
def_generic(fn, name)

◆ def_node_generic

#define def_node_generic ( fn,
name )
Value:
def_generic(fn, name)

◆ def_mapped_generic

#define def_mapped_generic ( fn,
name )
Value:
def_generic(fn, name)

◆ use_generic

#define use_generic ( fn,
name )
Value:
def_generic(fn, name)

◆ def_generic_debug_ok [2/2]

#define def_generic_debug_ok ( fn,
name )
Value:
def_generic(fn, name)
170#define def_generic_debug_ok(fn, name) \
171 ScripterExport Value* fn##_vf(Value** arglist, int arg_count)

◆ def_visible_generic_debug_ok

#define def_visible_generic_debug_ok ( fn,
name )
Value:
def_generic(fn, name)

◆ def_struct_generic_debug_ok

#define def_struct_generic_debug_ok ( fn,
name )
Value:
def_generic(fn, name)

◆ def_node_generic_debug_ok

#define def_node_generic_debug_ok ( fn,
name )
Value:
def_generic(fn, name)

◆ def_mapped_generic_debug_ok

#define def_mapped_generic_debug_ok ( fn,
name )
Value:
def_generic(fn, name)

◆ def_primitive

#define def_primitive ( fn,
name )

◆ def_lazy_primitive

#define def_lazy_primitive ( fn,
name )
Value:
def_primitive(fn, name)
#define def_primitive(fn, name)
Definition define_abstract_functions.h:87

◆ def_visible_lazy_primitive

#define def_visible_lazy_primitive ( fn,
name )
Value:
def_primitive(fn, name)

◆ def_visible_primitive

#define def_visible_primitive ( fn,
name )
Value:
def_primitive(fn, name)

◆ def_mapped_primitive

#define def_mapped_primitive ( fn,
name )
Value:
def_primitive(fn, name)

◆ def_struct_primitive

#define def_struct_primitive ( fn,
_struct,
name )
Value:
def_primitive(fn, name)

◆ def_primitive_debug_ok

#define def_primitive_debug_ok ( fn,
name )

◆ def_visible_primitive_debug_ok

#define def_visible_primitive_debug_ok ( fn,
name )

◆ def_mapped_primitive_debug_ok

#define def_mapped_primitive_debug_ok ( fn,
name )

◆ def_lazy_primitive_debug_ok

#define def_lazy_primitive_debug_ok ( fn,
name )

◆ def_visible_lazy_primitive_debug_ok

#define def_visible_lazy_primitive_debug_ok ( fn,
name )

◆ def_struct_primitive_debug_ok

#define def_struct_primitive_debug_ok ( fn,
_struct,
name )

◆ def_property [2/2]

#define def_property ( p)
Value:
Value* get_##p(Value** arg_list, int count); \
Value* set_##p(Value** arg_list, int count)
173#define def_property(p) \
174 ScripterExport Value* get_##p(Value** arg_list, int count); \
175 ScripterExport Value* set_##p(Value** arg_list, int count)

◆ def_prop_getter [2/2]

#define def_prop_getter ( p)
Value:
Value* get_##p(Value** arg_list, int count)
176#define def_prop_getter(p) \
177 ScripterExport Value* get_##p(Value** arg_list, int count)

◆ def_prop_setter [2/2]

#define def_prop_setter ( p)
Value:
Value* set_##p(Value** arg_list, int count)
178#define def_prop_setter(p) \
179 ScripterExport Value* set_##p(Value** arg_list, int count)

◆ def_property_alias

#define def_property_alias ( p,
real_p )

◆ def_2_prop_path [2/2]

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

◆ def_2_prop_path_alias

#define def_2_prop_path_alias ( p1,
p2,
real_p1,
real_p2 )

◆ def_nested_prop [2/2]

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

◆ def_backpatched_setter

#define def_backpatched_setter ( _prop,
_superclass )
Value:
Value* \
set_##_prop(Value** arg_list, int count) \
{ \
_superclass::set_##_prop(arg_list, count); \
back_patch(); \
return arg_list[0]; \
};

◆ def_local_prop_alias

#define def_local_prop_alias ( p,
real_p )
Value:
Value* get_##p(Value** arg_list, int count) { return get_##real_p(arg_list, count); } \
Value* set_##p(Value** arg_list, int count) { return set_##real_p(arg_list, count); } \

◆ def_time_fn [4/4]

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

◆ def_name

#define def_name ( name)
Value:
n_##name = Name::intern(_M(#name));
static ScripterExport Value * intern(const MCHAR *str)
#define _M(x)
Used to wrap string literals.
Definition strbasic.h:67

◆ def_marker

#define def_marker ( var,
str )

◆ _def_num_bin_op

#define _def_num_bin_op ( _class,
_conv,
_op_fn,
_op,
_member )
Value:
Value* \
_class::_op_fn##_vf(Value** arg_list, int count) \
{ \
check_arg_count(_fn, 2, count+1); \
one_value_local(widened); \
Value *arg, *result; \
arg = arg_list[0]; \
if (tag != arg->tag && ((vl.widened = widen_to(arg, arg_list)) != NULL)) \
result = vl.widened->_op_fn##_vf(arg_list, 1); \
else \
result = _class::intern(_member _op (arg_list[0])->_conv()); \
return_value(result); \
}
ValueMetaClass * tag
Definition value.h:114

◆ _def_bin_op

#define _def_bin_op ( _class,
_conv,
_op_fn,
_op,
_member )
Value:
Value* \
_class::_op_fn##_vf(Value** arg_list, int count) \
{ \
check_arg_count(_op_fn, 2, count + 1); \
one_value_local(widened); \
Value *arg, *result; \
arg = arg_list[0]; \
if (tag != arg->tag && ((vl.widened = widen_to(arg, arg_list)) != NULL)) \
result = vl.widened->_op_fn##_vf(arg_list, 1); \
else \
result = new _class (_member _op (arg_list[0])->_conv()); \
return_value(result); \
}

◆ _def_rel_op

#define _def_rel_op ( _class,
_conv,
_op_fn,
_rel_op,
_member )
Value:
Value* \
_class::_op_fn##_vf(Value** arg_list, int count) \
{ \
check_arg_count(_op_fn, 2, count + 1); \
one_value_local(widened); \
Value *arg, *result; \
arg = arg_list[0]; \
if (tag != arg->tag && ((vl.widened = widen_to(arg, arg_list)) != NULL)) \
result = vl.widened->_op_fn##_vf(arg_list, 1); \
else \
{ \
if (comparable(arg)) \
result = (_member _rel_op arg->_conv()) ? \
else \
throw IncompatibleTypes(this, arg); \
} \
return_value(result); \
}
Definition exceptions.h:301
ScripterExport Boolean false_value
ScripterExport Boolean true_value

◆ def_eq_op

#define def_eq_op ( _class,
comparison_method,
_member )
Value:
Value* \
_class::eq_vf(Value** arg_list, int count) \
{ \
check_arg_count(eq, 2, count + 1); \
Value* cmpnd = arg_list[0]; \
Value* result; \
bool specialCaseCompareResult = false; \
if (special_case_compare(cmpnd,specialCaseCompareResult)) \
{ \
result = specialCaseCompareResult ? &true_value : &false_value; \
} \
else if (comparable(cmpnd)) \
result = (_member == cmpnd->comparison_method()) ? \
else \
result = &false_value; \
return result; \
}

◆ def_ne_op

#define def_ne_op ( _class,
comparison_method,
_member )
Value:
Value* \
_class::ne_vf(Value** arg_list, int count) \
{ \
check_arg_count(ne, 2, count + 1); \
Value* cmpnd = arg_list[0]; \
Value* result; \
bool specialCaseCompareResult = false; \
if (special_case_compare(cmpnd,specialCaseCompareResult)) \
{ \
result = specialCaseCompareResult ? &false_value : &true_value; \
} \
else if (comparable(cmpnd)) \
result = (_member == cmpnd->comparison_method()) ? \
else \
result = &true_value; \
return result; \
}

◆ _def_num_un_op

#define _def_num_un_op ( _class,
_op_fn,
_op,
_member )
Value:
Value* \
_class::_op_fn##_vf(Value** arg_list, int count) \
{ \
check_arg_count(_op_fn, 1, count + 1); \
return_value (_class::intern(_op _member)); \
}

◆ _def_un_op

#define _def_un_op ( _class,
_op_fn,
_op,
_member )
Value:
Value* \
_class::_op_fn##_vf(Value** arg_list, int count) \
{ \
check_arg_count(_op_fn, 1, count + 1); \
return new _class (_op _member); \
}

◆ def_bin_op

#define def_bin_op ( _class,
_conv,
_op_fn,
_op )
Value:
_def_num_bin_op(_class, _conv, _op_fn, _op, value)
#define _def_num_bin_op(_class, _conv, _op_fn, _op, _member)
Definition define_implementations.h:124

◆ def_rel_op

#define def_rel_op ( _class,
_conv,
_op_fn,
_rel_op )
Value:
_def_rel_op(_class, _conv, _op_fn, _rel_op, value)
#define _def_rel_op(_class, _conv, _op_fn, _rel_op, _member)
Definition define_implementations.h:154

◆ def_un_op

#define def_un_op ( _class,
_op_fn,
_op )
Value:
_def_num_un_op(_class, _op_fn, _op, value)
#define _def_num_un_op(_class, _op_fn, _op, _member)
Definition define_implementations.h:217

◆ PI_double

#define PI_double   (3.14159265358979323846)

◆ TWOPI_double

#define TWOPI_double   (6.28318530717958647652)

◆ HALFPI_double

#define HALFPI_double   (1.57079632679489661973)

◆ DEG_TO_RAD_double

#define DEG_TO_RAD_double   (PI_double/180.0)

◆ RAD_TO_DEG_double

#define RAD_TO_DEG_double   (180.0/PI_double)

◆ DegToRad_double

#define DegToRad_double ( deg)
Value:
(((double)deg)*DEG_TO_RAD_double)
#define DEG_TO_RAD_double
Definition define_implementations.h:244

◆ RadToDeg_double

#define RadToDeg_double ( rad)
Value:
(((double)rad)*RAD_TO_DEG_double)
#define RAD_TO_DEG_double
Definition define_implementations.h:245

◆ DegToRad_float

#define DegToRad_float ( deg)
Value:
DegToRad(deg)

◆ RadToDeg_float

#define RadToDeg_float ( rad)
Value:
RadToDeg(rad)

◆ def_math_fn

#define def_math_fn ( _class,
_outclass,
_type,
_conv,
_fn )
Value:
Value* \
_class::_fn##_vf(Value** arg_list, int count) \
{ \
check_arg_count(_fn, 1, count+1); \
return_value (_outclass::intern((_type)_fn(_conv()))); \
}

◆ def_angle_trig_fn

#define def_angle_trig_fn ( _class,
_outclass,
_type,
_conv,
_fn )
Value:
Value* \
_class::_fn##_vf(Value** arg_list, int count) \
{ \
check_arg_count(_fn, 1, count+1); \
return_value (_outclass::intern(RadToDeg_##_type((_type)_fn(_conv())))); \
}

◆ def_float_trig_fn

#define def_float_trig_fn ( _class,
_outclass,
_type,
_conv,
_fn )
Value:
Value* \
_class::_fn##_vf(Value** arg_list, int count) \
{ \
check_arg_count(_fn, 1, count+1); \
return_value (_outclass::intern((_type)_fn(DegToRad_##_type(_conv())))); \
}

◆ def_math_bin_fn

#define def_math_bin_fn ( _class,
_outclass,
_type,
_conv,
_fn )
Value:
Value* \
_class::_fn##_vf(Value** arg_list, int count) \
{ \
check_arg_count(_fn, 2, count+1); \
one_value_local(widened); \
Value *arg, *result; \
arg = arg_list[0]; \
if (tag != arg->tag && ((vl.widened = widen_to(arg, arg_list)) != NULL)) \
result = vl.widened->_fn##_vf(arg_list, 1); \
else \
result = _outclass::intern((_type)_fn(_conv(), arg_list[0]->_conv())); \
return_value(result); \
}

◆ def_angle_trig_bin_fn

#define def_angle_trig_bin_fn ( _class,
_outclass,
_type,
_conv,
_fn )
Value:
Value* \
_class::_fn##_vf(Value** arg_list, int count) \
{ \
check_arg_count(_fn, 2, count+1); \
return_value (_outclass::intern(RadToDeg_##_type((_type)_fn(_conv(), \
arg_list[0]->_conv())))); \
}

◆ def_num_prop_accessors

#define def_num_prop_accessors ( _class,
_prop,
_member,
_type,
_conv )
Value:
Value* \
_class::get_##_prop(Value** arg_list, int count) \
{ \
return_value (_type::intern(_member)); \
} \
Value* \
_class::set_##_prop(Value** arg_list, int count) \
{ \
Value* val = arg_list[0]; \
_member = val->_conv(); \
return val; \
}

◆ def_prop_accessors

#define def_prop_accessors ( _class,
_prop,
_member,
_type,
_conv )
Value:
Value* \
_class::get_##_prop(Value** arg_list, int count) \
{ \
return new _type (_member); \
} \
Value* \
_class::set_##_prop(Value** arg_list, int count) \
{ \
Value* val = arg_list[0]; \
_member = val->_conv(); \
return val; \
}

◆ def_fn_prop_accessors

#define def_fn_prop_accessors ( _class,
_prop,
_getter,
_setter )
Value:
Value* \
_class::get_##_prop(Value** arg_list, int count) \
{ \
return _getter; \
} \
Value* \
_class::set_##_prop(Value** arg_list, int count) \
{ \
Value* val = arg_list[0]; \
_setter; \
return val; \
}

◆ def_fn_prop_getter

#define def_fn_prop_getter ( _class,
_prop,
_getter )
Value:
Value* \
_class::get_##_prop(Value** arg_list, int count) \
{ \
return _getter; \
}

◆ def_fn_prop_setter

#define def_fn_prop_setter ( _class,
_prop,
_setter )
Value:
Value* \
_class::set_##_prop(Value** arg_list, int count) \
{ \
Value* val = arg_list[0]; \
_setter; \
return val; \
}

◆ def_float_prop_accessors

#define def_float_prop_accessors ( _class,
_prop,
_member )
Value:
def_num_prop_accessors(_class, _prop, _member, Float, to_float)
Definition numbers.h:77
#define def_num_prop_accessors(_class, _prop, _member, _type, _conv)
Definition define_implementations.h:300

◆ def_int_prop_accessors

#define def_int_prop_accessors ( _class,
_prop,
_member )
Value:
def_num_prop_accessors(_class, _prop, _member, Integer, to_int)
Definition numbers.h:176

◆ def_point3_prop_accessors

#define def_point3_prop_accessors ( _class,
_prop,
_member )
Value:
def_fn_prop_accessors(_class, _prop, new Point3Value (_member), _member = val->to_point3())
Definition 3dmath.h:26
Point3 to_point3() override
Definition 3dmath.h:62
#define def_fn_prop_accessors(_class, _prop, _getter, _setter)
Definition define_implementations.h:328

◆ def_angle_prop_accessors

#define def_angle_prop_accessors ( _class,
_prop,
_member )
Value:
def_fn_prop_accessors(_class, _prop, Float::intern(RadToDeg(_member)), _member = DegToRad(val->to_float()))
static ScripterExport Value * intern(float init_val)

◆ def_time_bin_op

#define def_time_bin_op ( _op_fn,
_op )
Value:
_def_bin_op(MSTime, to_timevalue, _op_fn, _op, time)
Definition mxstime.h:20
#define _def_bin_op(_class, _conv, _op_fn, _op, _member)
Definition define_implementations.h:139

◆ def_time_rel_op

#define def_time_rel_op ( _op_fn,
_rel_op )
Value:
_def_rel_op(MSTime, to_timevalue, _op_fn, _rel_op, time)

◆ def_time_un_op

#define def_time_un_op ( _op_fn,
_op )
Value:
_def_un_op(MSTime, _op_fn, _op, time)
#define _def_un_op(_class, _op_fn, _op, _member)
Definition define_implementations.h:225

◆ def_quat_bin_op

#define def_quat_bin_op ( _class,
_conv,
_op_fn,
_op )
Value:
_def_bin_op(_class, _conv, _op_fn, _op, q)

◆ def_quat_rel_op

#define def_quat_rel_op ( _class,
_conv,
_op_fn,
_rel_op )
Value:
_def_rel_op(_class, _conv, _op_fn, _rel_op, q)

◆ def_quat_un_op

#define def_quat_un_op ( _class,
_op_fn,
_op )
Value:
_def_un_op(_class, _op_fn, _op, q)

◆ def_new_quat_fn

#define def_new_quat_fn ( _fn,
_arg_count,
_call )
Value:
Value* \
QuatValue::_fn##_vf(Value** arg_list, int count) \
{ \
check_arg_count(_fn, _arg_count, count + 1); \
return new QuatValue (_call); \
}
Definition 3dmath.h:143

◆ def_mut_quat_fn

#define def_mut_quat_fn ( _fn,
_arg_count,
_call )
Value:
Value* \
QuatValue::_fn##_vf(Value** arg_list, int count) \
{ \
check_arg_count(_fn, _arg_count, count + 1); \
_call; \
return this; \
}

◆ def_new_mat_fn

#define def_new_mat_fn ( _fn,
_arg_count,
_call )
Value:
Value* \
Matrix3Value::_fn##_vf(Value** arg_list, int count) \
{ \
check_arg_count(_fn, _arg_count, count + 1); \
return new Matrix3Value (_call); \
}
Definition 3dmath.h:300

◆ def_mut_mat_fn

#define def_mut_mat_fn ( _fn,
_arg_count,
_call )
Value:
Value* \
Matrix3Value::_fn##_vf(Value** arg_list, int count) \
{ \
check_arg_count(_fn, _arg_count, count + 1); \
_call; \
return this; \
}

◆ def_mat_primitive

#define def_mat_primitive ( _fn,
_arg_count,
_call )
Value:
Value* \
_fn##_cf(Value** arg_list, int count) \
{ \
check_arg_count(_fn, _arg_count, count); \
return new Matrix3Value (_call); \
}

◆ def_mat_bin_op

#define def_mat_bin_op ( _class,
_conv,
_op_fn,
_op )
Value:
_def_bin_op(_class, _conv, _op_fn, _op, m)

◆ def_mat_rel_op

#define def_mat_rel_op ( _class,
_conv,
_op_fn,
_rel_op )
Value:
_def_rel_op(_class, _conv, _op_fn, _rel_op, m)

◆ def_mat_un_op

#define def_mat_un_op ( _class,
_op_fn,
_op )
Value:
_def_un_op(_class, _op_fn, _op, m)

◆ def_bool_node_fns

#define def_bool_node_fns ( name,
getter,
setter )
Value:
Value* node_get_##name(ReferenceTarget* obj, Value* prop, TimeValue t, Interval& valid) \
{ \
return ((INode*)obj)->getter() ? &true_value : &false_value; \
} \
void node_set_##name(ReferenceTarget* obj, Value* prop, TimeValue t, Value* val) \
{ \
((INode*)obj)->setter(val->to_bool()); \
InvalidateNodeRect((INode*)obj,t); \
}
Definition interval.h:36
A scene entity that is being owned and listened to by other scene entities.
Definition ref.h:1869
int TimeValue
Definition maxtypes.h:31

◆ def_bool_node_getter

#define def_bool_node_getter ( name,
getter )
Value:
Value* node_get_##name(ReferenceTarget* obj, Value* prop, TimeValue t, Interval& valid) \
{ \
return ((INode*)obj)->getter() ? &true_value : &false_value; \
} \
void node_set_##name(ReferenceTarget* obj, Value* prop, TimeValue t, Value* val) \
{ \
throw RuntimeError (_M("Property not settable: "), _M(#name)); \
}

◆ def_ulong_node_fns

#define def_ulong_node_fns ( name,
getter,
setter )
Value:
Value* node_get_##name(ReferenceTarget* obj, Value* prop, TimeValue t, Interval& valid) \
{ \
return_value (Integer::intern((int)((INode*)obj)->getter())); \
} \
void node_set_##name(ReferenceTarget* obj, Value* prop, TimeValue t, Value* val) \
{ \
((INode*)obj)->setter((ULONG)val->to_int()); \
InvalidateNodeRect((INode*)obj,t); \
}
static ScripterExport Value * intern(int init_val)

◆ def_color_node_fns

#define def_color_node_fns ( name,
getter,
setter )
Value:
Value* node_get_##name(ReferenceTarget* obj, Value* prop, TimeValue t, Interval& valid) \
{ \
DWORD rgb = ((INode*)obj)->getter(); \
return_value (ColorValue::intern(GetRValue(rgb) / 255.0f, GetGValue(rgb) / 255.0f, GetBValue(rgb) / 255.0f)); \
} \
void node_set_##name(ReferenceTarget* obj, Value* prop, TimeValue t, Value* val) \
{ \
AColor c; \
c = val->to_acolor(); \
((INode*)obj)->setter(RGB((BYTE)(c.r * 255), (BYTE)(c.g * 255), (BYTE)(c.b * 255))); \
InvalidateNodeRect((INode*)obj,t); \
}
static ScripterExport Value * intern(AColor col)

◆ def_bool_node_noredraw_fns

#define def_bool_node_noredraw_fns ( name,
getter,
setter )
Value:
Value* node_get_##name(ReferenceTarget* obj, Value* prop, TimeValue t, Interval& valid) \
{ \
return ((INode*)obj)->getter() ? &true_value : &false_value; \
} \
void node_set_##name(ReferenceTarget* obj, Value* prop, TimeValue t, Value* val) \
{ \
((INode*)obj)->setter(val->to_bool()); \
}

◆ def_ulong_node_noredraw_fns

#define def_ulong_node_noredraw_fns ( name,
getter,
setter )
Value:
Value* node_get_##name(ReferenceTarget* obj, Value* prop, TimeValue t, Interval& valid) \
{ \
return_value (Integer::intern((int)((INode*)obj)->getter())); \
} \
void node_set_##name(ReferenceTarget* obj, Value* prop, TimeValue t, Value* val) \
{ \
((INode*)obj)->setter((ULONG)val->to_int()); \
}

◆ def_color_node_noredraw_fns

#define def_color_node_noredraw_fns ( name,
getter,
setter )
Value:
Value* node_get_##name(ReferenceTarget* obj, Value* prop, TimeValue t, Interval& valid) \
{ \
DWORD rgb = ((INode*)obj)->getter(); \
return_value (ColorValue::intern(GetRValue(rgb) / 255.0f, GetGValue(rgb) / 255.0f, GetBValue(rgb) / 255.0f)); \
} \
void node_set_##name(ReferenceTarget* obj, Value* prop, TimeValue t, Value* val) \
{ \
AColor c; \
c = val->to_acolor(); \
((INode*)obj)->setter(RGB((BYTE)(c.r * 255), (BYTE)(c.g * 255), (BYTE)(c.b * 255))); \
}

◆ MAX_CTRL_NO_DIM

#define MAX_CTRL_NO_DIM   0x01

◆ MAX_CTRL_NEW

#define MAX_CTRL_NEW   0x02

◆ is_subAnim

#define is_subAnim ( v)
Value:
Definition mxsobjects.h:1229

◆ is_trackviewpick

#define is_trackviewpick ( v)
Value:
Definition mxsobjects.h:1350

◆ is_mesh

#define is_mesh ( v)
Value:
Definition mxsobjects.h:1422

◆ is_beziershape

#define is_beziershape ( v)
Value:
Definition mxsobjects.h:1572

◆ is_custattrib

#define is_custattrib ( v)
Value:
Definition mxsobjects.h:1741

◆ CH_BROKEN

#define CH_BROKEN   0x0001

◆ CH_BUSY

#define CH_BUSY   0x0002

◆ CH_NOTIFIED

#define CH_NOTIFIED   0x0004

◆ CH_DELETE

#define CH_DELETE   0x0008

◆ CH_DISABLED

#define CH_DISABLED   0x0010

◆ is_rootnode

#define is_rootnode ( v)
Value:
Definition mxsobjects.h:1875

◆ 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

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

Enumeration Type Documentation

◆ metadata_flag

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

◆ parm_desc_flags

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

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

◆ anonymous enum

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

◆ GetINodeTabResult

Enumerator
ResultOk 
ErrSelectionEmpty 
ErrRequireNodes 
780{
781 ResultOk,
784};
@ ErrSelectionEmpty
Definition mxsobjects.h:782
@ ErrRequireNodes
Definition mxsobjects.h:783
@ ResultOk
Definition mxsobjects.h:781

Function Documentation

◆ get_deleted_obj_err_message()

ScripterExport const MCHAR * get_deleted_obj_err_message ( )
extern

◆ lookup_MAXSuperClass()

ScripterExport MAXSuperClass * lookup_MAXSuperClass ( SClass_ID scid)
extern

◆ 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 )
extern

◆ _maxwrapper_cache_get()

BOOL _maxwrapper_cache_get ( LONG_PTR index_ptr,
MAXWrapper *** pw )
inline
667{
668 // compute cache index - fold halfwords & fold to cache size, get cache entry
669 int index = DL_abs((int)((PointerLoPart(index_ptr) ^ PointerHiPart(index_ptr)))) % MAXWRAPPER_CACHE_SIZE;
670 *pw = &maxwrapper_cache[index];
671 // we match initially if entry contains a non-deleted MAXWrapper
672 MAXWrapper* w = **pw;
673 return (w && !w->ref_deleted);
674}
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:658

◆ maxwrapper_genref() [1/2]

LONG_PTR maxwrapper_genref ( void * pObject,
LONG_PTR index )
inline
719{
720 return(reinterpret_cast<LONG_PTR>(pObject) ^ index);
721}

◆ maxwrapper_genref() [2/2]

LONG_PTR maxwrapper_genref ( void * pObject1,
void * pObject2 )
inline
724{
725 return(maxwrapper_genref(pObject1, reinterpret_cast<LONG_PTR>(pObject2)));
726}
LONG_PTR maxwrapper_genref(void *pObject, LONG_PTR index)
Definition mxsobjects.h:718

◆ InvalidateNodeRect()

ScripterExport void InvalidateNodeRect ( INode * node,
TimeValue t )
extern

◆ GetINodeTabFromValue()

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

◆ for_all_nodes()

bool for_all_nodes ( INode * root,
node_map * m )
extern

◆ find_first_node()

Value * find_first_node ( INode * root,
node_find * f )
extern

◆ get_node()

Value * get_node ( INode * root,
node_get * g )
extern

◆ for_all_path_nodes()

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

◆ all_objects_selector()

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

◆ max_name_compare()

int max_name_compare ( const MCHAR * max_name,
const MCHAR * other )
extern

◆ get_subanim_property() [1/2]

Value * get_subanim_property ( Animatable * anim,
Value * prop )
extern

◆ get_subanim_property() [2/2]

Value * get_subanim_property ( Animatable * anim,
int i )
extern

◆ set_subanim_property() [1/2]

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

◆ set_subanim_property() [2/2]

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

◆ set_subanim_controller()

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

◆ find_subanim_controller()

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

◆ deselect_if_motion_panel_open()

void deselect_if_motion_panel_open ( )
extern

◆ collect_nodes()

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

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