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

nodeanimator.h

Go to the documentation of this file.
00001 /***************************************************************************
00002            nodeanimator.h  -  Animator controller classes for nodes
00003                              -------------------
00004     begin                : Sun Jan 26 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, nodeanimator.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 __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 }; // namespace NeoEngine
00195 
00196 
00197 
00198 
00199 #endif // __NENODEANIMATOR_H

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