diff -urN wf-/eye.c wf/eye.c --- wf-/eye.c 2016-01-13 00:00:00.000000000 +0900 +++ wf/eye.c 2016-01-22 00:00:00.000000000 +0900 @@ -42,7 +42,7 @@ e->move_deg = 1; e->zoom_rate = 0.1; - e->liss_p = NULL; + e->liss_p = e->liss_t = NULL; e->way_cnt = 0; e->save = opt_str("-eye_save", ac, av, NULL); @@ -60,9 +60,16 @@ &e->p_way.ts[i]); } fclose(fp); - }else if((e->liss_p = opt_str("-eye_liss_p", ac, av, NULL)) != NULL){ - way_liss_init_str(&e->wl_p, e->liss_p); }else{ + if((e->liss_p = opt_str("-eye_liss_p", ac, av, NULL)) != NULL){ + way_liss_init_str(&e->wl_p, e->liss_p); + } + if((e->liss_t = opt_str("-eye_liss_t", ac, av, NULL)) != NULL){ + way_liss_init_str(&e->wl_t, e->liss_t); + } + } + + if(!e->load && !e->liss_p && !e->liss_t){ alloc_way(e, 256); } diff -urN wf-/eye.h wf/eye.h --- wf-/eye.h 2015-12-30 00:00:00.000000000 +0900 +++ wf/eye.h 2016-01-22 00:00:00.000000000 +0900 @@ -18,8 +18,8 @@ char *save, *load; double fps, start_sec, sec; - char *liss_p; - struct way_liss wl_p; + char *liss_p, *liss_t; + struct way_liss wl_p, wl_t; } eye_t; #define EYE_MOVE_MODE_N 4 diff -urN wf-/wf_ex.c wf/wf_ex.c --- wf-/wf_ex.c 2016-01-17 00:00:00.000000000 +0900 +++ wf/wf_ex.c 2016-01-22 00:00:00.000000000 +0900 @@ -18,7 +18,7 @@ double us, sec; if(e->start_sec < 0){ - if(e->load || e->liss_p){ + if(e->load || e->liss_p || e->liss_t){ while(cui_key_get2() == 0) usleep(1000); } e->start_sec = now_sec(); @@ -63,9 +63,11 @@ e->p = e->p_way.ret_p; way_get(&e->t_way, sec); e->t = e->t_way.ret_p; - }else if(e->liss_p){ - way_liss_get(&e->wl_p, sec, &e->p); - e->t = e->wl_p.cen; + }else{ + if(e->liss_p) way_liss_get(&e->wl_p, sec, &e->p); + if(e->liss_t) way_liss_get(&e->wl_t, sec, &e->t); + if(e->liss_p && !e->liss_t) e->t = e->wl_p.cen; + if(e->liss_t && !e->liss_p) e->p = e->wl_t.cen; } us = (1 / e->fps - (sec - e->sec)) * 1000000; if(us > 0) usleep(us); @@ -503,6 +505,20 @@ { type_end } }}, .data = { type_cross, (pos_t[]){{-1,0,10},{1,0,10}} } }}; + data_t *wave2 = &(data_t){ type_op_data_set, &(struct op_data_set){ + .op = { type_arr, (data_t[]){ + { type_zoom_and_slide, (d3_t[]){D3_ALL(0.1),{-20,-20,30}} }, + { type_slide_way, &(struct way)WAY_P2(0,0,-100*0.5, 0,0,-20*0.5, 13,13, 3) }, + { type_copy_timeshift_rot, &(struct copy_timeshift_rot){ + .n=20,.init_sec=-0.1*10,.step_sec=0.1,.l=LINE_Y,.init_deg=-45,.step_deg=90.0/20 }}, + { type_copy_timeshift_rot, &(struct copy_timeshift_rot){ + .n=20,.init_sec=-0.2*10,.step_sec=0.2,.l=LINE_X,.init_deg=-45,.step_deg=90.0/20 }}, + { type_slide_way, &(struct way)WAY_P2(0,0,100, 0,0,20, 13,13, 3) }, + { type_rot_way, &(struct rot_way){.l=LINE_X,.deg_way=WAY_V2(0,360, 3,0, 1)} }, + { type_slide_way, &(struct way)WAY_P2(0,0,0, 0,0,10, 20,20, 3) }, + { type_end } }}, + .data = { type_cross, (pos_t[]){{-1,0,0},{1,0,0}} } }}; + data.type = type_arr; data.p = (data_t[]){ *axyz, @@ -515,7 +531,7 @@ *train, *rail1, *rail2, *matryoshka, *clock, - *ripple, *wave, + *ripple, *wave, *wave2, { type_end } }; }