01: import java.awt.*;
02: import java.awt.geom.*;
03: 
04: /**
05:    A house shape.
06: */
07: public class HouseShape extends CompoundShape
08: {
09:    /**
10:       Constructs a house shape.
11:       @param x the left of the bounding rectangle
12:       @param y the top of the bounding rectangle
13:       @param width the width of the bounding rectangle
14:    */
15:    public HouseShape(int x, int y, int width)
16:    {
17:       Rectangle2D.Double base 
18:          = new Rectangle2D.Double(x, y + width, width, width);
19: 
20:       // The left bottom of the roof
21:       Point2D.Double r1
22:          = new Point2D.Double(x, y + width);
23:       // The top of the roof
24:       Point2D.Double r2
25:          = new Point2D.Double(x + width / 2, y);
26:       // The right bottom of the roof
27:       Point2D.Double r3
28:          = new Point2D.Double(x + width, y + width);
29: 
30:       Line2D.Double roofLeft
31:          = new Line2D.Double(r1, r2);
32:       Line2D.Double roofRight
33:          = new Line2D.Double(r2, r3);
34: 
35:       add(base);
36:       add(roofLeft);
37:       add(roofRight);
38:    }
39: }