Classes | Defines | Enumerations | Functions

plugapi.h File Reference

This reference page is linked to from the following overview topics: Creating Instances of Plug-ins, Adding Modifiers to Objects, Programmatic Object Creation.


This file contains API related to plug-in identification to 3ds Max. More...

#include "maxheap.h"
#include "maxtypes.h"
#include "buildver.h"
#include "maxversion.h"
#include "iparamb2Typedefs.h"
#include "coreexp.h"
#include "tab.h"
#include "strbasic.h"
#include "box2.h"

Go to the source code of this file.

Classes

class   ClassDesc
  Class descriptors provide the system with information about the plug-in classes in the DLL. More...
struct   ClassDescReplaced
  CallParam data for NOTIFY_CLASSDESC_REPLACED broadcasts. More...

Defines

#define  MAX_RELEASE_EXTERNAL   MAX_RELEASE
  MAX_RELEASE_EXTERNAL is an alternative for MAX_RELEASE that can be used for UI when the internal version of the product is different from the branded version number.
#define  GEN_MODAPP_CLASS_ID   0x00000b
  Reserved Super Class IDs.
#define  MODAPP_CLASS_ID   0x00000c
#define  OBREF_MODAPP_CLASS_ID   0x00000d
#define  BASENODE_CLASS_ID   0x000001
#define  GEN_DERIVOB_CLASS_ID   0x000002
#define  DERIVOB_CLASS_ID   0x000003
#define  WSM_DERIVOB_CLASS_ID   0x000004
#define  PARAMETER_BLOCK_CLASS_ID   0x000008
#define  PARAMETER_BLOCK2_CLASS_ID   0x000082
#define  EASE_LIST_CLASS_ID   0x000009
#define  AXIS_DISPLAY_CLASS_ID   0x00000e
#define  MULT_LIST_CLASS_ID   0x00000f
#define  NOTETRACK_CLASS_ID   0x0000ff
#define  TREE_VIEW_CLASS_ID   0xffffff00
#define  SCENE_CLASS_ID   0xfffffd00
#define  THE_GRIDREF_CLASS_ID   0xfffffe00
#define  VIEWREF_CLASS_ID   0xffffff01
#define  BITMAPDAD_CLASS_ID   0xffffff02
#define  PARTICLE_SYS_CLASS_ID   0xffffff03
#define  AGGMAN_CLASS_ID   0xffffff05
#define  MAXSCRIPT_WRAPPER_CLASS_ID   0xffffff06
#define  TRACKBAR_CLASS_ID   0xffffff07
#define  MAKEREF_REST_CLASS_ID   0x9876544
#define  DELREF_REST_CLASS_ID   0x9876543
#define  ASSIGNREF_REST_CLASS_ID   0x121242
#define  LAYER_CLASS_ID   0x0010f0
#define  TEAPOT_CLASS_ID1   0xACAD13D3
  Teapot upper class ID.
#define  TEAPOT_CLASS_ID2   0xACAD26D9
  Teapot lower class ID.
#define  PATCHGRID_CLASS_ID   0x1070
#define  BONE_OBJ_CLASSID   Class_ID(0x28bf6e8d, 0x2ecca840)
  Procedural bone object, subclass of GeomObject.
#define  STANDIN_CLASS_ID   0xffffffff
  Subclass class IDs for all classes.
#define  DEF_SOUNDOBJ_CLASS_ID   0x0000001
  Default sound object.
#define  FOG_CLASS_ID   0x10000001
  Default atmosphere effect.
#define  GENERIC_AMSOLID_CLASS_ID   Class_ID(0x5bb661e8, 0xa2c27f02)
3ds Max Release Identifiers
#define  MAX_RELEASE_UNSUPPORTED   (-1)
  Represents an unsupported 3ds Max version.
#define  MAX_RELEASE_R7   7000
  3ds Max 7 release ID
#define  MAX_RELEASE_R8_ALPHA   7800
  3ds Max 8 alpha release ID
#define  MAX_RELEASE_R8   8000
  3ds Max 8 release id
#define  MAX_RELEASE_R9_ALPHA   8900
  3ds Max 9 alpha release id
#define  MAX_RELEASE_R9_ALPHA2   8901
  3ds Max 9 alpha 2 release id (file format change)
#define  MAX_RELEASE_R9   9000
  3ds Max 9 release id
#define  MAX_RELEASE_R10_ALPHA   9900
  3ds Max 10 alpha release id
#define  MAX_RELEASE_R10   10000
  3ds Max 10 release id
#define  MAX_RELEASE_R11_ALPHA   10900
  3ds Max 2009 alpha release id
#define  MAX_RELEASE_R11   11000
  3ds Max 2009 release id
#define  MAX_RELEASE_R12_ALPHA   11900
  3ds Max 2010 alpha release id
#define  MAX_RELEASE_R12   12000
  3ds Max 2010 release id
#define  MAX_RELEASE_R13_ALPHA   12900
  3ds Max 2011 alpha release id
#define  MAX_RELEASE_R13   13000
  3ds Max 2011 release id
#define  MAX_RELEASE_R14_ALPHA   13900
  3ds Max R14 Alpha, Beta release id
#define  MAX_RELEASE_R14   14000
  3ds Max R14 release id
#define  MAX_RELEASE   MAX_RELEASE_R14
  Identifier of the current 3ds Max release.
Macros for extracting parts of VERSION_3DSMAX
#define  GET_MAX_RELEASE(x)   (((x)>>16)&0xffff)
#define  GET_MAX_API_NUM(x)   (((x)>>8)&0xff)
#define  GET_MAX_SDK_REV(x)   ((x)&0xff)
#define  GET_MAX_SDK_NUMREV(x)   ((x)&0xffff)
Super-class IDs for Plug-ins

These are the super-class IDs that can be used by the different plug-in types that can be built with the 3ds Max SDK.

#define  GEOMOBJECT_CLASS_ID   0x000010
  Geometric object super-class ID.
#define  CAMERA_CLASS_ID   0x000020
  Camera object super-class ID.
#define  LIGHT_CLASS_ID   0x000030
  Light object super-class ID.
#define  SHAPE_CLASS_ID   0x000040
  Shape object super-class ID.
#define  HELPER_CLASS_ID   0x000050
  Helper object super-class ID.
#define  SYSTEM_CLASS_ID   0x000060
  System plug-in super-class ID.
#define  REF_MAKER_CLASS_ID   0x000100
  ReferenceMaker super-class ID.
#define  REF_TARGET_CLASS_ID   0x000200
  ReferenceTarget super-class ID.
#define  OSM_CLASS_ID   0x000810
  Object-space modifier (Modifier) super-class ID.
#define  WSM_CLASS_ID   0x000820
  World-space modifier (WSModifier) super-class ID.
#define  WSM_OBJECT_CLASS_ID   0x000830
  World-space modifier object (WSMObject) super-class ID.
#define  SCENE_IMPORT_CLASS_ID   0x000A10
  Scene importer (SceneImport) super-class ID.
#define  SCENE_EXPORT_CLASS_ID   0x000A20
  Scene exporter (SceneExport) super-class ID.
#define  BMM_STORAGE_CLASS_ID   0x000B10
  Bitmap storage super-class ID.
#define  BMM_FILTER_CLASS_ID   0x000B20
  Image filter super-class ID.
#define  BMM_IO_CLASS_ID   0x000B30
  Image loading/saving super-class ID.
#define  BMM_DITHER_CLASS_ID   0x000B40
  Bitmap dithering super-class ID.
#define  BMM_COLORCUT_CLASS_ID   0x000B50
  Shape object super-class ID.
#define  USERDATATYPE_CLASS_ID   0x000B60
#define  MATERIAL_CLASS_ID   0x000C00
  Materials super-class ID.
#define  TEXMAP_CLASS_ID   0x000C10
  Texture maps super-class ID.
#define  UVGEN_CLASS_ID   0x0000C20
  UV Generator super-class ID.
#define  XYZGEN_CLASS_ID   0x0000C30
  XYZ Generator super-class ID.
#define  TEXOUTPUT_CLASS_ID   0x0000C40
  Texture output filter super-class ID.
#define  SOUNDOBJ_CLASS_ID   0x000D00
  Sound object super-class ID.
#define  FLT_CLASS_ID   0x000E00
  Image processing filter super-class ID.
#define  RENDERER_CLASS_ID   0x000F00
  Renderer super-class ID.
#define  BEZFONT_LOADER_CLASS_ID   0x001000
  Bezier font loader super-class ID.
#define  ATMOSPHERIC_CLASS_ID   0x001010
  Atmospheric effect super-class ID.
#define  UTILITY_CLASS_ID   0x001020
  Utility object super-class ID.
#define  TRACKVIEW_UTILITY_CLASS_ID   0x001030
  Trackview utility super-class ID.
#define  FRONTEND_CONTROL_CLASS_ID   0x001040
  Front-end control super-class ID.
#define  MOT_CAP_DEV_CLASS_ID   0x001060
  Motion capture device super-class ID.
#define  MOT_CAP_DEVBINDING_CLASS_ID   0x001050
  Motion capture device binding super-class ID.
#define  OSNAP_CLASS_ID   0x001070
  Object snap super-class ID.
#define  TEXMAP_CONTAINER_CLASS_ID   0x001080
  Texture map container super-class ID.
#define  RENDER_EFFECT_CLASS_ID   0x001090
  Render post-effects super-class ID.
#define  FILTER_KERNEL_CLASS_ID   0x0010a0
  Anti-aliasing filter kernel super-class ID.
#define  SHADER_CLASS_ID   0x0010b0
  Standard material shader super-class ID.
#define  COLPICK_CLASS_ID   0x0010c0
  Color picker super-class ID.
#define  SHADOW_TYPE_CLASS_ID   0x0010d0
  Shadow generator super-class ID.
#define  GUP_CLASS_ID   0x0010e0
  Global utility plug-in super-class ID.
#define  SCHEMATICVIEW_UTILITY_CLASS_ID   0x001100
  Schematic view utility super-class ID.
#define  SAMPLER_CLASS_ID   0x001110
  Sampler super-class ID.
#define  IK_SOLVER_CLASS_ID   0x001140
  IK solver super-class ID.
#define  RENDER_ELEMENT_CLASS_ID   0x001150
  Render output element super-class ID.
#define  BAKE_ELEMENT_CLASS_ID   0x001151
  Texture bake output element super-class ID.
#define  CUST_ATTRIB_CLASS_ID   0x001160
  Custom attributes super-class ID.
#define  RADIOSITY_CLASS_ID   0x001170
  Global illumination plugin super-class ID.
#define  TONE_OPERATOR_CLASS_ID   0x001180
  Tone operator super-class ID.
#define  MPASS_CAM_EFFECT_CLASS_ID   0x001190
  Multi-pass camera effect super-class ID.
#define  MR_SHADER_CLASS_ID_DEFUNCT   0x0011a0
  Mental ray shader super-class ID.
Controller super-class IDs

These super-class IDs identify the different kinds of controller (Control) plug-ins.

#define  CTRL_SHORT_CLASS_ID   0x9001
#define  CTRL_INTEGER_CLASS_ID   0x9002
#define  CTRL_FLOAT_CLASS_ID   0x9003
  Float controller super-class ID.
#define  CTRL_POINT2_CLASS_ID   0x9004
#define  CTRL_POINT3_CLASS_ID   0x9005
  Point3 controller super-class ID.
#define  CTRL_POS_CLASS_ID   0x9006
#define  CTRL_QUAT_CLASS_ID   0x9007
#define  CTRL_MATRIX3_CLASS_ID   0x9008
  Matrix3 controller super-class ID.
#define  CTRL_COLOR_CLASS_ID   0x9009
#define  CTRL_COLOR24_CLASS_ID   0x900A
#define  CTRL_POSITION_CLASS_ID   0x900B
  Position controller super-class ID.
#define  CTRL_ROTATION_CLASS_ID   0x900C
  Rotation controller super-class ID.
#define  CTRL_SCALE_CLASS_ID   0x900D
  Scale controller super-class ID.
#define  CTRL_MORPH_CLASS_ID   0x900E
  Morph controller super-class ID.
#define  CTRL_USERTYPE_CLASS_ID   0x900F
#define  CTRL_MASTERPOINT_CLASS_ID   0x9010
#define  MASTERBLOCK_SUPER_CLASS_ID   0x9011
#define  CTRL_POINT4_CLASS_ID   0x9012
#define  CTRL_FRGBA_CLASS_ID   0x9013
#define  DEFORM_OBJ_CLASS_ID   0x000005
  Deformable object pseudo super-class ID.
#define  MAPPABLE_OBJ_CLASS_ID   0x000006
  Mappable object pseudo super-class ID.
#define  GENERIC_SHAPE_CLASS_ID   0x0000ab
  Shape pseudo super-class ID.
Class IDs of built-in classes

Class ID's of built-in classes.

The value is the first ULONG of the 8 byte Class ID: the second ULONG is 0 for most built-in classes.

Note:
Plug-ins should never have a class ID where the second ULONG is 0.
#define  PATH_CONTROL_CLASS_ID   0x2011
#define  EULER_CONTROL_CLASS_ID   0x2012
#define  EXPR_POS_CONTROL_CLASS_ID   0x2013
#define  EXPR_P3_CONTROL_CLASS_ID   0x2014
#define  EXPR_FLOAT_CONTROL_CLASS_ID   0x2015
#define  EXPR_SCALE_CONTROL_CLASS_ID   0x2016
#define  EXPR_ROT_CONTROL_CLASS_ID   0x2017
#define  LOCAL_EULER_CONTROL_CLASS_ID   0x2018
#define  POSITION_CONSTRAINT_CLASS_ID   0x2019
#define  ORIENTATION_CONSTRAINT_CLASS_ID   0x2020
#define  LOOKAT_CONSTRAINT_CLASS_ID   0x2021
#define  ADDITIVE_EULER_CONTROL_CLASS_ID   0x2022
#define  BOOLCNTRL_CLASS_ID   Class_ID(0x5ed56fc5, 0x6af0e521)
#define  FLOATNOISE_CONTROL_CLASS_ID   0x87a6df24
#define  POSITIONNOISE_CONTROL_CLASS_ID   0x87a6df25
#define  POINT3NOISE_CONTROL_CLASS_ID   0x87a6df26
#define  ROTATIONNOISE_CONTROL_CLASS_ID   0x87a6df27
#define  SCALENOISE_CONTROL_CLASS_ID   0x87a6df28
#define  SURF_CONTROL_CLASSID   Class_ID(0xe8334011,0xaeb330c8)
#define  LINKCTRL_CLASSID   Class_ID(0x873fe764,0xaabe8601)
#define  ATTACH_CONTROL_CLASS_ID   Class_ID(0xbb27e611,0xa72f43e7)
#define  FLOATLIMITCTRL_CLASS_ID   0x17127e3e
#define  DUMMYCHANNEL_CLASS_ID   0xefffffff
#define  RINGARRAY_CLASS_ID   0x9120
#define  SUNLIGHT_CLASS_ID   Class_ID(0x5897670e, 0x61b5008d)
#define  DAYLIGHT_CLASS_ID   Class_ID(0x18147db5, 0x20f17194)
#define  CUSTATTRIB_CONTAINER_CLASS_ID   Class_ID(0x5ddb3626, 0x23b708db)
Class IDs of classes derived from GEOMOBJECT_CLASS_ID

These are built-in class IDs.

#define  TRIOBJ_CLASS_ID   0x0009
  TriObject class ID.
#define  EDITTRIOBJ_CLASS_ID   0xe44f10b3
  Base triangle mesh (Edit class ID.
#define  POLYOBJ_CLASS_ID   0x5d21369a
  Polygon mesh (PolyObject) class ID.
#define  PATCHOBJ_CLASS_ID   0x1030
  Patch object.
#define  NURBSOBJ_CLASS_ID   0x4135
  Nurbs object.
#define  EPOLYOBJ_CLASS_ID   Class_ID(0x1bf8338d,0x192f6098)
  Editable poly.
Primitive Object Class IDs
#define  BOXOBJ_CLASS_ID   0x0010
#define  SPHERE_CLASS_ID   0x0011
#define  CYLINDER_CLASS_ID   0x0012
#define  PLANE_CLASS_ID   Class_ID(0x81f1dfc, 0x77566f65)
#define  PYRAMID_CLASS_ID   Class_ID(0x76bf318a, 0x4bf37b10)
#define  GSPHERE_CLASS_ID   Class_ID(0, 32670)
#define  CONE_CLASS_ID   0xa86c23dd
#define  TORUS_CLASS_ID   0x0020
#define  TUBE_CLASS_ID   0x7B21
#define  HEDRA_CLASS_ID   0xf21c5e23
#define  BOOLOBJ_CLASS_ID   0x387BB2BB
#define  NEWBOOL_CLASS_ID   Class_ID(0x51db4f2f,0x1c596b1a)
  Boolean object Class ID (replaces BOOLOBJ_CLASS_ID)
XRef Class IDs
#define  XREFOBJ_CLASS_ID   Class_ID(0x92aab38c, 0)
  XRef object class ID.
#define  XREFATMOS_CLASS_ID   Class_ID(0x4869d60f, 0x21af2ae4)
  XRef atmospheric effect class ID.
#define  XREFMATERIAL_CLASS_ID   Class_ID(0x272c0d4b, 0x432a414b)
  XRef material class ID.
#define  XREFCTRL_CLASS_ID   Class_ID(0x32fb4637, 0x65fd482b)
  XRef control class ID.
Subclasses of OSNAP_CLASS_ID
#define  GRID_OSNAP_CLASS_ID   Class_ID(0x62f565d6, 0x110a1f97)
Particle Class IDs
#define  RAIN_CLASS_ID   0x9bd61aa0
#define  SNOW_CLASS_ID   0x9bd61aa1
Space Warp Object Class IDs
#define  WAVEOBJ_CLASS_ID   0x0013
Lofter Class IDs
#define  LOFTOBJ_CLASS_ID   0x1035
#define  LOFT_DEFCURVE_CLASS_ID   0x1036
#define  LOFT_GENERIC_CLASS_ID   0x10B0
Miscellaneous Class IDs
#define  TARGET_CLASS_ID   0x1020
  Camera target class ID.
#define  MORPHOBJ_CLASS_ID   0x1021
  Morph object class ID.
Subclass class IDs of SHAPE_CLASS_ID
#define  SPLINESHAPE_CLASS_ID   0x00000a
#define  LINEARSHAPE_CLASS_ID   0x0000aa
#define  SPLINE3D_CLASS_ID   0x1040
#define  NGON_CLASS_ID   0x1050
#define  DONUT_CLASS_ID   0x1060
#define  STAR_CLASS_ID   0x1995
#define  RECTANGLE_CLASS_ID   0x1065
#define  HELIX_CLASS_ID   0x1994
#define  ELLIPSE_CLASS_ID   0x1097
#define  CIRCLE_CLASS_ID   0x1999
#define  TEXT_CLASS_ID   0x1993
#define  ARC_CLASS_ID   0x1996
#define  HALF_ROUND_CLASS_ID   0x1997
#define  QUARTER_ROUND_CLASS_ID   0x1998
#define  PIPE_CLASS_ID   0x199A
#define  WALLED_RECTANGLE_CLASS_ID   0xd8bff66c
#define  CHANNEL_CLASS_ID   0x7dbc0e96
#define  ANGLE_CLASS_ID   0x93257030
#define  TEE_CLASS_ID   0xfaead70c
#define  WIDE_FLANGE_CLASS_ID   0xa2b72ef6
Subclass class IDs of CAMERA_CLASS_ID
#define  SIMPLE_CAM_CLASS_ID   0x1001
#define  LOOKAT_CAM_CLASS_ID   0x1002
Subclass class IDs 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
Subclass class IDs 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
Subclass class IDs of UVGEN_CLASS_ID
#define  STDUV_CLASS_ID   0x0000100
Subclass class IDs of XYZGEN_CLASS_ID
#define  STDXYZ_CLASS_ID   0x0000100
Subclass class IDs of TEXOUT_CLASS_ID
#define  STDTEXOUT_CLASS_ID   0x0000100
Subclass class IDs of MATERIAL_CLASS_ID
#define  DMTL_CLASS_ID   0x00000002
  StdMtl2: standard material.
#define  DMTL2_CLASS_ID   0x00000003
#define  CMTL_CLASS_ID   0x0000100
  Top-bottom material.
#define  MULTI_CLASS_ID   0x0000200
  Super class ID multi material.
#define  MULTI_MATERIAL_CLASS_ID   Class_ID(MULTI_CLASS_ID, 0)
#define  DOUBLESIDED_CLASS_ID   0x0000210
  Double-sided material.
#define  MIXMAT_CLASS_ID   0x0000250
  Blend material.
#define  BAKE_SHELL_CLASS_ID   0x0000255
  Two material shell for baking.
#define  MATTE_CLASS_ID   0x0000260
  Matte material class ID.
#define  LOCKMAT_CLASS_ID   Class_ID(0x5c92647b, 0x35a5272a)
  Locked material class ID.
Subclass class IDs of SHADER_CLASS_ID
#define  STDSHADERS_CLASS_ID   0x00000035
Subclass class IDs of SHADOW_TYPE_CLASS_ID
#define  STD_SHADOW_MAP_CLASS_ID   0x0000100
#define  STD_RAYTRACE_SHADOW_CLASS_ID   0x0000200
Subclass class IDs of RENDERER_CLASS_ID
#define  SREND_CLASS_ID   0x000001
  Default scan-line renderer.
Subclass class IDs of BAKE_ELEMENT_CLASS_ID
#define  COMPLETE_BAKE_ELEMENT_CLASS_ID   0x00010001
#define  SPECULAR_BAKE_ELEMENT_CLASS_ID   0x00010002
#define  DIFFUSE_BAKE_ELEMENT_CLASS_ID   0x00010003
#define  REFLECT_REFRACT_BAKE_ELEMENT_CLASS_ID   0x00010004
#define  SHADOW_BAKE_ELEMENT_CLASS_ID   0x00010005
#define  LIGHT_BAKE_ELEMENT_CLASS_ID   0x00010006
#define  NORMALS_ELEMENT_CLASS_ID   0x00010007
#define  BLEND_BAKE_ELEMENT_CLASS_ID   0x00010008
#define  ALPHA_BAKE_ELEMENT_CLASS_ID   0x00010009
#define  HEIGHT_BAKE_ELEMENT_CLASS_ID   0x0001000A
#define  AMBIENTOCCLUSION_BAKE_ELEMENT_CLASS_ID   0x0001000B
Subclass class IDs 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
#define  MTL_CATEGORY_CLASS_ID   Class_ID(0xb8e3b2d, 0x19854ad2)
Subclass class IDs of OSM_CLASS_ID
#define  SKEWOSM_CLASS_ID   0x6f3cc2aa
#define  BENDOSM_CLASS_ID   0x00010
#define  TAPEROSM_CLASS_ID   0x00020
#define  TWISTOSM_CLASS_ID   0x00090
#define  SPLINEIKCONTROL_CLASS_ID   Class_ID(0x5f43ba4, 0x55fe9305)
#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  UVW_XFORM2_CLASS_ID   0x5f32de13
#define  EDIT_POLY_MODIFIER_CLASS_ID   Class_ID(0x79aa6e1d, 0x71a075b7)
#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
FFD Modifier Class IDs
#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)
Association Context Modifier Class IDs
#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
#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
Subclass Class IDs of Controllers
#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  HYBRIDINTERP_POINT4_CLASS_ID   0x2012
#define  HYBRIDINTERP_FRGBA_CLASS_ID   0x2013
#define  HYBRIDINTERP_POINT2_CLASS_ID   Class_ID(0x15205122, 0x1690125b)
#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  TCBINTERP_POINT4_CLASS_ID   0x442316
#define  MASTERPOINTCONT_CLASS_ID   0xd9c20ff
Particle Flow Class IDs
#define  PF_SUBCLASS_ID_PARTB   0x1eb34000
#define  PF_OPERATOR_SUBCLASS_ID   0x74f93a02
#define  PF_OPERATOR3D_SUBCLASS_ID   0x74f93a03
#define  PF_TEST_SUBCLASS_ID   0x74f93a04
#define  PF_TEST3D_SUBCLASS_ID   0x74f93a05
#define  PF_ITEM_SUBCLASS_ID   0x74f93a06
#define  PF_OBJECT_SUBCLASS_ID   0x74f93a07
ClassDesc::Execute() Command Values

These values may be passed as the cmd argument of the ClassDesc::Execute() function.

#define  I_EXEC_CTRL_BYPASS_TREE_VIEW   1001
#define  I_EXEC_GET_SOA_STATE   1002
#define  I_EXEC_EVAL_SOA_TIME   1003

Enumerations

enum   BoneObj_Block { boneobj_params }
enum   BoneObj_Params {
  boneobj_width, boneobj_height, boneobj_taper, boneobj_length,
  boneobj_sidefins, boneobj_sidefins_size, boneobj_sidefins_starttaper, boneobj_sidefins_endtaper,
  boneobj_frontfin, boneobj_frontfin_size, boneobj_frontfin_starttaper, boneobj_frontfin_endtaper,
  boneobj_backfin, boneobj_backfin_size, boneobj_backfin_starttaper, boneobj_backfin_endtaper,
  boneobj_genmap
}

Functions

CoreExport void *  CreateInstance (SClass_ID superID, Class_ID classID)
  Creates an instance of the specified class.

Max SDK Version Numbers.

The SDK version number is updated every time a build of Max containing SDK changes is distributed to 3rd party plugin developers.This can be an alpha, beta or release candidate build. Although we make every effort to keep Max backward compatible with plugins built against previous versions of the Max SDK, occasionally plugins are required to be re-built against the latest version of the Max SDK in order for Max to load them. Plugins built against a certain version of the Max SDK will not load in previous versions of Max. Note that the Max SDK version number is encoded in VERSION_3DSMAX.SDK backward compatibility history:
  • 3ds Max R5 is binary compatible with 3ds Max R4
  • 3ds Max R8 is binary compatible with 3ds Max R6
  • 3ds Max R9.0 not binary compatible with previous releases
  • 3ds Max R10 is binary compatible with 3ds Max R9
  • 3ds Max R11 not binary compatible with previous releases
  • 3ds Max R12 not binary compatible with previous releases
  • 3ds Max R13 is binary compatible with 3ds Max R12
See also:
VERSION_3DSMAX
LibVersion

#define  MAX_API_NUM_R20   4
#define  MAX_API_NUM_R25   5
#define  MAX_API_NUM_R30   6
#define  MAX_API_NUM_R31   7
#define  MAX_API_NUM_R40   8
#define  MAX_API_NUM_R42   9
#define  MAX_API_NUM_R50   11
  3ds Max 5 SDK.
#define  MAX_API_NUM_R60_PRE_REL   12
  3ds Max 6 SDK pre-release.
#define  MAX_API_NUM_R60   13
  3ds Max 6 SDK.
#define  MAX_API_NUM_R70_PRE_REL   14
  3ds Max 7 SDK pre-release.
#define  MAX_API_NUM_R70   15
  3ds Max 7 SDK.
#define  MAX_API_NUM_R80_PRE_REL   16
  3ds Max 8 SDK pre-release.
#define  MAX_API_NUM_R80   17
  3ds Max 8 SDK.
#define  MAX_API_NUM_R90_ALPHA   18
  3ds Max 7 SDK pre-release.
#define  MAX_API_NUM_R90_BETA1   19
  3ds Max 9 Beta 1 SDK.
#define  MAX_API_NUM_R90_BETA3   20
  3ds Max 9 Beta 3 SDK.
#define  MAX_API_NUM_R90   21
  3ds Max 9 SDK. SDK incompatible with 3ds Max 8.
#define  MAX_API_NUM_R100_BETA5   22
  3ds Max 10 Beta 5 SDK.
#define  MAX_API_NUM_R100   23
  to 3ds Max 10 SDK. SDK compatible with 3ds Max 9.
#define  MAX_API_NUM_R110_ALPHA   24
  3ds Max 2009 Alpha SDK. SDK is incompatible with 3ds Max 10.
#define  MAX_API_NUM_R110   25
  3ds Max 2009 SDK. SDK is compatible with 3ds Max 2009 Alpha
#define  MAX_API_NUM_R120_ALPHA2   26
  3ds Max 2010 Alpha 2 SDK. SDK is incompatible with 3ds Max 2009.
#define  MAX_API_NUM_R120_ALPHA3   27
  3ds Max 2010 Alpha 3 SDK. SDK is incompatible with 3ds Max 2010 Alpha 2.
#define  MAX_API_NUM_R120_ALPHA4   28
  3ds Max 2010 Alpha 4 SDK. SDK is incompatible with 3ds Max 2010 Alpha 3.
#define  MAX_API_NUM_R120_BETA1   29
  3ds Max 2010 Beta 1 SDK. SDK is incompatible with 3ds Max 2010 Alpha 4.
#define  MAX_API_NUM_R120_BETA3   30
  3ds Max 2010 Beta 3 SDK. SDK is compatible with 3ds Max 2010 Beta 1 (Beta 2 was identical to Beta 1).
#define  MAX_API_NUM_R120_BETA4   31
  3ds Max 2010 Beta 4 SDK. SDK is compatible with 3ds Max 2010 Beta 3.
#define  MAX_API_NUM_R120_BETA5   32
  3ds Max 2010 Beta 5 SDK. SDK is compatible with 3ds Max 2010 Beta 4.
#define  MAX_API_NUM_R120   33
  3ds Max 2010 SDK. SDK is compatible with 3ds Max 2010 Beta 5.
#define  MAX_API_NUM_R130_BETA1   34
  3ds Max 2011 Beta 1 SDK. SDK is compatible with 3ds Max 2010 and 3ds Max 2011 Alpha builds except for new APIs.
#define  MAX_API_NUM_R130   35
  3ds Max 2011 SDK. SDK is compatible with 3ds Max 2010 and 3ds Max 2011 Alpha and Beta builds except for new APIs.
#define  MAX_API_NUM_R140_ALPHA1   36
  3ds Max R14 Alpha 1 SDK. SDK is incompatible with 3ds Max 2011.
#define  MAX_API_NUM_R140_BETA2   37
  3ds Max R14 Beta 2 SDK - incompatible with 3ds Max 2012 Beta 1 and earlier.
#define  MAX_API_NUM_R140   38
  3ds Max R14 SDK - incompatible with 3ds Max 2011, compatible with 3ds Max 2012 Beta 2 and later.
#define  MAX_API_NUM   MAX_API_NUM_R140
  The 3ds Max SDK current version number.
#define  MAX_SDK_REV   0
  Denotes the revision of the SDK for a given API.
#define  VERSION_3DSMAX   ((MAX_RELEASE<<16)+(MAX_API_NUM<<8)+MAX_SDK_REV)
  This is the value is required to be returned by a plug-in DLL's implementation of LibVersion().
enum   APPLICATION_ID {
  kAPP_NONE, kAPP_MAX, kAPP_VIZ, kAPP_GMAX,
  kAPP_PLASMA, kAPP_VIZR
}
CoreExport APPLICATION_ID  GetAppID ()
  Returns the ApplicationID, either VIZ or MAX.

Subclass class IDs 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  COMPOSITE_MATERIAL_CLASS_ID   Class_ID(0x61dc0cd7, 0x13640af6)
  Composite Material.
#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  COLORCORRECTION_CLASS_ID   0x00002D0
  Color Correction texture.
#define  VCOL_CLASS_ID   0x0934851
  Vertex color map.
#define  MULTIOUTPUTTOTEXMAP_CLASS_ID   Class_ID(0x896EF2FC, 0x44BD743F)
  MultiOutputToTexmap texture.
enum   TextureMap_Vertex_Color_BlockID { vertexcolor_params }
enum   TextureMap_Vertex_Color_ParamIDs { vertexcolor_map, vertexcolor_subid }

Detailed Description

This file contains API related to plug-in identification to 3ds Max.

Definitions from this file can be found in the following documentation modules:

Definition in file plugapi.h.


Define Documentation

#define I_EXEC_CTRL_BYPASS_TREE_VIEW   1001

Definition at line 1290 of file plugapi.h.

#define I_EXEC_GET_SOA_STATE   1002

Definition at line 1291 of file plugapi.h.

#define I_EXEC_EVAL_SOA_TIME   1003

Definition at line 1292 of file plugapi.h.


Function Documentation

CoreExport void* CreateInstance ( SClass_ID  superID,
Class_ID  classID 
)

Creates an instance of the specified class.