Pioneer
Loading...
Searching...
No Matches
SystemBody.h
Go to the documentation of this file.
1// Copyright © 2008-2024 Pioneer Developers. See AUTHORS.txt for details
2// Licensed under the terms of the GPL v3. See licenses/GPL-3.txt
3
4#ifndef SYSTEMBODY_H
5#define SYSTEMBODY_H
6
7#include "Color.h"
8#include "IterationProxy.h"
9#include "JsonFwd.h"
10#include "Orbit.h"
11#include "RefCounted.h"
12#include "fixed.h"
13#include "galaxy/RingStyle.h"
14#include "galaxy/SystemPath.h"
15#include "gameconsts.h"
16
17class StarSystem;
18
20
21// Enum scoped access pattern base class
22// Allows access to e.g. SystemBody::TYPE_GRAVPOINT
24public:
25 enum BodyType : uint32_t { // <enum scope='SystemBodyType' prefix=TYPE_ public>
27 TYPE_BROWN_DWARF = 1, // L+T Class Brown Dwarfs
29 TYPE_STAR_M = 3, //red
30 TYPE_STAR_K = 4, //orange
31 TYPE_STAR_G = 5, //yellow
32 TYPE_STAR_F = 6, //white
33 TYPE_STAR_A = 7, //blue/white
34 TYPE_STAR_B = 8, //blue
35 TYPE_STAR_O = 9, //blue/purple/white
56 TYPE_STAR_O_HYPER_GIANT = 30, // these various stars do exist = they are transitional states and are rare
57 TYPE_STAR_M_WF = 31, //Wolf-Rayet star
58 TYPE_STAR_B_WF = 32, // while you do not specifically get class M,B or O WF stars,
59 TYPE_STAR_O_WF = 33, // you do get red = blue and purple from the colour of the gasses = so spectral class is an easy way to define them.
60 TYPE_STAR_S_BH = 34, //stellar blackhole
61 TYPE_STAR_IM_BH = 35, //Intermediate-mass blackhole
62 TYPE_STAR_SM_BH = 36, //Supermassive blackhole
68 TYPE_MIN = TYPE_BROWN_DWARF, // <enum skip>
72 // XXX need larger atmosphereless thing
73 };
74
75 enum BodySuperType : uint32_t { // <enum scope='SystemBodyType' prefix=SUPERTYPE_ public>
81 };
82};
83
90public:
92
93 void SaveToJson(Json &out);
94 void LoadFromJson(const Json &obj);
95
96 std::string m_name;
98
99 Uint32 m_seed; // Planet.cpp can use to generate terrain
100 fixed m_radius; // in earth radii for planets, sol radii for stars. equatorial radius in case of bodies which are flattened at the poles
101 fixed m_aspectRatio; // ratio between equatorial and polar radius for bodies with eqatorial bulges
102 fixed m_mass; // earth masses if planet, solar masses if star
108 fixed m_orbitalOffset; // 0 to 2 pi in radians, counterclockwise (long. of ascending node)
109 fixed m_orbitalPhaseAtStart; // 0 to 2 pi in radians, counterclockwise (true anomaly at epoch)
110 fixed m_axialTilt; // in radians
111 fixed m_inclination; // in radians, for surface bodies = latitude
112 fixed m_argOfPeriapsis; // in radians, counterclockwise
113 int m_averageTemp; // surface temperature in degrees Kelvin
114
115 /* composition */
116 fixed m_metallicity; // (crust) 0.0 = light (Al, SiO2, etc), 1.0 = heavy (Fe, heavy metals)
117 fixed m_volcanicity; // 0 = none, 1.0 = fucking volcanic
118 fixed m_volatileLiquid; // 1.0 = 100% ocean cover (earth = 70%)
119 fixed m_volatileIces; // 1.0 = 100% ice cover (earth = 3%)
120 fixed m_volatileGas; // 1.225 = earth atmosphere density, kg/m^3
121 fixed m_atmosOxidizing; // 0.0 = reducing (H2, NH3, etc), 1.0 = oxidising (CO2, O2, etc)
122 fixed m_life; // 0.0 = dead, 1.0 = teeming
123
124 /* economy type stuff */
127
130
132 unsigned int m_heightMapFractal;
133
135};
136
137class SystemBody : public RefCounted, public SystemBodyType, protected SystemBodyData {
138public:
139 class EditorAPI; // Allows editor API limited access to data members without rewriting entire class
140
141public:
142 SystemBody(const SystemPath &path, StarSystem *system);
143
144 const SystemPath &GetPath() const { return m_path; }
145 SystemBody *GetParent() const { return m_parent; }
146
147 bool IsPlanet() const;
148 bool IsMoon() const { return GetSuperType() == SUPERTYPE_ROCKY_PLANET && !IsPlanet(); }
149 // We allow hyperjump to any star of the system
150 bool IsJumpable() const { return GetSuperType() == SUPERTYPE_STAR; }
151 SystemBody *GetNearestJumpable(double atTime);
152
153 bool HasChildren() const { return !m_children.empty(); }
154 Uint32 GetNumChildren() const { return static_cast<Uint32>(m_children.size()); }
157
158 const std::vector<SystemBody *> CollectAllChildren();
159
160 inline const std::string &GetName() const { return m_name; }
161 std::string GetAstroDescription() const;
162 const char *GetIcon() const;
163 BodyType GetType() const { return BodyType(m_type); }
165 bool IsCustomBody() const { return m_isCustomBody; }
166 bool IsCoOrbitalWith(const SystemBody *other) const; //this and other form a binary pair
167 bool IsCoOrbital() const; //is part of any binary pair
168 fixed GetRadiusAsFixed() const { return m_radius; }
169
170 // the aspect ratio adjustment is converting from equatorial to polar radius to account for ellipsoid bodies, used for calculating terrains etc
171 inline double GetRadius() const
172 {
173 if (GetSuperType() <= SUPERTYPE_STAR) // polar radius
174 return (m_radius.ToDouble() / m_aspectRatio.ToDouble()) * SOL_RADIUS;
175 else
176 return m_radius.ToDouble() * EARTH_RADIUS;
177 }
178
179 // the un-adjusted equatorial radius is necessary for calculating the radius of frames, see Space.cpp `MakeFrameFor`
180 inline double GetEquatorialRadius() const
181 {
182 if (GetSuperType() <= SUPERTYPE_STAR) // equatorial radius
183 return m_radius.ToDouble() * SOL_RADIUS;
184 else
185 return m_radius.ToDouble() * EARTH_RADIUS;
186 }
187
188 double GetAspectRatio() const { return m_aspectRatio.ToDouble(); }
189 fixed GetMassAsFixed() const { return m_mass; }
190 double GetMass() const
191 {
193 return m_mass.ToDouble() * SOL_MASS;
194 else
195 return m_mass.ToDouble() * EARTH_MASS;
196 }
198 {
200 return m_mass * 332998;
201 else
202 return m_mass;
203 }
204 bool IsRotating() const { return m_rotationPeriod != fixed(0); }
205 // returned in seconds
208 double GetRotationPeriod() const
209 {
210 return m_rotationPeriod.ToDouble() * 60 * 60 * 24;
211 }
212 bool HasRotationPhase() const { return m_rotationalPhaseAtStart != fixed(0); }
214 double GetAxialTilt() const { return m_axialTilt.ToDouble(); }
216
217 const Orbit &GetOrbit() const { return m_orbit; }
218 double GetEccentricity() const { return m_eccentricity.ToDouble(); }
220 double GetOrbMin() const { return m_orbMin.ToDouble(); }
221 double GetOrbMax() const { return m_orbMax.ToDouble(); }
222 fixed GetOrbMinAsFixed() const { return m_orbMin; }
223 fixed GetOrbMaxAsFixed() const { return m_orbMax; }
224 double GetSemiMajorAxis() const { return m_semiMajorAxis.ToDouble(); }
228 void SetOrbitPlane(const matrix3x3d &orient) { m_orbit.SetPlane(orient); }
229
230 int GetAverageTemp() const { return m_averageTemp; }
231 inline const std::string &GetHeightMapFilename() const { return m_heightMapFilename; }
232 unsigned int GetHeightMapFractal() const { return m_heightMapFractal; }
233
234 Uint32 GetSeed() const { return m_seed; }
235
237 double GetMetallicity() const { return m_metallicity.ToDouble(); }
239 double GetVolatileGas() const { return m_volatileGas.ToDouble(); }
241 double GetVolatileLiquid() const { return m_volatileLiquid.ToDouble(); }
243 double GetVolatileIces() const { return m_volatileIces.ToDouble(); }
245 double GetVolcanicity() const { return m_volcanicity.ToDouble(); }
246 double GetAtmosOxidizing() const { return m_atmosOxidizing.ToDouble(); }
247 fixed GetLifeAsFixed() const { return m_life; }
248 double GetLife() const { return m_life.ToDouble(); }
249
251 double GetAgricultural() const { return m_agricultural.ToDouble(); }
253 double GetPopulation() const { return m_population.ToDouble(); }
254
255 double CalcSurfaceGravity() const;
256 double CalcEscapeVelocity() const;
257 double CalcMeanDensity() const;
258
259 double GetMaxChildOrbitalDistance() const;
260
261 bool HasRings() const { return bool(m_rings.maxRadius.v); }
262 const RingStyle &GetRings() const { return m_rings; }
263
264 // XXX merge all this atmosphere stuff
265 bool HasAtmosphere() const;
266
268 {
269 // XXX suggestions about how to determine a sensible albedo colour would be welcome
270 // Currently (2014-03-24) this is just used as the colour for the body billboard
271 // which is rendered when the body has a small screen size
272 return Color(200, 200, 200, 255);
273 }
274
275 // Returns color, density in kg/m^3 at sea level
276 void GetAtmosphereFlavor(Color *outColor, double *outDensity) const
277 {
278 *outColor = m_atmosColor;
279 *outDensity = m_volatileGas.ToDouble();
280 }
281
282 double GetAtmSurfaceDensity() const { return m_volatileGas.ToDouble(); }
283 double GetAtmSurfacePressure() const { return m_atmosPressure; }
284 double GetAtmRadius() const { return m_atmosRadius; }
285
286 // Calculate atmosphere pressure at given altitude (atm)
287 double GetAtmPressure(double altitude) const;
288
289 // Calculate atmosphere average temperature at given altitude (deg)
290 double GetAtmAverageTemp(double altitude) const;
291
292 // Calculate atmosphere density at given altitude and pressure (kg/m^3)
293 double GetAtmDensity(double altitude, double pressure) const;
294
295 // for rayleigh scattering
296 double ComputeDensity(const double radius, const double atmosphereHeight, const double h, const double scaleHeight) const;
297 vector3f GetCoefficients(const double radius, const double atmHeight, const double scaleHeight) const;
298
300
301 bool IsScoopable() const;
302
303 void Dump(FILE *file, const char *indent = "") const;
304
305 StarSystem *GetStarSystem() const { return m_system; }
306
307 const std::string &GetSpaceStationType() const { return m_spaceStationType; }
308
309private:
310 friend class StarSystem;
311 friend class ObjectViewerView;
317
318 // Copy-assignment operator from another instance of SystemBodyData
319 SystemBody &operator=(const SystemBodyData &rhs)
320 {
321 *static_cast<SystemBodyData *>(this) = rhs;
322 return *this;
323 }
324
325 void SetOrbitFromParameters();
326 void SetAtmFromParameters();
327
328 void Orphan();
329
330 SystemBody *m_parent; // these are only valid if the StarSystem
331 std::vector<SystemBody *> m_children; // that create them still exists
332 StarSystem *m_system;
333
334 SystemPath m_path;
335 Orbit m_orbit;
336 fixed m_orbMin, m_orbMax; // periapsism, apoapsis in AUs
337 bool m_isCustomBody;
338
339 // atmosphere surface pressure, unit: atm
340 double m_atmosPressure;
341 // atmosphere radius at 0.01atm, unit: meters
342 double m_atmosRadius;
343};
344
345#endif // SYSTEMBODY_H
Color4ub Color
Definition: Color.h:212
IterationProxy< Container > MakeIterationProxy(Container &container)
Definition: IterationProxy.h:51
nlohmann::json Json
Definition: Json.h:8
Definition: CustomSystem.h:91
Definition: IterationProxy.h:13
Definition: ObjectViewerView.h:13
Definition: Orbit.h:13
void SetPlane(const matrix3x3d &orient)
Definition: Orbit.h:33
Definition: StarSystemGenerator.h:66
Definition: RefCounted.h:11
Definition: StarSystemGenerator.h:32
Definition: StarSystemGenerator.h:15
Definition: StarSystemGenerator.h:43
Definition: StarSystem.h:28
Definition: SystemBody.h:89
fixed m_volatileGas
Definition: SystemBody.h:120
fixed m_metallicity
Definition: SystemBody.h:116
fixed m_semiMajorAxis
Definition: SystemBody.h:106
std::string m_heightMapFilename
Definition: SystemBody.h:131
fixed m_inclination
Definition: SystemBody.h:111
std::string m_name
Definition: SystemBody.h:96
fixed m_argOfPeriapsis
Definition: SystemBody.h:112
fixed m_eccentricity
Definition: SystemBody.h:107
fixed m_agricultural
Definition: SystemBody.h:126
int m_averageTemp
Definition: SystemBody.h:113
RingStyle m_rings
Definition: SystemBody.h:128
Color m_atmosColor
Definition: SystemBody.h:129
fixed m_rotationalPhaseAtStart
Definition: SystemBody.h:104
fixed m_orbitalOffset
Definition: SystemBody.h:108
fixed m_orbitalPhaseAtStart
Definition: SystemBody.h:109
fixed m_rotationPeriod
Definition: SystemBody.h:103
fixed m_volatileIces
Definition: SystemBody.h:119
void SaveToJson(Json &out)
Definition: SystemBody.cpp:28
SystemBodyData()
Definition: SystemBody.cpp:13
fixed m_life
Definition: SystemBody.h:122
fixed m_axialTilt
Definition: SystemBody.h:110
std::string m_spaceStationType
Definition: SystemBody.h:134
Uint32 m_seed
Definition: SystemBody.h:99
fixed m_population
Definition: SystemBody.h:125
SystemBodyType::BodyType m_type
Definition: SystemBody.h:97
fixed m_aspectRatio
Definition: SystemBody.h:101
unsigned int m_heightMapFractal
Definition: SystemBody.h:132
fixed m_volcanicity
Definition: SystemBody.h:117
fixed m_radius
Definition: SystemBody.h:100
void LoadFromJson(const Json &obj)
Definition: SystemBody.cpp:79
fixed m_humanActivity
Definition: SystemBody.h:105
fixed m_volatileLiquid
Definition: SystemBody.h:118
fixed m_mass
Definition: SystemBody.h:102
fixed m_atmosOxidizing
Definition: SystemBody.h:121
Definition: SystemBody.h:23
BodySuperType
Definition: SystemBody.h:75
@ SUPERTYPE_NONE
Definition: SystemBody.h:76
@ SUPERTYPE_STAR
Definition: SystemBody.h:77
@ SUPERTYPE_ROCKY_PLANET
Definition: SystemBody.h:78
@ SUPERTYPE_STARPORT
Definition: SystemBody.h:80
@ SUPERTYPE_GAS_GIANT
Definition: SystemBody.h:79
BodyType
Definition: SystemBody.h:25
@ TYPE_PLANET_TERRESTRIAL
Definition: SystemBody.h:65
@ TYPE_STAR_K_SUPER_GIANT
Definition: SystemBody.h:44
@ TYPE_STAR_O_WF
Definition: SystemBody.h:59
@ TYPE_STAR_M_GIANT
Definition: SystemBody.h:36
@ TYPE_STAR_G_SUPER_GIANT
Definition: SystemBody.h:45
@ TYPE_STARPORT_ORBITAL
Definition: SystemBody.h:66
@ TYPE_GRAVPOINT
Definition: SystemBody.h:26
@ TYPE_STAR_M
Definition: SystemBody.h:29
@ TYPE_STAR_MAX
Definition: SystemBody.h:71
@ TYPE_PLANET_GAS_GIANT
Definition: SystemBody.h:63
@ TYPE_STAR_SM_BH
Definition: SystemBody.h:62
@ TYPE_MAX
Definition: SystemBody.h:69
@ TYPE_STAR_B_HYPER_GIANT
Definition: SystemBody.h:55
@ TYPE_STAR_M_HYPER_GIANT
Definition: SystemBody.h:50
@ TYPE_STAR_B_GIANT
Definition: SystemBody.h:41
@ TYPE_STAR_F_HYPER_GIANT
Definition: SystemBody.h:53
@ TYPE_STAR_B
Definition: SystemBody.h:34
@ TYPE_STAR_O
Definition: SystemBody.h:35
@ TYPE_STAR_O_SUPER_GIANT
Definition: SystemBody.h:49
@ TYPE_STAR_A_HYPER_GIANT
Definition: SystemBody.h:54
@ TYPE_STAR_M_WF
Definition: SystemBody.h:57
@ TYPE_STAR_G_HYPER_GIANT
Definition: SystemBody.h:52
@ TYPE_STAR_A
Definition: SystemBody.h:33
@ TYPE_STAR_K
Definition: SystemBody.h:30
@ TYPE_STAR_F_SUPER_GIANT
Definition: SystemBody.h:46
@ TYPE_STAR_B_SUPER_GIANT
Definition: SystemBody.h:48
@ TYPE_STAR_A_GIANT
Definition: SystemBody.h:40
@ TYPE_STAR_O_HYPER_GIANT
Definition: SystemBody.h:56
@ TYPE_STAR_MIN
Definition: SystemBody.h:70
@ TYPE_STAR_K_GIANT
Definition: SystemBody.h:37
@ TYPE_STARPORT_SURFACE
Definition: SystemBody.h:67
@ TYPE_STAR_G_GIANT
Definition: SystemBody.h:38
@ TYPE_STAR_F_GIANT
Definition: SystemBody.h:39
@ TYPE_STAR_O_GIANT
Definition: SystemBody.h:42
@ TYPE_STAR_K_HYPER_GIANT
Definition: SystemBody.h:51
@ TYPE_STAR_M_SUPER_GIANT
Definition: SystemBody.h:43
@ TYPE_STAR_S_BH
Definition: SystemBody.h:60
@ TYPE_BROWN_DWARF
Definition: SystemBody.h:27
@ TYPE_STAR_B_WF
Definition: SystemBody.h:58
@ TYPE_STAR_F
Definition: SystemBody.h:32
@ TYPE_STAR_A_SUPER_GIANT
Definition: SystemBody.h:47
@ TYPE_WHITE_DWARF
Definition: SystemBody.h:28
@ TYPE_STAR_G
Definition: SystemBody.h:31
@ TYPE_PLANET_ASTEROID
Definition: SystemBody.h:64
@ TYPE_STAR_IM_BH
Definition: SystemBody.h:61
@ TYPE_MIN
Definition: SystemBody.h:68
Definition: GalaxyEditAPI.h:53
Definition: SystemBody.h:137
double GetEccentricity() const
Definition: SystemBody.h:218
const std::vector< SystemBody * > CollectAllChildren()
Definition: SystemBody.cpp:819
double GetAtmosOxidizing() const
Definition: SystemBody.h:246
const IterationProxy< const std::vector< SystemBody * > > GetChildren() const
Definition: SystemBody.h:156
bool IsJumpable() const
Definition: SystemBody.h:150
double GetAtmRadius() const
Definition: SystemBody.h:284
const Orbit & GetOrbit() const
Definition: SystemBody.h:217
double GetEquatorialRadius() const
Definition: SystemBody.h:180
fixed GetMassInEarths() const
Definition: SystemBody.h:197
fixed GetOrbMinAsFixed() const
Definition: SystemBody.h:222
double GetVolcanicity() const
Definition: SystemBody.h:245
double GetMetallicity() const
Definition: SystemBody.h:237
fixed GetVolcanicityAsFixed() const
Definition: SystemBody.h:244
Uint32 GetSeed() const
Definition: SystemBody.h:234
fixed GetMetallicityAsFixed() const
Definition: SystemBody.h:236
vector3f GetCoefficients(const double radius, const double atmHeight, const double scaleHeight) const
Definition: SystemBody.cpp:293
bool HasAtmosphere() const
Definition: SystemBody.cpp:248
void SetOrbitPlane(const matrix3x3d &orient)
Definition: SystemBody.h:228
BodyType GetType() const
Definition: SystemBody.h:163
double GetAtmSurfacePressure() const
Definition: SystemBody.h:283
double GetVolatileLiquid() const
Definition: SystemBody.h:241
fixed GetInclinationAsFixed() const
Definition: SystemBody.h:226
fixed GetAxialTiltAsFixed() const
Definition: SystemBody.h:215
bool IsCoOrbital() const
Definition: SystemBody.cpp:851
AtmosphereParameters CalcAtmosphereParams() const
Definition: SystemBody.cpp:313
bool IsCoOrbitalWith(const SystemBody *other) const
Definition: SystemBody.cpp:844
const RingStyle & GetRings() const
Definition: SystemBody.h:262
bool IsMoon() const
Definition: SystemBody.h:148
const SystemPath & GetPath() const
Definition: SystemBody.h:144
double GetRotationPeriodInDays() const
Definition: SystemBody.h:206
fixed GetMassAsFixed() const
Definition: SystemBody.h:189
fixed GetSemiMajorAxisAsFixed() const
Definition: SystemBody.h:225
double GetAspectRatio() const
Definition: SystemBody.h:188
double GetLife() const
Definition: SystemBody.h:248
double GetSemiMajorAxis() const
Definition: SystemBody.h:224
SystemBody * GetNearestJumpable(double atTime)
Definition: SystemBody.cpp:940
fixed GetVolatileGasAsFixed() const
Definition: SystemBody.h:238
void GetAtmosphereFlavor(Color *outColor, double *outDensity) const
Definition: SystemBody.h:276
BodySuperType GetSuperType() const
Definition: SystemBody.cpp:379
fixed GetPopulationAsFixed() const
Definition: SystemBody.h:252
double CalcSurfaceGravity() const
Definition: SystemBody.cpp:858
double GetOrbMin() const
Definition: SystemBody.h:220
fixed GetVolatileIcesAsFixed() const
Definition: SystemBody.h:242
double CalcMeanDensity() const
Definition: SystemBody.cpp:878
fixed GetEccentricityAsFixed() const
Definition: SystemBody.h:219
double GetAxialTilt() const
Definition: SystemBody.h:214
Color GetAlbedo() const
Definition: SystemBody.h:267
fixed GetArgOfPeriapsisAsFixed() const
Definition: SystemBody.h:227
bool IsScoopable() const
Definition: SystemBody.cpp:253
double GetVolatileGas() const
Definition: SystemBody.h:239
fixed GetLifeAsFixed() const
Definition: SystemBody.h:247
double GetAtmPressure(double altitude) const
Definition: SystemBody.cpp:196
SystemBody * GetParent() const
Definition: SystemBody.h:145
bool IsRotating() const
Definition: SystemBody.h:204
double GetAtmDensity(double altitude, double pressure) const
Definition: SystemBody.cpp:208
const std::string & GetName() const
Definition: SystemBody.h:160
double GetRotationPeriod() const
Definition: SystemBody.h:208
double GetRotationPhaseAtStart() const
Definition: SystemBody.h:213
bool HasChildren() const
Definition: SystemBody.h:153
unsigned int GetHeightMapFractal() const
Definition: SystemBody.h:232
fixed GetRadiusAsFixed() const
Definition: SystemBody.h:168
double GetAtmSurfaceDensity() const
Definition: SystemBody.h:282
IterationProxy< std::vector< SystemBody * > > GetChildren()
Definition: SystemBody.h:155
double GetMaxChildOrbitalDistance() const
Definition: SystemBody.cpp:832
const char * GetIcon() const
Definition: SystemBody.cpp:654
fixed GetRotationPeriodAsFixed() const
Definition: SystemBody.h:207
std::string GetAstroDescription() const
Definition: SystemBody.cpp:435
bool IsPlanet() const
Definition: SystemBody.cpp:798
double GetAtmAverageTemp(double altitude) const
Definition: SystemBody.cpp:216
double GetPopulation() const
Definition: SystemBody.h:253
Uint32 GetNumChildren() const
Definition: SystemBody.h:154
bool HasRings() const
Definition: SystemBody.h:261
fixed GetOrbMaxAsFixed() const
Definition: SystemBody.h:223
double ComputeDensity(const double radius, const double atmosphereHeight, const double h, const double scaleHeight) const
Definition: SystemBody.cpp:270
double GetMass() const
Definition: SystemBody.h:190
void Dump(FILE *file, const char *indent="") const
Definition: SystemBody.cpp:888
bool IsCustomBody() const
Definition: SystemBody.h:165
const std::string & GetSpaceStationType() const
Definition: SystemBody.h:307
const std::string & GetHeightMapFilename() const
Definition: SystemBody.h:231
StarSystem * GetStarSystem() const
Definition: SystemBody.h:305
double GetVolatileIces() const
Definition: SystemBody.h:243
double GetOrbMax() const
Definition: SystemBody.h:221
int GetAverageTemp() const
Definition: SystemBody.h:230
bool HasRotationPhase() const
Definition: SystemBody.h:212
fixed GetVolatileLiquidAsFixed() const
Definition: SystemBody.h:240
fixed GetAgriculturalAsFixed() const
Definition: SystemBody.h:250
double GetRadius() const
Definition: SystemBody.h:171
double CalcEscapeVelocity() const
Definition: SystemBody.cpp:868
double GetAgricultural() const
Definition: SystemBody.h:251
Definition: SystemPath.h:13
Sint64 v
Definition: fixed.h:239
double ToDouble() const
Definition: fixed.h:192
fixedf< 32 > fixed
Definition: fixed.h:242
Definition: AtmosphereParameters.h:7
Definition: Color.h:66
Definition: RingStyle.h:10
fixed maxRadius
Definition: RingStyle.h:14