AnoPlib - Animlets are not Particles library
|
00001 /* ************************************************************************* 00002 @file AnoPwavelogo1.h 00003 @project AnoPlib 00004 @module AnoPwavelogo1 00005 @brief Old-style c64 wave effect 00006 @date 23.11.2010 00007 @copyright Daniel Krajzewicz 00008 @licence GPL 00009 @author Daniel Krajzewicz 00010 @email d.krajzewicz@googlemail.com 00011 ------------------------------------------------------------------ 00012 AnoPlib - small "animlet" library, see http://sf.net/projects/anoplib 00013 Copyright (C) 2009-2010 Daniel Krajzewicz 00014 00015 This program is free software: you can redistribute it and/or modify 00016 it under the terms of the GNU General Public License as published by 00017 the Free Software Foundation, either version 3 of the License, or 00018 (at your option) any later version. 00019 00020 This program is distributed in the hope that it will be useful, 00021 but WITHOUT ANY WARRANTY; without even the implied warranty of 00022 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 00023 GNU General Public License for more details. 00024 00025 You should have received a copy of the GNU General Public License 00026 along with this program. If not, see <http://www.gnu.org/licenses/>. 00027 ------------------------------------------------------------------ 00028 Remarks: 00029 ------------------------------------------------------------------ 00030 ToDo: 00031 * *********************************************************************** */ 00032 #ifndef ANOP_WAVELOGO1 00033 #define ANOP_WAVELOGO1 00034 00035 00036 /* ========================================================================= 00037 * included modules 00038 * ======================================================================= */ 00039 #include <AnoP.h> 00040 #include <AnoPhelpers.h> 00041 #include <GL/gl.h> 00042 00043 00044 /* ========================================================================= 00045 * class and struct definitions 00046 * ======================================================================= */ 00047 // @brief The animlet definition structure 00048 struct waveStruct { 00050 int step; 00052 double pos[2]; 00053 }; 00054 00055 00059 class AnoPwavelogo1 : public AnoP::AnoPsystem<waveStruct> { 00060 public: 00064 AnoPwavelogo1(unsigned int bufSize=10) : AnoP::AnoPsystem<waveStruct>(bufSize) { } 00065 00066 00069 void preRender() throw() { 00070 glMatrixMode(GL_PROJECTION); 00071 glLoadIdentity(); 00072 glMatrixMode(GL_MODELVIEW); 00073 glLoadIdentity(); 00074 glTranslated(-1,-1,0); 00075 glScaled(1./20, 1./20, 1.); 00076 glTranslated(0,15,0); 00077 } 00078 00079 00085 bool render(waveStruct &s, unsigned int timeDiff, void * const something) throw() { 00086 glPushMatrix(); 00087 int off = s.step; 00088 glTranslated(s.pos[0]+AnoPhelpers::sintab[off]/100., s.pos[1]+AnoPhelpers::costab[off]/100., 0); 00089 glScaled(1./4., 1./4., 1); 00090 glColor3d(1,1,1); 00091 glBegin(GL_QUADS); 00092 glVertex3f(-1,-1,0); 00093 glVertex3f(-1,1,0); 00094 glVertex3f(1,1,0); 00095 glVertex3f(1,-1,0); 00096 glEnd(); 00097 glPopMatrix(); 00098 s.step++; 00099 if(s.step>359) { 00100 s.step = 0; 00101 } 00102 return true; 00103 } 00104 00105 }; 00106 00107 #endif