3ds Max C++ API Reference
istdplug.h File Reference
#include "maxheap.h"
#include "iFnPub.h"
#include "units.h"
#include "BuildWarnings.h"
#include "assetmanagement/assetUser.h"
#include "object.h"
#include "quat.h"
#include "control.h"
#include "ipoint3.h"
#include "namesel.h"

Classes

class  ITextObject
 
class  IKey
 
class  ITCBKey
 
class  ITCBFloatKey
 
class  ITCBPoint4Key
 
class  ITCBPoint3Key
 
class  ITCBRotKey
 
class  ITCBScaleKey
 
class  IBezFloatKey
 
class  IBezPoint3Key
 
class  IBezQuatKey
 
class  IBezScaleKey
 
class  IBezPoint4Key
 
class  IBezPoint2Key
 
class  ILinFloatKey
 
class  ILinPoint3Key
 
class  ILinRotKey
 
class  ILinScaleKey
 
class  IBoolFloatKey
 
class  IKeyProperty
 Interface to the Key Property. More...
 
class  IIKKeyProp
 Interface to the IK Key Property. More...
 
class  ISetIKKeyProp
 This is a helper class. More...
 
class  IKeyControl
 
class  IKeyControl2
 Extend IKeyControl to include interfaces to IKeyProperty. More...
 
class  AnyKey
 
class  IRotWindup
 
class  IAdjustTangents
 
class  IAdjustMultipleTangents
 
class  ISoftSelect
 
class  ObjectDataReaderCallback
 
class  IWaveSound
 SeeAlso: Class Interface. More...
 
class  IBoolObject
 
class  IPathPosition
 
class  IPosConstPosition
 
class  IOrientConstRotation
 
class  ILookAtConstRotation
 
class  INoiseControl
 
class  ISurfPosition
 
class  ILinkCtrl
 
class  ILookatControl
 
class  IBoolCntrl
 
class  ILookatControl_Extension
 
class  IListControl
 IListControl provides API access to list control functionality. More...
 
class  ISplineIKControl
 
class  ISplineIKControl2
 
class  IFFDMod< T >
 
class  IMeshSelect
 
class  IMeshSelectData
 
class  ISplineSelect
 
class  ISplineSelectData
 
class  ISplineOps
 
class  IPatchSelect
 
class  IPatchSelectData
 
class  IPatchOps
 
class  IAssignVertexColors
 The IAssignVertexColors is a static interface to the Assign Vertex Color utility. More...
 
class  IAssignVertexColors::Options
 The options used when calculating the vertex colors. More...
 
class  IAssignVertexColors_R7
 This class extends IAssignVertexColors to include more options. More...
 
class  IAssignVertexColors_R7::Options2
 The options used when calculating the vertex colors. More...
 
class  IVertexPaint
 The IVertexPaint interface provides a way to set the vertex colors held in a VertexPaint modifier. More...
 
struct  IVertexPaint::FaceColor
 
class  IVertexPaint_R7
 
class  ITimeSlider
 This class represents the interface for the time slider. More...
 
class  IStatusPanel
 
class  IBitmapIO_Bmp
 This class represents the interface for the Bitmap IO BMP format. More...
 
class  IBitmapIO_Jpeg
 
class  IBitmapIO_Png
 
class  IBitmapIO_Tga
 
class  IBitmapIO_RLA
 The IBitmapIO_RLA class expands upon the previous IBitmapIO classes. More...
 
class  IBitmapIO_Rgb
 
class  IUnReplaceableControl
 Basically it's a backwards-compatabile fix for the fact that the 'IsReplaceable' control flag isn't used by PB2's. Secondly the class provides. More...
 
class  IEulerControl
 IEulerControl is an interface for euler controllers so we can get/set their xyz ordering. More...
 
class  IAttachCtrl
 IAttachCtrl is an interface for getting/setting properties on the Attach controller. More...
 
class  ISystemXRef
 Interface for interactions between 'systems', in particular biped, and the max xref core. More...
 
class  IBufferable
 An Animatable interface for controllers that can be buffered. More...
 

Namespaces

 LightingModel
 

Macros

#define TEXTOBJ_ITALIC   (1<<1)
 
#define TEXTOBJ_UNDERLINE   (1<<2)
 
#define TEXTOBJ_LEFT   0
 
#define TEXTOBJ_CENTER   1
 
#define TEXTOBJ_RIGHT   2
 
#define TEXTOBJ_JUSTIFIED   3
 
#define TFLAG_CURVESEL   (1<<0)
 
#define TFLAG_RANGE_UNLOCKED   (1<<1)
 
#define TFLAG_LOOPEDIN   (1<<3)
 
#define TFLAG_LOOPEDOUT   (1<<4)
 
#define TFLAG_COLOR   (1<<5)
 
#define TFLAG_HSV   (1<<6)
 
#define TRACK_XLOCKED   (1<<7)
 
#define KT_FLAG_DELAY_KEYSCHANGED   (1<<8)
 
#define TFLAG_NOTKEYABLE   (1<<9)
 
#define TFLAG_TCBQUAT_NOWINDUP   (1<<10)
 
#define ROTWINDUP_INTERFACE   Interface_ID(0x13a3032c, 0x381345ca)
 
#define XDATA_ENTRY   0x8001
 
#define XDATA_APPNAME   0x8002
 
#define BOOLOP_UNION   0
 
#define BOOLOP_INTERSECTION   1
 
#define BOOLOP_SUB_AB   2
 
#define BOOLOP_SUB_BA   3
 
#define BOOLOP_CUT   4
 
#define BOOLOP_CUT_REFINE   0
 
#define BOOLOP_CUT_SEPARATE   1
 
#define BOOLOP_CUT_REMOVE_IN   2
 
#define BOOLOP_CUT_REMOVE_OUT   3
 
#define BOOLUPDATE_ALWAYS   0
 
#define BOOLUPDATE_SELECTED   1
 
#define BOOLUPDATE_RENDER   2
 
#define BOOLUPDATE_MANUAL   3
 
#define BOOL_ADDOP_REFERENCE   0
 
#define BOOL_ADDOP_INSTANCE   1
 
#define BOOL_ADDOP_COPY   2
 
#define BOOL_ADDOP_MOVE   3
 
#define BOOL_MAT_NO_MODIFY   0
 
#define BOOL_MAT_IDTOMAT   1
 
#define BOOL_MAT_MATTOID   2
 
#define BOOL_MAT_DISCARD_ORIG   3
 
#define BOOL_MAT_DISCARD_NEW   4
 
#define BOOLREF_OBJECT1   0
 
#define BOOLREF_OBJECT2   1
 
#define BOOLREF_CONT1   2
 
#define BOOLREF_CONT2   3
 
#define BOOLREF_PBLOCK   4
 
#define PATH_CONSTRAINT_INTERFACE   Interface_ID(0x79d15f78, 0x1f901f8e)
 
#define GetIPathConstInterface(cd)    (IPathPosition*)(cd)->GetInterface(PATH_CONSTRAINT_INTERFACE)
 
#define BANKSCALE   100.0f
 
#define FromBankUI(a)   ((a)*BANKSCALE)
 
#define ToBankUI(a)   ((a)/BANKSCALE)
 
#define TRACKSCALE   0.04f
 
#define FromTrackUI(a)   ((a)*TRACKSCALE)
 
#define ToTrackUI(a)   ((a)/TRACKSCALE)
 
#define PATHPOS_PATH_REF   1
 
#define PATHPOS_PBLOCK_REF   2
 
#define POS_CONSTRAINT_INTERFACE   Interface_ID(0x32040779, 0x794a1278)
 
#define GetIPosConstInterface(cd)    (IPosConstPosition*)(cd)->GetInterface(POS_CONSTRAINT_INTERFACE)
 
#define POSPOS_PBLOCK_REF   0
 
#define ORIENT_CONSTRAINT_INTERFACE   Interface_ID(0x71e2231b, 0x72522ab2)
 
#define GetIOrientConstInterface(cd)    (IOrientConstRotation*)(cd)->GetInterface(ORIENT_CONSTRAINT_INTERFACE)
 
#define ORIENT_ROT_PBLOCK_REF   0
 
#define LOOKAT_CONSTRAINT_INTERFACE   Interface_ID(0x5dbe7ad8, 0x1d1b488b)
 
#define GetILookAtConstInterface(cd)    (ILookAtConstRotation*)(cd)->GetInterface(LOOKAT_CONSTRAINT_INTERFACE)
 
#define LOOKAT_ROT_PBLOCK_REF   0
 
#define SURFCONT_U_REF   0
 
#define SURFCONT_V_REF   1
 
#define SURFCONT_SURFOBJ_REF   2
 
#define LINK_CONSTRAINT_INTERFACE   Interface_ID(0x32f03b37, 0x6700693a)
 
#define GetLinkConstInterface(cd)    (LinkConstTransform*)(cd)->GetInterface(LINK_CONSTRAINT_INTERFACE)
 
#define ADD_WORLD_LINK   PROPID_USER + 10
 
#define LINK_TIME_CONTROL_CLASS_ID   Class_ID(0x5d084b4b, 0x1b1d318a)
 
#define LINKCTRL_CONTROL_REF   0
 
#define LINKCTRL_FIRSTPARENT_REF   1
 
#define LINKCTRL_PBLOCK_REF   2
 
#define LINKCTRL_LTCTL_REF   3
 
#define LINKCTRL_CORE_REFs   4
 
#define LOOKAT_TARGET_REF   0
 
#define LOOKAT_POS_REF   1
 
#define LOOKAT_ROLL_REF   2
 
#define LOOKAT_SCL_REF   3
 
#define BOOL_CONTROL_INTERFACE   Interface_ID(0x5d511b6, 0x52a302db)
 
#define GetIBoolCntrlInterface(cd)    (IBoolCntrl*)(cd)->GetInterface(BOOL_CONTROL_INTERFACE)
 
#define BOOL_PBLOCK_REF   0
 
#define ILOOKATCONTROL_EXTENSION   Interface_ID(0x40ce4981, 0x3ea31c3b)
 
#define FLOATLIST_CONTROL_CLASS_ID   0x4b4b1000
 
#define POINT3LIST_CONTROL_CLASS_ID   0x4b4b1001
 
#define POSLIST_CONTROL_CLASS_ID   0x4b4b1002
 
#define ROTLIST_CONTROL_CLASS_ID   0x4b4b1003
 
#define SCALELIST_CONTROL_CLASS_ID   0x4b4b1004
 
#define DUMMY_CONTROL_CLASS_ID   0xeeefffff
 
#define MASTERLIST_CONTROL_CLASS_ID   0x4b4b1015
 
#define DRIVERBLOCKLIST_CONTROL_CLASS_ID   0x4b4b1015
 
#define POINT4LIST_CONTROL_CLASS_ID   0x4b4b1005
 
#define LIST_CONTROLLER_INTERFACE   Interface_ID(0x444e7687, 0x722e6e36)
 
#define GetIListControlInterface(cd)    (IListControl*)(cd)->GetInterface(LIST_CONTROLLER_INTERFACE)
 
#define SPLINEIK_CONTROL_INTERFACE   Interface_ID(0x7c93607a, 0x47d54f80)
 
#define GetISplineIKControlInterface(cd)    (ISplineIKControl*)(cd)->GetInterface(SPLINEIK_CONTROL_INTERFACE)
 
#define SPLINEIKCONTROL_PBLOCK_REF   0
 
#define SPLINEIK_CONTROL_INTERFACE2   Interface_ID(0x72428cc, 0x2a4a1b5f)
 
#define GetISplineIKControlInterface2(cd)    (ISplineIKControl2*)(cd)->GetInterface(SPLINEIK_CONTROL_INTERFACE2)
 
#define IMESHSEL_OBJECT   0
 
#define IMESHSEL_VERTEX   1
 
#define IMESHSEL_FACE   2
 
#define IMESHSEL_EDGE   3
 
#define APPLYVC_UTIL_CLASS_ID   Class_ID(0x6e989195, 0x5dfb41b7)
 
#define IASSIGNVERTEXCOLORS_INTERFACE_ID   Interface_ID(0x4f913fd8, 0x422a32af)
 
#define IASSIGNVERTEXCOLORS_R7_INTERFACE_ID   Interface_ID(0x77870f30, 0x4ed82b62)
 
#define PAINTLAYERMOD_CLASS_ID   Class_ID(0x7ebb4645, 0x7be2044b)
 
#define IVERTEXPAINT_INTERFACE_ID   Interface_ID(0x3e262ef9, 0x220e7190)
 
#define IVERTEXPAINT_R7_INTERFACE_ID   Interface_ID(0x4ea42df5, 0x44a35866)
 
#define TIMESLIDER_INTERFACE   Interface_ID(0x829e89e5, 0x878ef6e5)
 
#define STATUSPANEL_INTERFACE   Interface_ID(0x94357f0, 0x623e71c2)
 
#define BMPIO_INTERFACE   Interface_ID(0x374f288f, 0x19e460d6)
 
#define JPEGIO_INTERFACE   Interface_ID(0x466c7964, 0x2db94ff2)
 
#define PNGIO_INTERFACE   Interface_ID(0x1d7c41db, 0x328c1142)
 
#define TGAIO_INTERFACE   Interface_ID(0x21d673b7, 0x1d34198d)
 
#define RLAIO_INTERFACE   Interface_ID(0x282c2f79, 0x68f7373d)
 
#define RPFIO_INTERFACE   Interface_ID(0x25a87871, 0x2e265a49)
 
#define RGBIO_INTERFACE   Interface_ID(0x096c2424, 0x21b84dae)
 
#define I_ATTACHCTRL   Interface_ID(0x199a6b11, 0x5ca27621)
 
Arc Parameter Block param IDs

#define ARC_RADIUS   0
 
#define ARC_FROM   1
 
#define ARC_TO   2
 
#define ARC_PIE   3
 
#define ARC_REVERSE   4
 
Box Object Parameter Block2 IDs

#define BOXOBJ_PARAMBLOCK_ID   2
 
Box Object Parameter Block2 param IDs

#define BOXOBJ_LENGTH   0
 
#define BOXOBJ_WIDTH   1
 
#define BOXOBJ_HEIGHT   2
 
#define BOXOBJ_WSEGS   3
 
#define BOXOBJ_LSEGS   4
 
#define BOXOBJ_HSEGS   5
 
#define BOXOBJ_GENUVS   6
 
Geosphere Parameter Block2 IDs

#define GEOSPHERE_PARAMBLOCK_ID   2
 
Geosphere Parameter Block2 param IDs

#define GEOSPHERE_RADIUS   0
 
#define GEOSPHERE_SEGS   1
 
#define GEOSPHERE_TYPE   2
 
#define GEOSPHERE_HEMISHPERE   3
 
#define GEOSPHERE_SMOOTH   4
 
#define GEOSPHERE_BASEPIVOT   5
 
#define GEOSPHERE_GENUVS   6
 
Circle Parameter Block param IDs

#define CIRCLE_RADIUS   0
 
Cone Parameter Block2 IDs

#define CONE_PARAMBLOCK_ID   2
 
Cone Parameter Block2 param IDs

#define CONE_RADIUS1   0
 
#define CONE_RADIUS2   1
 
#define CONE_HEIGHT   2
 
#define CONE_SEGMENTS   3
 
#define CONE_CAPSEGMENTS   4
 
#define CONE_SIDES   5
 
#define CONE_SMOOTH   6
 
#define CONE_SLICEON   7
 
#define CONE_PIESLICE1   8
 
#define CONE_PIESLICE2   9
 
#define CONE_GENUVS   10
 
Cylinder Parameter Block2 IDs

#define CYLINDER_PARAMBLOCK_ID   2
 
Cylinder Parameter Block2 param IDs

#define CYLINDER_RADIUS   0
 
#define CYLINDER_HEIGHT   1
 
#define CYLINDER_SEGMENTS   2
 
#define CYLINDER_CAPSEGMENTS   3
 
#define CYLINDER_SIDES   4
 
#define CYLINDER_SMOOTH   5
 
#define CYLINDER_SLICEON   6
 
#define CYLINDER_PIESLICE1   7
 
#define CYLINDER_PIESLICE2   8
 
#define CYLINDER_GENUVS   9
 
Donut Parameter Block param IDs

#define DONUT_RADIUS1   0
 
#define DONUT_RADIUS2   1
 
Ellipse Parameter Block param IDs

#define ELLIPSE_LENGTH   0
 
#define ELLIPSE_WIDTH   1
 
#define ELLIPSE_THICKNESS   2
 
#define ELLIPSE_INNERSHAPE   3
 
Hedra Parameter Block param IDs

#define HEDRA_RADIUS   0
 
#define HEDRA_FAMILY   1
 
#define HEDRA_P   2
 
#define HEDRA_Q   3
 
#define HEDRA_SCALEP   4
 
#define HEDRA_SCALEQ   5
 
#define HEDRA_SCALER   6
 
#define HEDRA_VERTS   7
 
#define HEDRA_GENUVS   8
 
Helix Parameter Block param IDs

#define HELIX_RADIUS1   0
 
#define HELIX_RADIUS2   1
 
#define HELIX_HEIGHT   2
 
#define HELIX_TURNS   3
 
#define HELIX_BIAS   4
 
#define HELIX_DIRECTION   5
 
NGon Parameter Block param IDs

#define NGON_RADIUS   0
 
#define NGON_SIDES   1
 
#define NGON_CIRCULAR   2
 
PatchGrid Parameter Block param IDs

#define PATCHGRID_LENGTH   0
 
#define PATCHGRID_WIDTH   1
 
#define PATCHGRID_WSEGS   2
 
#define PATCHGRID_LSEGS   3
 
#define PATCHGRID_TEXTURE   4
 
Rain/Snow Parameter Block param IDs

#define RSPART_VPTPARTICLES   0
 
#define RSPART_RNDPARTICLES   1
 
#define RSPART_DROPSIZE   2
 
#define RSPART_SPEED   3
 
#define RSPART_VARIATION   4
 
#define RSPART_DISPTYPE   5
 
#define RSPART_STARTTIME   6
 
#define RSPART_LIFETIME   7
 
#define RSPART_EMITTERWIDTH   8
 
#define RSPART_EMITTERHEIGHT   9
 
#define RSPART_HIDEEMITTER   10
 
#define RSPART_BIRTHRATE   11
 
#define RSPART_CONSTANT   12
 
#define RSPART_RENDER   13
 
#define RSPART_TUMBLE   14
 
#define RSPART_SCALE   15
 
Rectangle Parameter Block param IDs

#define RECTANGLE_LENGTH   0
 
#define RECTANGLE_WIDTH   1
 
#define RECTANGLE_FILLET   2
 
Sphere Parameter Block2 IDs

#define SPHERE_PARAMBLOCK_ID   2
 
Sphere Parameter Block param IDs

#define SPHERE_RADIUS   0
 
#define SPHERE_SEGS   1
 
#define SPHERE_SMOOTH   2
 
#define SPHERE_HEMI   3
 
#define SPHERE_SQUASH   4
 
#define SPHERE_RECENTER   5
 
#define SPHERE_GENUVS   6
 
#define SPHERE_SLICEON   7
 
#define SPHERE_SLICEFROM   8
 
#define SPHERE_SLICETO   9
 
Torus Parameter Block2 IDs

#define TORUS_PARAMBLOCK_ID   2
 
Torus Parameter Block2 param IDs

#define TORUS_RADIUS   0
 
#define TORUS_RADIUS2   1
 
#define TORUS_ROTATION   2
 
#define TORUS_TWIST   3
 
#define TORUS_SEGMENTS   4
 
#define TORUS_SIDES   5
 
#define TORUS_SMOOTH   6
 
#define TORUS_SLICEON   7
 
#define TORUS_PIESLICE1   8
 
#define TORUS_PIESLICE2   9
 
#define TORUS_GENUVS   10
 
Capsule Parameter Block param IDs

#define CAPSULE_RADIUS   0
 
#define CAPSULE_HEIGHT   1
 
#define CAPSULE_CENTERS   2
 
#define CAPSULE_SIDES   3
 
#define CAPSULE_HSEGS   4
 
#define CAPSULE_SMOOTHON   5
 
#define CAPSULE_SLICEON   6
 
#define CAPSULE_SLICEFROM   7
 
#define CAPSULE_SLICETO   8
 
#define CAPSULE_GENUVS   9
 
Star Parameter Block param IDs

#define START_RADIUS1   0
 
#define START_RADIUS2   1
 
#define START_POINTS   2
 
#define START_DISTORT   3
 
#define START_FILLET1   4
 
#define START_FILLET2   5
 
Teapot Parameter Block2 IDs

#define TEAPOT_PARAMBLOCK_ID   2
 
Tea Pot Parameter Block2 param IDs

#define TEAPOT_RADIUS   0
 
#define TEAPOT_SEGS   1
 
#define TEAPOT_SMOOTH   2
 
#define TEAPOT_TEAPART   3
 
#define TEAPOT_BODY   4
 
#define TEAPOT_HANDLE   5
 
#define TEAPOT_SPOUT   6
 
#define TEAPOT_LID   7
 
#define TEAPOT_GENUVS   8
 
Text Parameter Block param IDs

#define TEXT_SIZE   0
 
#define TEXT_KERNING   1
 
#define TEXT_LEADING   2
 
Tube Parameter Block2 IDs

#define TUBE_PARAMBLOCK_ID   2
 
Tube Parameter Block2 param IDs

#define TUBE_RADIUS   0
 
#define TUBE_RADIUS2   1
 
#define TUBE_HEIGHT   2
 
#define TUBE_SEGMENTS   3
 
#define TUBE_CAPSEGMENTS   4
 
#define TUBE_SIDES   5
 
#define TUBE_SMOOTH   6
 
#define TUBE_SLICEON   7
 
#define TUBE_PIESLICE1   8
 
#define TUBE_PIESLICE2   9
 
#define TUBE_GENUVS   10
 
Grid Parameter Block2 IDs

#define GRIDHELP_PARAMBLOCK_ID   2
 
Grid Parameter Block2 param IDs

#define GRIDHELP_LENGTH   0
 
#define GRIDHELP_WIDTH   1
 
#define GRIDHELP_GRID   2
 
#define GRIDHELP_ACTIVECOLOR   3
 
#define GRIDHELP_DISPLAYPLANE   4
 
Prism Parameter Block2 IDs

#define PRISM_PARAMBLOCK_ID   2
 
Prism Parameter Block2 param IDs

#define PRISM_SIDE1   0
 
#define PRISM_SIDE2   1
 
#define PRISM_SIDE3   2
 
#define PRISM_HEIGHT   3
 
#define PRISM_S1SEGS   4
 
#define PRISM_S2SEGS   5
 
#define PRISM_S3SEGS   6
 
#define PRISM_HSEGS   7
 
#define PRISM_GENUVS   8
 
Pyramid Parameter Block2 IDs

#define PYR_PARAMBLOCK_ID   2
 
Pyrmaid Parameter Block2 param IDs

#define PYR_WIDTH   0
 
#define PYR_DEPTH   1
 
#define PYR_HEIGHT   2
 
#define PYR_WSEGS   3
 
#define PYR_DSEGS   4
 
#define PYR_HSEGS   5
 
#define PYR_GENUVS   6
 
Chamfer Box Parameter Block2 IDs

#define CHBOX_PARAMBLOCK_ID   2
 
Chamfer Box Parameter Block2 param IDs

#define CHBOX_LENGTH   0
 
#define CHBOX_WIDTH   1
 
#define CHBOX_HEIGHT   2
 
#define CHBOX_RADIUS   3
 
#define CHBOX_LSEGS   4
 
#define CHBOX_WSEGS   5
 
#define CHBOX_HSEGS   6
 
#define CHBOX_CSEGS   7
 
#define CHBOX_GENUVS   8
 
#define CHBOX_SMOOTH   9
 
Chamfer Cylinder Parameter Block2 IDs

#define CHCYL_PARAMBLOCK_ID   2
 
Chamfer Cylinder Parameter Block2 param IDs

#define CHCYL_RADIUS   0
 
#define CHCYL_HEIGHT   1
 
#define CHCYL_FILLET   2
 
#define CHCYL_HSEGS   3
 
#define CHCYL_FSEGS   4
 
#define CHCYL_SIDES   5
 
#define CHCYL_CSEGS   6
 
#define CHCYL_SMOOTHON   7
 
#define CHCYL_SLICEON   8
 
#define CHCYL_SLICEFROM   9
 
#define CHCYL_SLICETO   10
 
#define CHCYL_GENUVS   11
 
L-Ext Parameter Block2 IDs

#define LEXT_PARAMBLOCK_ID   2
 
L-Ext Parameter Block2 param IDs

#define LEXT_SIDELENGTH   0
 
#define LEXT_BOTLENGTH   1
 
#define LEXT_SIDEWIDTH   2
 
#define LEXT_BOTWIDTH   3
 
#define LEXT_HEIGHT   4
 
#define LEXT_SSEGS   5
 
#define LEXT_BSEGS   6
 
#define LEXT_WSEGS   7
 
#define LEXT_HSEGS   8
 
#define LEXT_GENUVS   9
 
#define LEXT_CENTERCREATE   10
 
C-Ext Parameter Block2 IDs

#define CEXT_PARAMBLOCK_ID   2
 
C-Ext Parameter Block2 param IDs

#define CEXT_TOPLENGTH   0
 
#define CEXT_SIDELENGTH   1
 
#define CEXT_BOTLENGTH   2
 
#define CEXT_TOPWIDTH   3
 
#define CEXT_SIDEWIDTH   4
 
#define CEXT_BOTWIDTH   5
 
#define CEXT_HEIGHT   6
 
#define CEXT_TSEGS   7
 
#define CEXT_SSEGS   8
 
#define CEXT_BSEGS   9
 
#define CEXT_WSEGS   10
 
#define CEXT_HSEGS   11
 
#define CEXT_GENUVS   12
 
#define CEXT_CENTERCREATE   13
 
Bend Parameter Block param IDs

#define BEND_ANGLE   0
 
#define BEND_DIR   1
 
#define BEND_AXIS   2
 
#define BEND_DOREGION   3
 
#define BEND_FROM   4
 
#define BEND_TO   5
 
Bomb Parameter Block param IDs

#define BOMB_STRENGTH   0
 
#define BOMB_GRAVITY   1
 
#define BOMB_CHAOS   2
 
#define BOMB_DETONATION   3
 
Deflector Parameter Block param IDs

#define DEFLECTOR_BOUNCE   0
 
#define DEFLECTOR_WIDTH   1
 
#define DEFLECTOR_HEIGHT   2
 
Parameter Block param IDs

Displace

For modifier and space warp object

#define DISPLACE_MAPTYPE   0
 
#define DISPLACE_UTILE   1
 
#define DISPLACE_VTILE   2
 
#define DISPLACE_WTILE   3
 
#define DISPLACE_BLUR   4
 
#define DISPLACE_USEMAP   5
 
#define DISPLACE_APPLYMAP   6
 
#define DISPLACE_STRENGTH   7
 
#define DISPLACE_DECAY   8
 
#define DISPLACE_CENTERLUM   9
 
#define DISPLACE_UFLIP   10
 
#define DISPLACE_VFLIP   11
 
#define DISPLACE_WFLIP   12
 
#define DISPLACE_CENTERL   13
 
#define DISPLACE_CAP   14
 
#define DISPLACE_LENGTH   15
 
#define DISPLACE_WIDTH   16
 
#define DISPLACE_HEIGHT   17
 
#define DISPLACE_AXIS   18
 
Extrude Parameter Block param IDs

#define EXTRUDE_AMOUNT   0
 
#define EXTRUDE_SEGS   1
 
#define EXTRUDE_CAPSTART   2
 
#define EXTRUDE_CAPEND   3
 
#define EXTRUDE_CAPTYPE   4
 
#define EXTRUDE_OUTPUT   5
 
#define EXTRUDE_MAPPING   6
 
#define EXTRUDE_GEN_MATIDS   7
 
#define EXTRUDE_USE_SHAPEIDS   8
 
#define EXTRUDE_SMOOTH   9
 
Gravity Parameter Block param IDs

#define GRAVITY_STRENGTH   0
 
#define GRAVITY_DECAY   1
 
#define GRAVITY_TYPE   2
 
#define GRAVITY_DISPLENGTH   3
 
Wind Parameter Block param IDs

#define WIND_STRENGTH   0
 
#define WIND_DECAY   1
 
#define WIND_TYPE   2
 
#define WIND_DISPLENGTH   3
 
#define WIND_TURBULENCE   4
 
#define WIND_FREQUENCY   5
 
#define WIND_SCALE   6
 
UVW Map Parameter Block param IDs

#define UVWMAP_MAPTYPE   0
 
#define UVWMAP_UTILE   1
 
#define UVWMAP_VTILE   2
 
#define UVWMAP_WTILE   3
 
#define UVWMAP_UFLIP   4
 
#define UVWMAP_VFLIP   5
 
#define UVWMAP_WFLIP   6
 
#define UVWMAP_CAP   7
 
#define UVWMAP_CHANNEL   8
 
#define UVWMAP_LENGTH   9
 
#define UVWMAP_WIDTH   10
 
#define UVWMAP_HEIGHT   11
 
#define UVWMAP_AXIS   12
 
Noise Mod Parameter Block param IDs

#define NOISEMOD_SEED   0
 
#define NOISEMOD_SCALE   1
 
#define NOISEMOD_FRACTAL   2
 
#define NOISEMOD_ROUGH   3
 
#define NOISEMOD_ITERATIONS   4
 
#define NOISEMOD_ANIMATE   5
 
#define NOISEMOD_FREQ   6
 
#define NOISEMOD_PHASE   7
 
#define NOISEMOD_STRENGTH   8
 
Optimize Parameter Block param IDs

#define OPTMOD_RENDER   0
 
#define OPTMOD_VIEWS   1
 
#define OPTMOD_FACETHRESH1   2
 
#define OPTMOD_EDGETHRESH1   3
 
#define OPTMOD_BIAS1   4
 
#define OPTMOD_PRESERVEMAT1   5
 
#define OPTMOD_PRESERVESMOOTH1   6
 
#define OPTMOD_MAXEDGE1   7
 
#define OPTMOD_FACETHRESH2   8
 
#define OPTMOD_EDGETHRESH2   9
 
#define OPTMOD_BIAS2   10
 
#define OPTMOD_PRESERVEMAT2   11
 
#define OPTMOD_PRESERVESMOOTH2   12
 
#define OPTMOD_MAXEDGE2   13
 
#define OPTMOD_AUTOEDGE   14
 
#define OPTMOD_MANUPDATE   15
 
Volume Selection Modifier Parameter Block param IDs

#define VOLSEL_LEVEL   0
 
#define VOLSEL_METHOD   1
 
#define VOLSEL_TYPE   2
 
#define VOLSEL_VOLUME   3
 
#define VOLSEL_INVERT   4
 
Ripple/Wave Modifier Parameter Block param IDs

For Space Warp Object and Object Space

#define RWAVE_AMPLITUDE   0
 Valid for space warp objects only. More...
 
#define RWAVE_AMPLITUDE2   1
 Valid for space warp objects only. More...
 
#define RWAVE_WAVELEN   2
 Valid for space warp objects only. More...
 
#define RWAVE_PHASE   3
 Valid for space warp objects only. More...
 
#define RWAVE_DECAY   4
 Valid for space warp objects only. More...
 
#define RWAVE_CIRCLES   5
 Valid for space warp objects only. More...
 
#define RWAVE_SEGMENTS   6
 Valid for space warp objects only. More...
 
#define RWAVE_DIVISIONS   7
 Valid for space warp objects only. More...
 
Ripple/Wave Binding (modifier) Parameter Block param IDs

#define RWAVE_FLEX   0
 
Skew Parameter Block param IDs

#define SKEW_AMOUNT   0
 
#define SKEW_DIR   1
 
#define SKEW_AXIS   2
 
#define SKEW_DOREGION   3
 
#define SKEW_FROM   4
 
#define SKEW_TO   5
 
Material Mod Parameter Block param IDs

#define MATMOD_MATID   0
 
#define MATMOD_MATID   0
 
Smoothing Group Modifier Parameter Block param IDs

#define SMOOTHMOD_AUTOSMOOTH   0
 
#define SMOOTHMOD_THRESHOLD   1
 
#define SMOOTHMOD_SMOOTHBITS   2
 
Normal Modifier Parameter Block param IDs

#define NORMMOD_UNIFY   0
 
#define NORMMOD_FLIP   1
 
SurfRev (Lathe) Modifier Parameter Block param IDs

#define SURFREV_DEGREES   0
 
#define SURFREV_SEGS   1
 
#define SURFREV_CAPSTART   2
 
#define SURFREV_CAPEND   3
 
#define SURFREV_CAPTYPE   4
 
#define SURFREV_WELDCORE   5
 
#define SURFREV_OUTPUT   6
 
#define SURFREV_MAPPING   7
 
Taper Parameter Block param IDs

#define TAPER_AMT   0
 
#define TAPER_CRV   1
 
#define TAPER_AXIS   2
 
#define TAPER_EFFECTAXIS   3
 
#define TAPER_SYMMETRY   4
 
#define TAPER_DOREGION   5
 
#define TAPER_FROM   6
 
#define TAPER_TO   7
 
Twist Parameter Block param IDs

#define TWIST_ANGLE   0
 
#define TWIST_BIAS   1
 
#define TWIST_AXIS   2
 
#define TWIST_DOREGION   3
 
#define TWIST_FROM   4
 
#define TWIST_TO   5
 
Smooth Mod Parameter Block param IDs

#define SMOOTH_AUTOSMOOTH   0
 
#define SMOOTH_THRESHOLD   1
 
#define SMOOTH_SMOOTHBITS   2
 
#define NORMALMOD_UNIFY   0
 name Normal Mod Parameter Block param IDs More...
 
#define NORMALMOD_FLIP   1
 name Normal Mod Parameter Block param IDs More...
 
Tessellation Mod Parameter Block param IDs

#define TESSMOD_TYPE   0
 
#define TESSMOD_TENSION   1
 
#define TESSMOD_ITERATIONS   2
 
#define TESSMOD_FACE_TYPE   3
 
UVW Xform Parameter Block param IDs

#define UVWXFORM_UTILE   0
 
#define UVWXFORM_VTILE   1
 
#define UVWXFORM_WTILE   2
 
#define UVWXFORM_UOFFSET   3
 
#define UVWXFORM_VOFFSET   4
 
#define UVWXFORM_WOFFSET   5
 
#define UVWXFORM_UFLIP   6
 
#define UVWXFORM_VFLIP   7
 
#define UVWXFORM_WFLIP   8
 
#define UVWXFORM_CHANNEL   9
 
General Key Flags

#define IKEY_SELECTED   (1<<0)
 
#define IKEY_XSEL   (1<<1)
 
#define IKEY_YSEL   (1<<2)
 
#define IKEY_ZSEL   (1<<3)
 
#define IKEY_WSEL   (1<<30)
 
#define IKEY_FLAGGED   (1<<31)
 
#define IKEY_TIME_LOCK   (1<<14)
 
#define IKEY_ALLSEL   (IKEY_SELECTED|IKEY_XSEL|IKEY_YSEL|IKEY_ZSEL|IKEY_WSEL)
 
#define IKEY_VALLOCK_SHIFT   16
 
#define IKEY_VALX_LOCK   (1<<IKEY_VALLOCK_SHIFT)
 
#define IKEY_VALY_LOCK   (1<<(IKEY_VALLOCK_SHIFT+1))
 
#define IKEY_VALZ_LOCK   (1<<(IKEY_VALLOCK_SHIFT+2))
 
#define IKEY_VALA_LOCK   (1<<(IKEY_VALLOCK_SHIFT+3))
 
TCB-specific Key Flags

#define TCBKEY_QUATVALID   (1<<4)
 Angle/axis is derived from the quat instead of vice/versa. More...
 
Bezier-specific Key Flags

#define BEZKEY_XBROKEN   (1<<4)
 Broken means not locked. More...
 
#define BEZKEY_YBROKEN   (1<<5)
 Broken means not locked. More...
 
#define BEZKEY_ZBROKEN   (1<<6)
 Broken means not locked. More...
 
#define BEZKEY_WBROKEN   (1<<21)
 Broken means not locked. More...
 
In and Out types

Stored in bits 7-13

#define BEZKEY_NUMTYPEBITS   3
 
#define BEZKEY_INTYPESHIFT   7
 
#define BEZKEY_OUTTYPESHIFT   (BEZKEY_INTYPESHIFT+BEZKEY_NUMTYPEBITS)
 
#define BEZKEY_TYPEMASK   7
 
Bezier Tangeant Types

#define BEZKEY_SMOOTH   0
 
#define BEZKEY_LINEAR   1
 
#define BEZKEY_STEP   2
 
#define BEZKEY_FAST   3
 
#define BEZKEY_SLOW   4
 
#define BEZKEY_USER   5
 
#define BEZKEY_FLAT   6
 
#define NUM_TANGENTTYPES   7
 
Key Flagbit Macros

#define BEZKEY_CONSTVELOCITY   (1<<15)
 Interpolated using arclength as the interpolation parameter. More...
 
#define BEZKEY_UNCONSTRAINHANDLE   (1<<20)
 Determines whether a user handle is limited. More...
 
#define TangentsLocked(f, j)   (!(f&(j <= 2 ? (BEZKEY_XBROKEN<<j) : BEZKEY_WBROKEN)))
 Interpolated using arclength as the interpolation parameter. More...
 
#define SetTangentLock(f, j, l)   {if (l) (f)=(f)&(~(j <= 2 ? (BEZKEY_XBROKEN<<j) : BEZKEY_WBROKEN)); else (f)|=(j <= 2 ? (BEZKEY_XBROKEN<<j) : BEZKEY_WBROKEN);}
 Interpolated using arclength as the interpolation parameter. More...
 
Macros to Access Hybrid Tangent Types

#define GetInTanType(f)   int(((f)>>BEZKEY_INTYPESHIFT)&BEZKEY_TYPEMASK)
 
#define GetOutTanType(f)   int(((f)>>BEZKEY_OUTTYPESHIFT)&BEZKEY_TYPEMASK)
 
#define SetInTanType(f, t)   {(f) = ((f)&(~(BEZKEY_TYPEMASK<<BEZKEY_INTYPESHIFT)))|(t<<BEZKEY_INTYPESHIFT);}
 
#define SetOutTanType(f, t)   {(f) = ((f)&(~(BEZKEY_TYPEMASK<<BEZKEY_OUTTYPESHIFT)))|(t<<BEZKEY_OUTTYPESHIFT);}
 
#define HITKEY_INTAN   (1<<22)
 
#define HITKEY_OUTTAN   (1<<23)
 
#define HITKEY_TIME   (1<<24)
 
#define HITKEY_KEY   (1<<25)
 
#define HITKEY_ANY   (HITKEY_INTAN|HITKEY_OUTTAN|HITKEY_TIME|HITKEY_KEY)
 

Enumerations

enum  { path_params , path_joint_params }
 
enum  {
  path_percent , path_path , path_follow , path_bank ,
  path_bank_amount , path_smoothness , path_allow_upsidedown , path_constant_vel ,
  path_axis , path_axis_flip , path_path_weight , path_path_list ,
  path_loop , path_relative
}
 
enum  { pointobj_params }
 
enum  {
  pointobj_size , pointobj_centermarker , pointobj_axistripod , pointobj_cross ,
  pointobj_box , pointobj_screensize , pointobj_drawontop
}
 
enum  { nspline_params }
 
enum  { nspline_length , nspline_accuracy }
 
enum  splineCommandMode {
  ScmCreateLine , ScmAttach , ScmInsert , ScmConnect ,
  ScmRefine , ScmFillet , ScmChamfer , ScmBind ,
  ScmRefineConnect , ScmOutline , ScmTrim , ScmExtend ,
  ScmCrossInsert , ScmBreak , ScmUnion , ScmSubtract ,
  ScmCrossSection , ScmCopyTangent , ScmPasteTangent
}
 
enum  splineButtonOp {
  SopHide , SopUnhideAll , SopDelete , SopDetach ,
  SopDivide , SopCycle , SopUnbind , SopWeld ,
  SopMakeFirst , SopAttachMultiple , SopExplode , SopReverse ,
  SopClose , SopIntersect , SopMirrorHoriz , SopMirrorVert ,
  SopMirrorBoth , SopSelectByID , SopFuse
}
 
enum  splineUIParam
 
enum  patchCommandMode {
  PcmAttach , PcmExtrude , PcmBevel , PcmBind ,
  PcmCreate , PcmWeldTarget , PcmFlipNormal , PcmCopyTangent ,
  PcmPasteTangent
}
 
enum  patchButtonOp {
  PopUnbind , PopHide , PopUnhideAll , PopWeld ,
  PopDelete , PopSubdivide , PopAddTri , PopAddQuad ,
  PopDetach , PopSelectOpenEdges , PopBreak , PopCreateShapeFromEdges ,
  PopFlipNormal , PopUnifyNormal , PopSelectByID , PopSelectBySG ,
  PopClearAllSG , PopPatchSmooth , PopSelectionShrink , PopSelectionGrow ,
  PopEdgeRingSel , PopEdgeLoopSel , PopShadedFaceToggle
}
 
enum  patchUIParam
 
enum  LightingModel { kLightingOnly = 0 , kShadedLighting = 1 , kShadedOnly = 2 }
 

Functions

CoreExport void SetBezierDefaultTangentType (int in, int out)
 Sets the default tangent types for the Bezier controller. More...
 
CoreExport void GetBezierDefaultTangentType (int &in, int &out)
 Retrieves the default tangent types for the Bezier controller. More...
 
CoreExport void SetTCBDefaultParams (float t, float c, float b, float easeIn, float easeOut)
 Sets the parameters for the default TCB controller. More...
 
CoreExport void GetTCBDefaultParams (float &t, float &c, float &b, float &easeIn, float &easeOut)
 Retrieves the parameters for the default TCB controller. More...
 
CoreExport void RegisterObjectAppDataReader (ObjectDataReaderCallback *cb)
 
CoreExport ObjectObjectFromAppData (TriObject *obj, char *name, void *data, DWORD len)
 
CoreExport void GetIDStr (char *chunk, char *idstring)
 
CoreExport int FindAppDataChunk (void *appd, DWORD len, const char *idstring)
 
CoreExport voidGetAppDataChunk (void *appd, DWORD len, const char *idstring)
 
CoreExport int SetAppDataChunk (void **pappd, DWORD &len, void *chunk)
 
CoreExport int DeleteAppDataChunk (void **pappd, DWORD &len, char *idstring)
 

Macro Definition Documentation

◆ TEXTOBJ_ITALIC

#define TEXTOBJ_ITALIC   (1<<1)

◆ TEXTOBJ_UNDERLINE

#define TEXTOBJ_UNDERLINE   (1<<2)

◆ TEXTOBJ_LEFT

#define TEXTOBJ_LEFT   0

◆ TEXTOBJ_CENTER

#define TEXTOBJ_CENTER   1

◆ TEXTOBJ_RIGHT

#define TEXTOBJ_RIGHT   2

◆ TEXTOBJ_JUSTIFIED

#define TEXTOBJ_JUSTIFIED   3

◆ TFLAG_CURVESEL

#define TFLAG_CURVESEL   (1<<0)

◆ TFLAG_RANGE_UNLOCKED

#define TFLAG_RANGE_UNLOCKED   (1<<1)

◆ TFLAG_LOOPEDIN

#define TFLAG_LOOPEDIN   (1<<3)

◆ TFLAG_LOOPEDOUT

#define TFLAG_LOOPEDOUT   (1<<4)

◆ TFLAG_COLOR

#define TFLAG_COLOR   (1<<5)

◆ TFLAG_HSV

#define TFLAG_HSV   (1<<6)

◆ TRACK_XLOCKED

#define TRACK_XLOCKED   (1<<7)

◆ KT_FLAG_DELAY_KEYSCHANGED

#define KT_FLAG_DELAY_KEYSCHANGED   (1<<8)

◆ TFLAG_NOTKEYABLE

#define TFLAG_NOTKEYABLE   (1<<9)

◆ TFLAG_TCBQUAT_NOWINDUP

#define TFLAG_TCBQUAT_NOWINDUP   (1<<10)

◆ ROTWINDUP_INTERFACE

#define ROTWINDUP_INTERFACE   Interface_ID(0x13a3032c, 0x381345ca)

◆ XDATA_ENTRY

#define XDATA_ENTRY   0x8001

◆ XDATA_APPNAME

#define XDATA_APPNAME   0x8002

◆ BOOLOP_UNION

#define BOOLOP_UNION   0

◆ BOOLOP_INTERSECTION

#define BOOLOP_INTERSECTION   1

◆ BOOLOP_SUB_AB

#define BOOLOP_SUB_AB   2

◆ BOOLOP_SUB_BA

#define BOOLOP_SUB_BA   3

◆ BOOLOP_CUT

#define BOOLOP_CUT   4

◆ BOOLOP_CUT_REFINE

#define BOOLOP_CUT_REFINE   0

◆ BOOLOP_CUT_SEPARATE

#define BOOLOP_CUT_SEPARATE   1

◆ BOOLOP_CUT_REMOVE_IN

#define BOOLOP_CUT_REMOVE_IN   2

◆ BOOLOP_CUT_REMOVE_OUT

#define BOOLOP_CUT_REMOVE_OUT   3

◆ BOOLUPDATE_ALWAYS

#define BOOLUPDATE_ALWAYS   0

◆ BOOLUPDATE_SELECTED

#define BOOLUPDATE_SELECTED   1

◆ BOOLUPDATE_RENDER

#define BOOLUPDATE_RENDER   2

◆ BOOLUPDATE_MANUAL

#define BOOLUPDATE_MANUAL   3

◆ BOOL_ADDOP_REFERENCE

#define BOOL_ADDOP_REFERENCE   0

◆ BOOL_ADDOP_INSTANCE

#define BOOL_ADDOP_INSTANCE   1

◆ BOOL_ADDOP_COPY

#define BOOL_ADDOP_COPY   2

◆ BOOL_ADDOP_MOVE

#define BOOL_ADDOP_MOVE   3

◆ BOOL_MAT_NO_MODIFY

#define BOOL_MAT_NO_MODIFY   0

◆ BOOL_MAT_IDTOMAT

#define BOOL_MAT_IDTOMAT   1

◆ BOOL_MAT_MATTOID

#define BOOL_MAT_MATTOID   2

◆ BOOL_MAT_DISCARD_ORIG

#define BOOL_MAT_DISCARD_ORIG   3

◆ BOOL_MAT_DISCARD_NEW

#define BOOL_MAT_DISCARD_NEW   4

◆ BOOLREF_OBJECT1

#define BOOLREF_OBJECT1   0

◆ BOOLREF_OBJECT2

#define BOOLREF_OBJECT2   1

◆ BOOLREF_CONT1

#define BOOLREF_CONT1   2

◆ BOOLREF_CONT2

#define BOOLREF_CONT2   3

◆ BOOLREF_PBLOCK

#define BOOLREF_PBLOCK   4

◆ PATH_CONSTRAINT_INTERFACE

#define PATH_CONSTRAINT_INTERFACE   Interface_ID(0x79d15f78, 0x1f901f8e)

◆ GetIPathConstInterface

#define GetIPathConstInterface (   cd)     (IPathPosition*)(cd)->GetInterface(PATH_CONSTRAINT_INTERFACE)

◆ BANKSCALE

#define BANKSCALE   100.0f

◆ FromBankUI

#define FromBankUI (   a)    ((a)*BANKSCALE)

◆ ToBankUI

#define ToBankUI (   a)    ((a)/BANKSCALE)

◆ TRACKSCALE

#define TRACKSCALE   0.04f

◆ FromTrackUI

#define FromTrackUI (   a)    ((a)*TRACKSCALE)

◆ ToTrackUI

#define ToTrackUI (   a)    ((a)/TRACKSCALE)

◆ PATHPOS_PATH_REF

#define PATHPOS_PATH_REF   1

◆ PATHPOS_PBLOCK_REF

#define PATHPOS_PBLOCK_REF   2

◆ POS_CONSTRAINT_INTERFACE

#define POS_CONSTRAINT_INTERFACE   Interface_ID(0x32040779, 0x794a1278)

◆ GetIPosConstInterface

#define GetIPosConstInterface (   cd)     (IPosConstPosition*)(cd)->GetInterface(POS_CONSTRAINT_INTERFACE)

◆ POSPOS_PBLOCK_REF

#define POSPOS_PBLOCK_REF   0

◆ ORIENT_CONSTRAINT_INTERFACE

#define ORIENT_CONSTRAINT_INTERFACE   Interface_ID(0x71e2231b, 0x72522ab2)

◆ GetIOrientConstInterface

#define GetIOrientConstInterface (   cd)     (IOrientConstRotation*)(cd)->GetInterface(ORIENT_CONSTRAINT_INTERFACE)

◆ ORIENT_ROT_PBLOCK_REF

#define ORIENT_ROT_PBLOCK_REF   0

◆ LOOKAT_CONSTRAINT_INTERFACE

#define LOOKAT_CONSTRAINT_INTERFACE   Interface_ID(0x5dbe7ad8, 0x1d1b488b)

◆ GetILookAtConstInterface

#define GetILookAtConstInterface (   cd)     (ILookAtConstRotation*)(cd)->GetInterface(LOOKAT_CONSTRAINT_INTERFACE)

◆ LOOKAT_ROT_PBLOCK_REF

#define LOOKAT_ROT_PBLOCK_REF   0

◆ SURFCONT_U_REF

#define SURFCONT_U_REF   0

◆ SURFCONT_V_REF

#define SURFCONT_V_REF   1

◆ SURFCONT_SURFOBJ_REF

#define SURFCONT_SURFOBJ_REF   2

◆ LINK_CONSTRAINT_INTERFACE

#define LINK_CONSTRAINT_INTERFACE   Interface_ID(0x32f03b37, 0x6700693a)

◆ GetLinkConstInterface

#define GetLinkConstInterface (   cd)     (LinkConstTransform*)(cd)->GetInterface(LINK_CONSTRAINT_INTERFACE)

◆ ADD_WORLD_LINK

#define ADD_WORLD_LINK   PROPID_USER + 10

◆ LINK_TIME_CONTROL_CLASS_ID

#define LINK_TIME_CONTROL_CLASS_ID   Class_ID(0x5d084b4b, 0x1b1d318a)

◆ LINKCTRL_CONTROL_REF

#define LINKCTRL_CONTROL_REF   0

◆ LINKCTRL_FIRSTPARENT_REF

#define LINKCTRL_FIRSTPARENT_REF   1

◆ LINKCTRL_PBLOCK_REF

#define LINKCTRL_PBLOCK_REF   2

◆ LINKCTRL_LTCTL_REF

#define LINKCTRL_LTCTL_REF   3

◆ LINKCTRL_CORE_REFs

#define LINKCTRL_CORE_REFs   4

◆ LOOKAT_TARGET_REF

#define LOOKAT_TARGET_REF   0

◆ LOOKAT_POS_REF

#define LOOKAT_POS_REF   1

◆ LOOKAT_ROLL_REF

#define LOOKAT_ROLL_REF   2

◆ LOOKAT_SCL_REF

#define LOOKAT_SCL_REF   3

◆ BOOL_CONTROL_INTERFACE

#define BOOL_CONTROL_INTERFACE   Interface_ID(0x5d511b6, 0x52a302db)

◆ GetIBoolCntrlInterface

#define GetIBoolCntrlInterface (   cd)     (IBoolCntrl*)(cd)->GetInterface(BOOL_CONTROL_INTERFACE)

◆ BOOL_PBLOCK_REF

#define BOOL_PBLOCK_REF   0

◆ ILOOKATCONTROL_EXTENSION

#define ILOOKATCONTROL_EXTENSION   Interface_ID(0x40ce4981, 0x3ea31c3b)

◆ FLOATLIST_CONTROL_CLASS_ID

#define FLOATLIST_CONTROL_CLASS_ID   0x4b4b1000

◆ POINT3LIST_CONTROL_CLASS_ID

#define POINT3LIST_CONTROL_CLASS_ID   0x4b4b1001

◆ POSLIST_CONTROL_CLASS_ID

#define POSLIST_CONTROL_CLASS_ID   0x4b4b1002

◆ ROTLIST_CONTROL_CLASS_ID

#define ROTLIST_CONTROL_CLASS_ID   0x4b4b1003

◆ SCALELIST_CONTROL_CLASS_ID

#define SCALELIST_CONTROL_CLASS_ID   0x4b4b1004

◆ DUMMY_CONTROL_CLASS_ID

#define DUMMY_CONTROL_CLASS_ID   0xeeefffff

◆ MASTERLIST_CONTROL_CLASS_ID

#define MASTERLIST_CONTROL_CLASS_ID   0x4b4b1015
Deprecated:
This has been deprecated as of 3ds Max 2022, please use DRIVERBLOCKLIST_CONTROL_CLASS_ID instead [insensitive language]

◆ DRIVERBLOCKLIST_CONTROL_CLASS_ID

#define DRIVERBLOCKLIST_CONTROL_CLASS_ID   0x4b4b1015

◆ POINT4LIST_CONTROL_CLASS_ID

#define POINT4LIST_CONTROL_CLASS_ID   0x4b4b1005

◆ LIST_CONTROLLER_INTERFACE

#define LIST_CONTROLLER_INTERFACE   Interface_ID(0x444e7687, 0x722e6e36)

◆ GetIListControlInterface

#define GetIListControlInterface (   cd)     (IListControl*)(cd)->GetInterface(LIST_CONTROLLER_INTERFACE)

◆ SPLINEIK_CONTROL_INTERFACE

#define SPLINEIK_CONTROL_INTERFACE   Interface_ID(0x7c93607a, 0x47d54f80)

◆ GetISplineIKControlInterface

#define GetISplineIKControlInterface (   cd)     (ISplineIKControl*)(cd)->GetInterface(SPLINEIK_CONTROL_INTERFACE)

◆ SPLINEIKCONTROL_PBLOCK_REF

#define SPLINEIKCONTROL_PBLOCK_REF   0

◆ SPLINEIK_CONTROL_INTERFACE2

#define SPLINEIK_CONTROL_INTERFACE2   Interface_ID(0x72428cc, 0x2a4a1b5f)

◆ GetISplineIKControlInterface2

#define GetISplineIKControlInterface2 (   cd)     (ISplineIKControl2*)(cd)->GetInterface(SPLINEIK_CONTROL_INTERFACE2)

◆ IMESHSEL_OBJECT

#define IMESHSEL_OBJECT   0

◆ IMESHSEL_VERTEX

#define IMESHSEL_VERTEX   1

◆ IMESHSEL_FACE

#define IMESHSEL_FACE   2

◆ IMESHSEL_EDGE

#define IMESHSEL_EDGE   3

◆ APPLYVC_UTIL_CLASS_ID

#define APPLYVC_UTIL_CLASS_ID   Class_ID(0x6e989195, 0x5dfb41b7)

◆ IASSIGNVERTEXCOLORS_INTERFACE_ID

#define IASSIGNVERTEXCOLORS_INTERFACE_ID   Interface_ID(0x4f913fd8, 0x422a32af)

◆ IASSIGNVERTEXCOLORS_R7_INTERFACE_ID

#define IASSIGNVERTEXCOLORS_R7_INTERFACE_ID   Interface_ID(0x77870f30, 0x4ed82b62)

◆ PAINTLAYERMOD_CLASS_ID

#define PAINTLAYERMOD_CLASS_ID   Class_ID(0x7ebb4645, 0x7be2044b)

◆ IVERTEXPAINT_INTERFACE_ID

#define IVERTEXPAINT_INTERFACE_ID   Interface_ID(0x3e262ef9, 0x220e7190)

◆ IVERTEXPAINT_R7_INTERFACE_ID

#define IVERTEXPAINT_R7_INTERFACE_ID   Interface_ID(0x4ea42df5, 0x44a35866)

◆ TIMESLIDER_INTERFACE

#define TIMESLIDER_INTERFACE   Interface_ID(0x829e89e5, 0x878ef6e5)

◆ STATUSPANEL_INTERFACE

#define STATUSPANEL_INTERFACE   Interface_ID(0x94357f0, 0x623e71c2)

◆ BMPIO_INTERFACE

#define BMPIO_INTERFACE   Interface_ID(0x374f288f, 0x19e460d6)

◆ JPEGIO_INTERFACE

#define JPEGIO_INTERFACE   Interface_ID(0x466c7964, 0x2db94ff2)

◆ PNGIO_INTERFACE

#define PNGIO_INTERFACE   Interface_ID(0x1d7c41db, 0x328c1142)

◆ TGAIO_INTERFACE

#define TGAIO_INTERFACE   Interface_ID(0x21d673b7, 0x1d34198d)

◆ RLAIO_INTERFACE

#define RLAIO_INTERFACE   Interface_ID(0x282c2f79, 0x68f7373d)

◆ RPFIO_INTERFACE

#define RPFIO_INTERFACE   Interface_ID(0x25a87871, 0x2e265a49)

◆ RGBIO_INTERFACE

#define RGBIO_INTERFACE   Interface_ID(0x096c2424, 0x21b84dae)

◆ I_ATTACHCTRL

#define I_ATTACHCTRL   Interface_ID(0x199a6b11, 0x5ca27621)

Enumeration Type Documentation

◆ anonymous enum

anonymous enum
Enumerator
path_params 
path_joint_params 
@ path_params
Definition: istdplug.h:2444
@ path_joint_params
Definition: istdplug.h:2444

◆ anonymous enum

anonymous enum
Enumerator
path_percent 
path_path 
path_follow 
path_bank 
path_bank_amount 
path_smoothness 
path_allow_upsidedown 
path_constant_vel 
path_axis 
path_axis_flip 
path_path_weight 
path_path_list 
path_loop 
path_relative 
@ path_loop
Definition: istdplug.h:2451
@ path_follow
Definition: istdplug.h:2447
@ path_percent
Definition: istdplug.h:2447
@ path_path
Definition: istdplug.h:2447
@ path_bank
Definition: istdplug.h:2448
@ path_relative
Definition: istdplug.h:2451
@ path_bank_amount
Definition: istdplug.h:2448
@ path_allow_upsidedown
Definition: istdplug.h:2449
@ path_smoothness
Definition: istdplug.h:2448
@ path_path_list
Definition: istdplug.h:2450
@ path_axis
Definition: istdplug.h:2449
@ path_axis_flip
Definition: istdplug.h:2450
@ path_constant_vel
Definition: istdplug.h:2449
@ path_path_weight
Definition: istdplug.h:2450

◆ anonymous enum

anonymous enum
Enumerator
pointobj_params 
3540 { pointobj_params, };
@ pointobj_params
Definition: istdplug.h:3540

◆ anonymous enum

anonymous enum
Enumerator
pointobj_size 
pointobj_centermarker 
pointobj_axistripod 
pointobj_cross 
pointobj_box 
pointobj_screensize 
pointobj_drawontop 
3544  {
@ pointobj_cross
Definition: istdplug.h:3546
@ pointobj_box
Definition: istdplug.h:3546
@ pointobj_axistripod
Definition: istdplug.h:3545
@ pointobj_drawontop
Definition: istdplug.h:3546
@ pointobj_centermarker
Definition: istdplug.h:3545
@ pointobj_size
Definition: istdplug.h:3545
@ pointobj_screensize
Definition: istdplug.h:3546

◆ anonymous enum

anonymous enum
Enumerator
nspline_params 
3554 { nspline_params};
@ nspline_params
Definition: istdplug.h:3554

◆ anonymous enum

anonymous enum
Enumerator
nspline_length 
nspline_accuracy 
@ nspline_length
Definition: istdplug.h:3557
@ nspline_accuracy
Definition: istdplug.h:3557

◆ splineCommandMode

Enumerator
ScmCreateLine 
ScmAttach 
ScmInsert 
ScmConnect 
ScmRefine 
ScmFillet 
ScmChamfer 
ScmBind 
ScmRefineConnect 
ScmOutline 
ScmTrim 
ScmExtend 
ScmCrossInsert 
ScmBreak 
ScmUnion 
ScmSubtract 
ScmCrossSection 
ScmCopyTangent 
ScmPasteTangent 
@ ScmOutline
Definition: istdplug.h:3948
@ ScmInsert
Definition: istdplug.h:3947
@ ScmChamfer
Definition: istdplug.h:3947
@ ScmCrossInsert
Definition: istdplug.h:3948
@ ScmCreateLine
Definition: istdplug.h:3947
@ ScmTrim
Definition: istdplug.h:3948
@ ScmUnion
Definition: istdplug.h:3949
@ ScmConnect
Definition: istdplug.h:3947
@ ScmPasteTangent
Definition: istdplug.h:3949
@ ScmBind
Definition: istdplug.h:3948
@ ScmBreak
Definition: istdplug.h:3949
@ ScmSubtract
Definition: istdplug.h:3949
@ ScmExtend
Definition: istdplug.h:3948
@ ScmCopyTangent
Definition: istdplug.h:3949
@ ScmCrossSection
Definition: istdplug.h:3949
@ ScmRefine
Definition: istdplug.h:3947
@ ScmFillet
Definition: istdplug.h:3947
@ ScmRefineConnect
Definition: istdplug.h:3948
@ ScmAttach
Definition: istdplug.h:3947

◆ splineButtonOp

Enumerator
SopHide 
SopUnhideAll 
SopDelete 
SopDetach 
SopDivide 
SopCycle 
SopUnbind 
SopWeld 
SopMakeFirst 
SopAttachMultiple 
SopExplode 
SopReverse 
SopClose 
SopIntersect 
SopMirrorHoriz 
SopMirrorVert 
SopMirrorBoth 
SopSelectByID 
SopFuse 
@ SopMirrorVert
Definition: istdplug.h:3952
@ SopDelete
Definition: istdplug.h:3950
@ SopUnhideAll
Definition: istdplug.h:3950
@ SopMakeFirst
Definition: istdplug.h:3951
@ SopFuse
Definition: istdplug.h:3953
@ SopUnbind
Definition: istdplug.h:3951
@ SopHide
Definition: istdplug.h:3950
@ SopAttachMultiple
Definition: istdplug.h:3951
@ SopDetach
Definition: istdplug.h:3950
@ SopReverse
Definition: istdplug.h:3951
@ SopWeld
Definition: istdplug.h:3951
@ SopSelectByID
Definition: istdplug.h:3953
@ SopMirrorBoth
Definition: istdplug.h:3953
@ SopCycle
Definition: istdplug.h:3950
@ SopExplode
Definition: istdplug.h:3951
@ SopDivide
Definition: istdplug.h:3950
@ SopIntersect
Definition: istdplug.h:3952
@ SopMirrorHoriz
Definition: istdplug.h:3952
@ SopClose
Definition: istdplug.h:3952

◆ splineUIParam

3955 { };

◆ patchCommandMode

Enumerator
PcmAttach 
PcmExtrude 
PcmBevel 
PcmBind 
PcmCreate 
PcmWeldTarget 
PcmFlipNormal 
PcmCopyTangent 
PcmPasteTangent 
@ PcmBevel
Definition: istdplug.h:4178
@ PcmCreate
Definition: istdplug.h:4178
@ PcmExtrude
Definition: istdplug.h:4178
@ PcmPasteTangent
Definition: istdplug.h:4179
@ PcmAttach
Definition: istdplug.h:4178
@ PcmWeldTarget
Definition: istdplug.h:4178
@ PcmFlipNormal
Definition: istdplug.h:4179
@ PcmBind
Definition: istdplug.h:4178
@ PcmCopyTangent
Definition: istdplug.h:4179

◆ patchButtonOp

Enumerator
PopUnbind 
PopHide 
PopUnhideAll 
PopWeld 
PopDelete 
PopSubdivide 
PopAddTri 
PopAddQuad 
PopDetach 
PopSelectOpenEdges 
PopBreak 
PopCreateShapeFromEdges 
PopFlipNormal 
PopUnifyNormal 
PopSelectByID 
PopSelectBySG 
PopClearAllSG 
PopPatchSmooth 
PopSelectionShrink 
PopSelectionGrow 
PopEdgeRingSel 
PopEdgeLoopSel 
PopShadedFaceToggle 
@ PopAddQuad
Definition: istdplug.h:4181
@ PopSelectByID
Definition: istdplug.h:4182
@ PopPatchSmooth
Definition: istdplug.h:4183
@ PopSelectionGrow
Definition: istdplug.h:4183
@ PopHide
Definition: istdplug.h:4180
@ PopShadedFaceToggle
Definition: istdplug.h:4184
@ PopSelectionShrink
Definition: istdplug.h:4183
@ PopUnifyNormal
Definition: istdplug.h:4182
@ PopSelectOpenEdges
Definition: istdplug.h:4181
@ PopDetach
Definition: istdplug.h:4181
@ PopBreak
Definition: istdplug.h:4181
@ PopClearAllSG
Definition: istdplug.h:4183
@ PopDelete
Definition: istdplug.h:4180
@ PopEdgeRingSel
Definition: istdplug.h:4184
@ PopUnbind
Definition: istdplug.h:4180
@ PopEdgeLoopSel
Definition: istdplug.h:4184
@ PopWeld
Definition: istdplug.h:4180
@ PopCreateShapeFromEdges
Definition: istdplug.h:4182
@ PopUnhideAll
Definition: istdplug.h:4180
@ PopSelectBySG
Definition: istdplug.h:4183
@ PopSubdivide
Definition: istdplug.h:4180
@ PopAddTri
Definition: istdplug.h:4181
@ PopFlipNormal
Definition: istdplug.h:4182

◆ patchUIParam

4186 { };

Function Documentation

◆ SetBezierDefaultTangentType()

CoreExport void SetBezierDefaultTangentType ( int  in,
int  out 
)

Sets the default tangent types for the Bezier controller.

◆ GetBezierDefaultTangentType()

CoreExport void GetBezierDefaultTangentType ( int in,
int out 
)

Retrieves the default tangent types for the Bezier controller.

◆ SetTCBDefaultParams()

CoreExport void SetTCBDefaultParams ( float  t,
float  c,
float  b,
float  easeIn,
float  easeOut 
)

Sets the parameters for the default TCB controller.

◆ GetTCBDefaultParams()

CoreExport void GetTCBDefaultParams ( float &  t,
float &  c,
float &  b,
float &  easeIn,
float &  easeOut 
)

Retrieves the parameters for the default TCB controller.

◆ RegisterObjectAppDataReader()

CoreExport void RegisterObjectAppDataReader ( ObjectDataReaderCallback cb)
Remarks
Implemented by the System.

This method allows a plug-in to register a callback that will be called when reading a 3DS file that has a particular appdata chunk. The plug-in callback is given an opportunity to read the chunk and create an object other than a TriObject based on the contents of the chunk and the original object.
Parameters:
ObjectDataReaderCallback *cb

The callback to read the chunk and create an object.

◆ ObjectFromAppData()

CoreExport Object* ObjectFromAppData ( TriObject obj,
char *  name,
void data,
DWORD  len 
)
Remarks
This function is used internally by the 3DS Import plug-in.

Note the following about 3DS App Data. If app data is encountered and no plug-in has registered to convert it, then it is just hung off the object (or INode in the case of KXP app data). For object app data, TriObject's super class and class ID are used to identify the chunk and the sub ID is set to 0. For node app data, INode's super class and class ID are used to identify the chunk and the sub ID is set to 0.

This single 3ds Max app data chunk will contain the entire 3DS app data chunk, which may have sub chunks (see the IPAS SDK). The following routines will aid in parsing 3DS app data.

◆ GetIDStr()

CoreExport void GetIDStr ( char *  chunk,
char *  idstring 
)
Remarks
This function gets the ID string out of an XDATA_ENTRY chunk and null terminates it.
Parameters:
char *chunk

A pointer to the chunk.

char *idstring

The ID string.

◆ FindAppDataChunk()

CoreExport int FindAppDataChunk ( void appd,
DWORD  len,
const char *  idstring 
)
Remarks
Returns the offset into appd of the specified chunk or -1 if it is not found.
Parameters:
void *appd

The is the entire app data chunk containing all the sub-chunks.

DWORD len

This is the length of the entire app data chunk.

char *idstring

The ID of the chunk to find.
Returns
The offset into appd of the specified chunk or -1 if it is not found.

◆ GetAppDataChunk()

CoreExport void* GetAppDataChunk ( void appd,
DWORD  len,
const char *  idstring 
)
Remarks
This function is similar to FindAppDataChunk() above, but returns a pointer to the chunk or NULL if it is not found.
Parameters:
void *appd

The is the entire app data chunk containing all the sub-chunks.

DWORD len

This is the length of the entire app data chunk.

char *idstring

The ID of the chunk to find.
Returns
A pointer to the chunk or NULL if it is not found.

◆ SetAppDataChunk()

CoreExport int SetAppDataChunk ( void **  pappd,
DWORD &  len,
void chunk 
)
Remarks
This function adds the chunk to the appdata chunk, preserving existing chunks. chunk should point to the new chunk header followed by its data.
Parameters:
void **pappd

The is the entire app data chunk containing all the sub-chunks.

DWORD &len

This is the length of the entire app data chunk.

void *chunk

A pointer to the new chunk header.
Returns
Nonzero if the chunk was added; otherwise zero.

◆ DeleteAppDataChunk()

CoreExport int DeleteAppDataChunk ( void **  pappd,
DWORD &  len,
char *  idstring 
)
Remarks
Deletes a chunk from the appdata while preserving other chunks.
Parameters:
void **pappd

The is the entire app data chunk containing all the sub-chunks.

DWORD &len

This is the length of the entire app data chunk.

char *idstring

The ID of the chunk to delete.
Returns
Nonzero if the chunk was deleted; otherwise zero.