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.DataSet;
006
007/**
008 * <p>An object which can render data provided by a {@link DataSet}.</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     */
022    void render(DataSet data, boolean renderVirtualNodes, Bounds bbox);
023}