PageRenderTime 155ms CodeModel.GetById 146ms app.highlight 7ms RepoModel.GetById 1ms app.codeStats 0ms

/MapView/Map/RMTileImageSet.h

http://github.com/route-me/route-me
C Header | 91 lines | 42 code | 20 blank | 29 comment | 0 complexity | d3fe3927bf8f96b6b392a86df287add8 MD5 | raw file
 1//
 2//  RMTileImageSet.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#import <TargetConditionals.h>
29#if TARGET_OS_IPHONE
30#	import <UIKit/UIKit.h>
31#else
32#	import <Cocoa/Cocoa.h>
33#endif
34#import "RMTile.h"
35
36@class RMTileImage;
37@protocol RMTileSource;
38
39@protocol RMTileImageSetDelegate<NSObject>
40
41@optional
42
43-(void) tileRemoved: (RMTile) tile;
44-(void) tileAdded: (RMTile) tile WithImage: (RMTileImage*) image;
45
46@end
47
48@interface RMTileImageSet : NSObject {
49	IBOutlet id delegate;
50	id<RMTileSource> tileSource;
51	NSMutableSet *images;
52	short zoom, tileDepth;
53}
54
55-(id) initWithDelegate: (id) _delegate;
56
57-(void) addTile: (RMTile) tile WithImage: (RMTileImage *)image At: (CGRect) screenLocation;
58-(void) addTile: (RMTile) tile At: (CGRect) screenLocation;
59/// Add tiles inside rect protected to bounds. Return rectangle containing bounds extended to full tile loading area
60-(CGRect) addTiles: (RMTileRect)rect ToDisplayIn:(CGRect)bounds;
61
62-(RMTileImage*) imageWithTile: (RMTile) tile;
63	
64-(void) removeTile: (RMTile) tile;
65
66-(void) removeAllTiles;
67
68- (void) setTileSource: (id<RMTileSource>)newTileSource;
69
70-(NSUInteger) count;
71
72- (void)moveBy: (CGSize) delta;
73- (void)zoomByFactor: (float) zoomFactor near:(CGPoint) center;
74
75//- (void) drawRect:(CGRect) rect;
76
77- (void) printDebuggingInformation;
78
79- (void)cancelLoading;
80
81-(void) tileImageLoaded:(NSNotification *)notification;
82-(void) removeTilesWorseThan: (RMTileImage *)newImage;
83-(BOOL) isTile: (RMTile)subject worseThanTile: (RMTile)object;
84-(RMTileImage *) anyTileImage;
85-(void) removeTilesOutsideOf: (RMTileRect)rect;
86
87@property (assign, nonatomic, readwrite) id delegate;
88// tileDepth defaults to zero. if tiles have no alpha, set this higher, 3 or so, to make zooming smoother
89@property (assign, readwrite) short zoom, tileDepth;
90@property (readonly) BOOL fullyLoaded;
91@end