RMCoreAnimationRenderer.m
2.21 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
//
// CoreAnimationRenderer.m
// RouteMe
//
// Created by Joseph Gentle on 9/09/08.
// Copyright 2008 __MyCompanyName__. All rights reserved.
//
#import "RMCoreAnimationRenderer.h"
#import <QuartzCore/QuartzCore.h>
#import "RMTile.h"
#import "RMTileLoader.h"
#import "RMPixel.h"
#import "RMTileImage.h"
#import "RMTileImageSet.h"
@implementation RMCoreAnimationRenderer
- (id) initForView: (UIView*)view WithContent: (RMMapContents *)_contents
{
if (![super initForView:view WithContent:_contents])
return nil;
layer = [[CAScrollLayer layer] retain];
layer.anchorPoint = CGPointMake(0.0f, 0.0f);
layer.masksToBounds = YES;
layer.frame = [view bounds];
layer.delegate = self;
[[view layer] addSublayer:layer];
return self;
}
-(void)mapImageLoaded: (NSNotification*)notification
{
}
- (id<CAAction>)actionForLayer:(CALayer *)theLayer
forKey:(NSString *)key
{
// NSLog(@"key: %@", key);
// if ([key isEqualToString:@"position"] || [key isEqualToString:@"bounds"])
return (id<CAAction>)[NSNull null];
// else
// return nil;
}
- (void)tileAdded: (RMTile) tile WithImage: (RMTileImage*) image
{
// NSLog(@"tileAdded");
[image makeLayer];
CALayer *sublayer = [image layer];
sublayer.delegate = self;
[layer addSublayer:sublayer];
}
-(void) tileRemoved: (RMTile) tile
{
RMTileImage *image = [[content imagesOnScreen] imageWithTile:tile];
[[image layer] removeFromSuperlayer];
}
-(NSString*) description
{
return @"CoreAnimation map renderer";
}
/*
- (void)moveBy: (CGSize) delta
{
[CATransaction begin];
[CATransaction setValue:[NSNumber numberWithFloat:0.0f]
forKey:kCATransactionAnimationDuration];
[CATransaction setValue:(id)kCFBooleanTrue
forKey:kCATransactionDisableActions];
[super moveBy:delta];
[tileLoader moveBy:delta];
[CATransaction commit];
}
- (void)zoomByFactor: (float) zoomFactor Near:(CGPoint) center
{
[CATransaction begin];
[CATransaction setValue:[NSNumber numberWithFloat:0.0f]
forKey:kCATransactionAnimationDuration];
[CATransaction setValue:(id)kCFBooleanTrue
forKey:kCATransactionDisableActions];
[super zoomByFactor:zoomFactor Near:center];
[tileLoader zoomByFactor:zoomFactor Near:center];
[CATransaction commit];
}
*/
@end