22 for(
unsigned int i = 0; i <
num_beams; ++i)
31 double near_plane = 0.01;
40 for(
unsigned int i = 0; i < model.
size(); ++i)
41 t_vertices[i] = pose * model[i];
45 for(
unsigned int i = 0; i < model.
size(); ++i)
47 unsigned int j = (i + 1) % model.
size();
52 if (p1->
y < near_plane)
55 if (p2->
y < near_plane)
58 double r = (near_plane - p1->
y) / (p2->
y - p1->
y);
59 p1_temp.
x = p1->
x + r * (p2->
x - p1->
x);
60 p1_temp.
y = near_plane;
65 if (p2->
y < near_plane)
67 double r = (near_plane - p2->
y) / (p1->
y - p2->
y);
68 p2_temp.
x = p2->
x + r * (p1->
x - p2->
x);
69 p2_temp.
y = near_plane;
79 if (i2 < i1 || i2 < 0 || i1 >= nbeams)
87 double t = p1->x * s.
y - p1->y * s.
x;
89 for(
int i_beam = i1; i_beam <= i2; ++i_beam)
94 double d =
t / (r.
x * s.
y - r.
y * s.
x);
96 double& depth_old = ranges[i_beam];
97 if (d > 0 && (d < depth_old || depth_old == 0))
100 identifiers[i_beam] = identifier;