/** * Gets all the particle analysis reports ordered from largest area to * smallest. * * @param size The number of particles to return * @return An array of ParticleReports from largest area to smallest */ public ParticleAnalysisReport[] getOrderedParticleAnalysisReports(int size) throws NIVisionException { if (size > getNumberParticles()) size = getNumberParticles(); ParticleSizeReport[] reports = new ParticleSizeReport[size]; SortedVector sorter = new SortedVector(new SortedVector.Comparator() { public int compare(Object object1, Object object2) { ParticleSizeReport p1 = (ParticleSizeReport) object1; ParticleSizeReport p2 = (ParticleSizeReport) object2; if (p1.size < p2.size) return -1; else if (p1.size > p2.size) return 1; return 0; } }); for (int i = 0; i < getNumberParticles(); i++) sorter.addElement(new ParticleSizeReport(i)); sorter.setSize(size); sorter.copyInto(reports); ParticleAnalysisReport[] finalReports = new ParticleAnalysisReport[reports.length]; for (int i = 0; i < finalReports.length; i++) finalReports[i] = reports[i].getParticleAnalysisReport(); return finalReports; }
/** * Gets all the particle analysis reports ordered from largest area to smallest. * @param size The number of particles to return * @return An array of ParticleReports from largest area to smallest */ public ParticleAnalysisReport[] getOrderedParticleAnalysisReports(int size) throws NIVisionException{ if (size > getNumberParticles()) size = getNumberParticles(); ParticleSizeReport[] reports = new ParticleSizeReport[size]; SortedVector sorter = new SortedVector(new SortedVector.Comparator() { public int compare(Object object1, Object object2) { ParticleSizeReport p1 = (ParticleSizeReport)object1; ParticleSizeReport p2 = (ParticleSizeReport)object2; if (p1.size < p2.size) return -1; else if (p1.size > p2.size) return 1; return 0; } }); for (int i = 0; i < getNumberParticles(); i++) sorter.addElement(new ParticleSizeReport(i)); sorter.setSize(size); sorter.copyInto(reports); ParticleAnalysisReport[] finalReports = new ParticleAnalysisReport[reports.length]; for (int i = 0; i < finalReports.length; i++) finalReports[i] = reports[i].getParticleAnalysisReport(); return finalReports; }