Line data Source code
1 0 : /* 2 : 3 : OOLightParticleEntity.h 4 : 5 : Simple particle-type effect entity. Draws a billboard with additive blending. 6 : 7 : 8 : Oolite 9 : Copyright (C) 2004-2013 Giles C Williams and contributors 10 : 11 : This program is free software; you can redistribute it and/or 12 : modify it under the terms of the GNU General Public License 13 : as published by the Free Software Foundation; either version 2 14 : of the License, or (at your option) any later version. 15 : 16 : This program is distributed in the hope that it will be useful, 17 : but WITHOUT ANY WARRANTY; without even the implied warranty of 18 : MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 19 : GNU General Public License for more details. 20 : 21 : You should have received a copy of the GNU General Public License 22 : along with this program; if not, write to the Free Software 23 : Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, 24 : MA 02110-1301, USA. 25 : 26 : */ 27 : 28 : #import "Entity.h" 29 : 30 : @class OOTexture, OOColor; 31 : 32 : 33 0 : @interface OOLightParticleEntity: Entity 34 : { 35 : @protected 36 0 : GLfloat _colorComponents[4]; 37 0 : float _diameter; 38 : } 39 : 40 0 : - (id) initWithDiameter:(float)diameter; 41 : 42 0 : - (float) diameter; 43 0 : - (void) setDiameter:(float)diameter; 44 : 45 0 : - (void) setColor:(OOColor *)color; 46 0 : - (void) setColor:(OOColor *)color alpha:(GLfloat)alpha; 47 : 48 : /* For subclasses that don't want the default blur texture. 49 : NOTE: such subclasses must deal with the OOGraphicsResetManager. Also, 50 : OOLightParticleEntity assumes the texture is twice as big as the nominal 51 : size of the particle (with a black border for anti-aliasing purposes). 52 : */ 53 0 : - (OOTexture *) texture; 54 : 55 0 : + (void) setUpTexture; 56 0 : + (OOTexture *) defaultParticleTexture; 57 : 58 : 59 0 : - (void) drawSubEntityImmediate:(bool)immediate translucent:(bool)translucent; 60 : 61 : @end