diff -urN wf-/wf_ex.c wf/wf_ex.c --- wf-/wf_ex.c 2015-12-22 00:00:00.000000000 +0900 +++ wf/wf_ex.c 2015-12-23 00:00:00.000000000 +0900 @@ -258,12 +258,51 @@ .data = &(data_t){ type_cube } }}; + data_t *ship = &(data_t){ type_op_data_set, &(struct op_data_set){ + .op = &(data_t){ type_arr, (data_t[]){ + { type_slide, &(d3_t){-20,20,-10} }, + { type_rot_way, &(struct rot_way){ + .l=LINE_Y, .deg_way={ .n=2, .vs=(double[]){-90,90}, .ts=(double[]){5,5}, .ps=NULL, .dg=3} } }, + { type_copy_rot, &(struct copy_rot){ .n=6, .l=LINE_Y, .init_deg=-45, .step_deg=(45.0-(-45))/(6-1) } }, + { type_copy, &(struct copy){ .n={1,4,1}, .init={0,0,-10}, .step={0,3,0} }}, + { type_end } }}, + .data = &(data_t){ type_cube } + }}; + + data_t *exile = &(data_t){ type_op_data_set, &(struct op_data_set){ + .op = &(data_t){ type_arr, (data_t[]){ + { type_copy_timeshift, &(struct copy_timeshift){ + .n=10, .init_sec=0, .step_sec=-0.3, .init={-20,10,10}, .step={0,1,0} } }, + { type_rot_way, &(struct rot_way){ + .l=LINE_Y, .deg_way={ .n=2, .vs=(double[]){0,360}, .ts=(double[]){2,0}, .ps=NULL, .dg=3} } }, + { type_slide, &(d3_t){0,0,2} }, + { type_rot_way, &(struct rot_way){ + .l=LINE_Y, .deg_way={ .n=2, .vs=(double[]){0,-360}, .ts=(double[]){2,0}, .ps=NULL, .dg=3} } }, + { type_rot, &(struct rot){ .l=LINE_X, .deg=90 } }, + { type_end } }}, + .data = &(data_t){ type_square } + }}; + + data_t *lissajours = &(data_t){ type_op_data_set, &(struct op_data_set){ + .op = &(data_t){ type_arr, (data_t[]){ + { type_copy_timeshift, &(struct copy_timeshift){ + .n=10, .init_sec=0, .step_sec=-0.3, .init=D3_O, .step=D3_O } }, + { type_slide_way, &(struct way){ .n=2, .ps=(pos_t[]){{0,0,-20},{0,0,20}}, .ts=(double[]){5,5}, .vs=NULL, .dg=3} }, + { type_slide_way, &(struct way){ .n=2, .ps=(pos_t[]){{0,-20,0},{0,20,0}}, .ts=(double[]){4.5,4.5}, .vs=NULL, .dg=3} }, + { type_slide_way, &(struct way){ .n=2, .ps=(pos_t[]){{-20,0,0},{20,0,0}}, .ts=(double[]){3,3}, .vs=NULL, .dg=3} }, + { type_rot_way, &(struct rot_way){ + .l={D3_O,D3_I}, .deg_way={ .n=2, .vs=(double[]){0,360*2}, .ts=(double[]){1,1}, .ps=NULL, .dg=3} } }, + { type_end } }}, + .data = &(data_t){ type_cube } + }}; + data.type = type_arr; data.p = (data_t[]){ *axyz, *cross, *cube, *cube3, - *cup, *ferris_wheel, *merry_go_round, + *cup, *ferris_wheel, *merry_go_round, *ship, + *exile, *lissajours, { type_end } }; }