// (c): Matti J. Katila
package org.nongnu.libvob.buoy;
import org.nongnu.libvob.VobScene;
/** Manager for multiple buoy manager views of buoy oriented interface.
*/
public interface MultiBuoyManager {
/** Draw all buoy managers, focis and buoys related to them,
* into scene.
* @see VobScene
*/
void draw(VobScene vs);
/** Find the topmost buoy manager
* from overlapping managers.
*/
BuoyManager findTopmostBuoyManager(VobScene oldVS, int x, int y);
/** Find if a buoy was hit by the coordinates.
* The buoy is only searched from coordinate system 0's
* child coordinate systems.
*/
BuoyManager.Buoy findIfBuoyHit(VobScene oldVS, int x, int y);
/** Get the last buoy which has been found
* with findIfBuoyHit
method.
*/
BuoyManager.Buoy getLastFoundBuoy();
/** Get the manager which has the last found buoy.
*/
BuoyManager getManagerByLastBuoyHit();
/** Set the active buoy manager.
* Buo manager is also set if findIfBuoyHit
* method founds a buoy.
*/
void setActiveBuoyManager(BuoyManager manager);
/** Get the buoy manager which has been activated last.
*/
BuoyManager getActiveBuoyManager();
}