
import java.awt.*;

public class shape
{
     protected Color color = Color.black;
     protected static double clickRange = .02;
//     protected shape[] linkedShapes = new shape[20];
//     protected shape[] shapes = new shape[20];
//     protected int numLinkedShapes = 0;
//     protected int maxLinkedShapes = 20;
//     protected int nShapes = 0;
//     protected int maxShapes = 20;
     public boolean dragging = false;
     public boolean hidden = false;
     protected boolean translated = false; 
     // when translating objects, interdependencies can cause an
     // object to be translated twice.

     public void setColor(Color newColor)
     {
	  color = newColor;
     }

     public void draw(GeometryWindow G)
     {
     }

     public boolean exists()
     {
	  return(true);
     }

     public boolean isNear(double X, double Y)
     {
	  return(false);
     }

     public point coordOnShape(double X, double Y)
     {
	  return(null);
     }

     public pointOnShape pointOnShape(double X, double Y)
     {
	  return(null);
     }

     public point intersect(shape s, int whichPoint)
     {
	  return(null);
     }

//     public void addLinkedShape(shape s)
//     {
//	  linkedShapes[numLinkedShapes++] = s;
//	  
//	  if (numLinkedShapes == maxLinkedShapes)
//	  {
//	       shape[] newList = new shape[2 * maxLinkedShapes];
//	       for (int i = 0; i < numLinkedShapes; i++)
//		    newList[i] = linkedShapes[i];
//	       
//	       linkedShapes = newList;
//	       maxLinkedShapes *= 2;
//	  }
//     }
     
//     public void removeLinkedShape(shape s)
//     {
//	  for (int i = 0; i < numLinkedShapes; i++)
//	  {
//	       if (linkedShapes[i] == s)
//	       {
//		    for (i++; i < numLinkedShapes; i++)
//			 linkedShapes[i-1] = linkedShapes[i];
//		    numLinkedShapes--;
//		    break;
//	       }
//	  }
//     }

     public void resetTranslated()
     {
	  translated = false;
     }

     public boolean translate(double dx, double dy)
     {
	  return(true);
     }

//     public void translateLinkedShapes(double dx, double dy)
//     {
//	  for (int i = 0; i < numLinkedShapes; i++)
//	  {
//	       linkedShapes[i].translate(dx, dy);
//	  }
//     }

     public boolean mouseDown(double X, double Y)
     {
	  return(false);
     }

     public boolean mouseDrag(double X, double Y)
     {
	  return(false);
     }

     public boolean mouseUp(double X, double Y)
     {
	  return(false);
     }
};


