Line data Source code
1 0 : /* 2 : 3 : OOBreakPatternEntity.h 4 : 5 : Entity implementing tunnel effect for hyperspace and stations. 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 OOColor; 31 : 32 : 33 0 : enum 34 : { 35 : kOOBreakPatternMaxSides = 128, 36 : kOOBreakPatternMaxVertices = (kOOBreakPatternMaxSides + 1) * 2 37 : }; 38 : 39 : 40 0 : #define BREAK_PATTERN_RING_SPACING 50.0 41 0 : #define BREAK_PATTERN_RING_SPEED 200.0 42 : 43 : 44 0 : @interface OOBreakPatternEntity: Entity 45 : { 46 : @private 47 0 : Vector _vertexPosition[kOOBreakPatternMaxVertices]; 48 0 : GLfloat _vertexColor[kOOBreakPatternMaxVertices][4]; 49 0 : NSUInteger _vertexCount; 50 0 : double _lifetime; 51 : } 52 : 53 0 : + (instancetype) breakPatternWithPolygonSides:(NSUInteger)sides startAngle:(float)startAngleDegrees aspectRatio:(float)aspectRatio; 54 : 55 0 : - (void) setInnerColor:(OOColor *)color1 outerColor:(OOColor *)color2; 56 : 57 0 : - (void) setLifetime:(double)lifetime; 58 : 59 : @end 60 : 61 : 62 : @interface Entity (OOBreakPatternEntity) 63 : 64 0 : - (BOOL) isBreakPattern; 65 : 66 : @end