1 /*
2    NSAffineTransform.h
3 
4    Copyright (C) 1996 Free Software Foundation, Inc.
5 
6    Author: Ovidiu Predescu <ovidiu@net-community.com>
7    Date: August 1997
8    Rewrite for MacOS-X compatibility: Richard Frith-Macdonald, 1999
9 
10    This file is part of the GNUstep GUI Library.
11 
12    This library is free software; you can redistribute it and/or
13    modify it under the terms of the GNU Lesser General Public
14    License as published by the Free Software Foundation; either
15    version 2 of the License, or (at your option) any later version.
16 
17    This library is distributed in the hope that it will be useful,
18    but WITHOUT ANY WARRANTY; without even the implied warranty of
19    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.	 See the GNU
20    Lesser General Public License for more details.
21 
22    You should have received a copy of the GNU Lesser General Public
23    License along with this library; see the file COPYING.LIB.
24    If not, see <http://www.gnu.org/licenses/> or write to the
25    Free Software Foundation, 51 Franklin Street, Fifth Floor,
26    Boston, MA 02110-1301, USA.
27 */
28 
29 #ifndef _GNUstep_H_NSAffineTransform
30 #define _GNUstep_H_NSAffineTransform
31 #import <GNUstepBase/GSVersionMacros.h>
32 
33 #import <Foundation/NSAffineTransform.h>
34 
35 @class NSBezierPath;
36 
37 @interface NSAffineTransform (GUIAdditions)
38 
39 - (void) concat;
40 - (void) set;
41 - (NSBezierPath*) transformBezierPath: (NSBezierPath*)aPath;
42 @end
43 
44 #if OS_API_VERSION(GS_API_NONE, GS_API_NONE)
45 #if GS_API_VERSION(GS_API_NONE, 011500)
46 @interface NSAffineTransform (GNUstep)
47 - (void) translateToPoint: (NSPoint)point;
48 - (void) scaleTo: (CGFloat)sx : (CGFloat)sy;
49 - (void) makeIdentityMatrix;
50 - (CGFloat) rotationAngle;
51 - (void) setFrameOrigin: (NSPoint)point;
52 - (void) setFrameRotation: (CGFloat)angle;
53 
54 /* Deprecated: use -invert  */
55 - (void) inverse;
56 
57 - (BOOL) isRotated;
58 
59 - (void) boundingRectFor: (NSRect)rect result: (NSRect*)newRect;
60 
61 /* Returns anotherMatrix * self */
62 - (void) concatenateWith: (NSAffineTransform*)anotherMatrix;
63 - (void) concatenateWithMatrix: (const float[6])anotherMatrix;
64 
65 - (NSPoint) pointInMatrixSpace: (NSPoint)point;
66 - (NSPoint) deltaPointInMatrixSpace: (NSPoint)point;
67 - (NSSize) sizeInMatrixSpace: (NSSize)size;
68 - (NSRect) rectInMatrixSpace: (NSRect)rect;
69 
70 /* Deprecated: use -setTransformStruct: */
71 - (void) setMatrix: (const float[6])replace;
72 /* Deprecated: use -transformStruct */
73 - (void) getMatrix: (float[6])replace;
74 
75 - (void) takeMatrixFromTransform: (NSAffineTransform *)aTransform;
76 
77 @end
78 #endif
79 #endif
80 
81 #endif /* _GNUstep_H_NSAffineTransform */
82