001// License: GPL. For details, see LICENSE file.
002package org.openstreetmap.josm.data.imagery.vectortile.mapbox;
003
004/**
005 * Geometry types used by Mapbox Vector Tiles
006 * @author Taylor Smock
007 * @since 17862
008 */
009public enum GeometryTypes {
010    /** May be ignored */
011    UNKNOWN,
012    /** May be a point or a multipoint geometry. Uses <i>only</i> {@link Command#MoveTo}. Multiple {@link Command#MoveTo}
013     * indicates that it is a multi-point object. */
014    POINT,
015    /** May be a line or a multiline geometry. Each line {@link Command#MoveTo} and one or more {@link Command#LineTo}. */
016    LINESTRING,
017    /** May be a polygon or a multipolygon. Each ring uses a {@link Command#MoveTo}, one or more {@link Command#LineTo},
018     * and one {@link Command#ClosePath} command. See {@link Ring}s. */
019    POLYGON;
020
021    /**
022     * Rings used by {@link GeometryTypes#POLYGON}
023     * @author Taylor Smock
024     */
025    public enum Ring {
026        /** A ring that goes in the clockwise direction */
027        ExteriorRing,
028        /** A ring that goes in the anti-clockwise direction */
029        InteriorRing
030    }
031}