Helper.hpp 1.5 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243
  1. #ifndef PARTICLE_HELPER
  2. #define PARTICLE_HELPER
  3. #include <stdlib.h>
  4. #include <Particle.hpp>
  5. #include <Config.hpp>
  6. #include <ComputeShader.hpp>
  7. float random_float(float min, float max){
  8. float alpha = (float)(rand()) / (float) (RAND_MAX);
  9. if (alpha == 1.0f)
  10. alpha = 0;
  11. return min + alpha * (max - min);
  12. }
  13. void particle_uniform(Config const &config, ComputeShader &compute_shader){
  14. compute_shader.set_uniform("map_width", config.map_width);
  15. compute_shader.set_uniform("map_height", config.map_height);
  16. compute_shader.set_uniform("population", config.population);
  17. compute_shader.set_uniform("sensing_angle", config.sensing_angle);
  18. compute_shader.set_uniform("sensing_distance", config.sensing_distance);
  19. compute_shader.set_uniform("steering", config.steering);
  20. compute_shader.set_uniform("speed", config.speed);
  21. }
  22. void map_update_uniform(Config const &config, ComputeShader &compute_shader){
  23. compute_shader.set_uniform("map_width", config.map_width);
  24. compute_shader.set_uniform("map_height", config.map_height);
  25. compute_shader.set_uniform("increase", config.increase);
  26. compute_shader.set_uniform("decay", config.decay);
  27. compute_shader.set_uniform("diffusion", config.diffusion);
  28. }
  29. void map_reset_uniform(Config const &config, ComputeShader &compute_shader){
  30. compute_shader.set_uniform("map_width", config.map_width);
  31. compute_shader.set_uniform("map_height", config.map_height);
  32. }
  33. #endif // PARTICLE_HELPER