001// License: GPL. For details, see LICENSE file. 002package org.openstreetmap.josm.plugins.streetside; 003 004import org.openstreetmap.josm.data.coor.LatLon; 005import org.openstreetmap.josm.plugins.streetside.utils.StreetsideProperties; 006 007/** 008 * @author renerr18 009 * 010 * 011 */ 012public class StreetsideCubemap extends StreetsideAbstractImage { 013 014 /** 015 * If two values for field cd differ by less than EPSILON both values are considered equal. 016 */ 017 @SuppressWarnings("unused") 018 private static final float EPSILON = 1e-5f; 019 020 /** 021 * Main constructor of the class StreetsideCubemap 022 * 023 * @param quadId 024 * The Streetside id of the base frontal image of the cubemap 025 * in quternary 026 * @param latLon 027 * The latitude and longitude where it is positioned. 028 * @param he 029 * The direction of the images in degrees, meaning 0 north (camera 030 * direction is not yet supported in the Streetside plugin). 031 */ 032 public StreetsideCubemap(String quadId, LatLon latLon, double he) { 033 super(quadId, latLon, he); 034 } 035 036 /** 037 * Comparison method for the StreetsideCubemap object. 038 * 039 * @param image 040 * - a StreetsideAbstract image object 041 * 042 * StreetsideCubemaps are considered equal if they are associated 043 * with the same image id - only one cubemap may be displayed at a 044 * time. If the image selection changes, the cubemap changes. 045 * 046 * @return result of the hashcode comparison. 047 * @see org.openstreetmap.josm.plugins.streetside.StreetsideAbstractImage 048 */ 049 @Override 050 public int compareTo(StreetsideAbstractImage image) { 051 if (image instanceof StreetsideImage) { 052 return id.compareTo(((StreetsideImage) image).getId()); 053 } 054 return hashCode() - image.hashCode(); 055 } 056 057 /** 058 * HashCode StreetsideCubemap object. 059 * 060 * @return int hashCode 061 * @see org.openstreetmap.josm.plugins.streetside.StreetsideAbstractImage 062 */ 063 @Override 064 public int hashCode() { 065 return id.hashCode(); 066 } 067 068 /** 069 * stops ImageDisplay WalkAction (not currently supported by Streetside) 070 * 071 * @see org.openstreetmap.josm.plugins.streetside.actions.StreetsideWalkAction 072 */ 073 @Override 074 public void stopMoving() { 075 super.stopMoving(); 076 } 077 078 /** 079 * turns ImageDisplay WalkAction (not currently supported by Streetside) 080 * 081 * @param he - the direction the camera is facing (heading) 082 * 083 * @see org.openstreetmap.josm.plugins.streetside.actions.StreetsideWalkAction 084 */ 085 @Override 086 public void turn(double he) { 087 super.turn(he); 088 } 089 090 /** 091 * @return the height of an assembled cubemap face for 16-tiled or 4-tiled imagery 092 * 093 * @see org.openstreetmap.josm.plugins.streetside.actions.StreetsideWalkAction 094 */ 095 public int getHeight() { 096 return StreetsideProperties.SHOW_HIGH_RES_STREETSIDE_IMAGERY.get().booleanValue()?1016:510; 097 } 098 099}