package sk.upjs.test;
import java.awt.Color;
import java.util.Arrays;
import sk.upjs.jpaz2.Pane;
import sk.upjs.jpaz2.Turtle;
public class ZoznamBodov {
private FarebnyBod[] zoznam;
public ZoznamBodov() {
zoznam = new FarebnyBod[0];
}
public ZoznamBodov(double minX, double minY, double maxX, double maxY,
int pocet) {
zoznam = new FarebnyBod[0];
for (int i = 0; i < pocet; i++) {
double nahodneX = minX + Math.random() * (maxX - minX);
double nahodneY = minY + Math.random() * (maxY - minY);
FarebnyBod fb = new FarebnyBod(nahodneX, nahodneY);
pridaj(fb);
}
}
public void pridaj(FarebnyBod bod) {
FarebnyBod[] nove = new FarebnyBod[zoznam.length + 1];
for (int i = 0; i < zoznam.length; i++) {
nove[i] = zoznam[i];
}
nove[zoznam.length] = bod;
this.zoznam = nove;
}
public void vymaz(FarebnyBod bod) {
int indexVymazaneho = -1;
for (int i = 0; i < zoznam.length; i++) {
if (bod.equals(zoznam[i])) {
indexVymazaneho = i;
break;
}
}
if (indexVymazaneho != -1) {
FarebnyBod[] nove = new FarebnyBod[zoznam.length - 1];
System.arraycopy(zoznam, 0, nove, 0, indexVymazaneho);
System.arraycopy(zoznam, indexVymazaneho + 1, nove,
indexVymazaneho, zoznam.length - indexVymazaneho);
zoznam = nove;
}
}
public void vykresli(Pane plocha){
Turtle kreslic = new Turtle();
plocha.add(kreslic);
for (int i = 0; i< zoznam.length; i++){
kreslic.setPosition(zoznam[i].getX(), zoznam[i].getY());
kreslic.setFillColor(zoznam[i].getF());
kreslic.dot(5);
}
plocha.remove(kreslic);
}
public String toString()
{
return Arrays.toString(zoznam);
}
public void zotried() {
Arrays.sort(zoznam);
}
public void odstran(Color farba){
for (int i = 0; i < zoznam.length; i++) {
if(zoznam[i].getF()==farba){
this.vymaz(zoznam[i]);
}
}
}
}