#ifndef PARTICLE_HELPER #define PARTICLE_HELPER #include #include #include #include float random_float(float min, float max){ float alpha = (float)(rand()) / (float) (RAND_MAX); if (alpha == 1.0f) alpha = 0; return min + alpha * (max - min); } void particle_uniform(Config const &config, ComputeShader &compute_shader){ compute_shader.set_uniform("map_width", config.map_width); compute_shader.set_uniform("map_height", config.map_height); compute_shader.set_uniform("population", config.population); compute_shader.set_uniform("sensing_angle", config.sensing_angle); compute_shader.set_uniform("sensing_distance", config.sensing_distance); compute_shader.set_uniform("steering", config.steering); compute_shader.set_uniform("speed", config.speed); } void map_update_uniform(Config const &config, ComputeShader &compute_shader){ compute_shader.set_uniform("map_width", config.map_width); compute_shader.set_uniform("map_height", config.map_height); compute_shader.set_uniform("increase", config.increase); compute_shader.set_uniform("decay", config.decay); compute_shader.set_uniform("diffusion", config.diffusion); } void map_reset_uniform(Config const &config, ComputeShader &compute_shader){ compute_shader.set_uniform("map_width", config.map_width); compute_shader.set_uniform("map_height", config.map_height); } #endif // PARTICLE_HELPER