VIPRA Documentation
Loading...
Searching...
No Matches
calm_model_types.hpp
1#pragma once
2
3#include "vipra/geometry/line.hpp"
4#include "vipra/types/float.hpp"
5#include "vipra/types/size.hpp"
6
7namespace CALM {
8enum RaceStatus { NO_RACE, WAIT };
9
10struct ConfigData {
11 VIPRA::f_pnt meanMass;
12 VIPRA::f_pnt massStdDev;
13 VIPRA::f_pnt meanReactionTime;
14 VIPRA::f_pnt reactionTimeStdDev;
15 VIPRA::f_pnt meanMaxSpeed;
16 VIPRA::f_pnt maxSpeedStdDev;
17 VIPRA::f_pnt meanShoulderLen;
18 VIPRA::f_pnt shoulderLenStdDev;
19 VIPRA::f_pnt collisionRange;
20 VIPRA::f_pnt frictionCoef;
21 VIPRA::size randomSeed;
22};
23
24struct ModelData {
25 std::vector<VIPRA::f_pnt> masses;
26 std::vector<VIPRA::f_pnt> reactionTimes;
27 std::vector<VIPRA::f_pnt> maxSpeeds;
28 std::vector<VIPRA::f_pnt> shoulderLens;
29 std::vector<VIPRA::f_pnt> betas;
30 std::vector<VIPRA::f_pnt> nearestDists;
31 std::vector<VIPRA::Geometry::Line> shoulders;
32
33 [[nodiscard]] auto size() const noexcept -> size_t { return masses.size(); }
34
35 void resize(size_t size)
36 {
37 masses.resize(size);
38 reactionTimes.resize(size);
39 maxSpeeds.resize(size);
40 shoulderLens.resize(size);
41 betas.resize(size);
42 nearestDists.resize(size);
43 shoulders.resize(size);
44 }
45};
46} // namespace CALM
Definition calm_model_types.hpp:10
Definition calm_model_types.hpp:24