import java.awt.Graphics2D; import java.awt.Color; import java.awt.Shape; import java.awt.geom.Point2D; import java.awt.geom.Line2D; import java.awt.geom.Rectangle2D; import java.awt.Stroke; import java.awt.BasicStroke; public class Casetta{ private double posizioneX; private double posizioneY; private double larghezza; private double altezza; private Shape[] elementi; private Rectangle2D.Double porta; private Color colore; private boolean aperta; public Casetta(double x, double y, double largh, double alt, Color col) { posizioneX = x; posizioneY = y; larghezza = largh; altezza = alt; colore = col; elementi = new Shape[5]; aperta = false; Point2D.Double p0 = new Point2D.Double(posizioneX, posizioneY+altezza); Point2D.Double p1 = new Point2D.Double(posizioneX, posizioneY+altezza*0.33); Point2D.Double p2 = new Point2D.Double(posizioneX+larghezza/2, posizioneY); Point2D.Double p3 = new Point2D.Double(posizioneX+larghezza, posizioneY+altezza*0.33); Point2D.Double p4 = new Point2D.Double(posizioneX+larghezza, posizioneY+altezza); elementi[0] = new Line2D.Double(p0, p1); elementi[1] = new Line2D.Double(p1, p2); elementi[2] = new Line2D.Double(p2, p3); elementi[3] = new Line2D.Double(p3, p4); elementi[4] = new Line2D.Double(p4, p0); porta = new Rectangle2D.Double(p0.getX()+larghezza/3, p0.getY()-altezza/2, larghezza/3, altezza/2); } public Casetta(double x, double y, double largh, double alt) { this(x, y, largh, alt, Color.black); } public Casetta(Rectangle2D.Double r, Color colore) { this(r.getX(), r.getY(), r.getWidth(), r.getHeight(), colore); } public Casetta(Rectangle2D.Double r) { this(r, Color.black); } /** @returns true se il punto p e' interno alla porta, false altrimenti */ public boolean portaColpita(Point2D.Double p) { } public void apriPorta() { aperta = true; } public void chiudiPorta() { aperta = false; } public void muoviPorta() { aperta = !aperta; } public void disegna(Graphics2D g2) { Stroke strokePrecedente = g2.getStroke(); g2.setStroke(new BasicStroke(2.0f)); Color colorePrecedente = g2.getColor(); g2.setColor(colore); for(int i=0; i