PBO stuff
[clouds.git] / simulation.hpp
diff --git a/simulation.hpp b/simulation.hpp
new file mode 100644 (file)
index 0000000..2a81c87
--- /dev/null
@@ -0,0 +1,31 @@
+#define CLOUD_DIM_X 64
+#define CLOUD_DIM_Y 16
+#define CLOUD_DIM_Z 64
+
+/* #define CLOUD_DIM_X 16 */
+/* #define CLOUD_DIM_Y 16 */
+/* #define CLOUD_DIM_Z 16 */
+
+#define P_EXT 0.1
+#define P_HUM 0.1 
+#define P_ACT 0.001
+
+struct Clouds {
+  // TODO: make more efficient
+  bool hum[CLOUD_DIM_X][CLOUD_DIM_Y][CLOUD_DIM_Z];
+  bool cld[CLOUD_DIM_X][CLOUD_DIM_Y][CLOUD_DIM_Z];
+  bool act[CLOUD_DIM_X][CLOUD_DIM_Y][CLOUD_DIM_Z];
+  float p_ext[CLOUD_DIM_X][CLOUD_DIM_Y][CLOUD_DIM_Z];
+  float p_hum[CLOUD_DIM_X][CLOUD_DIM_Y][CLOUD_DIM_Z];
+  float p_act[CLOUD_DIM_X][CLOUD_DIM_Y][CLOUD_DIM_Z];
+  /** Wind velocity 
+   * Called vz in the paper, but here our z axis is y
+   */
+  float vy[CLOUD_DIM_Y];
+  /** continuous distribution */
+  float q[CLOUD_DIM_X][CLOUD_DIM_Y][CLOUD_DIM_Z];
+};
+
+void initClouds(Clouds *cs);
+
+void stepClouds(Clouds *cs);