3 #include "raytracer/cl/reflection.h" 5 #include "core/gpu_scene_data.h" 7 #include "utilities/aligned/vector.h" 8 #include "utilities/event.h" 10 #include "glm/fwd.hpp" 19 class compute_context;
21 namespace attenuator {
28 struct simulation_parameters;
31 struct voxels_and_mesh;
50 constexpr
auto to_string(state s) {
52 case state::idle:
return "idle";
53 case state::initialising:
return "initialising";
54 case state::starting_raytracer:
return "starting raytracer";
55 case state::running_raytracer:
return "running raytracer";
56 case state::finishing_raytracer:
return "finishing raytracer";
57 case state::starting_waveguide:
return "starting waveguide";
58 case state::running_waveguide:
return "running waveguide";
59 case state::finishing_waveguide:
return "finishing waveguide";
60 case state::postprocessing:
return "postprocessing";
77 virtual util::aligned::vector<float> postprocess(
81 virtual util::aligned::vector<float> postprocess(
85 virtual util::aligned::vector<float> postprocess(
95 const glm::vec3& source,
96 const glm::vec3& receiver,
99 std::unique_ptr<waveguide_base> waveguide);
103 std::unique_ptr<intermediate> run(
const std::atomic_bool& keep_going)
const;
116 util::aligned::vector<util::aligned::vector<raytracer::reflection>>,
119 engine_state_changed::connection connect_engine_state_changed(
120 engine_state_changed::callback_type callback);
122 waveguide_node_pressures_changed::connection
123 connect_waveguide_node_pressures_changed(
124 waveguide_node_pressures_changed::callback_type callback);
127 connect_raytracer_reflections_generated(
128 raytracer_reflections_generated::callback_type callback);
136 std::unique_ptr<impl> pimpl_;
Definition: scene_data.h:13
Definition: pressure.h:22
Definition: environment.h:6
Definition: capsule_base.h:9
invariant: device is a valid device for the context
Definition: common.h:13
Definition: simulation_parameters.h:9
Super-simple class which maintains microphone invariants.
Definition: microphone.h:10
Definition: engine.cpp:88