package org.archstudio.bna;
import javax.media.opengl.GL2ES2;
import org.archstudio.bna.ui.IUIResources;
import org.archstudio.bna.ui.jogl.IJOGLResources;
import org.archstudio.bna.ui.swt.ISWTResources;
import org.eclipse.swt.graphics.GC;
import org.eclipse.swt.graphics.Rectangle;
public interface IThingPeer<T extends IThing> {
/**
* Determine if the given point is "in" the peer's associated {@link IThing}. That is, if the user clicked the mouse
* on the given point, would they reasonably expect it to have hit this {@link IThing}?
*
* @param location
* The {@link ICoordinate location} of the point.
*
* @return <code>true</code> if the point is "in" the {@link IThing}, <code>false</code> otherwise.
*/
public boolean isInThing(ICoordinate location);
public boolean draw(Rectangle localBounds, IUIResources r);
public void draw(GL2ES2 gl, Rectangle localBounds, IJOGLResources r);
public void draw(GC gc, Rectangle localBounds, ISWTResources r);
public void dispose();
}