74 glm::vec3 center { 0.0F };
103 InfluxProcessor(std::string field,
const std::string& shader_path,
const Spot& spot);
109 void configure(
const Spot& spot);
115 void set_center(
const glm::vec3& center);
121 void set_radius(
float radius);
127 void set_rate(
float rate);
133 void set_time_step(
float dt);
140 void set_falloff(
float falloff);
154 [[nodiscard]]
const std::string&
get_field()
const {
return m_field; }
156 void processing_function(
const std::shared_ptr<Buffer>&
buffer)
override;
162 void on_volume_ready()
override;
170 static std::vector<FieldBinding> make_bindings(
const std::string& field);
179 glm::vec3 m_center { 0.0F };
180 float m_radius { 0.15F };
181 bool m_auto_radius {
false };
182 float m_rate { 1.0F };
183 float m_time_step { 1.0F / 60.0F };
184 float m_falloff { 1.0F };
185 float m_elapsed { 0.0F };
std::shared_ptr< NetworkGeometryBuffer > buffer
float get_elapsed() const
Seconds since construction or the last restart.
const std::string & get_field() const
Name of the field added into.
VolumeFieldProcessor adding a shaped contribution into a field every cycle.
ComputeProcessor operating on named fields of a VolumeGridBuffer.
Push constant block the influx shaders receive.
Where and how an influx adds, in one aggregate, for configure().
Complete declarative description of a generated compute shader.