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