Merge branch 'ahmed' into 'main'

This commit is contained in:
Nguyen Quy Anh
2026-05-08 11:04:20 +02:00
parent f74fbe46d7
commit ae1c64af05
10 changed files with 1194 additions and 157 deletions
+21 -10
View File
@@ -1,36 +1,47 @@
#pragma once
#include "constants.hpp"
#include "vector2d.hpp"
// For visual simulation
// For visual simulation.
// Black pedestrians move from left to right;
// White pedestrians move from right to left.
enum Color { BLACK, WHITE };
struct Pedestrian {
Color color;
// $\vec{v}_{\alpha}(t)$
Vector2d curr_vel; // v_alpha (actual, ≤ v_max)
// $\vec{w}_{\alpha}$
Vector2d w; // w_alpha (preferred, integrates force)
// $\vec{r}_\alpha(t)$
Vector2d curr_pos;
// $\vec{e}_{\alpha}(t)$
Vector2d e; // desired direction vector
// $v_{\alpha}^{max} = 1.3 v^{0}_{\alpha}$
double v_max;
// $v_\alpha^0$
double desired_v0;
// $\vec{r}^0_\alpha$
Vector2d destination;
// social force
Vector2d f_i;
Pedestrian()
: color(WHITE), curr_vel(0.0, 0.0), w(0.0, 0.0), curr_pos(0.0, 0.0),
e(0.0, 0.0), v_max(0.0), desired_v0(0.0), destination(0.0, 0.0),
f_i(0.0, 0.0) {}
// $s_\beta^2 = (v_\beta \Delta t)^2$
double s_b_sq;
Pedestrian(Color clr, Vector2d c_v, Vector2d c_p, Vector2d e, double v_max,
double desired_v0, Vector2d d, Vector2d f)
: color(clr), curr_vel(c_v), w(c_v), // initialize w = v at t=0
curr_pos(c_p), e(e), v_max(v_max), desired_v0(desired_v0),
destination(d), f_i(f) {}
// $s_\beta \vec{e}_\beta = v_{\beta} \Delta t \vec{e}_{\beta}$
Vector2d s_b_e_b;
Pedestrian() : color(WHITE), curr_vel(0.0, 0.0), w(0.0, 0.0), curr_pos(0.0, 0.0), e(0.0, 0.0), v_max(0.0), desired_v0(0.0), destination(0.0, 0.0), f_i(0.0, 0.0), s_b_sq(0.0), s_b_e_b(0.0, 0.0) {}
Pedestrian(Color clr, Vector2d c_v, Vector2d c_p, Vector2d e, double v_max, double desired_v0, Vector2d d, Vector2d f) : color(clr), curr_vel(c_v), w(c_v), curr_pos(c_p), e(e), v_max(v_max), desired_v0(desired_v0), destination(d), f_i(f), s_b_sq(c_v.dot(c_v) * DELTA_T_SQ), s_b_e_b(e * c_v.norm() * DELTA_T) {}
};