00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015 #pragma once
00016
00017 #include "BipExp.h"
00018 #include "..\maxheap.h"
00019 #include "..\strbasic.h"
00020 #include "..\tab.h"
00021 #include "..\matrix3.h"
00022 #include "..\interval.h"
00023 #include "..\control.h"
00024 #include "..\istdplug.h"
00025
00026
00027 class IBipMaster;
00028 class IMoFlow;
00029 class IMixer;
00030 class MocapManager;
00031 class MixerManager;
00032 class MultFprintParams;
00033 class Point3;
00034 class INode;
00035
00036
00037
00038 #define I_BIPMASTER 0x9165
00039 #define I_BIPFOOTSTEP 0x9166
00040 #define GetBipMasterInterface(anim) ((IBipMaster*)(anim)->GetInterface(I_BIPMASTER))
00041 #define GetBipFSInterface(anim) ((IBipFootStep*)(anim)->GetInterface(I_BIPFOOTSTEP))
00042
00043
00044 #define BMODE_FIGURE (1<<0)
00045 #define BMODE_FOOTSTEP (1<<1)
00046 #define BMODE_MOTIONFLOW (1<<2)
00047 #define BMODE_BUFFER (1<<3)
00048 #define BMODE_BENDLINKS (1<<4)
00049 #define BMODE_RUBBERBAND (1<<5)
00050 #define BMODE_SCALESTRIDE (1<<6)
00051 #define BMODE_INPLACE (1<<7)
00052 #define BMODE_INPLACE_X (1<<8)
00053 #define BMODE_INPLACE_Y (1<<9)
00054 #define BMODE_MIXER (1<<10)
00055 #define BMODE_MOVEALL (1<<11)
00056
00057
00058 #define BDISP_BONES (1<<0)
00059 #define BDISP_OBJECTS (1<<1)
00060 #define BDISP_FOOTSTEPS (1<<2)
00061 #define BDISP_FOOTSTEPNUM (1<<3)
00062 #define BDISP_TRAJ (1<<4)
00063
00064
00065 #define WALKGAIT 1
00066 #define RUNGAIT 2
00067 #define JUMPGAIT 3
00068
00069
00070 #define COPY_POSTURE 0
00071 #define COPY_POSE 1
00072 #define COPY_TRACK 2
00073
00074
00075 #define BTYPE_SKELETON 0
00076 #define BTYPE_MALE 1
00077 #define BTYPE_FEMALE 2
00078 #define BTYPE_CLASSIC 3
00079
00080 #define NUMPIVOTS 27 // Max number of pivot points that can exiss for an object
00081
00082
00083
00084
00085 BIPExport IBipMaster* CreateNewBiped(float height, float angle, const Point3& wpos,
00086 BOOL arms=TRUE, BOOL triPelvis=TRUE, int nnecklinks=1, int nspinelinks=4,
00087 int nleglinks=3, int ntaillinks=0, int npony1links=0, int npony2links=0,
00088 int numfingers=5, int nfinglinks=3, int numtoes=5, int ntoelinks=3, float ankleAttach=0.2,
00089 BOOL prop1exists = FALSE,BOOL prop2exists = FALSE, BOOL prop3exists = FALSE,
00090 int forearmTwistLinks = 0, int upperarmTwistLinks = 0, int thighTwistLinks = 0,
00091 int calfTwistLinks = 0, int horseTwistLinks = 0);
00092
00093
00094 BIPExport int BipGetTicksPerFrame();
00095
00096
00097 #define MB_FSJUMP 0
00098 #define MB_FFMODE 1
00099 #define MB_RCNTFIG 2
00100
00101 bool GetMsgBoxStatus(int which);
00102 void SetMsgBoxStatus(int which, bool hide);
00103
00104
00105 extern BIPExport MocapManager TheMocapManager;
00106
00107
00108 extern BIPExport MixerManager TheMixerManager;
00109
00111 struct SaveSubAnimInfo: public MaxHeapOperators
00112 {
00114 INode *node;
00116 int type;
00117 };
00118
00120 struct LoadSubAnimInfo: public MaxHeapOperators
00121 {
00123 MCHAR name[256];
00125 int type;
00126 };
00127
00128
00129
00130 class IBipMaster: public MaxHeapOperators {
00131 public:
00132 virtual ~IBipMaster() {;}
00133
00134 virtual void SetTrackSelection(int track)=0;
00135 virtual int GetTrackSelection()=0;
00136
00137
00138
00139 virtual void SaveBipFileDlg() = 0;
00140 virtual void LoadBipFileDlg() = 0;
00141 virtual int SaveFigfile (const MCHAR *fname)=0;
00142 virtual int SaveStpfile (const MCHAR *fname)=0;
00143
00144 virtual int SaveBipfile(const MCHAR *fname, BOOL SaveListCntrls,BOOL SaveMaxObjects,Tab<SaveSubAnimInfo> *selectedControlers =NULL,
00145 Tab<INode *> *selectedNodes = NULL) = 0;
00146 virtual int SaveBipfileSegment(const MCHAR *filenamebuf,int StartSeg,int EndSeg,int SegKeyPerFrame,
00147 BOOL SaveListCntrls, BOOL SaveMaxObjects,Tab<SaveSubAnimInfo> *selectedControlers =NULL,
00148 Tab<INode *> *selectedNodes = NULL) = 0;
00149 virtual int LoadFigfile (const MCHAR *fname, BOOL redraw = false, BOOL msgs = false)=0;
00150 virtual int LoadBipStpfile(const MCHAR *fname, BOOL redraw, BOOL msgs, BOOL MatchFile = false, BOOL ZeroHgt = false, BOOL loadMaxObjects = false,
00151 BOOL promptForDuplicates = false, BOOL retargetHeight = false, BOOL retargetLimbSizes = false,
00152 BOOL scaleIKObjectSize = false, BOOL loadSubAnimControllers = false,Tab<MCHAR *> *selectedNodes = NULL,
00153 Tab<LoadSubAnimInfo> *selectedControllers = NULL) =0;
00154 virtual int LoadMocapfile (const MCHAR *fname, BOOL redraw = false, BOOL msgs = false, BOOL prompt = false)=0;
00155
00156
00157 virtual BOOL IsCreating()=0;
00158 virtual void BeginModes(DWORD modes, int redraw=TRUE)=0;
00159 virtual void EndModes(DWORD modes, int redraw=TRUE)=0;
00160 virtual DWORD GetActiveModes()=0;
00161 virtual BOOL CanSwitchMode(DWORD mode)=0;
00162 virtual void ConvertToFreeForm(bool keyPerFrame=false)=0;
00163 virtual void ConvertToFootSteps(bool keyPerFrame=false, bool flattenToZ=true)=0;
00164
00165
00166 virtual DWORD GetDisplaySettings()=0;
00167 virtual void SetDisplaySettings(DWORD disp)=0;
00168 virtual BOOL DoDisplayPrefDlg(HWND hParent)=0;
00169
00170
00171 virtual int GetBodyType() =0;
00172 virtual void SetBodyType(int bodytype) =0;
00173
00174
00175 virtual int GetDynamicsType()=0;
00176 virtual void SetDynamicsType(int dyn)=0;
00177 virtual float GetGravAccel()=0;
00178 virtual void SetGravAccel(float grav)=0;
00179 virtual const MCHAR* GetRootName()=0;
00180 virtual void SetRootName(const MCHAR *rootname, bool incAll=true)=0;
00181 virtual BOOL GetAdaptLocks(int id)=0;
00182 virtual void SetAdaptLocks(int id, BOOL onOff)=0;
00183 virtual BOOL GetSeparateTracks(int id)=0;
00184 virtual void SeparateTracks(int id, BOOL separate)=0;
00185 virtual void SetBodySpaceNeckRotation(BOOL val)=0;
00186 virtual BOOL GetBodySpaceNeckRotation()=0;
00187
00188
00189 virtual BOOL GetHasArms()=0;
00190 virtual void SetHasArms(BOOL arms)=0;
00191 virtual int GetNumLinks(int keytrack)=0;
00192 virtual void SetNumLinks(int keytrack, int n)=0;
00193 virtual int GetNumFingers()=0;
00194 virtual void SetNumFingers(int n)=0;
00195 virtual int GetNumToes()=0;
00196 virtual void SetNumToes(int n)=0;
00197 virtual float GetAnkleAttach()=0;
00198 virtual void SetAnkleAttach(float aa)=0;
00199 virtual float GetHeight()=0;
00200 virtual void SetHeight(float h, BOOL KeepFeetOnGround = TRUE)=0;
00201 virtual BOOL GetTrianglePelvis()=0;
00202 virtual void SetTrianglePelvis(BOOL tri)=0;
00203 virtual BOOL GetProp1Exists()=0;
00204 virtual void SetProp1Exists(BOOL prop)=0;
00205 virtual BOOL GetProp2Exists()=0;
00206 virtual void SetProp2Exists(BOOL prop)=0;
00207 virtual BOOL GetProp3Exists()=0;
00208 virtual void SetProp3Exists(BOOL prop)=0;
00209
00210
00211 virtual BOOL ConvertFromBuffer()=0;
00212 virtual BOOL PasteFromBuffer()=0;
00213 virtual BOOL GetDispBuffer()=0;
00214 virtual void SetDispBuffer(BOOL onOff)=0;
00215 virtual BOOL GetDispBufferTraj()=0;
00216 virtual void SetDispBufferTraj(BOOL onOff)=0;
00217 virtual BOOL GetTalentFigMode()=0;
00218 virtual void SetTalentFigMode(BOOL onOff)=0;
00219 virtual void AdjustTalentPose()=0;
00220 virtual void SaveTalentFigFile(const MCHAR *fname)=0;
00221 virtual void SaveTalentPoseFile(const MCHAR *fname)=0;
00222
00223
00224 virtual BOOL GetFSAppendState()=0;
00225 virtual void SetFSAppendState(BOOL onOff)=0;
00226 virtual BOOL GetFSInsertState()=0;
00227 virtual void SetFSInsertState(BOOL onOff)=0;
00228 virtual int GetGaitMode()=0;
00229 virtual void SetGaitMode(int mode)=0;
00230 virtual int GetGroundDur()=0;
00231 virtual void SetGroundDur(int val)=0;
00232 virtual int GetAirDur()=0;
00233 virtual void SetAirDur(int val)=0;
00234 virtual void DoMultipleFSDlg()=0;
00235 virtual int AddFootprint(Point3 pos, float dir, Matrix3 mtx, int appendFS)=0;
00236 virtual void AddFootprints(MultFprintParams *Params)=0;
00237 virtual void NewFprintKeys()=0;
00238 virtual void BendFootprints(float angle)=0;
00239 virtual void ScaleFootprints(float scale)=0;
00240
00241
00242 virtual IMoFlow* GetMoFlow()=0;
00243 virtual void UnifyMotion()=0;
00244 virtual const MCHAR* GetClipAtTime(TimeValue t)=0;
00245
00246
00247 virtual IMixer* GetMixer()=0;
00248
00249
00250
00251 virtual void SetAttachNode(INode *node)=0;
00252 virtual INode* GetAttachNode()=0;
00253
00254 virtual void SetHeadTarget(INode *node)=0;
00255 virtual INode * GetHeadTarget() =0;
00256
00257
00258 virtual bool IsNodeDeleted()=0;
00259 virtual Interval GetCurrentRange()=0;
00260 virtual int GetMaxNodes()=0;
00261 virtual int GetMaxLinks()=0;
00262 virtual INode* GetNode(int id, int link=0)=0;
00263 virtual BOOL GetIdLink(INode *node, int &id, int &link)=0;
00264 virtual Control * GetHorizontalControl()=0;
00265 virtual Control * GetVerticalControl()=0;
00266 virtual Control * GetTurnControl()=0;
00267
00268
00269 virtual void SetBipedKey(TimeValue t,INode *node = NULL, BOOL setHor = TRUE, BOOL setVer = TRUE,BOOL setTurn = TRUE)=0;
00270 virtual void SetPlantedKey(TimeValue t,INode *node = NULL)=0;
00271 virtual void SetSlidingKey(TimeValue t,INode *node = NULL)=0;
00272 virtual void SetFreeKey(TimeValue t,INode *node = NULL)=0;
00273 virtual ScaleValue GetBipedScale(TimeValue t, INode *node)=0;
00274 virtual Point3 GetBipedPos(TimeValue t, INode *node)=0;
00275 virtual Quat GetBipedRot(TimeValue t, INode *node,BOOL local = FALSE)=0;
00276
00277 virtual void SetBipedScale(BOOL relative,const ScaleValue &scale, TimeValue t, INode *node)=0;
00278 virtual void SetBipedPos(const Point3 &p, TimeValue t, INode *node,BOOL setKey =TRUE)=0;
00279 virtual void SetBipedRot(const Quat &q, TimeValue t, INode *node,BOOL setKey = TRUE)=0;
00280 virtual void SetMultipleKeys()=0;
00281 virtual void DoSetMultipleKeysDlg()=0;
00282
00283
00284 virtual void ResetAllLimbKeys() = 0;
00285
00286
00287 virtual void CollapseMoveAllMode(BOOL msg) =0;
00288
00289
00290 virtual INode* GetRotParentNode(int id,int link)=0;
00291 virtual INode* GetPosParentNode(int id,int link)=0;
00292 virtual Quat GetParentNodeRot(TimeValue t,int id,int link)=0;
00293 virtual Point3 GetParentNodePos(TimeValue t,int id,int link)=0;
00294 virtual void GetClavicleVals(TimeValue t, int id, float &val1,float &val2)=0;
00295 virtual void GetHingeVal(TimeValue t,int id, float &val)=0;
00296 virtual void GetHorseAnkleVal(TimeValue, int id, float &val)=0;
00297 virtual void GetPelvisVal(TimeValue t, float &val) =0;
00298 virtual void GetFingerVal(TimeValue t,int id,int link, float &val) = 0;
00299 virtual BOOL GetIKActive(TimeValue t,int id) = 0;
00300
00301
00302 virtual int NumLayers()=0;
00303 virtual void CreateLayer(int index, const MCHAR* name)=0;
00304 virtual void DeleteLayer(int index)=0;
00305 virtual bool CollapseAtLayer(int index)=0;
00306 virtual bool GetLayerActive(int index)=0;
00307 virtual void SetLayerActive(int index, bool onOff)=0;
00308 virtual const MCHAR* GetLayerName(int index)=0;
00309 virtual void SetLayerName(int index, const MCHAR* name)=0;
00310 virtual int GetCurrentLayer()=0;
00311 virtual void SetCurrentLayer(int index)=0;
00312 virtual void UpdateLayers()=0;
00313 virtual void SetSnapKey(TimeValue t,INode *node = NULL)=0;
00314
00315 virtual int GetVisibleBefore()=0;
00316 virtual void SetVisibleBefore(int val)=0;
00317 virtual int GetVisibleAfter()=0;
00318 virtual void SetVisibleAfter(int val)=0;
00319 virtual bool GetKeyHighlight()=0;
00320 virtual void SetKeyHighlight(bool onOff)=0;
00321
00322
00323 virtual void ClearPreferredClips()=0;
00324 virtual bool AddPreferredClip(const MCHAR *clipname, int prob = 100)=0;
00325 virtual bool DeletePreferredClip(const MCHAR *clipname)=0;
00326 virtual int IsPreferredClip(const MCHAR *clipname)=0;
00327 virtual const MCHAR* GetCurrentClip()=0;
00328 virtual int NumPreferredClips()=0;
00329 virtual const MCHAR* GetPreferredClip(int i)=0;
00330 virtual int GetPreferredClipProbability(int i)=0;
00331
00332
00333 virtual bool GetEnableSubAnims()=0;
00334 virtual void SetEnableSubAnims(bool onOff)=0;
00335 virtual bool GetManipSubAnims()=0;
00336 virtual void SetManipSubAnims(bool onOff)=0;
00337
00338
00339 virtual bool GetShowAllTracksInTV()=0;
00340 virtual void SetShowAllTracksInTV(bool onOff)=0;
00341
00342
00343 virtual bool GetShowBipedInTrackBar()=0;
00344 virtual void SetShowBipedInTrackBar(bool onOff)=0;
00345 virtual void Mirror() =0;
00346 virtual void ClearAllAnimation() =0;
00347 virtual void ClearSelectedAnimation() =0;
00348
00349
00350
00351
00352
00353 virtual void CreatePosSubAnims(Control *controlToClone, BOOL checkIfOneExists)=0;
00354 virtual void CreateRotSubAnims(Control *controlToClone, BOOL checkIfOneExists)=0;
00355 virtual void CreateScaleSubAnims(Control *controlToClone, BOOL checkIfOneExists)=0;
00356
00357
00358
00359
00360
00361
00362
00363 virtual void SetPosSubAnim(const Point3 &p, TimeValue t, INode *node,BOOL absolute)=0;
00364 virtual void SetRotSubAnim(const Quat &q, TimeValue t, INode *node,BOOL absolute) = 0;
00365 virtual void SetScaleSubAnim(const ScaleValue &s, TimeValue t, INode *node) = 0;
00366
00367
00368 virtual void CollapseAllPosSubAnims(BOOL perFrame,BOOL keep) = 0;
00369 virtual void CollapseAllRotSubAnims(BOOL perFrame,BOOL keep) = 0;
00370 virtual void CollapseRotSubAnims(BOOL perFrame,BOOL keep,INode *node) = 0;
00371 virtual void CollapsePosSubAnims(BOOL perFrame,BOOL keep,INode *node) = 0;
00372
00373
00374 virtual char * CopyPosture(int copyType,BOOL copyHor,BOOL copyVer,BOOL copyTurn) = 0;
00375 virtual BOOL PastePosture(int copyType,int opposite,char *name) = 0;
00376 virtual void DeleteAllCopies(int copyType, BOOL holdIt = true) = 0;
00377 virtual int NumCopies(int copyType) = 0;
00378 virtual void DeleteCopy(int copyType,char *name) = 0;
00379 virtual const MCHAR *GetCopyName(int copyType,int index) = 0;
00380 virtual void SetCopyName(int copyType,int index, char * newName) = 0;
00381 virtual BOOL SaveCopyPasteFile(char *fname) = 0;
00382 virtual BOOL LoadCopyPasteFile(char *fname) = 0;
00383 };
00384
00385
00386 class IBipFootStep: public MaxHeapOperators
00387 {
00388 public:
00389 virtual ~IBipFootStep() {;}
00390 virtual void SetFreeFormMode(BOOL mode)=0;
00391 virtual BOOL GetFreeFormMode()=0;
00392 virtual void SetDispNumType(int type)=0;
00393 virtual int GetDispNumType()=0;
00394 virtual void SetDispAirDur(BOOL onOff)=0;
00395 virtual BOOL GetDispAirDur()=0;
00396 virtual void SetDispNoSupport(BOOL onOff)=0;
00397 virtual BOOL GetDispNoSupport()=0;
00398 virtual void UpdateEditTrackUI()=0;
00399 virtual void UpdateFootSteps(TimeValue t){ UNUSED_PARAM(t); }
00400 };
00401
00402
00403 #define KRS_ALL 0
00404 #define KRS_HORZ 1
00405 #define KRS_VERT 2
00406 #define KRS_ROT 3
00407 #define KRS_PLV 4
00408 #define KRS_SPN 5
00409 #define KRS_NCK 6
00410 #define KRS_LARM 7
00411 #define KRS_RARM 8
00412 #define KRS_LLEG 9
00413 #define KRS_RLEG 10
00414 #define KRS_TAIL 11
00415
00416
00417
00418 #define LIMB_KNEE 0
00419 #define LIMB_ELBOW 1
00420 #define LIMB_FOOT 2
00421 #define LIMB_HAND 3
00422
00423 #define ANGLE_ALIGN 0
00424 #define POINT_ALIGN 1
00425 #define AUTO_ALIGN 2
00426
00427
00428 class MocapManager: public MaxHeapOperators {
00429 public:
00430
00431 BIPExport const MCHAR* GetTalentFigStrucFile();
00432 BIPExport void SetTalentFigStrucFile(const MCHAR *fname);
00433 BIPExport BOOL GetUseTalentFigStrucFile() const;
00434 BIPExport void SetUseTalentFigStrucFile(BOOL onOff);
00435
00436 BIPExport const MCHAR* GetTalentPoseAdjFile() const;
00437 BIPExport void SetTalentPoseAdjFile(const MCHAR *fname);
00438 BIPExport BOOL GetUseTalentPoseAdjFile() const;
00439 BIPExport void SetUseTalentPoseAdjFile(BOOL onOff);
00440
00441 BIPExport int GetFSExtractionMode() const;
00442 BIPExport void SetFSExtractionMode(int mode);
00443
00444 BIPExport int GetFSConversionMode() const;
00445 BIPExport void SetFSConversionMode(int mode);
00446
00447
00448 BIPExport int GetUpVector() const;
00449 BIPExport void SetUpVector(int axis);
00450
00451 BIPExport float GetScaleFactor() const;
00452 BIPExport void SetScaleFactor(float val);
00453
00454
00455 BIPExport float GetFSExtractionTol() const;
00456 BIPExport void SetFSExtractionTol(float val);
00457
00458 BIPExport float GetFSSlidingDist() const;
00459 BIPExport void SetFSSlidingDist(float val);
00460 BIPExport float GetFSSlidingAngle() const;
00461 BIPExport void SetFSSlidingAngle(float val);
00462
00463 BIPExport float GetFSVerticalTol() const;
00464 BIPExport void SetFSVerticalTol(float val);
00465
00466 BIPExport float GetFSZLevel() const;
00467 BIPExport void SetFSZLevel(float val);
00468
00469 BIPExport BOOL GetFSUseVerticalTol() const;
00470 BIPExport void SetFSUseVerticalTol(BOOL val);
00471
00472 BIPExport BOOL GetFSUseFlatten() const;
00473 BIPExport void SetFSUseFlatten(BOOL val);
00474
00475 BIPExport int GetStartFrame() const;
00476 BIPExport void SetStartFrame(int val);
00477 BIPExport int GetEndFrame() const;
00478 BIPExport void SetEndFrame(int val);
00479 BIPExport BOOL GetUseLoopFrame() const;
00480 BIPExport void SetUseLoopFrame(BOOL val);
00481 BIPExport int GetLoopFrameCount() const;
00482 BIPExport void SetLoopFrameCount(int val);
00483
00484 BIPExport float GetKeyReductionTol(int part) const;
00485 BIPExport void SetKeyReductionTol(int part, float val);
00486 BIPExport int GetKeyReductionSpacing(int part) const;
00487 BIPExport void SetKeyReductionSpacing(int part, float val);
00488 BIPExport BOOL GetKeyReductionFilter(int part) const;
00489 BIPExport void SetKeyReductionFilter(int part, BOOL onOff);
00490
00491 BIPExport int GetLimbOrientation(int limb) const;
00492 BIPExport void SetLimbOrientation(int limb, int val);
00493
00494 BIPExport int LoadMocapParameters(const MCHAR *fname);
00495 BIPExport int SaveMocapParameters(const MCHAR *fname);
00496
00497
00498 BIPExport const MCHAR* GetMarkerNameFile() const;
00499 BIPExport bool LoadMarkerNameFile(const MCHAR *fname);
00500 BIPExport BOOL GetUseMarkerNameFile() const;
00501 BIPExport void SetUseMarkerNameFile(BOOL onOff);
00502
00503 BIPExport const MCHAR* GetJointNameFile() const;
00504 BIPExport bool LoadJointNameFile(const MCHAR *fname);
00505 BIPExport BOOL GetUseJointNameFile() const;
00506 BIPExport void SetUseJointNameFile(BOOL onOff);
00507
00508 BIPExport int BatchConvert(const MCHAR* inDir, const MCHAR* outDir, const MCHAR* ext);
00509
00510 BIPExport BOOL GetDispKnownMarkers() const;
00511 BIPExport void SetDispKnownMarkers(BOOL onOff);
00512 BIPExport int GetDispKnownMarkersType() const;
00513 BIPExport void SetDispKnownMarkersType(int type);
00514 BIPExport BOOL GetDispUnKnownMarkers() const;
00515 BIPExport void SetDispUnKnownMarkers(BOOL onOff);
00516 BIPExport BOOL GetDispPropMarkers() const;
00517 BIPExport void SetDispPropMarkers(BOOL onOff);
00518 };
00519
00520
00521 class MixerManager: public MaxHeapOperators {
00522 public:
00523 BIPExport BOOL GetSnapFrames();
00524 BIPExport void SetSnapFrames(BOOL onOff);
00525 BIPExport BOOL GetShowTgRangebars();
00526 BIPExport void SetShowTgRangebars(BOOL onOff);
00527 BIPExport BOOL GetShowWgtCurves();
00528 BIPExport void SetShowWgtCurves(BOOL onOff);
00529 BIPExport BOOL GetShowTimeWarps();
00530 BIPExport void SetShowTimeWarps(BOOL onOff);
00531 BIPExport BOOL GetShowClipBounds();
00532 BIPExport void SetShowClipBounds(BOOL onOff);
00533 BIPExport BOOL GetShowGlobal();
00534 BIPExport void SetShowGlobal(BOOL onOff);
00535 BIPExport BOOL GetShowClipNames();
00536 BIPExport void SetShowClipNames(BOOL onOff);
00537 BIPExport BOOL GetShowClipScale();
00538 BIPExport void SetShowClipScale(BOOL onOff);
00539 BIPExport BOOL GetShowTransStart();
00540 BIPExport void SetShowTransStart(BOOL onOff);
00541 BIPExport BOOL GetShowTransEnd();
00542 BIPExport void SetShowTransEnd(BOOL onOff);
00543 BIPExport BOOL GetShowBalance();
00544 BIPExport void SetShowBalance(BOOL onOff);
00545 BIPExport BOOL GetSnapToClips();
00546 BIPExport void SetSnapToClips(BOOL onOff);
00547 BIPExport BOOL GetLockTransitions();
00548 BIPExport void SetLockTransitions(BOOL onOff);
00549 BIPExport void SetAnimationRange();
00550 BIPExport void ZoomExtents();
00551 BIPExport void UpdateDisplay();
00552 BIPExport void AddBipedToMixerDisplay(IBipMaster *mc);
00553 BIPExport void RemoveBipedFromMixerDisplay(IBipMaster *mc);
00554 BIPExport void ShowMixer();
00555 BIPExport void HideMixer();
00556 BIPExport void ToggleMixer();
00557 };
00558
00559
00560
00561 class IBipedKey : public IKey {
00562 public:
00563 float tens, cont, bias, easeIn, easeOut;
00564 int type;
00565 };
00566
00567
00568 class IBipedVertKey : public IBipedKey {
00569 public:
00570 float z, dynBlend, ballTens;
00571 };
00572
00573
00574 class IBipedHorzKey : public IBipedKey {
00575 public:
00576 float x, y, balFac;
00577 };
00578
00579
00580 class IBipedTurnKey : public IBipedKey {
00581 public:
00582 Quat q;
00583 };
00584
00585
00586
00587
00588 #define BODYSPACE 0
00589 #define WORLDSPACE 1 // Currently not valid
00590 #define OBJECTSPACE 2
00591 class IBipedBodyKey : public IBipedKey {
00592 public:
00593 float ik_blend,
00594 ik_ankle_ten;
00595 int ik_space,
00596 ik_joined_pivot,
00597 ik_pivot_index,
00598 ik_num_pivots;
00599 Point3 ik_pivot_pts[NUMPIVOTS];
00600 };
00601
00602
00603 class IBipedHeadKey : public IBipedKey {
00604 public :
00605 float head_blend;
00606 };
00607
00608
00609
00610 #define WORLD_PROP 0
00611 #define BODY_PROP 1
00612 #define RHAND_PROP 2
00613 #define LHAND_PROP 3
00614
00615 class IBipedPropKey : public IBipedKey {
00616 public:
00617 int pos_space;
00618 int rot_space;
00619 };
00620
00621
00622
00623 #define FS_LSEL (1<<0)
00624 #define FS_RSEL (1<<1)
00625
00626 #define FS_LFT 1
00627 #define FS_RGT 0
00628
00629 class IBipedFSKey : public IKey {
00630 public:
00631 DWORD edgeSel;
00632 BOOL active;
00633 Matrix3 mat;
00634 int side;
00635 TimeValue duration;
00636 };
00637
00638
00639
00640 class MultFprintParams: public MaxHeapOperators {
00641 public:
00642 int numnewfprints;
00643 float aswid;
00644 float pswid;
00645 float aslen;
00646 float pslen;
00647 float ashgt;
00648 int cycle;
00649 float aslen2;
00650 float pslen2;
00651 float ashgt2;
00652 int cycle2;
00653 int AutoTiming;
00654 int InterpTiming;
00655 int Alternate;
00656 int MultiInsertInTime;
00657 MultFprintParams(int gait) {init(gait);}
00658 BIPExport void init(int gait);
00659 };
00660
00661
00662 BIPExport MultFprintParams* GetMultFprintParams(int gait);
00663
00664
00665 BIPExport int GetFSAddSide();
00666 BIPExport void SetFSAddSide(int side);
00667
00668