/** 
  * 
  * See the end of the file for the log of changes.
  * 
  * $Author: mtsezgin $
  * $Date: 2000/06/03 01:52:34 $   
  * $Revision: 1.4 $
  * $Headers$
  * $Id: Paintable.java,v 1.4 2000/06/03 01:52:34 mtsezgin Exp $     
  * $Name:  $   
  * $Locker:  $
  * $Source: /mit/mtsezgin/CVS/Repository/REC/Paintable.java,v $
  *  
  **/


import java.awt.Graphics; 

/**
  *
  * All the objects who want to be Paintable must implement this
  * interface.
  *
  **/

public interface Paintable
{
    /**
    *
    * Set graphics context for this Paintable object.
    * Must be set at least once before doing any drawing.
    *
    **/
    public abstract void
    setGraphicsContext( Graphics g );

    /**
    *
    * Draw the objects
    *
    **/
    public abstract void
    paint();

    /**
    *
    * Draw the objects using the given graphics context.
    *
    **/
    public abstract void
    paint( Graphics g );
    
    /**
    *
    * Returns the type of this NonTerminal
    *
    **/
    public abstract String
    getType();
    
    /**
    *
    * This method is used to paint the original data points that
    * forms this GeometricObject
    *
    **/
    public abstract void
    paintOriginal( Graphics g );
}

/**
  *
  * $Log: Paintable.java,v $
  * Revision 1.4  2000/06/03 01:52:34  mtsezgin
  * *** empty log message ***
  *
  * Revision 1.3  2000/04/28 04:45:04  mtsezgin
  *
  * Now each GeometricObject keeps the mouse input that was previously
  * discarded. User can switch between seeing the recognized mode and
  * the raw mode. setDataPoints( Polygon points ) and getDataPoints()
  * are added to GeometricObject, and all the implementors are modified
  * accordingly.
  *
  * Revision 1.2  2000/04/11 01:41:45  mtsezgin
  * *** empty log message ***
  *
  * Revision 1.1  2000/04/11 00:41:47  mtsezgin
  *
  * Now the whole package succesfully parses a motor.
  *
  *
  **/
