3ds Max C++ API Reference
MSPluginClass Class Reference

#include <mxsPlugin.h>

+ Inheritance diagram for MSPluginClass:

Public Member Functions

 MSPluginClass (Value *name, MAXSuperClass *supcls, creator_fn cfn)
 
 ~MSPluginClass ()
 
void init (int iLocal_count, Value **inits, HashTable *pLocal_scope, HashTable *pHandlers, Array *pBlock_defs, Array *iremap_param_names, Array *pRollouts, MouseTool *pCreate_tool)
 
BOOL is_kind_of (ValueMetaClass *c)
 
void gc_trace ()
 
void collect ()
 
Valueapply (Value **arglist, int count, CallContext *cc=NULL)
 
void SetClassID (Value *cidv)
 
void SetExtension (Value *cls)
 
bool ValidateIfExtendingClass (bool forceRevalidate=false)
 
void SetVersion (Value *ver)
 
void StopEditing (int stop_flags=0)
 
void RestartEditing ()
 
void call_handler (Value *handler, Value **arg_list, int count, TimeValue t, BOOL disable_on_error=FALSE)
 
Value_call_handler (Value *handler, Value **arg_list, int count, TimeValue t, BOOL disable_on_error=FALSE)
 
virtual bool is_custAttribDef ()
 
void install_alternate (ReferenceTarget *ref)
 
void build_paramblk_descs ()
 
void redefine (MSPlugin *val, HashTable *old_locals, Array *old_pblock_defs)
 
Arrayfind_pblock_def (Value *pName, Array *pBlock_defs)
 
virtual BOOL OkToCreate (Interface *i)
 
virtual RefTargetHandle Create (BOOL isloading)
 
const MCHARClassName ()
 
const MCHARNonLocalizedClassName ()
 
const MCHARInternalName ()
 
SClass_ID SuperClassID ()
 
Class_ID ClassID ()
 
const MCHARCategory ()
 
HINSTANCE HInstance ()
 
BOOL IsManipulator ()
 
BOOL CanManipulate (ReferenceTarget *hTarget)
 
BOOL CanManipulateNode (INode *pNode)
 
ManipulatorCreateManipulator (ReferenceTarget *hTarget, INode *pNode)
 
ManipulatorCreateManipulator (INode *pNode)
 
Valueget_property (Value **arg_list, int count)
 
Valueset_property (Value **arg_list, int count)
 
 def_prop_getter (name)
 
- Public Member Functions inherited from MAXClass
 MAXClass ()
 
ScripterExport MAXClass (const MCHAR *cname, Class_ID cid, SClass_ID sid, MAXSuperClass *sclass, short cflags,...)
 
ScripterExport ~MAXClass ()
 
ClassDesccomplete_init ()
 
ValueclassOf_vf (Value **arg_list, int count)
 
ValuesuperClassOf_vf (Value **arg_list, int count)
 
ValueisKindOf_vf (Value **arg_list, int count)
 
ScripterExport void sprin1 (CharStream *s)
 
void export_to_scripter ()
 
parm_descget_parm_desc (ReferenceTarget *ref, Value *key)
 
ScripterExport BOOL build_parm_descs (ReferenceTarget *ref)
 
ScripterExport void apply_keyword_parms (ReferenceTarget *ref, Value **key_arg_list, int count)
 
ScripterExport void initialize_object (ReferenceTarget *ref)
 
Valueget_max_property (ReferenceTarget *ref, parm_desc *pd, TimeValue t, Interval &valid)
 
void set_max_property (ReferenceTarget *ref, parm_desc *pd, TimeValue t, Value *val)
 
ParamDefget_parm_def (Value *prop, ParamBlockDesc2 *&pbd, int &tabIndex, ReferenceTarget *ref=NULL)
 
void set_max_property (ReferenceTarget *ref, ParamDef *pd, int tabIndex, ParamBlockDesc2 *pbd, TimeValue t, Value *val)
 
Valueget_max_property (ReferenceTarget *ref, ParamDef *pd, int tabIndex, ParamBlockDesc2 *pbd, TimeValue t, Interval &valid)
 
 def_generic (get_props, "getPropNames")
 
 def_generic (create_instance, "createInstance")
 
 def_generic (show_interfaces, "showInterfaces")
 
 def_generic (get_interfaces, "getInterfaces")
 
 def_generic (get_interface, "getInterface")
 
Class_ID get_max_class_id ()
 
 def_property (category)
 
 def_prop_getter (classID)
 
 def_prop_getter (superclassID)
 
 def_property (creatable)
 
void to_fpvalue (FPValue &v)
 
ValueCategory ()
 
- Public Member Functions inherited from Value
virtual ScripterExport ValueMetaClasslocal_base_class ()
 
virtual Valueeval ()
 
virtual Valueeval_no_wrapper ()
 
virtual ScripterExport Valueapply_no_alloc_frame (Value **arglist, int count, CallContext *cc=NULL)
 
virtual Valuemap (node_map &m)
 
virtual Valuemap_path (PathName *path, node_map &m)
 
virtual Valuefind_first (BOOL(*test_fn)(INode *node, int level, const void *arg), const void *test_arg)
 
virtual Valueget_path (PathName *path)
 
virtual ScripterExport void sprint (CharStream *stream)
 
virtual void prin1 ()
 
virtual void print ()
 
virtual ScripterExport Valuedelete_vf (Value **arglist, int arg_count)
 
virtual ScripterExport ValueclearSelection_vf (Value **arglist, int arg_count)
 
virtual float to_float ()
 
virtual double to_double ()
 
virtual const MCHARto_string ()
 
virtual MSTR to_mstr ()
 
virtual MSTR to_filename ()
 
virtual int to_int ()
 
virtual INT64 to_int64 ()
 
virtual INT_PTR to_intptr ()
 
virtual BOOL to_bool ()
 
virtual BitArrayto_bitarray ()
 
virtual Point4 to_point4 ()
 
virtual Point3 to_point3 ()
 
virtual Point2 to_point2 ()
 
virtual AColor to_acolor ()
 
virtual COLORREF to_colorref ()
 
virtual INodeto_node ()
 
virtual Ray to_ray ()
 
virtual Interval to_interval ()
 
virtual Quat to_quat ()
 
virtual AngAxis to_angaxis ()
 
virtual Matrix3to_matrix3 ()
 
virtual Box3 to_box3 ()
 
virtual float * to_eulerangles ()
 
virtual Mtlto_mtl ()
 
virtual Texmapto_texmap ()
 
virtual MtlBaseto_mtlbase ()
 
virtual Modifierto_modifier ()
 
virtual TimeValue to_timevalue ()
 
virtual Controlto_controller ()
 
virtual Atmosphericto_atmospheric ()
 
virtual Effectto_effect ()
 
virtual IMultiPassCameraEffectto_mpassCamEffect ()
 
virtual ShadowTypeto_shadowtype ()
 
virtual FilterKernelto_filter ()
 
virtual INodeto_rootnode ()
 
virtual ITrackViewNodeto_trackviewnode ()
 
virtual NURBSIndependentPointto_nurbsindependentpoint ()
 
virtual NURBSPointto_nurbspoint ()
 
virtual NURBSObjectto_nurbsobject ()
 
virtual NURBSControlVertexto_nurbscontrolvertex ()
 
virtual NURBSCurveto_nurbscurve ()
 
virtual NURBSCVCurveto_nurbscvcurve ()
 
virtual NURBSSurfaceto_nurbssurface ()
 
virtual NURBSTexturePointto_nurbstexturepoint ()
 
virtual NURBSSetto_nurbsset ()
 
virtual ReferenceTargetto_reftarg ()
 
virtual Meshto_mesh ()
 
virtual BezierShapeto_beziershape ()
 
virtual Thunkto_thunk ()
 
virtual Rendererto_renderer ()
 
virtual Box2to_box2 ()
 
virtual NURBSTextureSurfaceto_nurbstexturesurface ()
 
virtual NURBSDisplayto_nurbsdisplay ()
 
virtual TessApproxto_tessapprox ()
 
virtual Valuewiden_to (Value *arg, Value **arg_list)
 
virtual BOOL comparable (Value *arg)
 
virtual BOOL special_case_compare (Value *arg, bool &specialCaseCompareResult)
 
virtual ScripterExport Valuedeep_copy (HashTable *remapper)
 
virtual BOOL is_const ()
 
ScripterExport Value_get_property (Value *prop)
 
virtual ScripterExport Value_set_property (Value *prop, Value *val)
 
virtual Valueget_container_property (Value *prop, Value *cur_prop)
 
virtual Valueset_container_property (Value *prop, Value *val, Value *cur_prop)
 
virtual BOOL _is_collection ()
 
virtual BOOL _is_charstream ()
 
virtual BOOL _is_rolloutcontrol ()
 
virtual BOOL _is_rolloutthunk ()
 
virtual BOOL _is_function ()
 
virtual BOOL _is_selection ()
 
virtual BOOL _is_thunk ()
 
virtual BOOL _is_indirect_thunk ()
 
virtual SelectionIteratorselection_iterator ()
 
virtual ScripterExport IOResult Save (ISave *isave)
 
virtual void drop_MAX_refs ()
 
virtual BaseInterfaceGetInterface (Interface_ID id)
 
ScripterExport Valuemake_heap_permanent ()
 
ScripterExport Valuemake_heap_static ()
 
ScripterExport Valueget_heap_ptr ()
 
ScripterExport Valueget_stack_heap_ptr ()
 
ScripterExport Valuemigrate_to_heap ()
 
ScripterExport Valueget_live_ptr ()
 
virtual BOOL object_supports_case_sensitive_names ()
 
ScripterExport Value_get_property (Value *prop, Value *prop_name_as_parsed)
 
ScripterExport Value_set_property (Value *prop, Value *val, Value *prop_name_as_parsed)
 
virtual ScripterExport Valueget_case_sensitive_property (Value **arg_list, int count, const TCHAR *case_sensitive_name)
 
virtual ScripterExport Valueset_case_sensitive_property (Value **arg_list, int count, const TCHAR *case_sensitive_name)
 
ScripterExport Valueinvoke_getter_case_sensitive_property (Value *target, getter_vf getter, Value **arg_list, int count, const TCHAR *case_sensitive_name, const TCHAR *nested_prop_case_sensitive_name)
 
ScripterExport Valueinvoke_setter_case_sensitive_property (Value *target, setter_vf setter, Value **arg_list, int count, const TCHAR *case_sensitive_name, const TCHAR *nested_prop_case_sensitive_name)
 
- Public Member Functions inherited from Collectable
ScripterExport Collectable ()
 
virtual ScripterExport ~Collectable ()
 
ScripterExport voidoperator new (size_t sz, char flag)
 
ScripterExport voidoperator new (size_t sz)
 
ScripterExport void operator delete (void *val)
 
ScripterExport void operator delete (void *val, char flag)
 
ScripterExport bool derives_from_Animatable ()
 
virtual BOOL derives_from_MAXWrapper ()
 
ScripterExport void make_collectable ()
 
void make_permanent ()
 
void make_static ()
 
int is_marked ()
 
int is_not_marked ()
 
int is_garbage ()
 
int is_permanent ()
 
void mark_in_use ()
 
void unmark_in_use ()
 
int has_heap_copy ()
 
int is_in_heap ()
 
int is_on_stack ()
 

Static Public Member Functions

static MSPluginClassintern (Value *name, MAXSuperClass *supcls, creator_fn cfn)
 
static int lookup_assetType (Value *name)
 
static MAX_DEPRECATED ParamType2 lookup_type (Value *name)
 
static ScripterExport ParamType2 lookup_paramType_from_name (Value *name)
 
static ScripterExport const Namelookup_name_from_paramType (ParamType2 type)
 
static void save_class_defs (ISave *isave)
 
static IOResult load_class_def (ILoad *iload)
 
static void post_load (ILoad *iload, int which)
 
- Static Public Member Functions inherited from MAXClass
static void free_classes ()
 
static ScripterExport MAXClasslookup_class (Class_ID *cid, SClass_ID scid, bool make_new_if_missing=true)
 
static void setup ()
 
static ScripterExport Valuemake_wrapper_for (ReferenceTarget *ref)
 
static ScripterExport Valuemake_node_for (ReferenceTarget *ref)
 
static ScripterExport Valueget_pb2_property (IParamBlock2 *pb, ParamDef *pd, int tabIndex, TimeValue t, Interval &valid)
 
static void set_pb2_property (IParamBlock2 *pb, ParamDef *pd, int tabIndex, TimeValue t, Value *val)
 
static ParamDefget_parm_def (ClassDesc2 *cd2, Value *prop, ParamBlockDesc2 *&pbd, int &tabIndex, ReferenceTarget *ref=NULL)
 
- Static Public Member Functions inherited from Collectable
static ScripterExport void for_all_values (void(*map_fn)(Value *val), ValueMapper *mapper=NULL, ValueMetaClass *c=NULL)
 
static void mark ()
 
static void sweep ()
 
static void setup (size_t)
 
static ScripterExport void gc ()
 
static void coalesce_free_list ()
 
static void close_down ()
 
static void drop_maxwrapper_refs ()
 
static ScripterExport void push_alloc_stack_frame ()
 
static ScripterExport void pop_alloc_stack_frame ()
 
static ScripterExport ULONGLONG get_num_values_created ()
 
static ScripterExport bool validate_value_linkages ()
 

Public Attributes

Valueclass_name
 
ValuenonLocalized_class_name
 
HINSTANCE hInstance
 
ClassDescextend_cd
 
MAXClassextend_maxclass
 
creator_fn obj_creator
 
HashTablelocal_scope
 
Value ** local_inits
 
int local_count
 
HashTablehandlers
 
Arrayrollouts
 
MouseToolcreate_tool
 
Arraypblock_defs
 
Arrayremap_param_names
 
Arrayloading_pblock_defs
 
Tab< ParamBlockDesc2 * > pbds
 
ReferenceTargetalternate
 
Tab< ParamRefsub_texmaps
 
Tab< ParamRefsub_mtls
 
int version
 
DWORD mpc_flags
 
DWORD rollup_state
 
- Public Attributes inherited from MAXClass
Valuename
 
Class_ID class_id
 
SClass_ID sclass_id
 
ClassDesccd
 
ClassDesc2cd2
 
short md_flags
 
int n_parms
 
parm_descparms
 
MAXSuperClasssuperclass
 
short paramblock_ref_no
 
Valuecategory
 
HashTableinterfaces
 
- Public Attributes inherited from Value
ValueMetaClasstag
 
- Public Attributes inherited from Collectable
Collectablenext
 
Collectableprev
 
byte flags
 
byte flags2
 
short flags3
 

Static Public Attributes

static HashTablemsp_classes
 
static MSPlugincreating
 
static bool loading
 
static bool loadingLoadingScene
 
- Static Public Attributes inherited from MAXClass
static class_tableclasses
 
static int n_classes
 
static BOOL class_table_dirty
 
- Static Public Attributes inherited from Collectable
static CRITICAL_SECTION heap_update
 
static Collectablecollectable_list
 
static Collectablepermanent_list
 
static free_memfree_list [GC_NUM_SUBLISTS]
 
static size_t heap_allocated
 
static size_t heap_size
 
static ScripterExport collectable_state state
 
static ScripterExport bool fullCollectNextHoldFlush
 
static bool gc_light
 
static bool in_gc
 
static HANDLE hGCCompletedEvent
 

Protected Member Functions

 MSPluginClass ()
 
void ctor_init ()
 

Protected Attributes

bool validate_ExtendingClass_failed
 

Additional Inherited Members

- Static Protected Attributes inherited from Value
static ScripterExport Valuekeyarg_marker_value
 

Constructor & Destructor Documentation

◆ MSPluginClass() [1/2]

MSPluginClass ( )
protected

◆ MSPluginClass() [2/2]

MSPluginClass ( Value name,
MAXSuperClass supcls,
creator_fn  cfn 
)

◆ ~MSPluginClass()

Member Function Documentation

◆ ctor_init()

void ctor_init ( )
protected

◆ intern()

static MSPluginClass* intern ( Value name,
MAXSuperClass supcls,
creator_fn  cfn 
)
static

◆ init()

void init ( int  iLocal_count,
Value **  inits,
HashTable pLocal_scope,
HashTable pHandlers,
Array pBlock_defs,
Array iremap_param_names,
Array pRollouts,
MouseTool pCreate_tool 
)

◆ is_kind_of()

BOOL is_kind_of ( ValueMetaClass c)
inlinevirtual

Reimplemented from MAXClass.

173 { return (c == class_tag(MSPluginClass)) ? 1 : MAXClass::is_kind_of(c); }
BOOL is_kind_of(ValueMetaClass *c)
Definition: mxsobjects.h:568
Definition: mxsPlugin.h:130
#define class_tag(_cls)
Definition: value.h:548

◆ gc_trace()

void gc_trace ( )
virtual

Reimplemented from MAXClass.

◆ collect()

void collect ( )
virtual

Reimplemented from MAXClass.

◆ apply()

Value* apply ( Value **  arglist,
int  count,
CallContext cc = NULL 
)
virtual

Reimplemented from MAXClass.

◆ SetClassID()

void SetClassID ( Value cidv)

◆ SetExtension()

void SetExtension ( Value cls)

◆ ValidateIfExtendingClass()

bool ValidateIfExtendingClass ( bool  forceRevalidate = false)

◆ SetVersion()

void SetVersion ( Value ver)
inline
190 { version = ver->to_int(); }
int version
Definition: mxsPlugin.h:155
virtual int to_int()
Definition: value.h:181

◆ StopEditing()

void StopEditing ( int  stop_flags = 0)

◆ RestartEditing()

void RestartEditing ( )

◆ lookup_assetType()

static int lookup_assetType ( Value name)
static

◆ lookup_type()

static MAX_DEPRECATED ParamType2 lookup_type ( Value name)
static
Deprecated:
This function was deprecated in Max 2021. Please use MSPluginClass::lookup_paramType_from_name() instead.

◆ lookup_paramType_from_name()

static ScripterExport ParamType2 lookup_paramType_from_name ( Value name)
static

◆ lookup_name_from_paramType()

static ScripterExport const Name* lookup_name_from_paramType ( ParamType2  type)
static

◆ call_handler()

void call_handler ( Value handler,
Value **  arg_list,
int  count,
TimeValue  t,
BOOL  disable_on_error = FALSE 
)

◆ _call_handler()

Value* _call_handler ( Value handler,
Value **  arg_list,
int  count,
TimeValue  t,
BOOL  disable_on_error = FALSE 
)

◆ is_custAttribDef()

virtual bool is_custAttribDef ( )
inlinevirtual

Reimplemented in MSCustAttribDef.

202 { return false; }

◆ install_alternate()

void install_alternate ( ReferenceTarget ref)

◆ build_paramblk_descs()

void build_paramblk_descs ( )

◆ redefine()

void redefine ( MSPlugin val,
HashTable old_locals,
Array old_pblock_defs 
)

◆ find_pblock_def()

Array* find_pblock_def ( Value pName,
Array pBlock_defs 
)

◆ save_class_defs()

static void save_class_defs ( ISave isave)
static

◆ load_class_def()

static IOResult load_class_def ( ILoad iload)
static

◆ post_load()

static void post_load ( ILoad iload,
int  which 
)
static

◆ OkToCreate()

virtual BOOL OkToCreate ( Interface i)
virtual

◆ Create()

virtual RefTargetHandle Create ( BOOL  isloading)
virtual

Reimplemented in MSCustAttribDef.

◆ ClassName()

const MCHAR* ClassName ( )
inline
218 { return class_name->to_string(); }
Value * class_name
Definition: mxsPlugin.h:136
virtual const MCHAR * to_string()
Definition: value.h:178

◆ NonLocalizedClassName()

const MCHAR* NonLocalizedClassName ( )
inline
219 { return nonLocalized_class_name->to_string(); }
Value * nonLocalized_class_name
Definition: mxsPlugin.h:137

◆ InternalName()

const MCHAR* InternalName ( )
inline
220 { return name->to_string(); }
Value * name
Definition: mxsobjects.h:540

◆ SuperClassID()

SClass_ID SuperClassID ( )
inline
221 { return sclass_id; }
SClass_ID sclass_id
Definition: mxsobjects.h:542

◆ ClassID()

Class_ID ClassID ( )
inline
222 { return class_id; }
Class_ID class_id
Definition: mxsobjects.h:541

◆ Category()

const MCHAR* Category ( )
inline
223 { return category ? category->to_string() : _M(""); }
Value * category
Definition: mxsobjects.h:550
#define _M(x)
Used to wrap string literals.
Definition: strbasic.h:67

◆ HInstance()

HINSTANCE HInstance ( )
inline
224 { return hInstance; }
HINSTANCE hInstance
Definition: mxsPlugin.h:138

◆ IsManipulator()

BOOL IsManipulator ( )

◆ CanManipulate()

BOOL CanManipulate ( ReferenceTarget hTarget)

◆ CanManipulateNode()

BOOL CanManipulateNode ( INode pNode)

◆ CreateManipulator() [1/2]

Manipulator* CreateManipulator ( ReferenceTarget hTarget,
INode pNode 
)

◆ CreateManipulator() [2/2]

Manipulator* CreateManipulator ( INode pNode)

◆ get_property()

Value* get_property ( Value **  arg_list,
int  count 
)
virtual

Reimplemented from MAXClass.

◆ set_property()

Value* set_property ( Value **  arg_list,
int  count 
)
virtual

Reimplemented from MAXClass.

◆ def_prop_getter()

def_prop_getter ( name  )

Member Data Documentation

◆ validate_ExtendingClass_failed

bool validate_ExtendingClass_failed
protected

◆ class_name

Value* class_name

◆ nonLocalized_class_name

Value* nonLocalized_class_name

◆ hInstance

HINSTANCE hInstance

◆ extend_cd

ClassDesc* extend_cd

◆ extend_maxclass

MAXClass* extend_maxclass

◆ obj_creator

creator_fn obj_creator

◆ local_scope

HashTable* local_scope

◆ local_inits

Value** local_inits

◆ local_count

int local_count

◆ handlers

HashTable* handlers

◆ rollouts

Array* rollouts

◆ create_tool

MouseTool* create_tool

◆ pblock_defs

Array* pblock_defs

◆ remap_param_names

Array* remap_param_names

◆ loading_pblock_defs

Array* loading_pblock_defs

◆ pbds

◆ alternate

ReferenceTarget* alternate

◆ sub_texmaps

Tab<ParamRef> sub_texmaps

◆ sub_mtls

Tab<ParamRef> sub_mtls

◆ version

int version

◆ mpc_flags

DWORD mpc_flags

◆ rollup_state

DWORD rollup_state

◆ msp_classes

HashTable* msp_classes
static

◆ creating

MSPlugin* creating
static

◆ loading

bool loading
static

◆ loadingLoadingScene

bool loadingLoadingScene
static