Antkeeper  0.0.1
ant-eyes-gene.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_ANT_EYES_GENE_HPP
21 #define ANTKEEPER_GAME_ANT_EYES_GENE_HPP
22 
24 #include <engine/render/model.hpp>
25 #include <cstdint>
26 #include <memory>
27 
34 {
36  bool present{false};
37 
39  std::uint32_t ommatidia_count{0};
40 
42  float length{0.0f};
43 
45  float width{0.0f};
46 
48  float height{0.0f};
49 
51  std::shared_ptr<render::model> model;
52 };
53 
56 
57 template <>
58 inline constexpr ant_gene_type ant_eyes_gene::type() const noexcept
59 {
60  return ant_gene_type::eyes;
61 }
62 
63 #endif // ANTKEEPER_GAME_ANT_EYES_GENE_HPP
ant_gene_type
Ant gene types.
Ant eyes phene.
std::shared_ptr< render::model > model
3D model of the eyes, if present.
std::uint32_t ommatidia_count
Number of ommatidia.
float length
Eye length, in mesosomal lengths.
float height
Eye height, in mesosomal lengths.
float width
Eye width, in mesosomal lengths.
bool present
Indicates whether eyes are present.
Ant gene with caste-specific phenes.
Definition: ant-gene.hpp:50
constexpr ant_gene_type type() const noexcept override
Returns the ant gene type.