3ds Max C++ API Reference
Loading...
Searching...
No Matches
MSPluginClass Class Reference

#include <C:/adskgit/3dsmax/3dsmax/3dswin/src/maxsdk/include/maxscript/mxsplugin/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) override
void gc_trace () override
void collect () override
Value * apply (Value **arglist, int count, CallContext *cc=nullptr) override
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)
Array * find_pblock_def (Value *pName, Array *pBlock_defs)
virtual BOOL OkToCreate (Interface *i)
virtual RefTargetHandle Create (BOOL isloading)
const MCHAR * ClassName ()
const MCHAR * NonLocalizedClassName ()
const MCHAR * InternalName ()
SClass_ID SuperClassID ()
Class_ID ClassID ()
const MCHAR * Category ()
HINSTANCE HInstance ()
BOOL IsManipulator ()
BOOL CanManipulate (ReferenceTarget *hTarget)
BOOL CanManipulateNode (INode *pNode)
Manipulator * CreateManipulator (ReferenceTarget *hTarget, INode *pNode)
Manipulator * CreateManipulator (INode *pNode)
Value * get_property (Value **arg_list, int count) override
Value * set_property (Value **arg_list, int count) override
 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 ()
ClassDesc * complete_init ()
Value * classOf_vf (Value **arg_list, int count) override
Value * superClassOf_vf (Value **arg_list, int count) override
Value * isKindOf_vf (Value **arg_list, int count) override
ScripterExport void sprin1 (CharStream *s) override
void export_to_scripter () override
IOResult Save (ISave *isave) override
parm_desc * get_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)
Value * get_max_property (ReferenceTarget *ref, parm_desc *pd, TimeValue t, Interval &valid)
void set_max_property (ReferenceTarget *ref, parm_desc *pd, TimeValue t, Value *val)
ParamDef * get_parm_def (Value *prop, ParamBlockDesc2 *&pbd, int &tabIndex, ReferenceTarget *ref=nullptr)
void set_max_property (ReferenceTarget *ref, ParamDef *pd, int tabIndex, ParamBlockDesc2 *pbd, TimeValue t, Value *val)
Value * get_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 () override
 def_property (category)
 def_prop_getter (classID)
 def_prop_getter (superclassID)
 def_property (creatable)
void to_fpvalue (FPValue &v) override
Value * Category ()
Public Member Functions inherited from Value
virtual ScripterExport ValueMetaClass * local_base_class ()
virtual Value * eval ()
virtual Value * eval_no_wrapper ()
virtual ScripterExport Value * apply_no_alloc_frame (Value **arglist, int count, CallContext *cc=nullptr)
virtual Value * map (node_map &m)
virtual Value * map_path (PathName *path, node_map &m)
virtual Value * find_first (BOOL(*test_fn)(INode *node, int level, const void *arg), const void *test_arg)
virtual Value * get_path (PathName *path)
virtual ScripterExport void sprint (CharStream *stream)
virtual void prin1 ()
virtual void print ()
virtual Value * delete_vf (Value **arglist, int arg_count)
virtual Value * clearSelection_vf (Value **arglist, int arg_count)
virtual float to_float ()
virtual double to_double ()
virtual const MCHAR * to_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 BitArray & to_bitarray ()
virtual Point4 to_point4 ()
virtual Point3 to_point3 ()
virtual Point2 to_point2 ()
virtual AColor to_acolor ()
virtual COLORREF to_colorref ()
virtual INode * to_node ()
virtual Ray to_ray ()
virtual Interval to_interval ()
virtual Quat to_quat ()
virtual AngAxis to_angaxis ()
virtual Matrix3 & to_matrix3 ()
virtual Box3 to_box3 ()
virtual float * to_eulerangles ()
virtual Mtl * to_mtl ()
virtual Texmap * to_texmap ()
virtual MtlBase * to_mtlbase ()
virtual Modifier * to_modifier ()
virtual TimeValue to_timevalue ()
virtual Control * to_controller ()
virtual Atmospheric * to_atmospheric ()
virtual Effect * to_effect ()
virtual IMultiPassCameraEffect * to_mpassCamEffect ()
virtual ShadowType * to_shadowtype ()
virtual FilterKernel * to_filter ()
virtual INode * to_rootnode ()
virtual ITrackViewNode * to_trackviewnode ()
virtual NURBSIndependentPoint * to_nurbsindependentpoint ()
virtual NURBSPoint * to_nurbspoint ()
virtual NURBSObject * to_nurbsobject ()
virtual NURBSControlVertex * to_nurbscontrolvertex ()
virtual NURBSCurve * to_nurbscurve ()
virtual NURBSCVCurve * to_nurbscvcurve ()
virtual NURBSSurface * to_nurbssurface ()
virtual NURBSTexturePoint * to_nurbstexturepoint ()
virtual NURBSSet * to_nurbsset ()
virtual ReferenceTarget * to_reftarg ()
virtual Mesh * to_mesh ()
virtual BezierShape * to_beziershape ()
virtual Thunk * to_thunk ()
virtual Renderer * to_renderer ()
virtual Box2 & to_box2 ()
virtual NURBSTextureSurface * to_nurbstexturesurface ()
virtual NURBSDisplay * to_nurbsdisplay ()
virtual TessApprox * to_tessapprox ()
virtual Value * widen_to (Value *arg, Value **arg_list)
virtual BOOL comparable (Value *arg)
virtual BOOL special_case_compare (Value *arg, bool &specialCaseCompareResult)
virtual ScripterExport bool ValuesEqual (Value *other, bool strictCompare)
virtual ScripterExport Value * deep_copy (HashTable *remapper)
virtual BOOL is_const ()
ScripterExport Value * _get_property (Value *prop)
virtual ScripterExport Value * _set_property (Value *prop, Value *val)
virtual Value * get_container_property (Value *prop, Value *cur_prop)
virtual Value * set_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 SelectionIterator * selection_iterator ()
virtual void drop_MAX_refs ()
virtual BaseInterface * GetInterface (Interface_ID id)
ScripterExport Value * make_heap_permanent ()
ScripterExport Value * make_heap_static ()
ScripterExport Value * get_heap_ptr ()
ScripterExport Value * get_stack_heap_ptr ()
ScripterExport Value * migrate_to_heap ()
ScripterExport Value * get_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 Value * get_case_sensitive_property (Value **arg_list, int count, const TCHAR *case_sensitive_name)
virtual ScripterExport Value * set_case_sensitive_property (Value **arg_list, int count, const TCHAR *case_sensitive_name)
ScripterExport Value * invoke_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 Value * invoke_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 void * operator new (size_t sz, char flag)
ScripterExport void * operator 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 MSPluginClass * intern (Value *name, MAXSuperClass *supcls, creator_fn cfn)
static int lookup_assetType (Value *name)
static ScripterExport ParamType2 lookup_paramType_from_name (Value *name)
static ScripterExport const Name * lookup_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 MAXClass * lookup_class (const Class_ID *cid, SClass_ID scid, bool make_new_if_missing=true)
static MAXClass * lookup_class (const Class_ID &cid, SClass_ID scid, bool make_new_if_missing=true)
static void setup ()
static ScripterExport Value * make_wrapper_for (ReferenceTarget *ref)
static ScripterExport Value * make_node_for (ReferenceTarget *ref)
static Value * Load (ILoad *iload, USHORT chunkID, ValueLoader *vload)
static ScripterExport Value * get_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 ParamDef * get_parm_def (ClassDesc2 *cd2, Value *prop, ParamBlockDesc2 *&pbd, int &tabIndex, ReferenceTarget *ref=nullptr)
static ScripterExport ParamDef * get_pb2_param_def (Value *prop, IParamBlock2 *pb, ParamBlockDesc2 *pbd, int &tabIndex)
Static Public Member Functions inherited from Collectable
static ScripterExport void for_all_values (void(*map_fn)(Value *val), ValueMapper *mapper=nullptr, ValueMetaClass *c=nullptr)
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

Value * class_name
Value * nonLocalized_class_name
HINSTANCE hInstance
ClassDesc * extend_cd
MAXClass * extend_maxclass
creator_fn obj_creator
HashTable * local_scope
Value ** local_inits
int local_count
HashTable * handlers
Array * rollouts
MouseTool * create_tool
Array * pblock_defs
Array * remap_param_names
Array * loading_pblock_defs
Tab< ParamBlockDesc2 * > pbds
ReferenceTarget * alternate
Tab< ParamRef > sub_texmaps
Tab< ParamRef > sub_mtls
int version
DWORD mpc_flags
DWORD rollup_state
Public Attributes inherited from MAXClass
Value * name
Class_ID class_id
SClass_ID sclass_id
ClassDesc * cd
ClassDesc2 * cd2
short md_flags
int n_parms
parm_desc * parms
MAXSuperClass * superclass
short paramblock_ref_no
Value * category
HashTable * interfaces
Public Attributes inherited from Value
ValueMetaClass * tag
Public Attributes inherited from Collectable
Collectable * next
Collectable * prev
byte flags
byte flags2
short flags3

Static Public Attributes

static HashTable * msp_classes
static MSPlugin * creating
static bool loading
static bool loadingLoadingScene
Static Public Attributes inherited from MAXClass
static class_table * classes
static int n_classes
static BOOL class_table_dirty
Static Public Attributes inherited from Collectable
static CRITICAL_SECTION heap_update
static Collectable * collectable_list
static Collectable * permanent_list
static free_mem * free_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 Value * keyarg_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()

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)
inlineoverridevirtual

Reimplemented from MAXClass.

173{ return (c == class_tag(MSPluginClass)) ? 1 : MAXClass::is_kind_of(c); }
BOOL is_kind_of(ValueMetaClass *c) override
Definition mxsobjects.h:588
#define class_tag(_cls)
Definition value.h:604

◆ gc_trace()

void gc_trace ( )
overridevirtual

Reimplemented from MAXClass.

◆ collect()

void collect ( )
overridevirtual

Reimplemented from MAXClass.

◆ apply()

Value * apply ( Value ** arglist,
int count,
CallContext * cc = nullptr )
overridevirtual

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:156
virtual int to_int()
Definition value.h:182

◆ StopEditing()

void StopEditing ( int stop_flags = 0)

◆ RestartEditing()

void RestartEditing ( )

◆ lookup_assetType()

int lookup_assetType ( Value * name)
static

◆ lookup_paramType_from_name()

ScripterExport ParamType2 lookup_paramType_from_name ( Value * name)
static

◆ lookup_name_from_paramType()

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.

200{ 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()

void save_class_defs ( ISave * isave)
static

◆ load_class_def()

IOResult load_class_def ( ILoad * iload)
static

◆ post_load()

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
216{ return class_name->to_string(); }
Value * class_name
Definition mxsPlugin.h:137

◆ NonLocalizedClassName()

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

◆ InternalName()

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

◆ SuperClassID()

SClass_ID SuperClassID ( )
inline
219{ return sclass_id; }
SClass_ID sclass_id
Definition mxsobjects.h:558

◆ ClassID()

Class_ID ClassID ( )
inline
220{ return class_id; }
Class_ID class_id
Definition mxsobjects.h:557

◆ Category()

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

◆ HInstance()

HINSTANCE HInstance ( )
inline
222{ return hInstance; }
HINSTANCE hInstance
Definition mxsPlugin.h:139

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

Reimplemented from MAXClass.

◆ set_property()

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

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