00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027 #ifndef __NENODEANIMATOR_H
00028 #define __NENODEANIMATOR_H
00029
00030
00031 #include "base.h"
00032 #include "keyframe.h"
00033 #include "animation.h"
00034 #include "animator.h"
00035
00036
00044 namespace NeoEngine
00045 {
00046
00047
00048
00049
00056 class NEOENGINE_API NodeKeyframe : public Keyframe
00057 {
00058 public:
00059
00061 Quaternion m_kRotation;
00062
00064 Vector3d m_kTranslation;
00065
00069 NodeKeyframe( float fTime = 0.0f ) : Keyframe( fTime ) {}
00070
00074 NodeKeyframe( const NodeKeyframe &rkKeyframe ) : Keyframe( rkKeyframe ), m_kRotation( rkKeyframe.m_kRotation ), m_kTranslation( rkKeyframe.m_kTranslation ) {}
00075
00078 virtual ~NodeKeyframe() {}
00079 };
00080
00081
00082
00083
00084
00085 #ifdef WIN32
00086
00087 # ifdef _MSC_VER
00088 # pragma warning( disable : 4231 )
00089 # endif
00090
00091 # ifndef __HAVE_VECTOR_NENODEKEYFRAME
00092 UDTVectorEXPIMP( class NodeKeyframe* );
00093 # define __HAVE_VECTOR_NENODEKEYFRAME
00094 # endif
00095
00096 # ifdef _MSC_VER
00097 # ifndef __HAVE_NEANIMATION_NENODEKEYFRAME
00098 EXPIMP_TEMPLATE template class NEOENGINE_API Animation< class NodeKeyframe >;
00099 # define __HAVE_NEANIMATION_NENODEKEYFRAME
00100 # endif
00101 # endif
00102
00103 #endif
00104
00105
00106
00107
00108
00109
00110
00116 class NEOENGINE_API NodeAnimation : public Animation<NodeKeyframe>
00117 {
00118 public:
00119
00122 NodeAnimation() : Animation<NodeKeyframe>() {}
00123
00127 NodeAnimation( const NodeAnimation &rkAnimation ) : Animation<NodeKeyframe>( rkAnimation ) {}
00128
00131 virtual ~NodeAnimation() {}
00132 };
00133
00134
00135
00136
00137
00138 #ifdef WIN32
00139
00140 # ifdef _MSC_VER
00141 # pragma warning( disable : 4231 )
00142 # endif
00143
00144 # ifndef __HAVE_VECTOR_NENODEANIMATION
00145 UDTVectorEXPIMP( class NodeAnimation* );
00146 # define __HAVE_VECTOR_NENODEKEYFRAME
00147 # endif
00148
00149 # ifdef _MSC_VER
00150 # ifndef __HAVE_NEANIMATORCONTROLLER_NENODEANIMATION
00151 EXPIMP_TEMPLATE template class NEOENGINE_API AnimatorController< class NodeAnimation >;
00152 # define __HAVE_NEANIMATORCONTROLLER_NENODEANIMATION
00153 # endif
00154 # endif
00155
00156 #endif
00157
00158
00159
00160
00161
00162
00168 class NEOENGINE_API NodeAnimatorController : public AnimatorController<NodeAnimation>
00169 {
00170 public:
00171
00172
00175 NodeAnimatorController() : AnimatorController<NodeAnimation>() {}
00176
00180 NodeAnimatorController( const NodeAnimatorController &rkController ) : AnimatorController<NodeAnimation>( rkController ) {}
00181
00184 virtual ~NodeAnimatorController() {}
00185
00190 virtual void Update( float fDeltaTime );
00191 };
00192
00193
00194 };
00195
00196
00197
00198
00199 #endif // __NENODEANIMATOR_H