/* * Copyright (c) 2005, the JUNG Project and the Regents of the University of * California All rights reserved. * * This software is open-source under the BSD license; see either "license.txt" * or http://jung.sourceforge.net/license.txt for a description. * * * Created on Apr 12, 2005 */ package edu.uci.ics.jung.algorithms.layout; import java.awt.Shape; import java.util.Collection; /** * Interface for coordinate-based selection of graph components. * @author Tom Nelson * @author Joshua O'Madadhain */ public interface GraphElementAccessor<V, E> { /** * Returns a vertex which is associated with the * location <code>(x,y)</code>. This is typically determined * with respect to the vertex's location as specified * by a <code>Layout</code>. */ V getVertex(Layout<V,E> layout, double x, double y); /** * Returns the vertices contained within {@code rectangle} relative * to {@code layout}. */ Collection<V> getVertices(Layout<V,E> layout, Shape rectangle); /** * Returns an edge which is associated with the * location <code>(x,y)</code>. This is typically determined * with respect to the edge's location as specified * by a {@code Layout}. */ E getEdge(Layout<V,E> layout, double x, double y); }