54 tid = readSSM_time(
odm_gl_sid, (
char *)&odm1, time, &time1);
55 tid2 = readSSM(
odm_gl_sid, (
char *)&odm2, &time2, tid + 1);
60 tid = readSSM(
odm_gl_sid, (
char *)&odm1, &time1, tid - 1);
62 if (fabs(time2 - time1) < 0.000001)
64 if (fabs(time2 - time1) > 0.03)
69 rate = (time - time1) / (time2 - time1);
70 *x = odm1.x + (odm2.x - odm1.x) * rate;
71 *y = odm1.y + (odm2.y - odm1.y) * rate;
72 while (odm2.theta - odm1.theta < -M_PI)
73 odm2.theta += 2.0 * M_PI;
74 while (odm2.theta - odm1.theta > M_PI)
75 odm2.theta -= 2.0 * M_PI;
76 *theta = odm1.theta + (odm2.theta - odm1.theta) * rate;
77 while (odm2.theta - odm1.theta < -M_PI)
78 odm2.theta += 2.0 * M_PI;
79 while (odm2.theta - odm1.theta > M_PI)
80 odm2.theta -= 2.0 * M_PI;
93 tid = readSSM_time(
odm_bs_sid, (
char *)&odm1, time, &time1);
94 tid2 = readSSM(
odm_bs_sid, (
char *)&odm2, &time2, tid + 1);
99 tid = readSSM(
odm_bs_sid, (
char *)&odm1, &time1, tid - 1);
101 if (fabs(time2 - time1) < 0.000001)
103 if (fabs(time2 - time1) > 0.03)
108 rate = (time - time1) / (time2 - time1);
109 *x = odm1.x + (odm2.x - odm1.x) * rate;
110 *y = odm1.y + (odm2.y - odm1.y) * rate;
111 while (odm2.theta - odm1.theta < -M_PI)
112 odm2.theta += 2.0 * M_PI;
113 while (odm2.theta - odm1.theta > M_PI)
114 odm2.theta -= 2.0 * M_PI;
115 *theta = odm1.theta + (odm2.theta - odm1.theta) * rate;
116 while (odm2.theta - odm1.theta < -M_PI)
117 odm2.theta += 2.0 * M_PI;
118 while (odm2.theta - odm1.theta > M_PI)
119 odm2.theta -= 2.0 * M_PI;
131 tid = readSSM(
odm_gl_sid, (
char *)&odm1, &time1, -1);
148 tid = readSSM(
odm_bs_sid, (
char *)&odm1, &time1, -1);
166 tid = readSSM(
odm_bs_sid, (
char *)&odm1, &time1, -1);
175 double cx, cy, ctheta;
179 dist = sqrt((cx - x) * (cx - x) + (cy - y) * (cy - y));
188 double cx, cy, ctheta;