示例#1
0
 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;
 }
示例#2
0
 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();
     }
 }