package calculointereseccion;


public class Poligono {
    
    private String nombre;
    private String color;
    private Punto listaPuntos [];
    
    public Poligono (String nombreIn , String colorIn ,Punto listaPuntosIn []){
        nombre = nombreIn;
        color = colorIn;
        listaPuntos = listaPuntosIn;
    }
    
    public boolean interseccionPoligonos (Poligono otroPoligono){
        boolean intersectan = false;
        
        Punto listaTmpOtroPol [] = otroPoligono.getListaPuntos();
        
        
        for (int x=0; x < listaPuntos.length ; x++){
            Punto p1 = listaPuntos [x];     
            Punto p2 = null;
            if (x != listaPuntos.length-1){
                 p2 = listaPuntos [x+1];
            }else {
                 p2 = listaPuntos [0];
            }
            Linea lineaTmpPoligono1 = new Linea(p1, p2);
            
            
            for (int j=0; j < listaTmpOtroPol.length ; j++){
                        
                Punto p1otroPol = listaTmpOtroPol [x];     
                Punto p2otroPol = null;
                if (x != listaTmpOtroPol.length-1){
                     p1otroPol = listaTmpOtroPol [x+1];
                }else {
                     p2otroPol = listaTmpOtroPol [0];
                }
                Linea lineaTmpOtroPoligono = new Linea(p1otroPol, p2otroPol);
                boolean seIntersectanLasLineas = lineaTmpPoligono1.seInterectan(lineaTmpOtroPoligono);
                if ( seIntersectanLasLineas == true){
                    intersectan = true;
                    break;
                }
                
            }
            
            
        }
        
        return intersectan;
    }
    
    
    public void imprimirPoligono () {
        System.out.println("INICIO POLIGONO________");
        for (int pos =0; pos < listaPuntos.length ; pos++){
            Punto tmp =  listaPuntos [pos];
            tmp.imprimirPunto();
        }
        System.out.println("___________FIN POLIGONO");
    }
    
    public String getNombre() {
        return nombre;
    }

    public void setNombre(String nombre) {
        this.nombre = nombre;
    }

    public String getColor() {
        return color;
    }

    public void setColor(String color) {
        this.color = color;
    }

    public Punto[] getListaPuntos() {
        return listaPuntos;
    }

    public void setListaPuntos(Punto[] listaPuntos) {
        this.listaPuntos = listaPuntos;
    }
    
    
    
    
    
}
