//
//  CAScrollDeltaLayer.h
//  GooPad
//
//  Created by Joachim Bengtsson on 2007-08-03.
//  Copyright 2007 Joachim Bengtsson. All rights reserved.
//

#import <Cocoa/Cocoa.h>
#import <QuartzCore/QuartzCore.h>

struct TCVector {
  CGFloat x, y, z;
};
typedef struct TCVector TCVector;
extern TCVector TCVectorMake(CGFloat x, CGFloat y, CGFloat z); 

@interface CAScrollDeltaLayer: CAScrollLayer {
  CGRect currentScroll;
  CGFloat currentZoom;
  TCVector currentRotation;
}

- (void)scrollDelta:(CGPoint)deltaScroll;
- (void)zoomDelta:(CGFloat)deltaZoom;

- (void)rotateDelta:(TCVector)rotations;

-(CGFloat)zoom;

- (void)scrollToPoint:(CGPoint)thePoint;
- (void)scrollToRect:(CGRect)theRect;

- (CGPoint)compensatePoint:(CGPoint)p;
- (NSPoint)compensateNSPoint:(NSPoint)p;

-(CGPoint) unscrollPoint:(CGPoint)p;

// private
-(void)applyTransforms;
@end
