MayaFlux 0.5.0
Digital-First Multimedia Processing Framework
Loading...
Searching...
No Matches

◆ ClaimProcessor()

MayaFlux::Buffers::ClaimProcessor::ClaimProcessor ( const MutationConfig config,
std::shared_ptr< Nodes::Network::GpuFieldOperator particle_op,
bool  gate_alive = false 
)
Parameters
configGrid/particle parameters shared with the claim stages.
particle_opOwning operator; only its capture_growth tuning value and revision() are read, live, in on_before_execute.
gate_aliveWhen true, binds mutation_alive and refuses to let a dead particle claim anything: a candidate j can never be dead (HashCountProcessor/HashScatterProcessor already exclude dead particles from every cell), but i itself still runs unless this guard skips it, and a dead claimant absorbing a living particle would be a scavenging corpse, not a fixed population. False (the default) emits exactly today's shader.

Definition at line 198 of file MutationClaimProcessor.cpp.

202 : NetworkStateFieldProcessor(claim_bindings(gate_alive), build_claim_spec(gate_alive))
203 , m_params {
204 .particle_count = config.hash.particle_count,
205 .stride_words = config.hash.stride_words,
206 .position_offset = config.hash.position_word_offset,
207 .absorb_radius = config.absorb_radius,
208 .capture_growth = particle_op->get_field_config().capture_growth,
209 .grid_min_x = config.hash.grid_min.x,
210 .grid_min_y = config.hash.grid_min.y,
211 .grid_min_z = config.hash.grid_min.z,
212 .cell_size = config.hash.cell_size,
213 .dim_x = config.hash.grid_dims.x,
214 .dim_y = config.hash.grid_dims.y,
215 .dim_z = config.hash.grid_dims.z,
216 .cross_cluster = particle_op->get_field_config().cross_cluster ? 1U : 0U,
217 }
218 , m_particle_op(std::move(particle_op))
219 , m_built_revision(m_particle_op->revision())
220{
221}
std::shared_ptr< Nodes::Network::GpuFieldOperator > m_particle_op
NetworkStateFieldProcessor(std::vector< FieldBinding > bindings, const Portal::Graphics::ShaderSpec &spec)
Construct from a generated ShaderSpec.