package graphics; import scheme.lib.htdp.image; import scheme.lib.graphics.graphics; import scheme.lib.htdch.graphics.rename; public class Image { dynamic theImage; Image( dynamic i ) { this.theImage = i; } dynamic getBitmap() { return theImage.getBitmap(); } public Image movePinhole( Posn p ) { return new Image( image.movePinhole(theImage, p.x, p.y) ); } public Image putPinhole( Posn p ) { return new Image( image.putPinhole(theImage, p.x, p.y) ); } public Image overlay( Image i ) { return new Image( image.overlay( theImage, i.theImage ) ); } public Image overlayXY( Image i, Posn p) { return new Image( rename.overlayXY( theImage, p.x, p.y, i.theImage)); } public Posn getPinhole() { return new Posn( image.pinholeX(theImage),image.pinholeY(theImage) ); } public boolean inside( Image isInside ) { return image.imageInsideP( theImage, isInside.theImage ); } public Posn find( Image inside ) { dynamic position = image.findImage(theImage, inside.theImage ); return new Posn( graphics.posnX(position), graphics.posnY(position) ); } public Image addLine(Posn start, Posn end, Color c) { return new Image(image.addLine(theImage, start.x, start.y, end.x, end.y, c.toString())); } public int width() { return image.imageWidth( theImage ); } public int height() { return image.imageHeight( theImage ); } public boolean equals(Object o) { return (o instanceof Image) && rename.imageEqP(theImage,((Image) o).theImage); } }