Home | nevrax.com |
|
animated_morph.hGo to the documentation of this file.00001 00007 /* Copyright, 2001 Nevrax Ltd. 00008 * 00009 * This file is part of NEVRAX NEL. 00010 * NEVRAX NEL is free software; you can redistribute it and/or modify 00011 * it under the terms of the GNU General Public License as published by 00012 * the Free Software Foundation; either version 2, or (at your option) 00013 * any later version. 00014 00015 * NEVRAX NEL is distributed in the hope that it will be useful, but 00016 * WITHOUT ANY WARRANTY; without even the implied warranty of 00017 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 00018 * General Public License for more details. 00019 00020 * You should have received a copy of the GNU General Public License 00021 * along with NEVRAX NEL; see the file COPYING. If not, write to the 00022 * Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, 00023 * MA 02111-1307, USA. 00024 */ 00025 00026 #ifndef NL_ANIMATED_MORPH_H 00027 #define NL_ANIMATED_MORPH_H 00028 00029 00030 #include "nel/misc/types_nl.h" 00031 #include "nel/misc/smart_ptr.h" 00032 #include "3d/animatable.h" 00033 #include "3d/track.h" 00034 #include <map> 00035 00036 00037 namespace NL3D 00038 { 00039 00040 // *************************************************************************** 00047 class CMorphBase : public NLMISC::CRefCount 00048 { 00049 public: 00050 00051 CMorphBase(); 00052 00053 // Name of this material, for Animation access. 00054 std::string Name; 00055 00056 // Default tracks. 00057 CTrackDefaultFloat DefaultFactor; 00058 00060 void serial(NLMISC::IStream &f); 00061 }; 00062 00063 00064 // *************************************************************************** 00071 class CAnimatedMorph : public IAnimatable 00072 { 00073 public: 00074 00076 // @{ 00079 CAnimatedMorph (CMorphBase*mb); 00080 // @} 00081 00082 00084 // @{ 00086 enum TAnimValues 00087 { 00088 OwnerBit= IAnimatable::AnimValueLast, 00089 FactorValue, 00090 AnimValueLast 00091 }; 00092 00094 virtual IAnimatedValue* getValue (uint valueId); 00095 00097 virtual const char *getValueName (uint valueId) const; 00098 00100 virtual ITrack* getDefaultTrack (uint valueId); 00101 00103 virtual void registerToChannelMixer(CChannelMixer *chanMixer, const std::string &prefix); 00104 00105 // @} 00106 00107 float getFactor() const { return _Factor.Value; } 00108 void setFactor (float rFactor) { _Factor.Value = rFactor; } 00109 00110 const std::string& getName() const { return _MorphBase->Name; } 00111 00112 // ******************** 00113 private: 00114 CMorphBase *_MorphBase; 00115 00116 CAnimatedValueFloat _Factor; 00117 CTrackDefaultFloat _DefaultFactor; 00118 }; 00119 00120 00121 } // NL3D 00122 00123 00124 #endif // NL_ANIMATED_MORPH_H 00125 00126 /* End of animated_morph.h */ |