- Cal3D 0.9 API Reference - |
00001 //****************************************************************************// 00002 // mixer.h // 00003 // Copyright (C) 2001, 2002 Bruno 'Beosil' Heidelberger // 00004 //****************************************************************************// 00005 // This library is free software; you can redistribute it and/or modify it // 00006 // under the terms of the GNU Lesser General Public License as published by // 00007 // the Free Software Foundation; either version 2.1 of the License, or (at // 00008 // your option) any later version. // 00009 //****************************************************************************// 00010 00011 #ifndef CAL_MIXER_H 00012 #define CAL_MIXER_H 00013 00014 //****************************************************************************// 00015 // Includes // 00016 //****************************************************************************// 00017 00018 #include "cal3d/global.h" 00019 00020 //****************************************************************************// 00021 // Forward declarations // 00022 //****************************************************************************// 00023 00024 class CalModel; 00025 class CalAnimation; 00026 class CalAnimationAction; 00027 class CalAnimationCycle; 00028 00029 //****************************************************************************// 00030 // Class declaration // 00031 //****************************************************************************// 00032 00033 /*****************************************************************************/ 00037 class CAL3D_API CalMixer 00038 { 00039 // member variables 00040 public: 00041 CalModel *m_pModel; 00042 std::vector<CalAnimation *> m_vectorAnimation; 00043 std::list<CalAnimationAction *> m_listAnimationAction; 00044 std::list<CalAnimationCycle *> m_listAnimationCycle; 00045 float m_animationTime; 00046 float m_animationDuration; 00047 00048 // constructors/destructor 00049 public: 00050 CalMixer(); 00051 virtual ~CalMixer(); 00052 00053 // member functions 00054 public: 00055 bool blendCycle(int id, float weight, float delay); 00056 bool clearCycle(int id, float delay); 00057 bool create(CalModel *pModel); 00058 void destroy(); 00059 bool executeAction(int id, float delayIn, float delayOut, float weightTarget = 1.0f); 00060 void updateAnimation(float deltaTime); 00061 void updateSkeleton(); 00062 float getAnimationTime(); 00063 float getAnimationDuration(); 00064 void setAnimationTime(float animationTime); 00065 00066 00067 }; 00068 00069 #endif 00070 00071 //****************************************************************************//