+ case 'c':
+ freecam = !freecam;
+ printf("camera mode: %s\n", freecam ? "free" : "animated");
+ if(!freecam) {
+ orig_cam = cam;
+ } else {
+ cam = orig_cam;
+ }
+ break;
+
+ case 'v':
+ printf("current view\n");
+ printf(" pos: %f %f %f\n", cam.x, cam.y, cam.z);
+ printf(" theta: %f, phi: %f\n", cam.theta, cam.phi);
+ printf(" dist: %f\n", cam.dist);
+ break;
+
+ case 'L':
+ printf("clearing camera keyframes\n");
+ clear_seq_track("cam-x");
+ clear_seq_track("cam-y");
+ clear_seq_track("cam-z");
+ clear_seq_track("cam-theta");
+ clear_seq_track("cam-phi");
+ clear_seq_track("cam-dist");
+ break;
+
+ case 'k':
+ printf("setting camera keyframe for time: %ld\n", anim_time);
+ set_seq_value("cam-x", anim_time, cam.x);
+ set_seq_value("cam-y", anim_time, cam.y);
+ set_seq_value("cam-z", anim_time, cam.z);
+ set_seq_value("cam-theta", anim_time, cam.theta);
+ set_seq_value("cam-phi", anim_time, cam.phi);
+ set_seq_value("cam-dist", anim_time, cam.dist);
+ break;
+
+ case 'x':
+ set_seq_value("xlogo", anim_time, xlogo_alpha < 0.5 ? 1.0 : 0.0);
+ break;
+
+ case 'X':
+ printf("clearing logo keyframes\n");
+ clear_seq_track("xlogo");
+ break;
+