WIP: Enfin du code clair et qui marche. (C'était si simple ?)
This commit is contained in:
parent
e509dfb6b2
commit
36ecfb7041
|
@ -27,8 +27,9 @@
|
|||
#include <stdbool.h>
|
||||
#include <GL/glu.h>
|
||||
|
||||
void write_space_ridges (long x, long y, long z);
|
||||
void write_marks_along_space_ridges (long x, long y, long z);
|
||||
void write_space_ridges (long offset_vertex, long offset_lines, long x, long y, long z);
|
||||
|
||||
void write_space_faces_grids (long offset_vertex, long offset_lines, long x, long y, long z);
|
||||
|
||||
/*
|
||||
* Writes grid lines intersections to vertex and color buffers
|
||||
|
|
|
@ -872,7 +872,7 @@ void __attribute__((optimize("no-unroll-loops"))) main_test_graphics (void)
|
|||
int rand(void);
|
||||
void srand(unsigned int seed); // printf ("Valeur max : %d\n", RAND_MAX); min + rand() % (max+1 - min);
|
||||
|
||||
int arbitrary = 40;
|
||||
int arbitrary = 13;
|
||||
int space_X = 1 + rand() % arbitrary,
|
||||
space_Y = 1 + rand() % arbitrary,
|
||||
space_Z = 1 + rand() % arbitrary;
|
||||
|
@ -888,17 +888,11 @@ void __attribute__((optimize("no-unroll-loops"))) main_test_graphics (void)
|
|||
|
||||
show_user_choices(arrows, arrows_nb, space_X, space_Y, space_Z, pref_show_grids, 0, 0);
|
||||
|
||||
write_space_ridges (space_X, space_Y, space_Z);
|
||||
write_marks_along_space_ridges (space_X, space_Y, space_Z);
|
||||
long offset_vertex = 0, offset_lines = 0;
|
||||
write_space_ridges (offset_vertex, offset_lines, space_X, space_Y, space_Z);
|
||||
|
||||
/* GRID */
|
||||
/* grid_write_intersections (space_X, space_Y, space_Z); */
|
||||
/* if (pref_show_grids % 2 == 0) grid_write_x (space_X, space_Y, space_Z); */
|
||||
/* if (pref_show_grids % 3 == 0) grid_write_y (space_X, space_Y, space_Z); */
|
||||
/* if (pref_show_grids % 5 == 0) grid_write_z (space_X, space_Y, space_Z); */
|
||||
/* if (pref_show_grids > 0) grid_write_ridges (space_X, space_Y, space_Z); */
|
||||
|
||||
/* grid_write_marks (space_X, space_Y, space_Z); */
|
||||
offset_vertex = 8, offset_lines = 12;
|
||||
write_space_faces_grids (offset_vertex, offset_lines, space_X, space_Y, space_Z);
|
||||
|
||||
/* ARROWS */
|
||||
/* NB The 12 vertices required to draw 6 arrows in each cube
|
||||
|
|
|
@ -25,7 +25,7 @@
|
|||
#include "../../include/base.h"
|
||||
#include "../../include/graphics.h"
|
||||
|
||||
void write_space_ridges (long x, long y, long z)
|
||||
void write_space_ridges (long offset_vertex, long offset_lines, long x, long y, long z)
|
||||
{
|
||||
float max = fmax(x, y); max = fmax(max, z);
|
||||
|
||||
|
@ -50,78 +50,34 @@ void write_space_ridges (long x, long y, long z)
|
|||
graphics_write_line ( 2, 6); graphics_write_line ( 3, 6);
|
||||
}
|
||||
|
||||
void write_marks_along_space_ridges (long x, long y, long z)
|
||||
void write_space_faces_grids (long offset_vertex, long offset_lines, long x, long y, long z)
|
||||
{
|
||||
float i, j, k, vx, vy, vz, max = fmax(x, y);
|
||||
max = fmax(max, z);
|
||||
|
||||
for (i = 0; i <= x; i++)
|
||||
for (j = 0; j <= y; j++)
|
||||
for (k = 0; k <= z; k++){
|
||||
for (i = 1; i < x; i++) {
|
||||
|
||||
vx = (2 * i / x - 1) * x / max;
|
||||
vy = (2 * j / y - 1) * y / max;
|
||||
vz = (2 * k / z - 1) * z / max;
|
||||
|
||||
if (
|
||||
(i == 0 && j == 0 && k > 0 && k < z)
|
||||
|| (i == 0 && j == y && k > 0 && k < z)
|
||||
|| (i == x && j == 0 && k > 0 && k < z)
|
||||
|| (i == x && j == y && k > 0 && k < z)
|
||||
|| (i == 0 && k == 0 && j > 0 && j < y)
|
||||
|| (i == 0 && k == z && j > 0 && j < y)
|
||||
|| (i == x && k == 0 && j > 0 && j < y)
|
||||
|| (i == x && k == z && j > 0 && j < y)
|
||||
|| (j == 0 && k == 0 && i > 0 && i < x)
|
||||
|| (j == 0 && k == z && i > 0 && i < x)
|
||||
|| (j == y && k == 0 && i > 0 && i < x)
|
||||
|| (j == y && k == z && i > 0 && i < x)
|
||||
)
|
||||
vx = (2 * i / x - 1) * x / max; vy = - y / max; vz = - z / max;
|
||||
graphics_write_vertex (vx, vy, vz);
|
||||
};
|
||||
|
||||
int vertex_offset = 8;
|
||||
vx = (2 * i / x - 1) * x / max; vy = - y / max; vz = + z / max;
|
||||
graphics_write_vertex (vx, vy, vz);
|
||||
|
||||
/* graphics_write_line (vertex_offset + 0, vertex_offset + 16); */
|
||||
/* graphics_write_line (vertex_offset + 1, vertex_offset + 17); */
|
||||
/* graphics_write_line (vertex_offset + 2, vertex_offset + 18); */
|
||||
/* graphics_write_line (vertex_offset + 3, vertex_offset + 19); */
|
||||
/* graphics_write_line (vertex_offset + 4, vertex_offset + 20); */
|
||||
/* graphics_write_line (vertex_offset + 5, vertex_offset + 21); */
|
||||
/* graphics_write_line (vertex_offset + 6, vertex_offset + 22); */
|
||||
/* graphics_write_line (vertex_offset + 7, vertex_offset + 23); */
|
||||
vx = (2 * i / x - 1) * x / max; vy = + y / max; vz = + z / max;
|
||||
graphics_write_vertex (vx, vy, vz);
|
||||
|
||||
|
||||
// for (int i = 0; i <= y; i += 2) graphics_write_line (vertex_offset + 2 + i, vertex_offset + 2 + i + 1);
|
||||
/* graphics_write_line (vertex_offset + 2, vertex_offset + 3); */
|
||||
/* graphics_write_line (vertex_offset + 4, vertex_offset + 5); */
|
||||
|
||||
int ar = 4;
|
||||
for (int i = 0; i < y * x; i += 2) graphics_write_line (vertex_offset + ar + i, vertex_offset + ar + i + 1);
|
||||
/* graphics_write_line (vertex_offset + 8, vertex_offset + 9); */
|
||||
/* graphics_write_line (vertex_offset + 10, vertex_offset + 11); */
|
||||
/* graphics_write_line (vertex_offset + 12, vertex_offset + 13); */
|
||||
/* graphics_write_line (vertex_offset + 14, vertex_offset + 15); */
|
||||
|
||||
/* graphics_write_line (vertex_offset + 18, vertex_offset + 19); */
|
||||
/* graphics_write_line (vertex_offset + 20, vertex_offset + 21); */
|
||||
|
||||
|
||||
/* graphics_write_line (vertex_offset + 0, vertex_offset + 6); */
|
||||
/* graphics_write_line (vertex_offset + 1, vertex_offset + 7); */
|
||||
|
||||
/* graphics_write_line (vertex_offset + 8, vertex_offset + 10); */
|
||||
/* graphics_write_line (vertex_offset + 9, vertex_offset + 11); */
|
||||
|
||||
/* graphics_write_line (vertex_offset + 12, vertex_offset + 14); */
|
||||
/* graphics_write_line (vertex_offset + 13, vertex_offset + 15); */
|
||||
|
||||
/* graphics_write_line (vertex_offset + 16, vertex_offset + 22); */
|
||||
/* graphics_write_line (vertex_offset + 17, vertex_offset + 23); */
|
||||
vx = (2 * i / x - 1) * x / max; vy = + y / max; vz = - z / max;
|
||||
graphics_write_vertex (vx, vy, vz);
|
||||
}
|
||||
|
||||
for (i = 0; i < x; i ++) {
|
||||
|
||||
|
||||
graphics_write_line (offset_vertex + i * 4 + 0, offset_vertex + i * 4 + 1);
|
||||
graphics_write_line (offset_vertex + i * 4 + 1, offset_vertex + i * 4 + 2);
|
||||
graphics_write_line (offset_vertex + i * 4 + 2, offset_vertex + i * 4 + 3);
|
||||
graphics_write_line (offset_vertex + i * 4 + 3, offset_vertex + i * 4 + 0);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
|
Loading…
Reference in New Issue