This reference page is linked to from the following overview topics: SDK Change Details.
#include "..\kernel\value.h"
#include "..\maxwrapper\mxsobjects.h"
#include "..\..\ref.h"
#include "..\..\iparamm2.h"
#include "..\..\iparamb2.h"
#include "..\..\iparamb2Typedefs.h"
#include "..\..\IMtlRender_Compatibility.h"
#include "..\..\genlight.h"
#include "..\..\gencam.h"
#include "..\..\simpobj.h"
#include "..\..\manipulator.h"
#include "..\..\simpmod.h"
#include "..\..\tvutil.h"
#include "..\macros\define_implementations.h"
Go to the source code of this file.
#define is_msplugin_class | ( | v | ) | ((DbgVerify(!is_sourcepositionwrapper(v)), (v))->tag == class_tag(MSPluginClass)) |
#define MPC_TEMPORARY (1<<0) |
Definition at line 207 of file mxsPlugin.h.
#define MPC_REDEFINITION (1<<1) |
Definition at line 208 of file mxsPlugin.h.
#define MPC_MS_CREATING (1<<2) |
Definition at line 209 of file mxsPlugin.h.
#define MPC_MS_WAS_CREATING (1<<3) |
Definition at line 210 of file mxsPlugin.h.
#define MPC_EDITING_IN_CP (1<<4) |
Definition at line 211 of file mxsPlugin.h.
#define MPC_EDITING_IN_MTLEDT (1<<5) |
Definition at line 212 of file mxsPlugin.h.
#define MPC_EDITING_IN_EFX (1<<6) |
Definition at line 213 of file mxsPlugin.h.
#define MPC_REPLACE_UI (1<<7) |
Definition at line 214 of file mxsPlugin.h.
#define MPC_INVISIBLE (1<<8) |
Definition at line 215 of file mxsPlugin.h.
#define MPC_SILENTERRORS (1<<9) |
Definition at line 216 of file mxsPlugin.h.
#define MPC_MAX_CREATING (1<<10) |
Definition at line 217 of file mxsPlugin.h.
#define MPC_ABORT_CREATE (1<<11) |
Definition at line 218 of file mxsPlugin.h.
#define MPC_LEVEL_6 (1<<12) |
Definition at line 219 of file mxsPlugin.h.
#define MPC_IS_MANIP (1<<13) |
Definition at line 220 of file mxsPlugin.h.
#define MPC_ALTERNATE (1<<14) |
Definition at line 221 of file mxsPlugin.h.
#define MPC_CAD_FILESAVE (1<<15) |
Definition at line 223 of file mxsPlugin.h.
#define MPC_PROMOTE_DEL_PROPS (1<<16) |
Definition at line 224 of file mxsPlugin.h.
#define MPC_USE_PB_VALIDITY (1<<17) |
Definition at line 225 of file mxsPlugin.h.
#define key_parm | ( | _key | ) | _get_key_param(keys, n_##_key) |
Definition at line 228 of file mxsPlugin.h.
#define MSP_LOADING 0x0001 |
Definition at line 329 of file mxsPlugin.h.
#define MSP_DISABLED 0x0002 |
Definition at line 330 of file mxsPlugin.h.
#define MSP_DELETED 0x0004 |
Definition at line 331 of file mxsPlugin.h.
#define MSPLUGIN_CHUNK 0x0010 |
Definition at line 420 of file mxsPlugin.h.
typedef RefTargetHandle(* creator_fn)(MSPluginClass *pic, BOOL loading) |
Definition at line 89 of file mxsPlugin.h.
anonymous enum |
Definition at line 71 of file mxsPlugin.h.
{ pl_this, pl_version, pl_loading, pl_delegate // common };
anonymous enum |
Definition at line 75 of file mxsPlugin.h.
{ pl_extent = pl_delegate + 1, pl_min, pl_max, pl_center // for SimpleMods };
anonymous enum |
Definition at line 79 of file mxsPlugin.h.
{ pl_mesh = pl_delegate + 1 // for SimpleObjects };
anonymous enum |
pl_target | |
pl_node | |
pl_gizmoDontDisplay | |
pl_gizmoDontHitTest | |
pl_gizmoScaleToViewport | |
pl_gizmoUseScreenSpace | |
pl_gizmoActiveViewportOnly | |
pl_gizmoUseRelativeScreenSpace |
Definition at line 83 of file mxsPlugin.h.
{ pl_target = pl_delegate + 1, pl_node, // for SimpleManipulators pl_gizmoDontDisplay, pl_gizmoDontHitTest, pl_gizmoScaleToViewport, pl_gizmoUseScreenSpace, pl_gizmoActiveViewportOnly, pl_gizmoUseRelativeScreenSpace, };
visible_class | ( | MSPluginClass | ) |
Define an equal operator (i.e. '==') for maxscript visible values.
Define a NOT equal operator (i.e. '!=') for maxscript visible values.
Definition at line 105 of file mxsPlugin.h.
: public MAXClass { protected: MSPluginClass() { } public: Value* class_name; // UI-visible class name HINSTANCE hInstance; // owning module ClassDesc* extend_cd; // if extending, ClassDesc of class to extend creator_fn obj_creator; // obj maker for the appropriate MSPlugin subclass HashTable* local_scope; // local name space Value** local_inits; // local var init vals int local_count; // " " count HashTable* handlers; // handler tables Array* rollouts; // UI rollouts MouseTool* create_tool; // scripted creation tool if non-NULL Array* pblock_defs; // parameter block definition data from compiler (used to build the PB2 descs) Array* remap_param_names; // defines the mapping of old param names to new param names Array* loading_pblock_defs; // parameter block definition data for currently loading scene file (to permit old version schema migration) Tab<ParamBlockDesc2*> pbds; // parameter block descriptors ReferenceTarget* alternate; // any alternate UI object system-style during create mode Tab<ParamRef> sub_texmaps; // param references to any texmaps in pblocks in instances of this class in subobjno order Tab<ParamRef> sub_mtls; // param references to any mtls in pblocks in instances of this class in subobjno order int version; // plugin version (from version: param on def header) DWORD mpc_flags; // flags DWORD rollup_state; // initial rollup state static HashTable* msp_classes; // table of existing scripted plugin classes to enable redefinition static MSPlugin* creating; // object currently being created if non-NULL static bool loading; // currently loading defs from a scene file, delay TV & other updates MSPluginClass(Value* name, MAXSuperClass* supcls, creator_fn cfn); ~MSPluginClass(); // definition and redefinition static MSPluginClass* intern(Value* name, MAXSuperClass* supcls, creator_fn cfn); void init(int local_count, Value** inits, HashTable* local_scope, HashTable* handlers, Array* pblock_defs, Array* iremap_param_names, Array* rollouts, MouseTool* create_tool); // MAXScript required // BOOL is_kind_of(ValueMetaClass* c) { return (c == class_tag(MSPluginClass)) ? 1 : Value::is_kind_of(c); } // LAM: 2/23/01 BOOL is_kind_of(ValueMetaClass* c) { return (c == class_tag(MSPluginClass)) ? 1 : MAXClass::is_kind_of(c); } # define is_msplugin_class(v) ((DbgVerify(!is_sourcepositionwrapper(v)), (v))->tag == class_tag(MSPluginClass)) void gc_trace(); void collect() { delete this; } // from Value Value* apply(Value** arglist, int count, CallContext* cc=NULL); // object creation by applying class object // local void SetClassID(Value* cidv); void SetExtension(Value* cls); void SetVersion(Value* ver) { version = ver->to_int(); } void StopEditing(int stop_flags = 0); void RestartEditing(); static int lookup_assetType(Value* name); static ParamType2 lookup_type(Value* name); void call_handler(Value* handler, Value** arg_list, int count, TimeValue t, BOOL disable_on_error=FALSE); // low level handler call, returns result from handler, but needs init_thread_locals() & push/pop_alloc_frame around it Value* _call_handler(Value* handler, Value** arg_list, int count, TimeValue t, BOOL disable_on_error=FALSE); virtual bool is_custAttribDef() { return false; } // alternate UI void install_alternate(ReferenceTarget* ref); // schema migration void build_paramblk_descs(); void redefine(MSPlugin* val, HashTable* old_locals, Array* old_pblock_defs); Array* find_pblock_def(Value* name, Array* pblock_defs); // scene I/O static void save_class_defs(ISave* isave); static IOResult load_class_def(ILoad* iload); static void post_load(ILoad *iload, int which); // ClassDesc delegates virtual RefTargetHandle Create(BOOL loading); const MCHAR* ClassName() { return class_name->to_string(); } SClass_ID SuperClassID() { return sclass_id; } Class_ID ClassID() { return class_id; } const MCHAR* Category() { return category ? category->to_string() : _M(""); } const MCHAR* InternalName() { return name->to_string(); } HINSTANCE HInstance() { return hInstance; } BOOL IsManipulator(); BOOL CanManipulate(ReferenceTarget* hTarget); BOOL CanManipulateNode(INode* pNode); Manipulator* CreateManipulator(ReferenceTarget* hTarget, INode* pNode); Manipulator* CreateManipulator(INode* pNode); #include "..\macros\define_implementations.h" // props def_prop_getter(name); };