Source of Node.java


  1: import java.awt.*;
  2: import java.awt.geom.*;
  3: import java.io.*;

  5: /**
  6:    A node in a graph.
  7: */
  8: public interface Node extends Serializable, Cloneable
  9: {
 10:    /**
 11:       Draw the node.
 12:       @param g2 the graphics context
 13:    */
 14:    void draw(Graphics2D g2);

 16:    /**
 17:       Translates the node by a given amount.
 18:       @param dx the amount to translate in the x-direction
 19:       @param dy the amount to translate in the y-direction
 20:    */
 21:    void translate(double dx, double dy);

 23:    /**
 24:       Tests whether the node contains a point.
 25:       @param aPoint the point to test
 26:       @return true if this node contains aPoint
 27:    */
 28:    boolean contains(Point2D aPoint);

 30:    /**
 31:       Get the best connection point to connect this node
 32:       with another node. This should be a point on the boundary
 33:       of the shape of this node.
 34:       @param aPoint an exterior point that is to be joined
 35:       with this node
 36:       @return the recommended connection point
 37:    */
 38:    Point2D getConnectionPoint(Point2D aPoint);

 40:    /**
 41:       Get the bounding rectangle of the shape of this node
 42:       @return the bounding rectangle
 43:    */
 44:    Rectangle2D getBounds();

 46:    Object clone();
 47: }