Line data Source code
1 0 : /* 2 : 3 : OOStellarBody.h 4 : 5 : Protocol shared by suns and planets (which used to be the same class). 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 "OOCocoa.h" 29 : #import "OOWeakReference.h" 30 : #import "OOTypes.h" 31 : #import "OOMaths.h" 32 : 33 : 34 : #ifndef NEW_PLANETS 35 : // not for 1.77/8 36 : #define NEW_PLANETS 1 37 : #endif 38 : 39 : 40 0 : typedef enum 41 : { 42 : STELLAR_TYPE_SUN, 43 : STELLAR_TYPE_NORMAL_PLANET, // Terrestrial planet with atmosphere and oceans 44 : #if !NEW_PLANETS 45 : STELLAR_TYPE_ATMOSPHERE, 46 : #endif 47 : STELLAR_TYPE_MOON, // Rocky/airless planet 48 : STELLAR_TYPE_MINIATURE // Display proxy for a "normal" planet 49 : } OOStellarBodyType; 50 : 51 : 52 0 : #define ATMOSPHERE_DEPTH 500.0 53 0 : #define PLANET_MINIATURE_FACTOR 0.00185 54 0 : #define MAX_SUBDIVIDE 6 55 : 56 : 57 : @protocol OOStellarBody <NSObject, OOWeakReferenceSupport> 58 : 59 0 : - (double) radius; 60 0 : - (OOStellarBodyType) planetType; 61 : 62 0 : - (NSString *) name; 63 0 : - (void) setName:(NSString *)name; 64 : 65 : @end