9#include "../RefCounted.h"
10#include "../vector3.h"
11#include "../galaxy/SystemPath.h"
17#pragma warning(disable : 4250)
22template <
typename,
typename>
39 void SetFracDef(
const unsigned int index,
const double featureHeightMeters,
const double featureWidthMeters,
const double smallestOctaveMeters = 20.0);
61 template <
typename HeightFractal,
typename ColorFractal>
123template <
typename HeightFractal>
136template <
typename ColorFractal>
149template <
typename HeightFractal,
typename ColorFractal>
162class TerrainHeightFlat;
165class TerrainHeightAsteroid;
166class TerrainHeightAsteroid2;
167class TerrainHeightAsteroid3;
168class TerrainHeightAsteroid4;
169class TerrainHeightBarrenRock;
170class TerrainHeightBarrenRock2;
171class TerrainHeightBarrenRock3;
178class TerrainHeightEllipsoid;
181class TerrainHeightHillsCraters2;
182class TerrainHeightHillsCraters;
183class TerrainHeightHillsDunes;
186class TerrainHeightHillsNormal;
187class TerrainHeightHillsRidged;
188class TerrainHeightHillsRivers;
190class TerrainHeightMapped;
191class TerrainHeightMapped2;
192class TerrainHeightMountainsCraters2;
193class TerrainHeightMountainsCraters;
198class TerrainHeightMountainsNormal;
200class TerrainHeightMountainsRivers;
209class TerrainHeightMountainsRidged;
210class TerrainHeightMountainsRiversVolcano;
212class TerrainHeightMountainsVolcano;
215class TerrainHeightRuggedDesert;
217class TerrainHeightRuggedLava;
222class TerrainHeightWaterSolidCanyons;
223class TerrainHeightWaterSolid;
225class TerrainColorAsteroid;
226class TerrainColorBandedRock;
227class TerrainColorBlack;
228class TerrainColorDeadWithWater;
229class TerrainColorDesert;
234class TerrainColorEarthLike;
235class TerrainColorEarthLikeHeightmapped;
236class TerrainColorGGJupiter;
237class TerrainColorGGNeptune2;
238class TerrainColorGGNeptune;
239class TerrainColorGGSaturn2;
240class TerrainColorGGSaturn;
241class TerrainColorGGUranus;
242class TerrainColorIce;
243class TerrainColorMethane;
244class TerrainColorRock2;
245class TerrainColorRock;
246class TerrainColorWhite;
247class TerrainColorStarBrownDwarf;
248class TerrainColorStarG;
249class TerrainColorStarK;
250class TerrainColorStarM;
251class TerrainColorStarWhiteDwarf;
252class TerrainColorTFGood;
253class TerrainColorTFPoor;
254class TerrainColorVolcanic;
257#pragma warning(default : 4250)
Definition RefCounted.h:11
Definition SystemBody.h:19
Definition SystemPath.h:13
TerrainColorFractal()=delete
TerrainColorFractal(const SystemBody *body)
virtual vector3d GetColor(const vector3d &p, double height, const vector3d &norm) const
virtual const char * GetColorFractalName() const
TerrainGenerator(const SystemBody *body)
Definition Terrain.h:153
TerrainGenerator()=delete
virtual double GetHeight(const vector3d &p) const
TerrainHeightFractal(const SystemBody *body)
TerrainHeightFractal()=delete
virtual const char * GetHeightFractalName() const
vector3d m_darkplantColor[8]
Definition Terrain.h:100
SurfaceEffectFlags
Definition Terrain.h:29
@ EFFECT_LAVA
Definition Terrain.h:30
@ EFFECT_WATER
Definition Terrain.h:31
double m_maxHeightInMeters
Definition Terrain.h:88
double m_invPlanetRadius
Definition Terrain.h:91
double m_planetEarthRadii
Definition Terrain.h:92
const fracdef_t & GetFracDef(const unsigned int index) const
Definition Terrain.h:40
Uint32 GetSurfaceEffects() const
Definition Terrain.h:54
vector3d m_gglightColor[8]
Definition Terrain.h:105
double m_maxHeight
Definition Terrain.h:87
double m_sealevel
Definition Terrain.h:72
virtual ~Terrain()
Definition Terrain.cpp:627
vector3d m_dirtColor[8]
Definition Terrain.h:103
vector3d m_darkrockColor[8]
Definition Terrain.h:97
int m_heightMapSizeX
Definition Terrain.h:83
vector3d m_rockColor[8]
Definition Terrain.h:96
double m_invMaxHeight
Definition Terrain.h:89
vector3d m_darkdirtColor[8]
Definition Terrain.h:104
double m_heightScaling
Definition Terrain.h:81
Uint32 m_surfaceEffects
Definition Terrain.h:76
double m_volcanic
Definition Terrain.h:74
std::unique_ptr< double[]> m_heightMap
Definition Terrain.h:80
double m_minh
Definition Terrain.h:81
Uint32 m_seed
Definition Terrain.h:69
Random m_rand
Definition Terrain.h:70
double m_icyness
Definition Terrain.h:73
virtual vector3d GetColor(const vector3d &p, double height, const vector3d &norm) const =0
vector3d m_ggdarkColor[8]
Definition Terrain.h:106
vector3d m_sandColor[8]
Definition Terrain.h:101
virtual const char * GetHeightFractalName() const =0
vector3d m_greyrockColor[8]
Definition Terrain.h:98
virtual double GetHeight(const vector3d &p) const =0
double m_entropy[12]
Definition Terrain.h:94
static Terrain * InstanceTerrain(const SystemBody *body)
Definition Terrain.cpp:14
vector3d m_darksandColor[8]
Definition Terrain.h:102
void SetFracDef(const unsigned int index, const double featureHeightMeters, const double featureWidthMeters, const double smallestOctaveMeters=20.0)
Definition Terrain.cpp:635
double GetMaxHeight() const
Definition Terrain.h:52
int m_heightMapSizeY
Definition Terrain.h:84
virtual const char * GetColorFractalName() const =0
vector3d m_plantColor[8]
Definition Terrain.h:99
static const Uint32 MAX_FRACDEFS
Definition Terrain.h:110
MinBodyData m_minBody
Definition Terrain.h:120
double m_planetRadius
Definition Terrain.h:90
void DebugDump() const
Definition TerrainDbg.cpp:10
fracdef_t m_fracdef[MAX_FRACDEFS]
Definition Terrain.h:111
double BiCubicInterpolation(const vector3d &p) const
Definition Terrain.cpp:646
double m_radius
Definition Terrain.h:115
std::string m_name
Definition Terrain.h:118
SystemPath m_path
Definition Terrain.h:117
double m_aspectRatio
Definition Terrain.h:116