void start_fdf(t_data *data, t_fic *tf) { int i; int j; t_mesh *mesh; double min_z; double max_z; double z; data->tf = tf; if (tf->nb_columns < tf->nb_rows) data->ratio_init_cam = tf->nb_rows * 3; else data->ratio_init_cam = tf->nb_columns * 3; data->ratio_cam = data->ratio_init_cam; data->step_cam = data->ratio_init_cam / 5; data->cam = set_cam(zero_vector3(), zero_vector3()); data->cam->position = set_vector3(0, 0 , data->ratio_cam); // data->cam->position = set_vector3(0, 0, 0); data->cam->target = set_vector3(0, 0, 0); mesh = malloc(sizeof(t_mesh)); data->scene_pos = set_vector3(0, 0, 0); data->scene_rot = set_vector3(0.5, 0.5, 0.5); data->view_matrix = malloc(sizeof(t_matrix)); data->projection_matrix= malloc(sizeof(t_matrix)); data->world_matrix = malloc(sizeof(t_matrix)); data->transform_matrix = malloc(sizeof(t_matrix)); data->put_in_canvas = true; //printf("nbrow : %llu, nbcol : %llu\n",tf->nb_rows, tf->nb_columns); min_z = 0; max_z = 0; for (i = 0; i < tf->nb_rows; i++) { for (j = 0; j < tf->nb_columns; j++) { tf->tvect[i][j].x *= -1; z = tf->tvect[i][j].z; if (min_z > z) min_z = z; if (max_z < z) max_z = z; } } //printf("Z : min = %le, max = %le\n",min_z,max_z); data->coef_elev = 2 / (max_z - min_z); data->coef_init_elev = data->coef_elev; data->step_elev = data->coef_elev / 10; //data->tf->min_elev = 0; //data->tf->max_elev = 10; //fdf_bline_color(data, 0, 0,700, 700, 0, 10); //return; // data->anime = 0; render_fdf(data); print_fdf(data); }
void init_env(t_env *e) { e->p.x = -0.5; e->p.y = -0.5; e->p.z = 4.0; set_cam(e); set_screen(e); e->ray.origin = e->cam; }
void print_my_cube(t_data *data) { float center_x; float center_y; t_meshes *my_meshes; //printf("zzz\n"); center_x = (float) data->canvas_width / 2; center_y = (float) data->canvas_height / 2; // my_meshes = malloc(sizeof(t_meshes)); my_meshes = new_meshes(1); data->my_meshes = my_meshes; my_meshes->m[0] = new_cube("Mon Cube"); data->cam = set_cam(zero_vector3(), zero_vector3()); data->cam->position = set_vector3(0, 0 ,10); data->cam->target = set_vector3(0, 0 ,0); my_meshes->m[0]->rotation.x += 0.01; my_meshes->m[0]->rotation.y += 0.01; data->anime = 1; //printf("\n"); // render(data, arr_mesh); // drawing_loop(data, my_meshes); }
t_data *get_cam(void) { return (set_cam(NULL, 0)); }