nl.tudelft.simulation.dsol.animation.gis.GisRenderable2d Maven / Gradle / Ivy
package nl.tudelft.simulation.dsol.animation.gis;
import java.awt.Dimension;
import java.awt.Graphics2D;
import java.awt.image.ImageObserver;
import org.djutils.draw.bounds.Bounds2d;
import org.djutils.draw.point.Point2d;
import nl.tudelft.simulation.dsol.animation.Locatable;
import nl.tudelft.simulation.dsol.animation.d2.Renderable2dInterface;
import nl.tudelft.simulation.dsol.animation.d2.RenderableScale;
import nl.tudelft.simulation.naming.context.Contextualized;
/**
* This renderable draws CAD/GIS objects.
*
* Copyright (c) 2020-2024 Delft University of Technology, Jaffalaan 5, 2628 BX Delft, the Netherlands. All rights reserved. See
* for project information DSOL Manual. The DSOL
* project is distributed under a three-clause BSD-style license, which can be found at
* DSOL License.
*
* @author Alexander Verbraeck
*/
public interface GisRenderable2d extends Renderable2dInterface, Locatable
{
/** {@inheritDoc} */
@Override
void paintComponent(Graphics2D graphics, Bounds2d extent, Dimension screen, RenderableScale renderableScale,
ImageObserver observer);
/** {@inheritDoc} */
@Override
default GisRenderable2d getSource()
{
return this;
}
/**
* @return map the Shapefile map
*/
GisMapInterface getMap();
/**
* destroys an RenderableObject by unsubscribing it from the context.
*/
@Override
void destroy(Contextualized contextProvider);
/** {@inheritDoc} */
@Override
default boolean contains(final Point2d pointWorldCoordinates, final Bounds2d extent)
{
return false;
}
/** {@inheritDoc} */
@Override
default long getId()
{
return -1; // drawn before the rest in case all z-values are the same
}
}