+static void xlogo()
+{
+ glPushMatrix();
+
+ glPopMatrix();
+}
+
+static void update_anim(long tmsec)
+{
+ static float beam_start_time;
+ static float beam_stop_interval;
+
+ float tsec = (float)tmsec / 1000.0;
+ float tanim = tsec * anim_speed;
+
+ if(state == ST_CAM_WAIT) {
+ if(beam_angle >= BEAM_START_ANGLE && prev_beam_angle < BEAM_START_ANGLE) {
+ state = ST_CAM_STOP;
+ printf("func: %s\n", __func__);
+ printf("state from wait to stop (ba: %f)\n", beam_angle);
+ beam_start_time = tmsec;
+ beam_stop_interval = beam_angle / beam_speed; // 400 / beam_speed;
+ printf(" stop interval: %f\n", beam_stop_interval);
+ }
+ }
+ if(state == ST_CAM_STOP) {
+ float t = smoothstep(beam_start_time, beam_start_time + beam_stop_interval, tmsec);
+ prev_beam_angle = beam_angle;
+ beam_angle = BEAM_START_ANGLE + (BEAM_STOP_ANGLE - BEAM_START_ANGLE) * t;
+
+ if(t >= 1) {
+ printf("state from stop to xlogo\n");
+ state = ST_XLOGO;
+ }
+ } else if(state == ST_XLOGO) {
+
+ } else {
+ prev_beam_angle = beam_angle;
+ beam_angle = fmod(tanim * beam_speed * 360, 360.0);
+ }
+}
+