Physics Simulation & Visualization Tool
0.1
A C++ physics simulation engine with real-time 3D visualization
Loading...
Searching...
No Matches
Metric.h
Go to the documentation of this file.
1
#pragma once
2
3
#include <cstddef>
4
#include <QString>
5
#include <QObject>
6
7
#include "
physics/PhysicsBody.h
"
8
9
enum class
Metric
{
10
PositionX
,
11
PositionY
,
12
PositionZ
,
13
VelocityX
,
14
VelocityY
,
15
VelocityZ
,
16
Temperature
,
17
18
Count
,
// Must be last (just dont have to hard code the count elsewhere)
19
};
20
21
inline
constexpr
std::size_t
kPlottableMetricCount
=
static_cast<
std::size_t
>
(
Metric::Count
);
22
23
inline
QString
metricLabel
(
Metric
metric) {
24
switch
(metric) {
25
case
Metric::PositionX
:
return
QObject::tr(
"Position X"
);
26
case
Metric::PositionY
:
return
QObject::tr(
"Position Y"
);
27
case
Metric::PositionZ
:
return
QObject::tr(
"Position Z"
);
28
case
Metric::VelocityX
:
return
QObject::tr(
"Velocity X"
);
29
case
Metric::VelocityY
:
return
QObject::tr(
"Velocity Y"
);
30
case
Metric::VelocityZ
:
return
QObject::tr(
"Velocity Z"
);
31
case
Metric::Temperature
:
return
QObject::tr(
"Temperature (K)"
);
32
case
Metric::Count
:
return
QObject::tr(
"Invalid Metric"
);
33
}
34
return
QObject::tr(
"Unknown Metric"
);
35
}
36
37
inline
float
objectSnapshotValue
(
Metric
metric,
const
ObjectSnapshot
& s) {
38
switch
(metric) {
39
case
Metric::PositionX
:
return
s.
position
.x;
40
case
Metric::PositionY
:
return
s.
position
.y;
41
case
Metric::PositionZ
:
return
s.
position
.z;
42
case
Metric::VelocityX
:
return
s.
velocity
.x;
43
case
Metric::VelocityY
:
return
s.
velocity
.y;
44
case
Metric::VelocityZ
:
return
s.
velocity
.z;
45
case
Metric::Temperature
:
return
s.
temperature
;
46
case
Metric::Count
:
return
0.0f;
47
}
48
return
0.0f;
49
}
kPlottableMetricCount
constexpr std::size_t kPlottableMetricCount
Definition
Metric.h:21
metricLabel
QString metricLabel(Metric metric)
Definition
Metric.h:23
Metric
Metric
Definition
Metric.h:9
Metric::PositionX
@ PositionX
Metric::VelocityY
@ VelocityY
Metric::PositionY
@ PositionY
Metric::VelocityX
@ VelocityX
Metric::PositionZ
@ PositionZ
Metric::VelocityZ
@ VelocityZ
Metric::Count
@ Count
Metric::Temperature
@ Temperature
objectSnapshotValue
float objectSnapshotValue(Metric metric, const ObjectSnapshot &s)
Definition
Metric.h:37
PhysicsBody.h
ObjectSnapshot::velocity
glm::vec3 velocity
Definition
PhysicsBody.h:38
ObjectSnapshot::temperature
float temperature
Definition
PhysicsBody.h:39
ObjectSnapshot::position
glm::vec3 position
Definition
PhysicsBody.h:37
ObjectSnapshot
Definition
PhysicsBody.h:34
src
ui
graph
Metric.h
Generated by
1.9.8