/******************************************************************************* * Copyright (c) 2008, 2012 Stepan Rutz. * All rights reserved. This program and the accompanying materials * are made available under the terms of the Eclipse Public License v1.0 * which accompanies this distribution, and is available at * http://www.eclipse.org/legal/epl-v10.html * * Contributors: * Stepan Rutz - initial implementation * Hallvard Trætteberg - further cleanup and development *******************************************************************************/ package org.eclipse.nebula.widgets.geomap.internal; /** * A single tile in the map. A tile has an x and y coordinate, but * both only make sense in the context of a given zoom level. The * tile's zoom level is given by <code>z</code>. * * <p>For caching the tiles support some equals and hashCode behavior * that makes them suitable as key-objects in java-util collections.</p> */ public final class TileRef { /** * The x coordinate of this TileRef */ public final int x; /** * The y coordinate of this TileRef */ public final int y; /** * The z coordinate, i.e. zoom level, of this TileRef */ public final int z; /** * Initializes this TileRef with x, y and z coordinates * @param x the x coordinate * @param y the y coordinate * @param z the z coordinate */ public TileRef(int x, int y, int z) { this.x = x; this.y = y; this.z = z; } @Override @SuppressWarnings("nls") public String toString() { return "Tile {" + x + ", " + y + " @ " + z + "}"; } @Override public int hashCode() { final int prime = 31; int result = 1; result = prime * result + x; result = prime * result + y; result = prime * result + z; return result; } @Override public boolean equals(Object obj) { if (this == obj) { return true; } if (obj == null || getClass() != obj.getClass()) { return false; } TileRef other = (TileRef) obj; return (x == other.x && y == other.y && z == other.z); } }