/* #include #include #include #include #include #include */ /* int main(void) { //init_controls(); dclear(C_WHITE); fe_integer_point point[4]={{{10,0,0},{0,0,0}},{{10,10,0},{0,0,0}},{{10,0,10},{0,0,0}},{{10,10,10},{0,0,0}}}; //FE_face face={&point[0],&point[1],&point[2],1,2}; //FE_face face2={&point[3],&point[1],&point[2],0,2}; while (1) { //FE_new_frame(); dclear(C_WHITE); //reload_fps_displaying(); for (int i=0;i<4;i++) { fe_point_translate(&point[i]); if (point[i].translated.z>0) { dpixel(point[i].translated.x,point[i].translated.y,C_BLACK); } } dupdate(); //FE_draw_face(&face); //FE_draw_face(&face2); //display_fps(100,56); } getkey(); return 1; } */ #include #include #include #include #include #include #include #include #include int main(void) { fe_custom_panic(); //init_controls(); dclear(C_WHITE); //render_integer_point point[4]={{{10,0,0},{0,0,0}},{{10,10,0},{0,0,0}},{{10,0,10},{0,0,0}},{{10,10,10},{0,0,0}}}; //FE_face face={&point[0],&point[1],&point[2],1,2}; //FE_face face2={&point[3],&point[1],&point[2],0,2}; uint32_t color[32] = { 0b11111111111111111111111111111111, 0b11111111111111111111111111111111, 0b11111111111111000000000000000011, 0b11111111111111000000000000000011, 0b11111111111111000000000000000011, 0b11111111111111000000000000000011, 0b11111111111111000000000000000011, 0b11111111111111000000000000000011, 0b11111111111111000000000000000011, 0b11111111111111000000000000000011, 0b11111111111111000000000000000011, 0b11111111111111000000000000000011, 0b11111111111111000000000000000011, 0b11111111111111000000000000000011, 0b11000000000000000000000000000011, 0b11000000000000000000000000000011, 0b11000000000000000000000000000011, 0b11000000000000000000000000000011, 0b11000000000000000000000000000011, 0b11000000000000000000000000000011, 0b11000000000000000000000000000011, 0b11000000000000000000000000000011, 0b11000000000000000000000000000011, 0b11000000000000000000000000000011, 0b11000000000000000000000000000011, 0b11000000000000000000000000000011, 0b11000000000000000000000000000011, 0b11000000000000000000000000000011, 0b11000000000000000000000000000011, 0b11000000000000000000000000000011, 0b11111111111111111111111111111111, 0b11111111111111111111111111111111 }; fe_texture_rich * bmp = fe_texture_new_rich(32, 32, color, 0, 0, 0); //fe_texture_debug(bmp); fe_ivertex v[4]= { { {300,-100,-100}, {0,0,0} }, { {30,100,100}, {0,0,0} }, { {300,-100,100}, {0,0,0} }, { {300,100,-100}, {0,0,0} } }; fe_object object; fe_object_init(&object); fe_object_set_points(&object, &v, 4, 0); fe_triangle triangle = { { fe_object_get_vertex(&object, 0), fe_object_get_vertex(&object, 1), fe_object_get_vertex(&object, 2), bmp, 1, 0 }, { fe_object_get_vertex(&object, 0), fe_object_get_vertex(&object, 1), fe_object_get_vertex(&object, 3), bmp, 0, 0 } }; fe_object_set_faces(&object, &triangle, 2, 0); bool state=1; //fe_object_debug(&object); fe_camera cam = {{0,0,0},{0,0,0},0,0,0}; while (1) { label:; key_event_t event = pollevent(); if (event.type!=KEYEV_NONE) { //ll_log(str); if (event.key == KEY_LEFT) cam.dh -= 0.01; if (event.key == KEY_RIGHT) cam.dh += 0.01; cam.dh = fe_modulo_2pi(cam.dh); if (event.key == KEY_UP) cam.dv += 0.01; if (event.key == KEY_DOWN) cam.dv -= 0.01; cam.dv = fe_modulo_2pi(cam.dv); if (event.key == KEY_8) { cam.pos.x = cam.pos.x + (int32_t)(5*fe_sin(cam.dh)); cam.pos.y = cam.pos.y + (int32_t)(5*fe_cos(cam.dh)); } if (event.key == KEY_2) { cam.pos.x = cam.pos.x + (int32_t)(5*fe_sin(cam.dh+pi)); cam.pos.y = cam.pos.y + (int32_t)(5*fe_cos(cam.dh+pi)); } if (event.key == KEY_6) { cam.pos.x = cam.pos.x + (int32_t)(5*fe_sin(cam.dh+pi_sur_2)); cam.pos.y = cam.pos.y + (int32_t)(5*fe_cos(cam.dh+pi_sur_2)); } if (event.key == KEY_4) { cam.pos.x = cam.pos.x + (int32_t)(5*fe_sin(cam.dh-pi_sur_2)); cam.pos.y = cam.pos.y + (int32_t)(5*fe_cos(cam.dh-pi_sur_2)); } cam.dv = fe_modulo_2pi(cam.dv); if (event.key == KEY_EXIT) break; if (event.key==KEY_F1 && event.type==KEYEV_DOWN) state = !state; goto label; } fe_view_set(&cam); fe_object_display(&object); char str[1000]; /* sprintf(str, "S1 %d %d %d", fe_object_get_vertex(&object, 0)->x, fe_object_get_vertex(&object, 0)->y, fe_object_get_vertex(&object, 0)->z); fe_log(str); sprintf(str, "S2 %d %d %d", fe_object_get_vertex(&object, 1)->x, fe_object_get_vertex(&object, 1)->y, fe_object_get_vertex(&object, 1)->z); fe_log(str); sprintf(str, "S3 %d %d %d", fe_object_get_vertex(&object, 2)->x, fe_object_get_vertex(&object, 2)->y, fe_object_get_vertex(&object, 2)->z); */ sprintf(str, "Camera Settings :\n>> x %d; y %d; z %d\n>> dh %d; dv %d", cam.pos.x, cam.pos.y, cam.pos.z, (int)(cam.dh*180/pi), (int)(cam.dv*180/pi) ); ll_log(str); if (state) { fe_display(1); } else { fe_update(1); ll_display_log(); } } return 1; }