package graphics;

import scheme.lib.htdp.image;
import scheme.lib.htdch.graphics.rename;

public class PictureFactory {

  boolean pinholeInCenter;

  public PictureFactory( boolean pinholeInCenter ) {
    this.pinholeInCenter = pinholeInCenter;
  }

  Image setPinhole(Image i ) {
    if (pinholeInCenter)
      return i;
    else 
      return i.putPinhole(new Posn(0,0));
  }

  public Image makeCircle( int r, String mode, Color c) {
    return setPinhole(new Image( image.circle( r, rename.toSymbol(mode), c.toString() ) ));
  }

  public Image makeRectangle( int width, int height, String mode, Color c) {
    return setPinhole(new Image( image.rectangle( width, height, rename.toSymbol(mode), c.toString() )));
  }

  public Image makeEllipse( int width, int height, String mode, Color c) {
    return setPinhole(new Image( image.ellipse( width, height, rename.toSymbol(mode), c.toString() )));
  }

  public Image makeTriangle( int edge, String mode, Color c) {
    return setPinhole(new Image( image.triangle( edge, rename.toSymbol(mode), c.toString() )));
  }

  public Image makeLine( Posn to, Color c) {
    return setPinhole(new Image( image.line(to.x,to.y,c.toString())));
  }

  public Image makeText( String text, int ptSize, Color c) {
    return setPinhole(new Image( image.text( text, ptSize, c.toString() ) ));
  }

}