istdplug.h File Reference
 
 
 
istdplug.h File Reference

This reference page is linked to from the following overview topics: SDK Change Details, Function Publishing Example.


#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   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
  This class is only available in release 5 or later. More...
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...

Namespaces

namespace   LightingModel

Defines

#define  ARC_RADIUS   0
#define  ARC_FROM   1
#define  ARC_TO   2
#define  ARC_PIE   3
#define  ARC_REVERSE   4
#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
#define  CIRCLE_RADIUS   0
#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
#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
#define  DONUT_RADIUS1   0
#define  DONUT_RADIUS2   1
#define  ELLIPSE_LENGTH   0
#define  ELLIPSE_WIDTH   1
#define  ELLIPSE_THICKNESS   2
#define  ELLIPSE_INNERSHAPE   3
#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
#define  HELIX_RADIUS1   0
#define  HELIX_RADIUS2   1
#define  HELIX_HEIGHT   2
#define  HELIX_TURNS   3
#define  HELIX_BIAS   4
#define  HELIX_DIRECTION   5
#define  NGON_RADIUS   0
#define  NGON_SIDES   1
#define  NGON_CIRCULAR   2
#define  PATCHGRID_LENGTH   0
#define  PATCHGRID_WIDTH   1
#define  PATCHGRID_WSEGS   2
#define  PATCHGRID_LSEGS   3
#define  PATCHGRID_TEXTURE   4
#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
#define  RECTANGLE_LENGTH   0
#define  RECTANGLE_WIDTH   1
#define  RECTANGLE_FILLET   2
#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  START_RADIUS1   0
#define  START_RADIUS2   1
#define  START_POINTS   2
#define  START_DISTORT   3
#define  START_FILLET1   4
#define  START_FILLET2   5
#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
#define  TEXT_SIZE   0
#define  TEXT_KERNING   1
#define  TEXT_LEADING   2
#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
#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
#define  GRIDHELP_LENGTH   0
#define  GRIDHELP_WIDTH   1
#define  GRIDHELP_GRID   2
#define  BEND_ANGLE   0
#define  BEND_DIR   1
#define  BEND_AXIS   2
#define  BEND_DOREGION   3
#define  BEND_FROM   4
#define  BEND_TO   5
#define  BOMB_STRENGTH   0
#define  BOMB_GRAVITY   1
#define  BOMB_CHAOS   2
#define  BOMB_DETONATION   3
#define  DEFLECTOR_BOUNCE   0
#define  DEFLECTOR_WIDTH   1
#define  DEFLECTOR_HEIGHT   2
#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
#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
#define  GRAVITY_STRENGTH   0
#define  GRAVITY_DECAY   1
#define  GRAVITY_TYPE   2
#define  GRAVITY_DISPLENGTH   3
#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
#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
#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
#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
#define  VOLSEL_LEVEL   0
#define  VOLSEL_METHOD   1
#define  VOLSEL_TYPE   2
#define  VOLSEL_VOLUME   3
#define  VOLSEL_INVERT   4
#define  RWAVE_AMPLITUDE   0
#define  RWAVE_AMPLITUDE2   1
#define  RWAVE_WAVELEN   2
#define  RWAVE_PHASE   3
#define  RWAVE_DECAY   4
#define  RWAVE_CIRCLES   5
  Valid for space warp objects only.
#define  RWAVE_SEGMENTS   6
  Valid for space warp objects only.
#define  RWAVE_DIVISIONS   7
  Valid for space warp objects only.
#define  RWAVE_FLEX   0
#define  SKEW_AMOUNT   0
#define  SKEW_DIR   1
#define  SKEW_AXIS   2
#define  SKEW_DOREGION   3
#define  SKEW_FROM   4
#define  SKEW_TO   5
#define  MATMOD_MATID   0
#define  SMOOTHMOD_AUTOSMOOTH   0
#define  SMOOTHMOD_THRESHOLD   1
#define  SMOOTHMOD_SMOOTHBITS   2
#define  NORMMOD_UNIFY   0
#define  NORMMOD_FLIP   1
#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
#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
#define  TWIST_ANGLE   0
#define  TWIST_BIAS   1
#define  TWIST_AXIS   2
#define  TWIST_DOREGION   3
#define  TWIST_FROM   4
#define  TWIST_TO   5
#define  MATMOD_MATID   0
#define  SMOOTH_AUTOSMOOTH   0
#define  SMOOTH_THRESHOLD   1
#define  SMOOTH_SMOOTHBITS   2
#define  NORMALMOD_UNIFY   0
#define  NORMALMOD_FLIP   1
#define  TESSMOD_TYPE   0
#define  TESSMOD_TENSION   1
#define  TESSMOD_ITERATIONS   2
#define  TESSMOD_FACE_TYPE   3
#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
#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  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))
#define  TCBKEY_QUATVALID   (1<<4)
  Angle/axis is derived from the quat instead of vice/versa.
#define  BEZKEY_XBROKEN   (1<<4)
  Broken means not locked.
#define  BEZKEY_YBROKEN   (1<<5)
#define  BEZKEY_ZBROKEN   (1<<6)
#define  BEZKEY_WBROKEN   (1<<21)
#define  BEZKEY_NUMTYPEBITS   3
#define  BEZKEY_INTYPESHIFT   7
#define  BEZKEY_OUTTYPESHIFT   (BEZKEY_INTYPESHIFT+BEZKEY_NUMTYPEBITS)
#define  BEZKEY_TYPEMASK   7
#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
#define  BEZKEY_CONSTVELOCITY   (1<<15)
  Interpolated using arclength as the interpolation parameter.
#define  BEZKEY_UNCONSTRAINHANDLE   (1<<20)
  Determines whether a user handle is limited.
#define  TangentsLocked(f, j)   (!(f&(j <= 2 ? (BEZKEY_XBROKEN<<j) : BEZKEY_WBROKEN)))
#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);}
#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<<10)
#define  HITKEY_OUTTAN   (1<<11)
#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  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)

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 }
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)
CoreExport void  GetBezierDefaultTangentType (int &in, int &out)
CoreExport void  SetTCBDefaultParams (float t, float c, float b, float easeIn, float easeOut)
CoreExport void  GetTCBDefaultParams (float &t, float &c, float &b, float &easeIn, float &easeOut)
CoreExport void  RegisterObjectAppDataReader (ObjectDataReaderCallback *cb)
CoreExport Object ObjectFromAppData (TriObject *obj, char *name, void *data, DWORD len)
CoreExport void  GetIDStr (char *chunk, char *idstring)
CoreExport int  FindAppDataChunk (void *appd, DWORD len, char *idstring)
CoreExport void *  GetAppDataChunk (void *appd, DWORD len, char *idstring)
CoreExport int  SetAppDataChunk (void **pappd, DWORD &len, void *chunk)
CoreExport int  DeleteAppDataChunk (void **pappd, DWORD &len, char *idstring)

Define Documentation

#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 HITKEY_INTAN   (1<<10)
#define HITKEY_OUTTAN   (1<<11)
#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 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)

Enumeration Type Documentation

anonymous enum
anonymous enum
anonymous enum

Function Documentation

CoreExport void SetBezierDefaultTangentType ( int  in,
int  out 
)
CoreExport void GetBezierDefaultTangentType ( int &  in,
int &  out 
)
CoreExport void SetTCBDefaultParams ( float  t,
float  c,
float  b,
float  easeIn,
float  easeOut 
)
CoreExport void GetTCBDefaultParams ( float &  t,
float &  c,
float &  b,
float &  easeIn,
float &  easeOut 
)
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.
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.
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.
CoreExport int FindAppDataChunk ( void *  appd,
DWORD  len,
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.
CoreExport void* GetAppDataChunk ( void *  appd,
DWORD  len,
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.
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.
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.