diff -urN wf-/way.c wf/way.c --- wf-/way.c 2016-01-25 00:00:00.000000000 +0900 +++ wf/way.c 2016-01-26 00:00:00.000000000 +0900 @@ -213,9 +213,12 @@ pos_t p; double r, sec1, t; if((n = sscanf(s, "p=(%lf,%lf,%lf),r=%lf,sec1=%lf,t=%lf", &p.x, &p.y, &p.z, &r, &sec1, &t)) != 6){ - if((n = sscanf(s, "p=(%lf,%lf,%lf)", &p.x, &p.y, &p.z)) != 3) ERR("foramat"); - r = 0; - sec1 = 1; + if((n = sscanf(s, "p=(%lf,%lf,%lf),r=%lf,t=%lf", &p.x, &p.y, &p.z, &r, &t)) != 5){ + if((n = sscanf(s, "p=(%lf,%lf,%lf)", &p.x, &p.y, &p.z)) != 3) ERR("foramat"); + r = 0; + t = 1; + } + sec1 = 3; } d3_set(&ps, p.x-r, p.y-r, p.z-r); d3_set(&pe, p.x+r, p.y+r, p.z+r); diff -urN wf-/wf_ex.c wf/wf_ex.c --- wf-/wf_ex.c 2016-01-25 00:00:00.000000000 +0900 +++ wf/wf_ex.c 2016-01-26 00:00:00.000000000 +0900 @@ -532,6 +532,16 @@ { type_end } }}, .data = { type_cross, (pos_t[]){{-1,0,0},{1,0,0}} } }}; + data_t *fan = &(data_t){ type_op_data_set, &(struct op_data_set){ + .op = { type_arr, (data_t[]){ + { type_zoom_and_slide, (d3_t[]){D3_ALL(4),{0,0,0}} }, + { type_copy_rot, &(struct copy_rot){.n=5, .l=LINE_Y,.step_deg=360.0/5} }, + { type_slide, &(d3_t){0,0,2} }, + { type_rot_way, &(struct rot_way){.l=LINE_Y,.deg_way=WAY_V2(0,360.0/5*20*20, 20,20, 3)} }, + { type_copy_rot, &(struct copy_rot){.n=5,.l=LINE_Y,.step_deg=360.0/5} }, + { type_end } }}, + .data = { type_bar, (pos_t[]){ {0.2,0,0}, D3_X } } }}; + struct{ char *key; data_t *data; @@ -549,6 +559,7 @@ { "-ripple", (data_t[]){ *ripple, { type_end } } }, { "-wave", (data_t[]){ *wave, { type_end } } }, { "-wave2", (data_t[]){ *wave2, { type_end } } }, + { "-fan", (data_t[]){ *fan, { type_end } } }, { NULL, (data_t[]){ { type_end } } } }, *dp = demos;