Antkeeper
0.0.1
Main Page
Namespaces
Namespace List
Namespace Members
All
a
b
c
d
e
f
g
h
i
j
k
l
m
n
o
p
q
r
s
t
u
v
w
x
y
z
Functions
a
b
c
d
e
f
g
h
i
l
m
n
o
p
q
r
s
t
u
v
w
x
Variables
a
b
c
d
e
f
g
h
i
j
k
l
m
n
o
p
r
s
t
u
v
w
x
y
z
Typedefs
b
c
d
f
i
k
l
m
o
p
q
r
s
u
v
Enumerations
a
b
c
d
f
g
h
i
l
m
p
r
s
t
v
Enumerator
a
b
c
d
g
l
n
p
r
s
t
u
Classes
Class List
Class Index
Class Hierarchy
Class Members
All
a
b
c
d
e
f
g
h
i
k
l
m
n
o
p
q
r
s
t
u
v
w
x
y
z
~
Functions
a
b
c
d
e
f
g
h
i
k
l
m
n
o
p
r
s
t
u
v
w
x
y
z
~
Variables
a
b
c
d
e
f
g
h
i
k
l
m
n
o
p
r
s
t
u
v
w
x
y
z
Typedefs
a
b
c
d
e
f
i
k
m
n
p
q
r
s
t
u
v
Related Functions
a
b
f
g
i
o
p
s
w
Files
File List
File Members
All
_
a
b
c
d
e
g
h
j
l
m
o
r
s
u
v
w
Functions
_
a
c
d
e
g
h
l
m
o
r
s
u
Variables
Typedefs
Enumerations
Enumerator
Macros
•
All
Classes
Namespaces
Files
Functions
Variables
Typedefs
Enumerations
Enumerator
Friends
Macros
src
game
systems
blackbody-system.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_BLACKBODY_SYSTEM_HPP
21
#define ANTKEEPER_GAME_BLACKBODY_SYSTEM_HPP
22
23
#include "
game/systems/updatable-system.hpp
"
24
#include <
engine/entity/id.hpp
>
25
#include <
engine/math/vector.hpp
>
26
#include <
engine/math/matrix.hpp
>
27
#include "
game/components/blackbody-component.hpp
"
28
#include <vector>
29
33
class
blackbody_system
:
34
public
updatable_system
35
{
36
public
:
37
explicit
blackbody_system
(
entity::registry
&
registry
);
38
~blackbody_system
();
39
40
void
update
(
float
t,
float
dt)
override
;
41
42
private
:
43
void
update_blackbody(
entity::id
entity_id);
44
45
void
on_blackbody_construct(
entity::registry
&
registry
,
entity::id
entity_id);
46
void
on_blackbody_update(
entity::registry
&
registry
,
entity::id
entity_id);
47
48
std::vector<double> m_visible_wavelengths_nm;
49
};
50
51
52
#endif
// ANTKEEPER_GAME_BLACKBODY_SYSTEM_HPP
blackbody-component.hpp
blackbody_system
Calculates the color and luminance of blackbody radiators.
Definition:
blackbody-system.hpp:35
blackbody_system::update
void update(float t, float dt) override
Perform's a system's update() function.
Definition:
blackbody-system.cpp:45
blackbody_system::~blackbody_system
~blackbody_system()
Definition:
blackbody-system.cpp:39
blackbody_system::blackbody_system
blackbody_system(entity::registry ®istry)
Definition:
blackbody-system.cpp:28
updatable_system
Abstract base class for updatable systems.
Definition:
updatable-system.hpp:30
updatable_system::registry
entity::registry & registry
Registry on which the system operate.
Definition:
updatable-system.hpp:49
id.hpp
matrix.hpp
entity::registry
entt::registry registry
Component registry type.
Definition:
registry.hpp:28
entity::id
entt::entity id
Entity ID type.
Definition:
id.hpp:28
updatable-system.hpp
vector.hpp