import java.awt.Rectangle;
import java.awt.Shape;
import java.awt.geom.GeneralPath;


/**
 * Ein PKW, der manipuliert werden kann und sich selbst auf einer Leinwand zeichnet.

 */
public class PKW extends KFZ  
{
   Rectangle rectAussen; 
   Rectangle rectMitte; 
   Rectangle rectDach; 
  /**
   * Erzeuge einen neuen PKW mit einer Standardfarbe und Standardgroesse
   * an einer Standardposition.
   */
    public PKW()
  {
    xPosition = 160;
    yPosition = 80;
    farbe = "blau";
    orientierung = 0;
    istSichtbar = false;
    breite = 80;
    tiefe  = 40;
    rectAussen = new Rectangle(xPosition, yPosition, breite, tiefe);
    rectMitte = new Rectangle((xPosition+breite/4), (yPosition+tiefe/10), (breite/2)  , (tiefe-tiefe/5));   
    rectDach = new Rectangle((xPosition+3*breite/8), (yPosition+tiefe/5), (breite/4)  , (tiefe-2*tiefe/5));
    
  }
  
  /**
   * Berechnet das zu zeichnende Shape anhand der gegebenen Daten
   * Beim Verschieben gibt es Probleme mit den Fenstern...
   */
  protected Shape gibAktuelleFigur()
  {
      GeneralPath pkw = new GeneralPath();
      pkw.moveTo(xPosition+(breite/4), yPosition+tiefe/10);
      pkw.lineTo(xPosition+3*breite/8, yPosition+tiefe/5);
      pkw.moveTo(xPosition+breite/4, yPosition+tiefe-tiefe/10);
      pkw.lineTo(xPosition+3*breite/8, yPosition+tiefe-tiefe/5);
      pkw.moveTo(xPosition+3*breite/4, yPosition+tiefe/10);
      pkw.lineTo(xPosition+5*breite/8, yPosition+tiefe/5);
      pkw.moveTo(xPosition+3*breite/4, yPosition+tiefe-tiefe/10);
      pkw.lineTo(xPosition+5*breite/8, yPosition+tiefe-tiefe/5);
      pkw.append(rectAussen, false); 
      pkw.append(rectMitte, false);  
      pkw.append(rectDach, false);  
      
       return  transformiere(pkw);
  }
  
}
