diff --git a/src/main.c b/src/main.c index 443459b..772579c 100644 --- a/src/main.c +++ b/src/main.c @@ -18,7 +18,7 @@ unsigned char palette[] = }; const char * wname = "manigraph: manifold grapher"; -float * gen_surface(); +float * generate_surface(); int main( void ) { @@ -35,7 +35,7 @@ int main( void ) glewInit(); - points = gen_surface(256); + points = generate_surface(256); if( !( shader = create_shader() ) ) goto error_shader; diff --git a/src/surface.c b/src/surface.c index 7fd34bf..457c099 100644 --- a/src/surface.c +++ b/src/surface.c @@ -10,57 +10,57 @@ typedef void(*function_t)(float*,int, int, int); -void mobius(float *p, int i, int j, int GRID_SIZE) +void mobius(float *d_surface, int i, int j, int grid_size) { - float u = (2*M_PI) * ((float)i/(GRID_SIZE) ); - float v = (2*WIDTH) * ((float)j/(GRID_SIZE) ) - WIDTH; + float u = (2*M_PI) * ((float)i/(grid_size) ); + float v = (2*WIDTH) * ((float)j/(grid_size) ) - WIDTH; - p[0] = cos(u) + v * cos(u / 2) * cos(u); - p[1] = sin(u) + v * cos(u / 2) * sin(u); - p[2] = v * sin(u / 2); + d_surface[0] = cos(u) + v * cos(u / 2) * cos(u); + d_surface[1] = sin(u) + v * cos(u / 2) * sin(u); + d_surface[2] = v * sin(u / 2); } -void toro(float *p, int i, int j, int GRID_SIZE) +void toro(float *d_surface, int i, int j, int grid_size) { - float u = (2*M_PI) * ((float)i/(GRID_SIZE) ); + float u = (2*M_PI) * ((float)i/(grid_size) ); float v = (2*WIDTH) * ((float)j ); - p[0] = (1 + 0.5*cos(v))*cos(u); - p[1] = (1 + 0.5*cos(v)) * sin(u); - p[2] = 0.5*sin(v); + d_surface[0] = (1 + 0.5*cos(v))*cos(u); + d_surface[1] = (1 + 0.5*cos(v)) * sin(u); + d_surface[2] = 0.5*sin(v); } -float * gen_surface(int GRID_SIZE) +float * generate_surface(int grid_size) { - long size = GRID_SIZE*GRID_SIZE*2*3*3; - function_t f = mobius; - float * points; + long size = grid_size*grid_size*2*3*3; + function_t f = toro; + float * d_surface; int k=0; - points = malloc((size+1)*sizeof(float)); - points[0] = size; + d_surface = malloc((size+1)*sizeof(float)); + d_surface[0] = size; - for (int i = 0; i < GRID_SIZE; i++) + for (int i = 0; i < grid_size; i++) { - for (int j = 0; j < GRID_SIZE; j++) + for (int j = 0; j < grid_size; j++) { // Triángulo 1 - f(&points[k + 1], i, j, GRID_SIZE); + f(&d_surface[k + 1], i, j, grid_size); k+=3; - f(&points[k + 1], i + 1, j, GRID_SIZE); + f(&d_surface[k + 1], i + 1, j, grid_size); k+=3; - f(&points[k + 1], i + 1, j + 1, GRID_SIZE); + f(&d_surface[k + 1], i + 1, j + 1, grid_size); k+=3; // Triángulo 2 - f(&points[k + 1], i, j, GRID_SIZE); + f(&d_surface[k + 1], i, j, grid_size); k+=3; - f(&points[k + 1], i, j + 1, GRID_SIZE); + f(&d_surface[k + 1], i, j + 1, grid_size); k+=3; - f(&points[k + 1], i + 1, j + 1, GRID_SIZE); + f(&d_surface[k + 1], i + 1, j + 1, grid_size); k+=3; } } - return points; + return d_surface; }