Go to the
documentation of this file.
00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015 #pragma once
00016 #include "..\maxheap.h"
00017 #include "IMixer.h"
00018 #include "BipedApi.h"
00019 #include "..\ILoadSaveAnimation.h"
00020
00023 #define MAXMOTIONCLIPIMP_CONTROL_CLASS_ID Class_ID(0x57a52b8c, 0x30935afc)
00024
00025
00026 #define CLIPASSOCIATION_CONTROL_CLASS_ID Class_ID(0x71313526, 0x28696f6a)
00027
00029
00035 class IMXclip8 : public IMXclip
00036 {
00037 public:
00040 virtual bool IsMax() = 0;
00041
00044 virtual const MaxSDK::AssetManagement::AssetUser & MaxMap() =0;
00045
00055 virtual bool LoadMaxAnimationFile(int loadOption,const MCHAR *filename, const MCHAR *mapfilename=NULL) =0;
00056
00058
00059
00061
00064 virtual void GetVelocityBlends(INodeTab &nodeTab) =0;
00065
00067
00070 virtual void SetVelocityBlends(const INodeTab &nodeTab) =0;
00072
00074
00075
00077
00080 virtual void GetSubBlendNodes(INodeTab &nodeTab) =0;
00081
00083
00086 virtual void SetSubBlendNodes(const INodeTab &nodeTab) =0;
00087
00089
00091 virtual void GetSubBlendNodesParents(INodeTab &nodeTab) =0;
00092
00094
00097 virtual void SetSubBlendNodesParents(const INodeTab &nodeTab) =0;
00099
00104 virtual void SetTransitionYawPitchRoll(const bool yaw, const bool pitch,const bool roll) =0;
00105
00110 virtual void GetTransitionYawPitchRoll(bool &yaw, bool &pitch, bool &roll) =0;
00111
00116 virtual void SetTransitionYawPitchRollAngle(const float yaw, const float pitch,const float roll) =0;
00117
00122 virtual void GetTransitionYawPitchRollAngle(float &yaw, float &pitch, float &roll) =0;
00123
00128 virtual void SetTransitionXYZ(const bool x, const bool y,const bool z) =0;
00129
00134 virtual void GetTransitionXYZ(bool &x, bool &y, bool &z) =0;
00135
00136
00137
00138 };
00139
00140
00142
00146 class IMXtrack8 : public IMXtrack
00147 {
00148 public:
00149
00156
00157 virtual IMXclip8 *GetClip8(int index, int row)=0;
00158
00164 virtual IMXclip8 *GetTransClip8(int index)=0;
00165
00168 virtual bool IsMax() = 0;
00169
00178 virtual bool AppendMaxClip(const MCHAR *fname, const MCHAR *mapFile = NULL, int interval = 5)=0;
00179
00180 };
00181
00182
00185
00189 class IMXtrackgroup8 : public IMXtrackgroup
00190 {
00191 public:
00192
00195 virtual bool IsMax() = 0;
00196
00201 virtual IMXtrack8 *GetTrack8(int index)=0;
00202
00203
00206 virtual void GetMaxFilter(INodeTab &nodeTab) =0;
00207
00210 virtual void SetMaxFilter(const INodeTab &nodeTab) =0;
00211
00212 };
00213
00216
00222 class IMixer8 :public IMixer
00223 {
00224
00225 public:
00228 virtual bool IsMax() = 0;
00229
00234 virtual IMXtrackgroup8 *GetTrackgroup8(int index)=0;
00235
00242 virtual void SetNodes(INodeTab &nodeTab,BOOL collapse) =0;
00243
00246 virtual void GetNodes(INodeTab &nodeTab)=0;
00247
00250 virtual const MCHAR *GetName() = 0;
00251
00257 virtual bool SetName(const MCHAR *name) =0;
00258
00259 };
00260
00262
00265 class MaxMixerManager: public MaxHeapOperators
00266 {
00267 public:
00269 virtual ~MaxMixerManager() {;}
00270
00273 BIPExport int NumMaxMixers();
00274
00279 BIPExport IMixer8 *GetNthMaxMixer(int index);
00280
00284 BIPExport IMixer8 *GetMaxMixer(INode *node);
00285
00295 BIPExport void RemoveNthMaxMixer(int index,BOOL collapse,BOOL keyperframe);
00296
00303 BIPExport bool AddMaxMixer(INodeTab &nodes, const MCHAR *nameOfMix);
00304
00315 BIPExport bool AddMaxMixer(Tab<NodeAndAnims> &nodeAnims,const MCHAR *nameOfMix);
00316
00317 };
00318
00320 extern BIPExport MaxMixerManager TheMaxMixerManager;
00321
00322
00323
00324
00325