3ds Max C++ API Reference
mxsPlugin.h File Reference

Classes

class  ParamRef
 
class  MSPluginClass
 
class  MSPluginDesc
 
class  MSPluginPBAccessor
 
class  MSPlugin
 
class  MSPluginValueMigrator
 
class  MSPluginObject< TYPE >
 
class  MSObjectXtnd< TYPE, MS_SUPER >
 
class  MSPluginGeomObject
 
class  MSGeomObjectXtnd
 
class  MSPluginHelper
 
class  MSHelperXtnd
 
class  MSPluginLight
 
class  MSLightXtnd
 
class  MSPluginCamera
 
class  MSCameraXtnd
 
class  MSPluginShape
 
class  MSShapeXtnd
 
class  MSPluginSimpleObject
 
class  MSSimpleObjectXtnd
 
class  MSPluginSimpleSpline
 
class  MSPluginSimpleManipulator
 
class  MSSimpleManipulatorXtnd
 
class  MSPluginModifier
 
class  MSModifierXtnd
 
class  MSPluginSimpleMeshMod
 
class  MSPluginSimpleMod
 
class  MSSimpleModXtnd
 
class  MSPluginTexmap
 
class  MSTexmapXtnd
 
class  MSPluginMtl
 
class  MSMtlXtnd
 
class  MSAutoMParamDlg
 
class  MSPluginSpecialFX< TYPE >
 
class  MSSpecialFXXtnd< TYPE, MS_SUPER >
 
class  MSPluginEffect
 
class  MSEffectXtnd
 
class  MSAutoEParamDlg
 
class  MSPluginAtmos
 
class  MSAtmosXtnd
 
class  MSPluginTrackViewUtility
 
class  PluginClassDefPLCB1
 
class  PluginClassDefPLCB2
 

Macros

#define is_msplugin_class(v)   ((DbgVerify(!is_sourcepositionwrapper(v)), (v))->tag == class_tag(MSPluginClass))
 
#define MPC_TEMPORARY   (1<<0)
 
#define MPC_REDEFINITION   (1<<1)
 
#define MPC_MS_CREATING   (1<<2)
 
#define MPC_MS_WAS_CREATING   (1<<3)
 
#define MPC_EDITING_IN_CP   (1<<4)
 
#define MPC_EDITING_IN_MTLEDT   (1<<5)
 
#define MPC_EDITING_IN_EFX   (1<<6)
 
#define MPC_REPLACE_UI   (1<<7)
 
#define MPC_INVISIBLE   (1<<8)
 
#define MPC_SILENTERRORS   (1<<9)
 
#define MPC_MAX_CREATING   (1<<10)
 
#define MPC_ABORT_CREATE   (1<<11)
 
#define MPC_LEVEL_6   (1<<12)
 
#define MPC_IS_MANIP   (1<<13)
 
#define MPC_ALTERNATE   (1<<14)
 
#define MPC_CAD_FILESAVE   (1<<15)
 
#define MPC_PROMOTE_DEL_PROPS   (1<<16)
 
#define MPC_USE_PB_VALIDITY   (1<<17)
 
#define MPC_CAD_FILELOAD_LOADDEFDATA   (1<<18)
 
#define MPC_CAD_NO_ATTRIBID   (1<<19)
 
#define key_parm(_key)   _get_key_param(keys, n_##_key)
 
#define bool_key_parm(_key, var, def)   ((var = _get_key_param(keys, n_##_key)) == &unsupplied ? def : var->to_bool())
 
#define MSP_LOADING   0x0001
 
#define MSP_DISABLED   0x0002
 
#define MSP_DELETED   0x0004
 
#define MSPLUGIN_CHUNK   0x0010
 

Typedefs

typedef RefTargetHandle(* creator_fn) (MSPluginClass *pic, BOOL loading)
 

Enumerations

enum  { pl_this , pl_version , pl_loading , pl_delegate }
 
enum  { pl_extent = pl_delegate + 1 , pl_min , pl_max , pl_center }
 
enum  {
  pl_mesh2 = pl_center + 1 , pl_transform , pl_inverseTransform , pl_bbox ,
  pl_owningNode
}
 
enum  { pl_mesh = pl_delegate + 1 }
 
enum  { pl_beziershape = pl_delegate + 1 }
 
enum  {
  pl_target = pl_delegate + 1 , pl_node , pl_gizmoDontDisplay , pl_gizmoDontHitTest ,
  pl_gizmoScaleToViewport , pl_gizmoUseScreenSpace , pl_gizmoActiveViewportOnly , pl_gizmoUseRelativeScreenSpace ,
  pl_gizmoApplyUIScaling
}
 
enum  {
  pl_isLeaf = pl_delegate + 1 , pl_isKeyable , pl_method , pl_parentTransform ,
  pl_usesParentTransform
}
 

Functions

Value_get_key_param (Array *keys, Value *key_name)
 

Variables

PluginClassDefPLCB1 thePluginClassDefPLCB1
 
PluginClassDefPLCB2 thePluginClassDefPLCB2
 

Macro Definition Documentation

◆ is_msplugin_class

#define is_msplugin_class (   v)    ((DbgVerify(!is_sourcepositionwrapper(v)), (v))->tag == class_tag(MSPluginClass))

◆ MPC_TEMPORARY

#define MPC_TEMPORARY   (1<<0)

◆ MPC_REDEFINITION

#define MPC_REDEFINITION   (1<<1)

◆ MPC_MS_CREATING

#define MPC_MS_CREATING   (1<<2)

◆ MPC_MS_WAS_CREATING

#define MPC_MS_WAS_CREATING   (1<<3)

◆ MPC_EDITING_IN_CP

#define MPC_EDITING_IN_CP   (1<<4)

◆ MPC_EDITING_IN_MTLEDT

#define MPC_EDITING_IN_MTLEDT   (1<<5)

◆ MPC_EDITING_IN_EFX

#define MPC_EDITING_IN_EFX   (1<<6)

◆ MPC_REPLACE_UI

#define MPC_REPLACE_UI   (1<<7)

◆ MPC_INVISIBLE

#define MPC_INVISIBLE   (1<<8)

◆ MPC_SILENTERRORS

#define MPC_SILENTERRORS   (1<<9)

◆ MPC_MAX_CREATING

#define MPC_MAX_CREATING   (1<<10)

◆ MPC_ABORT_CREATE

#define MPC_ABORT_CREATE   (1<<11)

◆ MPC_LEVEL_6

#define MPC_LEVEL_6   (1<<12)

◆ MPC_IS_MANIP

#define MPC_IS_MANIP   (1<<13)

◆ MPC_ALTERNATE

#define MPC_ALTERNATE   (1<<14)

◆ MPC_CAD_FILESAVE

#define MPC_CAD_FILESAVE   (1<<15)

◆ MPC_PROMOTE_DEL_PROPS

#define MPC_PROMOTE_DEL_PROPS   (1<<16)

◆ MPC_USE_PB_VALIDITY

#define MPC_USE_PB_VALIDITY   (1<<17)

◆ MPC_CAD_FILELOAD_LOADDEFDATA

#define MPC_CAD_FILELOAD_LOADDEFDATA   (1<<18)

◆ MPC_CAD_NO_ATTRIBID

#define MPC_CAD_NO_ATTRIBID   (1<<19)

◆ key_parm

#define key_parm (   _key)    _get_key_param(keys, n_##_key)

◆ bool_key_parm

#define bool_key_parm (   _key,
  var,
  def 
)    ((var = _get_key_param(keys, n_##_key)) == &unsupplied ? def : var->to_bool())

◆ MSP_LOADING

#define MSP_LOADING   0x0001

◆ MSP_DISABLED

#define MSP_DISABLED   0x0002

◆ MSP_DELETED

#define MSP_DELETED   0x0004

◆ MSPLUGIN_CHUNK

#define MSPLUGIN_CHUNK   0x0010

Typedef Documentation

◆ creator_fn

typedef RefTargetHandle(* creator_fn) (MSPluginClass *pic, BOOL loading)

Enumeration Type Documentation

◆ anonymous enum

anonymous enum
Enumerator
pl_this 
pl_version 
pl_loading 
pl_delegate 
77  {
79 };
@ pl_delegate
Definition: mxsPlugin.h:78
@ pl_version
Definition: mxsPlugin.h:78
@ pl_loading
Definition: mxsPlugin.h:78
@ pl_this
Definition: mxsPlugin.h:78

◆ anonymous enum

anonymous enum
Enumerator
pl_extent 
pl_min 
pl_max 
pl_center 
81  {
82  pl_extent = pl_delegate + 1, pl_min, pl_max, pl_center // for SimpleMods
83 };
@ pl_extent
Definition: mxsPlugin.h:82
@ pl_max
Definition: mxsPlugin.h:82
@ pl_min
Definition: mxsPlugin.h:82
@ pl_center
Definition: mxsPlugin.h:82

◆ anonymous enum

anonymous enum
Enumerator
pl_mesh2 
pl_transform 
pl_inverseTransform 
pl_bbox 
pl_owningNode 
85  {
87 };
@ pl_inverseTransform
Definition: mxsPlugin.h:86
@ pl_mesh2
Definition: mxsPlugin.h:86
@ pl_transform
Definition: mxsPlugin.h:86
@ pl_owningNode
Definition: mxsPlugin.h:86
@ pl_bbox
Definition: mxsPlugin.h:86

◆ anonymous enum

anonymous enum
Enumerator
pl_mesh 
89  {
90  pl_mesh = pl_delegate + 1 // for SimpleObjects
91 };
@ pl_mesh
Definition: mxsPlugin.h:90

◆ anonymous enum

anonymous enum
Enumerator
pl_beziershape 
93  {
94  pl_beziershape = pl_delegate + 1 // for SimpleSplines
95 };
@ pl_beziershape
Definition: mxsPlugin.h:94

◆ anonymous enum

anonymous enum
Enumerator
pl_target 
pl_node 
pl_gizmoDontDisplay 
pl_gizmoDontHitTest 
pl_gizmoScaleToViewport 
pl_gizmoUseScreenSpace 
pl_gizmoActiveViewportOnly 
pl_gizmoUseRelativeScreenSpace 
pl_gizmoApplyUIScaling 
97  {
98  pl_target = pl_delegate + 1, pl_node, // for SimpleManipulators
101 };
@ pl_target
Definition: mxsPlugin.h:98
@ pl_gizmoUseRelativeScreenSpace
Definition: mxsPlugin.h:100
@ pl_gizmoApplyUIScaling
Definition: mxsPlugin.h:100
@ pl_gizmoUseScreenSpace
Definition: mxsPlugin.h:100
@ pl_gizmoDontDisplay
Definition: mxsPlugin.h:99
@ pl_node
Definition: mxsPlugin.h:98
@ pl_gizmoActiveViewportOnly
Definition: mxsPlugin.h:100
@ pl_gizmoDontHitTest
Definition: mxsPlugin.h:99
@ pl_gizmoScaleToViewport
Definition: mxsPlugin.h:99

◆ anonymous enum

anonymous enum
Enumerator
pl_isLeaf 
pl_isKeyable 
pl_method 
pl_parentTransform 
pl_usesParentTransform 
103  {
104  pl_isLeaf = pl_delegate + 1, // for scripted controller plugins
105  pl_isKeyable,
106  pl_method,
107  pl_parentTransform, // these 2 are actively used only for P/R/S/Transform controllers
109 };
@ pl_isLeaf
Definition: mxsPlugin.h:104
@ pl_method
Definition: mxsPlugin.h:106
@ pl_isKeyable
Definition: mxsPlugin.h:105
@ pl_parentTransform
Definition: mxsPlugin.h:107
@ pl_usesParentTransform
Definition: mxsPlugin.h:108

Function Documentation

◆ _get_key_param()

Value* _get_key_param ( Array keys,
Value key_name 
)

Variable Documentation

◆ thePluginClassDefPLCB1

PluginClassDefPLCB1 thePluginClassDefPLCB1
extern

◆ thePluginClassDefPLCB2

PluginClassDefPLCB2 thePluginClassDefPLCB2
extern