001// License: GPL. For details, see LICENSE file.
002package org.openstreetmap.josm.data.osm.visitor.paint;
003
004import org.openstreetmap.josm.data.Bounds;
005import org.openstreetmap.josm.data.osm.OsmData;
006
007/**
008 * <p>An object which can render data provided by a {@link OsmData}.</p>
009 * @since  4087 (creation)
010 * @since 10600 (functional interface)
011 */
012@FunctionalInterface
013public interface Rendering {
014    /**
015     * <p>Renders the OSM data in {@code data}</p>
016     *
017     * @param data the data set to be rendered
018     * @param renderVirtualNodes if true, renders virtual nodes. Otherwise, ignores them.
019     * @param bbox the bounding box for the data to be rendered. Only objects within or intersecting
020     * with {@code bbox} are rendered
021     * @since 13810 (signature)
022     */
023    void render(OsmData<?, ?, ?, ?> data, boolean renderVirtualNodes, Bounds bbox);
024}