Fix size with variable grid
This commit is contained in:
@@ -39,7 +39,7 @@ int factorial(int n)
|
|||||||
return n * factorial(n - 1);
|
return n * factorial(n - 1);
|
||||||
}
|
}
|
||||||
|
|
||||||
int numero_caras(int n)
|
int faces(int n)
|
||||||
{
|
{
|
||||||
if (n == 2)
|
if (n == 2)
|
||||||
return 1;
|
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)
|
float *generate_data_surface(unsigned char *dim, unsigned long *vertex)
|
||||||
{
|
{
|
||||||
unsigned int i, j, k, o, p, n;
|
unsigned int i, j, k, o, p, n;
|
||||||
long size, q = 0;
|
unsigned long size, q = 0;
|
||||||
float *d_surface;
|
float *d_surface;
|
||||||
int *cara;
|
int *cara;
|
||||||
|
|
||||||
parm.f = mobius;
|
parm.f = cube;
|
||||||
parm.m = 2;
|
parm.m = 5;
|
||||||
parm.n = 3;
|
parm.n = 5;
|
||||||
parm.grid = (char[2]){16, 2};
|
parm.grid = (char[7]){16, 2, 8, 4, 3, 5, 1};
|
||||||
|
|
||||||
#ifdef TEST
|
#ifdef TEST
|
||||||
assert(numero_caras(2) == 1);
|
assert(faces(2) == 1);
|
||||||
assert(numero_caras(3) == 6);
|
assert(faces(3) == 6);
|
||||||
assert(numero_caras(4) == 24);
|
assert(faces(4) == 24);
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
*dim = parm.n;
|
*dim = parm.n;
|
||||||
*vertex = 0;
|
*vertex = 0;
|
||||||
|
|
||||||
for (o = 0; o < parm.m; o++)
|
{
|
||||||
for (p = 0; p < o; p++)
|
unsigned char test = 0;
|
||||||
*vertex += parm.grid[p] * parm.grid[o] * 6;
|
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));
|
cara = malloc(parm.m * sizeof(int));
|
||||||
size = (*dim) * (*vertex);
|
size = (*dim) * (*vertex);
|
||||||
@@ -186,6 +195,7 @@ float *generate_data_surface(unsigned char *dim, unsigned long *vertex)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
#ifdef TEST
|
#ifdef TEST
|
||||||
assert(q == size);
|
assert(q == size);
|
||||||
#endif
|
#endif
|
||||||
|
|||||||
Reference in New Issue
Block a user