📄 plugapi.h
字号:
#define ARC_CLASS_ID 0x1996
// subclasses of CAMERA_CLASS_ID:
#define SIMPLE_CAM_CLASS_ID 0x1001
#define LOOKAT_CAM_CLASS_ID 0x1002
// subclasses of LIGHT_CLASS_ID:
#define OMNI_LIGHT_CLASS_ID 0x1011
#define SPOT_LIGHT_CLASS_ID 0x1012
#define DIR_LIGHT_CLASS_ID 0x1013
#define FSPOT_LIGHT_CLASS_ID 0x1014
#define TDIR_LIGHT_CLASS_ID 0x1015
// subclasses of HELPER_CLASS_ID
#define DUMMY_CLASS_ID 0x876234
#define BONE_CLASS_ID 0x8a63c0
#define TAPEHELP_CLASS_ID 0x02011
#define GRIDHELP_CLASS_ID 0x02010
#define POINTHELP_CLASS_ID 0x02013
#define PROTHELP_CLASS_ID 0x02014
//subclasses of UVGEN_CLASS_ID
#define STDUV_CLASS_ID 0x0000100
//subclasses of XYZGEN_CLASS_ID
#define STDXYZ_CLASS_ID 0x0000100
//subclasses of TEXOUT_CLASS_ID
#define STDTEXOUT_CLASS_ID 0x0000100
// subclasses of MATERIAL_CLASS_ID
#define DMTL_CLASS_ID 0x00000002 // Origninal Stdmtl
#define DMTL2_CLASS_ID 0x00000003 // R2.5 stdmtl
#define CMTL_CLASS_ID 0x0000100 // top-bottom material
#define MULTI_CLASS_ID 0x0000200 // multi material
#define DOUBLESIDED_CLASS_ID 0x0000210 // double-sided mtl
#define MIXMAT_CLASS_ID 0x0000250 // blend mtl
#define MATTE_CLASS_ID 0x0000260 // Matte mtl
// subclasses of TEXMAP_CLASS_ID
#define CHECKER_CLASS_ID 0x0000200
#define MARBLE_CLASS_ID 0x0000210
#define MASK_CLASS_ID 0x0000220 // mask texture
#define MIX_CLASS_ID 0x0000230
#define NOISE_CLASS_ID 0x0000234
#define GRADIENT_CLASS_ID 0x0000270
#define TINT_CLASS_ID 0x0000224 // Tint texture
#define BMTEX_CLASS_ID 0x0000240 // Bitmap texture
#define ACUBIC_CLASS_ID 0x0000250 // Reflect/refract
#define MIRROR_CLASS_ID 0x0000260 // Flat mirror
#define COMPOSITE_CLASS_ID 0x0000280 // Composite texture
#define RGBMULT_CLASS_ID 0x0000290 // RGB Multiply texture
#define FALLOFF_CLASS_ID 0x00002A0 // Falloff texture
#define OUTPUT_CLASS_ID 0x00002B0 // Output texture
#define PLATET_CLASS_ID 0x00002C0 // Plate glass texture
#define VCOL_CLASS_ID 0x0934851 // Vertex color map
// Subclasses of SHADER_CLASS_ID
#define STDSHADERS_CLASS_ID 0x00000035 // to 39
// Subclasses of SHADOW_TYPE_CLASS_ID
#define STD_SHADOW_MAP_CLASS_ID 0x0000100
#define STD_RAYTRACE_SHADOW_CLASS_ID 0x0000200
// subclasses of RENDERER_CLASS_ID
#define SREND_CLASS_ID 0x000001 // default scan-line renderer
// subclasses of REF_MAKER_CLASS_ID
#define MTL_LIB_CLASS_ID 0x001111
#define MTLBASE_LIB_CLASS_ID 0x003333
#define THE_SCENE_CLASS_ID 0x002222
#define MEDIT_CLASS_ID 0x000C80
// subclass of all classes
#define STANDIN_CLASS_ID 0xffffffff // subclass of all super classes
// Default sound object
#define DEF_SOUNDOBJ_CLASS_ID 0x0000001
// Default atmosphere
#define FOG_CLASS_ID 0x10000001
//------------------ Modifier sub classes --------
#define SKEWOSM_CLASS_ID 0x6f3cc2aa
#define BENDOSM_CLASS_ID 0x00010
#define TAPEROSM_CLASS_ID 0x00020
#define TWISTOSM_CLASS_ID 0x00090
#define UVWMAPOSM_CLASS_ID 0xf72b1
#define SELECTOSM_CLASS_ID 0xf8611
#define MATERIALOSM_CLASS_ID 0xf8612
#define SMOOTHOSM_CLASS_ID 0xf8613
#define NORMALOSM_CLASS_ID 0xf8614
#define OPTIMIZEOSM_CLASS_ID 0xc4d31
#define AFFECTREGION_CLASS_ID 0xc4e32
#define SUB_EXTRUDE_CLASS_ID 0xc3a32
#define TESSELLATE_CLASS_ID 0xa3b26ff2
#define DELETE_CLASS_ID 0xf826ee01
#define MESHSELECT_CLASS_ID 0x73d8ff93
#define UVW_XFORM_CLASS_ID 0x5f32de12
#define EXTRUDEOSM_CLASS_ID 0x000A0
#define SURFREVOSM_CLASS_ID 0x000B0
#define DISPLACEOSM_CLASS_ID 0xc4d32
#define DISPLACE_OBJECT_CLASS_ID 0xe5240
#define DISPLACE_WSM_CLASS_ID 0xe5241
#define SINEWAVE_OBJECT_CLASS_ID 0x00030
#define SINEWAVE_CLASS_ID 0x00040
#define SINEWAVE_OMOD_CLASS_ID 0x00045
#define LINWAVE_OBJECT_CLASS_ID 0x00035
#define LINWAVE_CLASS_ID 0x00042
#define LINWAVE_OMOD_CLASS_ID 0x00047
#define GRAVITYOBJECT_CLASS_ID 0xe523c
#define GRAVITYMOD_CLASS_ID 0xe523d
#define WINDOBJECT_CLASS_ID 0xe523e
#define WINDMOD_CLASS_ID 0xe523f
#define DEFLECTOBJECT_CLASS_ID 0xe5242
#define DEFLECTMOD_CLASS_ID 0xe5243
#define BOMB_OBJECT_CLASS_ID 0xf2e32
#define BOMB_CLASS_ID 0xf2e42
// These are the FFD Modifier's class ID's
#define FFDNMOSSQUARE_CLASS_ID Class_ID(0x8ab36cc5,0x82d7fe74)
#define FFDNMWSSQUARE_CLASS_ID Class_ID(0x67ea40b3,0xfe7a30c4)
#define FFDNMWSSQUARE_MOD_CLASS_ID Class_ID(0xd6636ea2,0x9aa42bf3)
#define FFDNMOSCYL_CLASS_ID Class_ID(0x98f37a63,0x3ffe9bca)
#define FFDNMWSCYL_CLASS_ID Class_ID(0xfa4700be,0xbbe85051)
#define FFDNMWSCYL_MOD_CLASS_ID Class_ID(0xf1c630a3,0xaa8ff601)
#define FFD44_CLASS_ID Class_ID(0x21325596, 0x2cd10bd8)
#define FFD33_CLASS_ID Class_ID(0x21325596, 0x2cd10bd9)
#define FFD22_CLASS_ID Class_ID(0x21325596, 0x2cd10bd0)
//JH Association context modifiers
//GEOM TO GEOM
#define ACMOD_GEOM_GEOM_BOOLADD_CID 0x4e0f483a
#define ACMOD_GEOM_GEOM_BOOLSUB_CID 0x61661a5c
#define ACMOD_GEOM_GEOM_BOOLINT_CID 0x2a4f3945
#define ACMOD_GEOM_GEOM_SIMPAGG_CID 0x40cb05ab
//SHAPE To GEOM
#define ACMOD_SHAPE_GEOM_HOLE_CID 0x366307b0
#define ACMOD_SHAPE_GEOM_INT_CID 0x782d8d50
#define ACMOD_SHAPE_GEOM_EMBOSS_CID 0x7a13397c
#define ACMOD_SHAPE_GEOM_REVEAL_CID 0x55ed658c
//JH Solids
#define GENERIC_AMSOLID_CLASS_ID Class_ID(0x5bb661e8, 0xa2c27f02)
//------------------ Controller sub classes --------
#define LININTERP_FLOAT_CLASS_ID 0x2001
#define LININTERP_POSITION_CLASS_ID 0x2002
#define LININTERP_ROTATION_CLASS_ID 0x2003
#define LININTERP_SCALE_CLASS_ID 0x2004
#define PRS_CONTROL_CLASS_ID 0x2005
#define LOOKAT_CONTROL_CLASS_ID 0x2006
#define HYBRIDINTERP_FLOAT_CLASS_ID 0x2007
#define HYBRIDINTERP_POSITION_CLASS_ID 0x2008
#define HYBRIDINTERP_ROTATION_CLASS_ID 0x2009
#define HYBRIDINTERP_POINT3_CLASS_ID 0x200A
#define HYBRIDINTERP_SCALE_CLASS_ID 0x2010
#define HYBRIDINTERP_COLOR_CLASS_ID 0x2011
#define TCBINTERP_FLOAT_CLASS_ID 0x442311
#define TCBINTERP_POSITION_CLASS_ID 0x442312
#define TCBINTERP_ROTATION_CLASS_ID 0x442313
#define TCBINTERP_POINT3_CLASS_ID 0x442314
#define TCBINTERP_SCALE_CLASS_ID 0x442315
#define MASTERPOINTCONT_CLASS_ID 0xd9c20ff
//--------------------------------------------------
class ISave;
class ILoad;
class Interface;
class ShortcutTable;
typedef short BlockID;
class ParamBlockDesc2;
class IParamBlock2;
class IObjParam;
class Animatable;
class ParamMap2UserDlgProc;
class IParamMap2;
// System keeps a list of the DLL's found on startup.
// This is the interface to a single class
class ClassDesc {
public:
virtual ~ClassDesc() {}
virtual int IsPublic()=0; // Show this in create branch?
virtual void * Create(BOOL loading=FALSE)=0; // return a pointer to an instance of the class.
virtual int BeginCreate(Interface *i) {return 0;}
virtual int EndCreate(Interface *i) {return 0;};
virtual const TCHAR* ClassName()=0;
virtual SClass_ID SuperClassID()=0;
virtual Class_ID ClassID()=0;
virtual const TCHAR* Category()=0; // primitive/spline/loft/ etc
virtual BOOL OkToCreate(Interface *i) { return TRUE; } // return FALSE to disable create button
virtual BOOL HasClassParams() {return FALSE;}
virtual void EditClassParams(HWND hParent) {}
virtual void ResetClassParams(BOOL fileReset=FALSE) {}
// These functions return keyboard shortcut tables that plug-ins can use
virtual int NumShortcutTables() { return 0; }
virtual ShortcutTable* GetShortcutTable(int i) { return NULL; }
// Class IO
virtual BOOL NeedsToSave() { return FALSE; }
virtual IOResult Save(ISave *isave) { return IO_OK; }
virtual IOResult Load(ILoad *iload) { return IO_OK; }
// bits of dword set indicate corrresponding rollup page is closed.
// the value 0x7fffffff is returned by the default implementation so the
// command panel can detect this method is not being overridden, and just leave
// the rollups as is.
virtual DWORD InitialRollupPageState() { return 0x7fffffff; }
// ParamBlock2-related metadata interface, supplied & implemented in ClassDesc2 (see maxsdk\include\iparamb2.h)
virtual const TCHAR* InternalName() { return NULL; }
virtual HINSTANCE HInstance() { return NULL; }
// access parameter block descriptors for this class
virtual int NumParamBlockDescs() { return 0; }
virtual ParamBlockDesc2* GetParamBlockDesc(int i) { return NULL; }
virtual ParamBlockDesc2* GetParamBlockDescByID(BlockID id) { return NULL; }
virtual void AddParamBlockDesc(ParamBlockDesc2* pbd) { }
// automatic UI management
virtual void BeginEditParams(IObjParam *ip, ReferenceMaker* obj, ULONG flags, Animatable *prev) { }
virtual void EndEditParams(IObjParam *ip, ReferenceMaker* obj, ULONG flags, Animatable *prev) { }
virtual void InvalidateUI(ParamBlockDesc2* pbd) { }
// automatic ParamBlock construction
virtual void MakeAutoParamBlocks(ReferenceMaker* owner) { }
// access automatically-maintained ParamMaps, by simple index or by associated ParamBlockDesc
virtual int NumParamMaps() { return 0; }
virtual IParamMap2* GetParamMap(int i) { return NULL; }
virtual IParamMap2* GetParamMap(ParamBlockDesc2* pbd) { return NULL; }
// maintain user dialog procs on automatically-maintained ParamMaps
virtual void SetUserDlgProc(ParamBlockDesc2* pbd, ParamMap2UserDlgProc* proc=NULL) { }
virtual ParamMap2UserDlgProc* GetUserDlgProc(ParamBlockDesc2* pbd) { return NULL; }
// Class can draw an image to represent itself graphically...
virtual bool DrawRepresentation(COLORREF bkColor, HDC hDC, Rect &rect) { return FALSE; }
// Generic expansion function
virtual int Execute(int cmd, ULONG arg1=0, ULONG arg2=0, ULONG arg3=0) { return 0; }
};
// Create instance of the specified class
CoreExport void *CreateInstance(SClass_ID superID, Class_ID classID);
#endif
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -