9 #include "../RefCounted.h"
10 #include "../vector3.h"
11 #include "../galaxy/SystemPath.h"
17 #pragma warning(disable : 4250)
22 template <
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>
123 template <
typename HeightFractal>
136 template <
typename ColorFractal>
149 template <
typename HeightFractal,
typename ColorFractal>
162 class TerrainHeightFlat;
165 class TerrainHeightAsteroid;
166 class TerrainHeightAsteroid2;
167 class TerrainHeightAsteroid3;
168 class TerrainHeightAsteroid4;
169 class TerrainHeightBarrenRock;
170 class TerrainHeightBarrenRock2;
171 class TerrainHeightBarrenRock3;
178 class TerrainHeightEllipsoid;
181 class TerrainHeightHillsCraters2;
182 class TerrainHeightHillsCraters;
183 class TerrainHeightHillsDunes;
186 class TerrainHeightHillsNormal;
187 class TerrainHeightHillsRidged;
188 class TerrainHeightHillsRivers;
190 class TerrainHeightMapped;
191 class TerrainHeightMapped2;
192 class TerrainHeightMountainsCraters2;
193 class TerrainHeightMountainsCraters;
198 class TerrainHeightMountainsNormal;
200 class TerrainHeightMountainsRivers;
209 class TerrainHeightMountainsRidged;
210 class TerrainHeightMountainsRiversVolcano;
212 class TerrainHeightMountainsVolcano;
215 class TerrainHeightRuggedDesert;
217 class TerrainHeightRuggedLava;
222 class TerrainHeightWaterSolidCanyons;
223 class TerrainHeightWaterSolid;
225 class TerrainColorAsteroid;
226 class TerrainColorBandedRock;
227 class TerrainColorBlack;
228 class TerrainColorDeadWithWater;
229 class TerrainColorDesert;
234 class TerrainColorEarthLike;
235 class TerrainColorEarthLikeHeightmapped;
236 class TerrainColorGGJupiter;
237 class TerrainColorGGNeptune2;
238 class TerrainColorGGNeptune;
239 class TerrainColorGGSaturn2;
240 class TerrainColorGGSaturn;
241 class TerrainColorGGUranus;
242 class TerrainColorIce;
243 class TerrainColorMethane;
244 class TerrainColorRock2;
245 class TerrainColorRock;
246 class TerrainColorWhite;
247 class TerrainColorStarBrownDwarf;
248 class TerrainColorStarG;
249 class TerrainColorStarK;
250 class TerrainColorStarM;
251 class TerrainColorStarWhiteDwarf;
252 class TerrainColorTFGood;
253 class TerrainColorTFPoor;
254 class TerrainColorVolcanic;
257 #pragma warning(default : 4250)
Definition: RefCounted.h:11
Definition: SystemBody.h:19
Definition: SystemPath.h:13
Definition: Terrain.h:137
TerrainColorFractal()=delete
TerrainColorFractal(const SystemBody *body)
virtual vector3d GetColor(const vector3d &p, double height, const vector3d &norm) const
virtual const char * GetColorFractalName() const
Definition: Terrain.h:150
TerrainGenerator(const SystemBody *body)
Definition: Terrain.h:153
TerrainGenerator()=delete
Definition: Terrain.h:124
virtual double GetHeight(const vector3d &p) const
virtual const char * GetHeightFractalName() const
TerrainHeightFractal(const SystemBody *body)
TerrainHeightFractal()=delete
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
Terrain(const SystemBody *body)
Definition: Terrain.cpp:383
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
virtual const char * GetHeightFractalName() const =0
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
const fracdef_t & GetFracDef(const unsigned int index) const
Definition: Terrain.h:40
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
virtual const char * GetColorFractalName() const =0
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
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
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
Definition: Terrain.h:113
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
MinBodyData(const SystemBody *body)
Definition: Terrain.cpp:699