001// License: GPL. For details, see LICENSE file. 002package org.openstreetmap.josm.data.imagery.street_level; 003 004/** 005 * Projections for street level imagery 006 * @author Taylor Smock 007 * @since 18246 008 */ 009public enum Projections { 010 /** This is the image type from most cameras */ 011 PERSPECTIVE(1), 012 /** This will probably not be seen often in JOSM, but someone might have a synchronized pair of fisheye camers */ 013 FISHEYE(1), 014 /** 360 imagery using the equirectangular method (single image) */ 015 EQUIRECTANGULAR(1), 016 /** 360 imagery using a cube map */ 017 CUBE_MAP(6), 018 // Additional known projections: Equi-Angular Cubemap (EAC) from Google and the Pyramid format from Facebook 019 // Neither are particularly well-documented at this point, although I believe the Pyramid format uses 30 images. 020 /** In the event that we have no clue what the projection should be. Defaults to perspective viewing. */ 021 UNKNOWN(Integer.MAX_VALUE); 022 023 private final int expectedImages; 024 025 /** 026 * Create a new Projections enum 027 * @param expectedImages The maximum images for the projection type 028 */ 029 Projections(final int expectedImages) { 030 this.expectedImages = expectedImages; 031 } 032 033 /** 034 * Get the maximum number of expected images for the projection 035 * @return The number of expected images 036 */ 037 public int getExpectedImages() { 038 return this.expectedImages; 039 } 040}