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 __NESUBMESHANIMATOR_H
00028 #define __NESUBMESHANIMATOR_H
00029
00030
00031 #include "base.h"
00032 #include "keyframe.h"
00033 #include "animation.h"
00034 #include "animator.h"
00035 #include "vertexbuffer.h"
00036
00037
00038
00047 namespace NeoEngine
00048 {
00049
00050
00051
00052
00053
00054
00055 #ifdef WIN32
00056 # ifndef __HAVE_VECTOR_NESUBMESHKEYFRAME
00057 UDTVectorEXPIMP( class SubMeshKeyframe* );
00058 # define __HAVE_VECTOR_NESUBMESHKEYFRAME
00059 # endif
00060 #endif
00061
00062
00063
00064
00065
00066
00067
00068
00069
00070
00077 class NEOENGINE_API SubMeshKeyframe : public Keyframe
00078 {
00079 public:
00080
00082 VertexBufferPtr m_pkBuffer;
00083
00086 SubMeshKeyframe( float fTime = 0.0f ) : Keyframe( fTime ), m_pkBuffer( 0 ) {}
00087
00091 SubMeshKeyframe( const SubMeshKeyframe &rkKeyframe ) : Keyframe( rkKeyframe ), m_pkBuffer( rkKeyframe.m_pkBuffer ) {}
00092 };
00093
00094
00095
00096
00097
00098 #ifdef WIN32
00099
00100 # ifdef _MSC_VER
00101 # pragma warning( disable : 4231 )
00102 # endif
00103
00104 # ifndef __HAVE_VECTOR_NESUBMESHKEYFRAME
00105 UDTVectorEXPIMP( class SubMeshKeyframe* );
00106 # define __HAVE_VECTOR_NESUBMESHKEYFRAME
00107 # endif
00108
00109 # ifdef _MSC_VER
00110 # ifndef __HAVE_NEANIMATION_NESUBMESHKEYFRAME
00111 EXPIMP_TEMPLATE template class NEOENGINE_API Animation< class SubMeshKeyframe >;
00112 # define __HAVE_NEANIMATION_NESUBMESHKEYFRAME
00113 # endif
00114 # endif
00115
00116 #endif
00117
00118
00119
00120
00121
00127 class NEOENGINE_API SubMeshAnimation : public Animation<SubMeshKeyframe>
00128 {
00129 public:
00130
00133 SubMeshAnimation() : Animation<SubMeshKeyframe>() {}
00134
00138 SubMeshAnimation( const SubMeshAnimation &rkAnimation ) : Animation<SubMeshKeyframe>( rkAnimation ) {}
00139 };
00140
00141
00142
00143
00144 #ifdef WIN32
00145
00146 # ifdef _MSC_VER
00147 # pragma warning( disable : 4231 )
00148 # endif
00149
00150 # ifndef __HAVE_VECTOR_NESUBMESHANIMATION
00151 UDTVectorEXPIMP( class SubMeshAnimation* );
00152 # define __HAVE_VECTOR_NESUBMESHANIMATION
00153 # endif
00154
00155 # ifndef __MINGW32__
00156 # ifndef __HAVE_NEANIMATORCONTROLLER_NESUBMESHANIMATION
00157 EXPIMP_TEMPLATE template class NEOENGINE_API AnimatorController< class SubMeshAnimation >;
00158 # define __HAVE_NEANIMATORCONTROLLER_NESUBMESHANIMATION
00159 # endif
00160 # endif
00161
00162 #endif
00163
00164
00165
00166
00167
00168
00174 class NEOENGINE_API SubMeshAnimatorController : public AnimatorController<SubMeshAnimation>
00175 {
00176 public:
00177
00178
00181 SubMeshAnimatorController() : AnimatorController<SubMeshAnimation>() {}
00182
00186 SubMeshAnimatorController( const SubMeshAnimatorController &rkController ) : AnimatorController<SubMeshAnimation>( rkController ) {}
00187
00192 virtual void Update( float fDeltaTime );
00193
00198 void InterpolateVertices( VertexBufferPtr pkBuffer );
00199 };
00200
00201
00202 };
00203
00204
00205
00206 #endif