22 #include <fvmodels/relative_position/back_projection.h>
26 namespace firevision {
42 BackProjectionPositionModel::BackProjectionPositionModel(
ProjectiveCam &projective_cam,
43 float ball_circumference):
44 __projective_cam(projective_cam),
45 __ball_circumference(ball_circumference)
47 __ball_radius = __ball_circumference / ( 2.0 * M_PI );
49 __world_x = __world_y = __bearing = __slope = __distance = 0.f;
50 __cirt_center.
x = __cirt_center.
y = 0.0f;
73 __cam_position.
roll = roll;
74 __cam_position.
pitch = -tilt;
75 __cam_position.
yaw = pan;
86 pan = __cam_position.
yaw;
87 tilt = -__cam_position.
pitch;
88 roll = __cam_position.
roll;
93 __cam_position.
x = rel_x;
94 __cam_position.
y = rel_y;
95 __cam_position.
z = height;
100 height = __cam_position.
z;
101 rel_x = __cam_position.
x;
102 rel_y = __cam_position.
y;
111 __cam_position.
pitch,
120 __world_x = wld_pt.
x;
121 __world_y = wld_pt.
y;
132 __bearing = -atan2f(_ball_y, __world_x);
134 __bearing = atan2f(__world_y, __world_x);
137 __distance = sqrt(__world_x * __world_x + __world_y * __world_y);
138 __slope = -atan2f(__cam_position.
z, __distance);