friend interaction::result_type interact(const flowing_particle& particle, const flowing_cluster<flowing_particle>& cluster) { // TODO: Stickyness for (unsigned n = 0; n < Position::dimension * 2; ++n) { const Position p = particle.position + (2 * (n % 2) - 1) * get_unit_vector<Position>(n / 2); if (cluster.has_particle_at(p)) return interaction::MERGE; } return interaction::NONE; }
friend void interact (const flowing_particle& particle, const flowing_cluster<flowing_particle>& cluster, interaction_type& state) { // TODO: Stickyness for (unsigned n = 0; n < Position::dimension * 2; ++n) { const Position p = particle.position + (2 * (n % 2) - 1) * get_unit_vector<Position>(n / 2); if (cluster.has_particle_at(p)) state.set_merge(); } }