Main Page | Namespace List | Class Hierarchy | Alphabetical List | Class List | File List | Namespace Members | Class Members | Related Pages

submeshanimator.h

Go to the documentation of this file.
00001 /***************************************************************************
00002       submeshanimator.h  -  Animator controller classes for submeshes
00003                              -------------------
00004     begin                : Wed Jan 29 2003
00005     copyright            : (C) 2003 by Reality Rift Studios
00006     email                : mattias@realityrift.com
00007  ***************************************************************************
00008 
00009  The contents of this file are subject to the Mozilla Public License Version
00010  1.1 (the "License"); you may not use this file except in compliance with
00011  the License. You may obtain a copy of the License at 
00012  http://www.mozilla.org/MPL/
00013 
00014  Software distributed under the License is distributed on an "AS IS" basis,
00015  WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
00016  for the specific language governing rights and limitations under the
00017  License.
00018 
00019  The Original Code is the NeoEngine, submeshanimator.h
00020 
00021  The Initial Developer of the Original Code is Mattias Jansson.
00022  Portions created by Mattias Jansson are Copyright (C) 2003
00023  Reality Rift Studios. All Rights Reserved.
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 }; // namespace NeoEngine
00203 
00204 
00205 
00206 #endif

Generated on Wed Jan 21 14:21:07 2004 for NeoEngine by doxygen 1.3.5