Up

# NSAffineTransform.m

### Authors

Ovidiu Predescu (`ovidiu@net-community.com`)
Richard Frith-Macdonald (`richard@brainstorm.co.uk`)

Date: Generated at 2025-02-13 06:02:40 +0000

> This class provides a way to perform affine transforms. It provides a matrix for transforming from one coordinate system to another.

Copyright: (C) 1996,1999 Free Software Foundation, Inc.

# Software documentation for the NSAffineTransform class

## NSAffineTransform : NSObject

> Declared in:
>   Foundation/NSAffineTransform.h

> Conforms to:
>   NSCopying
>   NSCoding

Availability: OpenStep
Description forthcoming.
Method summary

- +transform
- -appendTransform:
- -initWithTransform:
- -invert
- -prependTransform:
- -rotateByDegrees:
- -rotateByRadians:
- -scaleBy:
- -scaleXBy:yBy:
- -setTransformStruct:
- -transformPoint:
- -transformSize:
- -transformStruct
- -translateXBy:yBy:

### transform

+ (NSAffineTransform*) transform;
Availability: OpenStep
Return an autoreleased instance of this class.

### appendTransform:

- (void) appendTransform: (NSAffineTransform*)aTransform;
Availability: OpenStep
Appends the transform matrix to the receiver. This is done by performing a matrix multiplication of the receiver with aTransform so that aTransform is the first transform applied to the user coordinate. The new matrix then replaces the receiver's matrix.

### initWithTransform:

- (id) initWithTransform: (NSAffineTransform*)aTransform;
Availability: OpenStep
Initialize the receiever's instance with the instance represented by aTransform.

### invert

- (void) invert;
Availability: OpenStep
Calculates the inverse of the receiver's matrix and replaces the receiever's matrix with it.

### prependTransform:

- (void) prependTransform: (NSAffineTransform*)aTransform;
Availability: OpenStep
Prepends the transform matrix to the receiver. This is done by performing a matrix multiplication of the receiver with aTransform so that aTransform is the last transform applied to the user coordinate. The new matrix then replaces the receiver's matrix.

### rotateByDegrees:

- (void) rotateByDegrees: (CGFloat)angle;
Availability: OpenStep
Applies the rotation specified by angle in degrees. Points transformed with the transformation matrix of the receiver are rotated counter-clockwise by the number of degrees specified by angle.

### rotateByRadians:

- (void) rotateByRadians: (CGFloat)angleRad;
Availability: OpenStep
Applies the rotation specified by angle in radians. Points transformed with the transformation matrix of the receiver are rotated counter-clockwise by the number of radians specified by angle.

### scaleBy:

- (void) scaleBy: (CGFloat)scale;
Availability: OpenStep
Scales the transformation matrix of the reciever by the factor specified by scale.

### scaleXBy: yBy:

- (void) scaleXBy: (CGFloat)scaleX yBy: (CGFloat)scaleY;
Availability: OpenStep
Scales the X axis of the receiver's transformation matrix by scaleX and the Y axis of the transformation matrix by scaleY.

### setTransformStruct:

- (void) setTransformStruct: (NSAffineTransformStruct)val;
Availability: OpenStep

Sets the structure which represents the matrix of the reciever. The struct is of the form:

{m11, m12, m21, m22, tX, tY}

### transformPoint:

- (NSPoint) transformPoint: (NSPoint)aPoint;
Availability: OpenStep
Transforms a single point based on the transformation matrix. Returns the resulting point.

### transformSize:

- (NSSize) transformSize: (NSSize)aSize;
Availability: OpenStep
Transforms the NSSize represented by aSize using the reciever's transformation matrix. Returns the resulting NSSize.
NB. A transform can result in negative size components ... so calling code should check for and deal with that situation.

### transformStruct

- (NSAffineTransformStruct) transformStruct;
Availability: OpenStep

Returns the `NSAffineTransformStruct` structure which represents the matrix of the reciever. The struct is of the form:

{m11, m12, m21, m22, tX, tY}

### translateXBy: yBy:

- (void) translateXBy: (CGFloat)tranX yBy: (CGFloat)tranY;
Availability: OpenStep
Applies the translation specified by tranX and tranY to the receiver's matrix. Points transformed by the reciever's matrix after this operation will be shifted in position based on the specified translation.

Up