001package horstmann.ch06_scene2;
002import java.awt.Graphics2D;
003import java.awt.geom.Point2D;
004
005/**
006   A shape that is a part of a scene.
007 */
008public interface SceneShape
009{
010        /**
011      Draws this item.
012      @param g2 the graphics context
013         */
014        void draw(Graphics2D g2);
015        /**
016      Draws the selection adornment of this item.
017      @param g2 the graphics context
018         */
019        void drawSelection(Graphics2D g2);
020        /**
021      Sets the selection state of this item.
022      @param b true if this item is selected
023         */
024        void setSelected(boolean b);
025        /**
026      Gets the selection state of this item.
027      @return true if this item is selected
028         */
029        boolean isSelected();
030        /**
031      Translates this item by a given amount.
032      @param dx the amount to translate in x-direction
033      @param dy the amount to translate in y-direction
034         */
035        void translate(int dx, int dy);
036        /**
037      Tests whether this item contains a given point.
038      @param p a point
039      @return true if this item contains p
040         */
041        boolean contains(Point2D p);
042}
043