3ds Max C++ API Reference
MSPluginSpecialFX< TYPE > Class Template Reference

#include <mxsPlugin.h>

+ Inheritance diagram for MSPluginSpecialFX< TYPE >:

Public Member Functions

void DeleteThis ()
 
HWND AddRollupPage (HINSTANCE hInst, const MCHAR *dlgTemplate, DLGPROC dlgProc, const MCHAR *title, LPARAM param=0, DWORD vflags=0, int category=ROLLUP_CAT_STANDARD) override
 
void DeleteRollupPage (HWND hRollup) override
 
IRollupWindowGetRollupWindow () override
 
void RollupMouseMessage (HWND hDlg, UINT message, WPARAM wParam, LPARAM lParam) override
 
ReferenceTargetget_delegate ()
 
void GetClassName (MSTR &s, bool localized) const override
 
Class_ID ClassID ()
 
void FreeCaches ()
 
int NumSubs ()
 
AnimatableSubAnim (int i)
 
MSTR SubAnimName (int i, bool localized=true) override
 
int NumParamBlocks ()
 
IParamBlock2GetParamBlock (int i)
 
IParamBlock2GetParamBlockByID (BlockID id)
 
voidGetInterface (ULONG id)
 
virtual BaseInterfaceGetInterface (Interface_ID id)
 
RefResult NotifyRefChanged (const Interval &changeInt, RefTargetHandle hTarget, PartID &partID, RefMessage message, BOOL propagate)
 
int NumRefs ()
 
RefTargetHandle GetReference (int i)
 
void SetReference (int i, RefTargetHandle rtarg)
 
void RefDeleted ()
 
void RefAdded (RefMakerHandle rm)
 
IOResult Save (ISave *iSave)
 
IOResult Load (ILoad *iLoad)
 
MSTR GetName (bool localized=true) const override
 
BOOL Active (TimeValue t)
 
void Update (TimeValue t, Interval &valid)
 
int NumGizmos ()
 
INodeGetGizmo (int i)
 
void DeleteGizmo (int i)
 
void AppendGizmo (INode *node)
 
BOOL OKGizmo (INode *node)
 
void EditGizmo (INode *node)
 
- Public Member Functions inherited from MSPlugin
 MSPlugin ()
 
virtual ~MSPlugin ()
 
void init (MSPluginClass *pClass)
 
ScripterExport void gc_trace ()
 
ScripterExport void collect ()
 
void DeleteThis ()
 
ScripterExport void RefDeleted ()
 
void init_locals ()
 
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)
 
FPStatus call_handler (const MCHAR *handler_name, FPParams *params, FPValue &result, TimeValue t, BOOL disable_on_error=FALSE)
 
FPStatus call_handler (Value *handler, FPParams *params, FPValue &result, TimeValue t, BOOL disable_on_error=FALSE)
 
void post_create (ReferenceTarget *me, BOOL loading)
 
void call_all_set_handlers ()
 
void disable ()
 
void enable ()
 
BOOL enabled ()
 
int get_local_index (Value *prop)
 
Valueget_local (int index)
 
void set_local (int index, Value *val)
 
ScripterExport IParamBlock2GetParamBlockByID (BlockID id)
 
ScripterExport RefResult NotifyRefChanged (const Interval &changeInt, RefTargetHandle hTarget, PartID &partID, RefMessage message, BOOL propagate)
 
ScripterExport RefTargetHandle clone_from (MSPlugin *obj, ReferenceTarget *obj_as_ref, RemapDir &remap)
 
void RefAdded (RefMakerHandle rm)
 
void NotifyTarget (int msg, RefMakerHandle rm)
 
IOResult Load (ILoad *iLoad)
 
void post_load (ILoad *iLoad, int which)
 
void dump_local_vars_and_externals (int indentLevel)
 
- Public Member Functions inherited from Value
virtual ScripterExport BOOL is_kind_of (ValueMetaClass *c)
 
virtual ScripterExport ValueMetaClasslocal_base_class ()
 
virtual Valueeval ()
 
virtual Valueeval_no_wrapper ()
 
virtual ScripterExport Valueapply (Value **arglist, int count, CallContext *cc=NULL)
 
virtual ScripterExport Valueapply_no_alloc_frame (Value **arglist, int count, CallContext *cc=NULL)
 
virtual void export_to_scripter ()
 
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 sprin1 (CharStream *stream)
 
virtual ScripterExport void sprint (CharStream *stream)
 
virtual void prin1 ()
 
virtual void print ()
 
virtual ScripterExport Class_ID get_max_class_id ()
 
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 void to_fpvalue (FPValue &v)
 
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 ()
 
virtual ScripterExport Valueget_property (Value **arg_list, int count)
 
virtual ScripterExport Valueset_property (Value **arg_list, int count)
 
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 void drop_MAX_refs ()
 
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 ()
 

Public Attributes

IRendParamsip
 
- Public Attributes inherited from MSPlugin
MSPluginClasspc
 
Value ** locals
 
short flags
 
int version
 
ReferenceTargetref
 
Tab< IParamBlock2 * > pblocks
 
ILoadiload
 
- Public Attributes inherited from Value
ValueMetaClasstag
 
- Public Attributes inherited from Collectable
Collectablenext
 
Collectableprev
 
byte flags
 
byte flags2
 
short flags3
 

Additional Inherited Members

- 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 ()
 
- 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
 
- Static Protected Attributes inherited from Value
static ScripterExport Valuekeyarg_marker_value
 

Member Function Documentation

◆ DeleteThis()

◆ AddRollupPage()

HWND AddRollupPage ( HINSTANCE  hInst,
const MCHAR dlgTemplate,
DLGPROC  dlgProc,
const MCHAR title,
LPARAM  param = 0,
DWORD  vflags = 0,
int  category = ROLLUP_CAT_STANDARD 
)
overridevirtual

Implements MSPlugin.

◆ DeleteRollupPage()

void DeleteRollupPage ( HWND  hRollup)
overridevirtual

Implements MSPlugin.

◆ GetRollupWindow()

IRollupWindow* GetRollupWindow ( )
overridevirtual

Implements MSPlugin.

◆ RollupMouseMessage()

void RollupMouseMessage ( HWND  hDlg,
UINT  message,
WPARAM  wParam,
LPARAM  lParam 
)
overridevirtual

Implements MSPlugin.

◆ get_delegate()

ReferenceTarget* get_delegate ( )
inlinevirtual

Implements MSPlugin.

Reimplemented in MSSpecialFXXtnd< Effect, MSPluginEffect >, and MSSpecialFXXtnd< Atmospheric, MSPluginAtmos >.

2840 { return NULL; } // no delegate
#define NULL
Definition: autoptr.h:18

◆ GetClassName()

void GetClassName ( MSTR s,
bool  localized 
) const
inlineoverride

Reimplemented in MSSpecialFXXtnd< Effect, MSPluginEffect >, and MSSpecialFXXtnd< Atmospheric, MSPluginAtmos >.

2843 { s = (localized) ? pc->ClassName() : pc->NonLocalizedClassName(); }
const MCHAR * NonLocalizedClassName()
Definition: mxsPlugin.h:219
const MCHAR * ClassName()
Definition: mxsPlugin.h:218
MSPluginClass * pc
Definition: mxsPlugin.h:352

◆ ClassID()

Class_ID ClassID ( )
inline

Reimplemented in MSSpecialFXXtnd< Effect, MSPluginEffect >, and MSSpecialFXXtnd< Atmospheric, MSPluginAtmos >.

2844 { return pc->class_id; }
Class_ID class_id
Definition: mxsobjects.h:541

◆ FreeCaches()

◆ NumSubs()

int NumSubs ( )
inline

Reimplemented in MSSpecialFXXtnd< Effect, MSPluginEffect >, and MSSpecialFXXtnd< Atmospheric, MSPluginAtmos >.

2846 { return pblocks.Count(); }
Tab< IParamBlock2 * > pblocks
Definition: mxsPlugin.h:357
int Count() const
Retrieves the number of items in the Tab.
Definition: tab.h:219

◆ SubAnim()

Animatable* SubAnim ( int  i)
inline

◆ SubAnimName()

MSTR SubAnimName ( int  i,
bool  localized = true 
)
inlineoverride

Reimplemented in MSSpecialFXXtnd< Effect, MSPluginEffect >, and MSSpecialFXXtnd< Atmospheric, MSPluginAtmos >.

2849  {
2850  if (pblocks[i]->GetDesc()->local_name != 0)
2851  {
2852  return localized ? pblocks[i]->GetLocalName() : pblocks[i]->GetDesc()->int_name.data();
2853  }
2854  else
2855  {
2856  return _T("");
2857  }
2858  }
constexpr T * data() noexcept
Returns a pointer to the data buffer of tab. Standard compliant.
Definition: tab.h:278

◆ NumParamBlocks()

int NumParamBlocks ( )
inline

◆ GetParamBlock()

IParamBlock2* GetParamBlock ( int  i)
inline

◆ GetParamBlockByID()

IParamBlock2* GetParamBlockByID ( BlockID  id)
inline

Reimplemented in MSSpecialFXXtnd< Effect, MSPluginEffect >, and MSSpecialFXXtnd< Atmospheric, MSPluginAtmos >.

2861 { return MSPlugin::GetParamBlockByID(id); }
ScripterExport IParamBlock2 * GetParamBlockByID(BlockID id)

◆ GetInterface() [1/2]

void* GetInterface ( ULONG  id)
inline

Reimplemented in MSSpecialFXXtnd< Effect, MSPluginEffect >, and MSSpecialFXXtnd< Atmospheric, MSPluginAtmos >.

2862 { if (id == I_MAXSCRIPTPLUGIN) return (MSPlugin*)this; else return TYPE::GetInterface(id); }
CoreExport FPInterface * GetInterface(SClass_ID super, Class_ID cls, Interface_ID id)
Get ID'd interface from ClassDesc for given class/sclass.
Definition: mxsPlugin.h:350
#define I_MAXSCRIPTPLUGIN
An Animatable supporting this interface is a MSPlugin.
Definition: AnimatableInterfaceIDs.h:64

◆ GetInterface() [2/2]

virtual BaseInterface* GetInterface ( Interface_ID  id)
inlinevirtual

Reimplemented from Value.

Reimplemented in MSSpecialFXXtnd< Effect, MSPluginEffect >, and MSSpecialFXXtnd< Atmospheric, MSPluginAtmos >.

2865  {
2867  // GetInterface(Interface_ID) was added after the MAX 4
2868  // SDK shipped. This did not break the SDK because
2869  // it only calls the base class implementation. If you add
2870  // any other code here, plugins compiled with the MAX 4 SDK
2871  // that derive from MSPluginSpecialFX and call Base class
2872  // implementations of GetInterface(Interface_ID), will not call
2873  // that code in this routine. This means that the interface
2874  // you are adding will not be exposed for these objects,
2875  // and could have unexpected results.
2876  return TYPE::GetInterface(id);
2878  }

◆ NotifyRefChanged()

RefResult NotifyRefChanged ( const Interval changeInt,
RefTargetHandle  hTarget,
PartID partID,
RefMessage  message,
BOOL  propagate 
)
inline
2883  {
2884  return ((MSPlugin*)this)->NotifyRefChanged(changeInt, hTarget, partID, message, propagate);
2885  }

◆ NumRefs()

◆ GetReference()

◆ SetReference()

◆ RefDeleted()

void RefDeleted ( )
inline
2891 { MSPlugin::RefDeleted(); }
ScripterExport void RefDeleted()

◆ RefAdded()

void RefAdded ( RefMakerHandle  rm)
inline
2892 { MSPlugin::RefAdded( rm); }
void RefAdded(RefMakerHandle rm)

◆ Save()

IOResult Save ( ISave iSave)
inlinevirtual

Reimplemented from MSPlugin.

2893 { MSPlugin::Save(iSave); return SpecialFX::Save(iSave); }
IOResult Save(ISave *isave)
CoreExport IOResult Save(ISave *isave)

◆ Load()

IOResult Load ( ILoad iLoad)
inline
2894 { MSPlugin::Load(iLoad); return SpecialFX::Load(iLoad); }
IOResult Load(ILoad *iLoad)
CoreExport IOResult Load(ILoad *iload)

◆ GetName()

MSTR GetName ( bool  localized = true) const
inlineoverride
2897 { return localized ? pc->class_name->to_string() : pc->nonLocalized_class_name->to_string(); }
Value * class_name
Definition: mxsPlugin.h:136
Value * nonLocalized_class_name
Definition: mxsPlugin.h:137
virtual const MCHAR * to_string()
Definition: value.h:178

◆ Active()

BOOL Active ( TimeValue  t)
inline

Reimplemented in MSSpecialFXXtnd< Effect, MSPluginEffect >, and MSSpecialFXXtnd< Atmospheric, MSPluginAtmos >.

2898 { return SpecialFX::Active(t); }
virtual BOOL Active(TimeValue t)
Definition: sfx.h:187

◆ Update()

void Update ( TimeValue  t,
Interval valid 
)
inline

Reimplemented in MSSpecialFXXtnd< Effect, MSPluginEffect >, and MSSpecialFXXtnd< Atmospheric, MSPluginAtmos >.

2899 { SpecialFX::Update(t, valid); }
virtual void Update(TimeValue t, Interval &valid)
Definition: sfx.h:200

◆ NumGizmos()

int NumGizmos ( )
inline

Reimplemented in MSSpecialFXXtnd< Effect, MSPluginEffect >, and MSSpecialFXXtnd< Atmospheric, MSPluginAtmos >.

2900 { return SpecialFX::NumGizmos(); }
virtual int NumGizmos()
Definition: sfx.h:253

◆ GetGizmo()

INode* GetGizmo ( int  i)
inline

Reimplemented in MSSpecialFXXtnd< Effect, MSPluginEffect >, and MSSpecialFXXtnd< Atmospheric, MSPluginAtmos >.

2901 { return SpecialFX::GetGizmo(i); }
virtual INode * GetGizmo(int i)
Definition: sfx.h:260

◆ DeleteGizmo()

void DeleteGizmo ( int  i)
inline

Reimplemented in MSSpecialFXXtnd< Effect, MSPluginEffect >, and MSSpecialFXXtnd< Atmospheric, MSPluginAtmos >.

2902 { SpecialFX::DeleteGizmo(i); }
virtual void DeleteGizmo(int i)
Definition: sfx.h:267

◆ AppendGizmo()

void AppendGizmo ( INode node)
inline

Reimplemented in MSSpecialFXXtnd< Effect, MSPluginEffect >, and MSSpecialFXXtnd< Atmospheric, MSPluginAtmos >.

2903 { SpecialFX::AppendGizmo(node); }
virtual void AppendGizmo(INode *node)
Definition: sfx.h:275

◆ OKGizmo()

BOOL OKGizmo ( INode node)
inline

Reimplemented in MSSpecialFXXtnd< Effect, MSPluginEffect >, and MSSpecialFXXtnd< Atmospheric, MSPluginAtmos >.

2904 { return SpecialFX::OKGizmo(node); }
virtual BOOL OKGizmo(INode *node)
Definition: sfx.h:283

◆ EditGizmo()

void EditGizmo ( INode node)
inline

Reimplemented in MSSpecialFXXtnd< Effect, MSPluginEffect >, and MSSpecialFXXtnd< Atmospheric, MSPluginAtmos >.

2905 { SpecialFX::EditGizmo(node); }
virtual void EditGizmo(INode *node)
Definition: sfx.h:297

Member Data Documentation

◆ ip