Antkeeper  0.0.1
ecoregion.hpp
Go to the documentation of this file.
1 /*
2  * Copyright (C) 2023 Christopher J. Howard
3  *
4  * This file is part of Antkeeper source code.
5  *
6  * Antkeeper source code is free software: you can redistribute it and/or modify
7  * it under the terms of the GNU General Public License as published by
8  * the Free Software Foundation, either version 3 of the License, or
9  * (at your option) any later version.
10  *
11  * Antkeeper source code is distributed in the hope that it will be useful,
12  * but WITHOUT ANY WARRANTY; without even the implied warranty of
13  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14  * GNU General Public License for more details.
15  *
16  * You should have received a copy of the GNU General Public License
17  * along with Antkeeper source code. If not, see <http://www.gnu.org/licenses/>.
18  */
19 
20 #ifndef ANTKEEPER_GAME_ECOREGION_HPP
21 #define ANTKEEPER_GAME_ECOREGION_HPP
22 
23 #include <engine/math/vector.hpp>
26 #include <string>
27 #include <random>
28 #include <memory>
29 
33 struct ecoregion
34 {
36  std::string name;
37 
39  float elevation;
40 
42  float latitude;
43 
45  float longitude;
46 
48  std::shared_ptr<render::material> terrain_material;
49 
52 
54  std::shared_ptr<render::material> horizon_material;
55 
57  std::vector<ant_gene_pool> gene_pools;
58 
60  std::discrete_distribution<std::size_t> gene_pool_distribution;
61 };
62 
63 
64 #endif // ANTKEEPER_GAME_ECOREGION_HPP
std::string name
Ecoregion name.
Definition: ecoregion.hpp:36
std::shared_ptr< render::material > horizon_material
Horizon material.
Definition: ecoregion.hpp:54
float latitude
Latitude, in radians.
Definition: ecoregion.hpp:42
std::discrete_distribution< std::size_t > gene_pool_distribution
Discrete probability distribution of gene pools.
Definition: ecoregion.hpp:60
math::fvec3 terrain_albedo
Terrain albedo.
Definition: ecoregion.hpp:51
std::shared_ptr< render::material > terrain_material
Terrain material.
Definition: ecoregion.hpp:48
float elevation
Elevation, in meters.
Definition: ecoregion.hpp:39
float longitude
Longitude, in radians.
Definition: ecoregion.hpp:45
std::vector< ant_gene_pool > gene_pools
Array of gene pools.
Definition: ecoregion.hpp:57
n-dimensional vector.
Definition: vector.hpp:44