maxscript/maxwrapper/mxsobjects.h File Reference

Classes

class  MAXWrapper
 
struct  parm_desc
 
struct  superclass_table
 
class  MAXSuperClass
 
struct  class_key
 
struct  class_table
 
class  MAXClass
 
class  FindMAXWrapperEnum
 

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 PD_NO_INIT   0x01
 
#define PD_LOCAL_DUP   0x02
 
#define PD_HAS_LOCAL_DUPS   0x04
 
#define PD_SHOWN   0x08
 
#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
 
#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_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
}
 
enum  metadata_flag {
  getters = 1, setters, accessors, path_getters,
  path_setters, path_accessors, fns, paramblock,
  subanims, paramblockn, subanimparamblock
}
 
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)
 

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 []
 

Macro Definition Documentation

#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 ( )
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
#define INODE_INTERFACE
Definition: inode.h:37
#define A_IS_DELETED
Used internally.
Definition: AnimatableFlags.h:162
Definition: inode.h:55
#define check_for_deletion ( )    if (check_for_deletion_test()) throw RuntimeError (get_deleted_obj_err_message(), class_name());
#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) \
) \
) \
)
#define NULL
Definition: autoptr.h:18
#define INODE_INTERFACE
Definition: inode.h:37
#define A_IS_DELETED
Used internally.
Definition: AnimatableFlags.h:162
Definition: inode.h:55
#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)
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:106
#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 
)
Value:
ScripterExport Value* get_##p1##_##p2(Value** arg_list, int count); \
ScripterExport Value* set_##p1##_##p2(Value** arg_list, int count)
#define ScripterExport
Definition: ScripterExport.h:7
Definition: value.h:106
#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)
#define ScripterExport
Definition: ScripterExport.h:7
Definition: value.h:106
#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 PD_NO_INIT   0x01
#define PD_LOCAL_DUP   0x02
#define PD_HAS_LOCAL_DUPS   0x04
#define PD_SHOWN   0x08
#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 
)
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))
BOOL _maxwrapper_cache_get(LONG_PTR index_ptr, MAXWrapper ***pw)
Definition: mxsobjects.h:666
#define class_tag(_cls)
Definition: value.h:460
Definition: mxsobjects.h:93
#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
#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

Typedef Documentation

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

Enumeration Type Documentation

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 
504 {
505  md_use_getref = 0x0001, /* class flags */
506  md_use_getref0 = 0x0002,
507  md_use_getref1 = 0x0004,
508  md_no_create = 0x0008,
509  md_no_access = 0x0010,
510  md_direct_index = 0x0020,
511  md_new_plugin = 0x0040,
512  md_auto_parms = 0x0080,
513  md_name_clash = 0x0100,
514  md_initialized = 0x0200,
515  md_no_cd = 0x0400,
516 };
Definition: mxsobjects.h:512
Definition: mxsobjects.h:505
Definition: mxsobjects.h:511
Definition: mxsobjects.h:506
Definition: mxsobjects.h:508
Definition: mxsobjects.h:507
Definition: mxsobjects.h:515
Definition: mxsobjects.h:510
Definition: mxsobjects.h:514
Definition: mxsobjects.h:513
Definition: mxsobjects.h:509
Enumerator
getters 
setters 
accessors 
path_getters 
path_setters 
path_accessors 
fns 
paramblock 
subanims 
paramblockn 
subanimparamblock 
519 {
520 // end = 0, /* metadata vararg tags */
521  getters = 1,
522  setters,
523  accessors,
524  path_getters,
525  path_setters,
527  fns,
528  paramblock,
529  subanims,
530  paramblockn,
532 };
Definition: mxsobjects.h:527
Definition: mxsobjects.h:525
Definition: mxsobjects.h:523
Definition: mxsobjects.h:522
Definition: mxsobjects.h:524
Definition: mxsobjects.h:521
Definition: mxsobjects.h:529
Definition: mxsobjects.h:531
Definition: mxsobjects.h:530
Definition: mxsobjects.h:528
Definition: mxsobjects.h:526
anonymous enum
Enumerator
TYPE_POINT3_ANGLE 
TYPE_POINT3_PCNT 
535 {
536  TYPE_POINT3_ANGLE = TYPE_USER + 128, /* MAXScript special paramblock types... */
538 
539 };
Definition: mxsobjects.h:536
Definition: mxsobjects.h:537
Used to define user types.
Definition: paramtype.h:34
Enumerator
ResultOk 
ErrSelectionEmpty 
ErrRequireNodes 
780 {
781  ResultOk,
784 };
Definition: mxsobjects.h:781
Definition: mxsobjects.h:783
Definition: mxsobjects.h:782

Function Documentation

ScripterExport const MCHAR* get_deleted_obj_err_message ( )
ScripterExport MAXSuperClass* lookup_MAXSuperClass ( SClass_ID  scid)
Value* make_max_node ( MAXClass cls,
ReferenceTarget obj,
Value **  arg_list,
int  count 
)
Value* make_max_object ( MAXClass cls,
ReferenceTarget obj,
Value **  arg_list,
int  count 
)
Value* make_max_light ( MAXClass cls,
ReferenceTarget obj,
Value **  arg_list,
int  count 
)
Value* make_max_camera ( MAXClass cls,
ReferenceTarget obj,
Value **  arg_list,
int  count 
)
Value* make_max_modifier ( MAXClass cls,
ReferenceTarget obj,
Value **  arg_list,
int  count 
)
Value* make_max_material ( MAXClass cls,
ReferenceTarget obj,
Value **  arg_list,
int  count 
)
Value* make_max_texturemap ( MAXClass cls,
ReferenceTarget obj,
Value **  arg_list,
int  count 
)
Value* make_max_mtlbase ( MAXClass cls,
ReferenceTarget obj,
Value **  arg_list,
int  count 
)
Value* make_max_system ( MAXClass cls,
ReferenceTarget obj,
Value **  arg_list,
int  count 
)
Value* make_max_helper ( MAXClass cls,
ReferenceTarget obj,
Value **  arg_list,
int  count 
)
Value* make_max_controller ( MAXClass cls,
ReferenceTarget obj,
Value **  arg_list,
int  count 
)
Value* make_max_atmospheric ( MAXClass cls,
ReferenceTarget obj,
Value **  arg_list,
int  count 
)
Value* make_max_effect ( MAXClass cls,
ReferenceTarget obj,
Value **  arg_list,
int  count 
)
Value* make_max_mpassCamEffect ( MAXClass cls,
ReferenceTarget obj,
Value **  arg_list,
int  count 
)
Value* make_max_filter ( MAXClass cls,
ReferenceTarget obj,
Value **  arg_list,
int  count 
)
Value* make_max_shadow ( MAXClass cls,
ReferenceTarget obj,
Value **  arg_list,
int  count 
)
Value* make_max_reftarg ( MAXClass cls,
ReferenceTarget obj,
Value **  arg_list,
int  count 
)
Value* no_max_maker ( MAXClass cls,
ReferenceTarget obj,
Value **  arg_list,
int  count 
)
Value* make_max_renderer ( MAXClass cls,
ReferenceTarget obj,
Value **  arg_list,
int  count 
)
Value* make_max_custattrib ( MAXClass cls,
ReferenceTarget obj,
Value **  arg_list,
int  count 
)
ScripterExport MAXClass* lookup_MAXClass ( Class_ID cid,
SClass_ID  scid,
bool  make_new_if_missing = false 
)
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 }
#define MAXWRAPPER_CACHE_SIZE
Definition: mxsobjects.h:658
WORD PointerHiPart(ULONG_PTR ptr)
Definition: 3dsmaxdlport.h:381
Definition: mxsobjects.h:93
WORD PointerLoPart(ULONG_PTR ptr)
Definition: 3dsmaxdlport.h:386
ScripterExport MAXWrapper * maxwrapper_cache[]
int DL_abs(int n)
Definition: 3dsmaxdlport.h:534
short ref_deleted
Definition: mxsobjects.h:97
LONG_PTR maxwrapper_genref ( void pObject,
LONG_PTR  index 
)
inline
719 {
720  return(reinterpret_cast<LONG_PTR>(pObject) ^ index);
721 }
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
ScripterExport void InvalidateNodeRect ( INode node,
TimeValue  t 
)
ScripterExport GetINodeTabResult GetINodeTabFromValue ( Value val,
INodeTab nodeTab,
INodeTab **  pResult 
)

Variable Documentation

ScripterExport Interface* MAXScript_interface
ScripterExport Interface7* MAXScript_interface7
ScripterExport Interface8* MAXScript_interface8
ScripterExport Interface9* MAXScript_interface9
ScripterExport Interface11* MAXScript_interface11
ScripterExport Interface13* MAXScript_interface13
ScripterExport Interface14* MAXScript_interface14
ScripterExport MAXWrapper* maxwrapper_cache[]