package org.openpixi.pixi.physics.collision.detectors; import java.util.ArrayList; import org.openpixi.pixi.physics.*; import org.openpixi.pixi.physics.collision.util.Pair; import org.openpixi.pixi.physics.particles.Particle; public class AllParticles extends Detector{ private ArrayList<Pair<Particle, Particle>> overlappedPairs = new ArrayList<Pair<Particle, Particle>>(); private ArrayList<Particle> particlelist = new ArrayList<Particle>(); public AllParticles(ArrayList<Particle> parlist) { particlelist.clear(); for(int i = 0; i < parlist.size(); i++) { Particle par = (Particle) parlist.get(i); this.particlelist.add(par); } } public void run() { for(int i = 0; i < (particlelist.size() - 1); i++) { Particle p1 = (Particle) particlelist.get(i); for(int k = (i + 1); k < particlelist.size(); k++) { Particle p2 = (Particle) particlelist.get(k); //double distance = Math.sqrt((p1.x - p2.x) * (p1.x - p2.x) + (p1.y - p2.y) * (p1.y - p2.y)); if(Math.abs(p1.getX() - p2.getX()) <= (p1.getRadius() + p2.getRadius())) { if(Math.abs(p1.getY() - p2.getY()) <= (p1.getRadius() + p2.getRadius())) { Pair<Particle, Particle> pair = new Pair<Particle, Particle>(p1, p2); overlappedPairs.add(pair); } } } } } public ArrayList<Pair<Particle, Particle>> getOverlappedPairs() { return overlappedPairs; } }