Fix size with variable grid

This commit is contained in:
PedroEdiaz
2024-12-01 13:43:27 -06:00
parent 0729388291
commit a293008137

View File

@@ -39,7 +39,7 @@ int factorial(int n)
return n * factorial(n - 1);
}
int numero_caras(int n)
int faces(int n)
{
if (n == 2)
return 1;
@@ -107,27 +107,36 @@ void klein(float *d_surface, int *coord, unsigned char *grid)
float *generate_data_surface(unsigned char *dim, unsigned long *vertex)
{
unsigned int i, j, k, o, p, n;
long size, q = 0;
unsigned long size, q = 0;
float *d_surface;
int *cara;
parm.f = mobius;
parm.m = 2;
parm.n = 3;
parm.grid = (char[2]){16, 2};
parm.f = cube;
parm.m = 5;
parm.n = 5;
parm.grid = (char[7]){16, 2, 8, 4, 3, 5, 1};
#ifdef TEST
assert(numero_caras(2) == 1);
assert(numero_caras(3) == 6);
assert(numero_caras(4) == 24);
assert(faces(2) == 1);
assert(faces(3) == 6);
assert(faces(4) == 24);
#endif
*dim = parm.n;
*vertex = 0;
for (o = 0; o < parm.m; o++)
for (p = 0; p < o; p++)
*vertex += parm.grid[p] * parm.grid[o] * 6;
{
unsigned char test = 0;
for (o = 0; o < parm.m; o++)
{
for (p = 0; p < o; p++)
{
test += 1;
*vertex += parm.grid[p] * parm.grid[o] * 6 * faces(parm.n);
}
}
*vertex /= test;
}
cara = malloc(parm.m * sizeof(int));
size = (*dim) * (*vertex);
@@ -186,6 +195,7 @@ float *generate_data_surface(unsigned char *dim, unsigned long *vertex)
}
}
}
#ifdef TEST
assert(q == size);
#endif