PageRenderTime 11ms CodeModel.GetById 4ms app.highlight 5ms RepoModel.GetById 1ms app.codeStats 0ms

/MapView/Map/RMTile.h

http://github.com/route-me/route-me
C Header | 82 lines | 23 code | 9 blank | 50 comment | 0 complexity | 5b085d934efedb861346d85479da3eb0 MD5 | raw file
 1//
 2//  RMTile.h
 3//
 4// Copyright (c) 2008-2009, Route-Me Contributors
 5// All rights reserved.
 6//
 7// Redistribution and use in source and binary forms, with or without
 8// modification, are permitted provided that the following conditions are met:
 9//
10// * Redistributions of source code must retain the above copyright notice, this
11//   list of conditions and the following disclaimer.
12// * Redistributions in binary form must reproduce the above copyright notice,
13//   this list of conditions and the following disclaimer in the documentation
14//   and/or other materials provided with the distribution.
15//
16// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
17// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
18// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
19// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
20// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
21// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
22// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
23// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
24// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
25// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
26// POSSIBILITY OF SUCH DAMAGE.
27
28#ifndef _TILE_H_
29#define _TILE_H_
30
31#include <CoreGraphics/CGGeometry.h>
32//#include <Quartz/Quartz.h>
33#include <stdint.h>
34/*! \file RMTile.h
35 */
36/*! \struct RMTile
37 \brief Uniquely specifies coordinates and zoom level for a particular tile in some tile source.
38 
39 This is a 3-field number. If you want the image associated with an RMTile, you're looking for RMTileImage
40 */
41typedef struct{
42	uint32_t x, y;
43	short zoom;
44} RMTile;
45
46/*! \struct RMTilePoint
47 \brief Don't know what this is for.
48 */
49typedef struct{
50	RMTile tile;
51	CGPoint offset;
52} RMTilePoint;
53
54/*! \struct RMTileRect
55 \brief Don't know what this is for.
56 */
57typedef struct{
58	RMTilePoint origin;
59	CGSize size;
60} RMTileRect;
61
62char RMTilesEqual(RMTile one, RMTile two);
63
64char RMTileIsDummy(RMTile tile);
65RMTile RMTileDummy();
66
67/// Return a hash of the tile, used to override the NSObject hash method for RMTile.
68uint64_t RMTileHash(RMTile tile);
69
70/// Returns a unique key of the tile for use in the SQLite cache
71uint64_t RMTileKey(RMTile tile);
72
73/// Round the rectangle to whole numbers of tiles
74RMTileRect RMTileRectRound(RMTileRect rect);
75/*
76/// Calculate and return the intersection of two rectangles
77TileRect TileRectIntersection(TileRect one, TileRect two);
78
79/// Calculate and return the union of two rectangles
80TileRect TileRectUnion(TileRect one, TileRect two);
81*/
82#endif