
/**
 * Write a description of class MyDrawFunnyGuy here.
 * 
 * @author Michael Rivers 
 * @version April 18th 2006
 */
import java.awt.*;
import javax.swing.*;
public class MyDrawFunnyGuy extends Shape
{
    MyCircle circle1, circle2, circle3;
    MySquare square1, square2, square3;
    MyOval oval1, oval2, oval3;
    MyRectangle rect1, rect2, rect3;
    
    public MyDrawFunnyGuy()
    {
        super();
    }
    
    public MyDrawFunnyGuy(int x, int y, int xLength, int yLength, Color shapeColor)
    {
        super(x,y,xLength,yLength,shapeColor);
    }

    public MyDrawFunnyGuy(int x, int y, int xLength, int yLength, Color shapeColor, boolean bFill)
    {
        super(x,y,xLength,yLength,shapeColor,bFill);
    }
    
    public MyDrawFunnyGuy(int x, int y, int xLength, int yLength)
    {
        super(x,y,xLength,yLength);
    }

    public MyDrawFunnyGuy(int x, int y, int xLength, int yLength, boolean bFill)
    {
        super(x,y,xLength,yLength, bFill);
    }
    
    public void draw(Graphics g)
    {
        //This draws the funny guy, either filled or empty
        //Shape color determines the color of the face and four limbs
        //Other colors are predetermined
        if(bFill) {
            // body
            oval1 = new MyOval(x+xLength/4,y+yLength/6,xLength*3/8,yLength/2,Color.orange,true);
            // face
            circle1 = new MyCircle(x+xLength*5/16,y,xLength*1/4,shapeColor,true);
            oval2 = new MyOval(x+xLength*8/19,y,xLength/20,yLength/10,Color.black,true);
            oval3 = new MyOval(x+xLength*9/19,y,xLength/20,yLength/10,Color.black,true);
            // left arm
            rect1 = new MyRectangle(x+xLength/16,y+yLength/4,xLength/4,yLength/6,shapeColor,true);
            circle2 = new MyCircle(x,y+yLength/5,xLength/8,Color.red,true);
            // right arm
            rect2 = new MyRectangle(x+xLength/2,y+yLength/5,xLength/4,yLength/4,shapeColor,true);
            square1 = new MySquare(x+xLength*2/3,y+yLength*2/5,(xLength+yLength)/14,Color.cyan,true);
            // right leg
            rect3 = new MyRectangle(x+xLength/2,y+yLength*5/9,xLength/4,yLength*3/8,shapeColor,true);
            circle3 = new MyCircle(x+xLength*9/16,y+yLength*5/6,yLength/7,Color.blue,true);
            // left leg
            square2 = new MySquare(x+xLength/16,y+yLength*11/18,(xLength+yLength)/6,shapeColor,true);
            square3 = new MySquare(x,y+yLength*3/4,(xLength+yLength)/12,Color.gray,true);
        } else {
            // body
            oval1 = new MyOval(x+xLength/4,y+yLength/6,xLength*3/8,yLength/2,Color.orange);
            // face
            circle1 = new MyCircle(x+xLength*5/16,y,xLength*1/4,shapeColor);
            oval2 = new MyOval(x+xLength*8/19,y,xLength/20,yLength/10,Color.black);
            oval3 = new MyOval(x+xLength*9/19,y,xLength/20,yLength/10,Color.black);
            // left arm
            rect1 = new MyRectangle(x+xLength/16,y+yLength/4,xLength/4,yLength/6,shapeColor);
            circle2 = new MyCircle(x,y+yLength/5,xLength/8,Color.red);
            // right arm
            rect2 = new MyRectangle(x+xLength/2,y+yLength/5,xLength/4,yLength/4,shapeColor);
            square1 = new MySquare(x+xLength*2/3,y+yLength*2/5,(xLength+yLength)/14,Color.cyan);
            // right leg
            rect3 = new MyRectangle(x+xLength/2,y+yLength*5/9,xLength/4,yLength*3/8,shapeColor);
            circle3 = new MyCircle(x+xLength*9/16,y+yLength*5/6,yLength/7,Color.blue);
            // left leg
            square2 = new MySquare(x+xLength/16,y+yLength*11/18,(xLength+yLength)/6,shapeColor);
            square3 = new MySquare(x,y+yLength*3/4,(xLength+yLength)/12,Color.gray);
        }
        oval1.draw(g);
        circle1.draw(g);
        oval2.draw(g);
        oval3.draw(g);
        rect1.draw(g);
        circle2.draw(g);
        rect2.draw(g);
        square1.draw(g);
        rect3.draw(g);
        circle3.draw(g);
        square2.draw(g);
        square3.draw(g);        
    }
                
}

