Linux multi-monitor fullscreen support
[ryzomcore.git] / ryzom / client / src / decal_anim.h
blob356e405af0ccd0971f4a39a57efcb21f6a9782ef
1 // Ryzom - MMORPG Framework <http://dev.ryzom.com/projects/ryzom/>
2 // Copyright (C) 2010 Winch Gate Property Limited
3 //
4 // This source file has been modified by the following contributors:
5 // Copyright (C) 2013 Laszlo KIS-ADAM (dfighter) <dfighter1985@gmail.com>
6 //
7 // This program is free software: you can redistribute it and/or modify
8 // it under the terms of the GNU Affero General Public License as
9 // published by the Free Software Foundation, either version 3 of the
10 // License, or (at your option) any later version.
12 // This program is distributed in the hope that it will be useful,
13 // but WITHOUT ANY WARRANTY; without even the implied warranty of
14 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15 // GNU Affero General Public License for more details.
17 // You should have received a copy of the GNU Affero General Public License
18 // along with this program. If not, see <http://www.gnu.org/licenses/>.
20 #ifndef DECAL_ANIM_H
21 #define DECAL_ANIM_H
24 namespace NLMISC
26 class CVector2f;
29 namespace NLGUI
31 class CLuaObject;
34 using namespace NLGUI;
36 class CDecal;
38 // TODO nico : this would fit nicely in the particle system animation system (would be more flexible)
39 class CDecalAnim
41 public:
42 std::string Texture;
43 uint DurationInMs;
45 float EndScaleFactor;
46 float EndAngleInDegrees;
47 NLMISC::CRGBA StartDiffuse;
48 NLMISC::CRGBA EndDiffuse;
49 NLMISC::CRGBA StartEmissive;
50 NLMISC::CRGBA EndEmissive;
51 public:
52 CDecalAnim();
53 void updateDecal(const NLMISC::CVector2f &pos, float animRatio, CDecal &dest, float refScale) const;
54 void buildFromLuaTable(CLuaObject &table);
57 #endif