+Clouds cs;
+
+void calculateMetaballs() {
+ stepClouds(&cs);
+ metaballs.clear();
+ for (int i = 0; i < CLOUD_DIM; i++) {
+ for (int j = 0; j < CLOUD_DIM; j++) {
+ for (int k = 0; k < CLOUD_DIM; k++) {
+ if (cs.cld[i][j][k]) {
+ /* float x = (float)rand()/(float)(RAND_MAX); */
+ /* float y = (float)rand()/(float)(RAND_MAX); */
+ /* float z = (float)rand()/(float)(RAND_MAX); */
+ /* float r = (float)rand()/(float)(RAND_MAX); */
+ /* Metaball m = {{x,y, 0.3 + z * 0.5}, r}; */
+ /* metaballs.push_back(m); */
+ Metaball m = {{i / (float)CLOUD_DIM, j / (float)CLOUD_DIM, k / (float)CLOUD_DIM},
+ 1.f / (float)CLOUD_DIM };
+ m.pos = (m.pos * vec3(2)) - vec3(1);
+ metaballs.push_back(m);
+ }
+ }
+ }
+ }
+ fprintf(stderr, "num metaballs: %lu\n", metaballs.size());
+}
+