Oolite 1.91.0.7604-240417-a536cbe
Loading...
Searching...
No Matches
OOStellarBody.h
Go to the documentation of this file.
1/*
2
3OOStellarBody.h
4
5Protocol shared by suns and planets (which used to be the same class).
6
7
8Oolite
9Copyright (C) 2004-2013 Giles C Williams and contributors
10
11This program is free software; you can redistribute it and/or
12modify it under the terms of the GNU General Public License
13as published by the Free Software Foundation; either version 2
14of the License, or (at your option) any later version.
15
16This program is distributed in the hope that it will be useful,
17but WITHOUT ANY WARRANTY; without even the implied warranty of
18MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
19GNU General Public License for more details.
20
21You should have received a copy of the GNU General Public License
22along with this program; if not, write to the Free Software
23Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
24MA 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
40typedef enum
41{
43 STELLAR_TYPE_NORMAL_PLANET, // Terrestrial planet with atmosphere and oceans
44#if !NEW_PLANETS
46#endif
47 STELLAR_TYPE_MOON, // Rocky/airless planet
48 STELLAR_TYPE_MINIATURE // Display proxy for a "normal" planet
50
51
52#define ATMOSPHERE_DEPTH 500.0
53#define PLANET_MINIATURE_FACTOR 0.00185
54#define MAX_SUBDIVIDE 6
55
56
57@protocol OOStellarBody <NSObject, OOWeakReferenceSupport>
58
59- (double) radius;
60- (OOStellarBodyType) planetType;
61
62- (NSString *) name;
63- (void) setName:(NSString *)name;
64
65@end
OOStellarBodyType
@ STELLAR_TYPE_MOON
@ STELLAR_TYPE_ATMOSPHERE
@ STELLAR_TYPE_MINIATURE
@ STELLAR_TYPE_SUN
@ STELLAR_TYPE_NORMAL_PLANET