<?xml version="1.0"?>
<!DOCTYPE gsdoc PUBLIC "-//GNUstep//DTD gsdoc 1.0.3//EN" "http://www.gnustep.org/gsdoc-1_0_3.xml">
<gsdoc base="NSAffineTransform" up="Gui">
  <head>
    <title>NSAffineTransform.m</title>
    <author name="Ovidiu Predescu">
      <email address="ovidiu@net-community.com">
        ovidiu@net-community.com
      </email>
    </author>
    <author name="Richard Frith-Macdonald">
      <email address="richard@brainstorm.co.uk">
        richard@brainstorm.co.uk
      </email>
    </author>
    <abstract>
      This class provides a way to perform affine transforms. It
      provides a matrix for transforming from one coordinate
      system to another.
    </abstract>
    <copy>1996,1999 Free Software Foundation, Inc.</copy>
  </head>
  <body>
    <front><contents /></front>
    <chapter>
      <heading>
        Software documentation for the NSAffineTransform class
      </heading>
      <class name="NSAffineTransform" super="NSObject" ovadd="1.0.0">
        <declared>AppKit/NSAffineTransform.h</declared>
        <conform>NSCopying</conform>
        <conform>NSCoding</conform>
        <desc>
          <em>Description forthcoming.</em>
        </desc>
        <ivariable type="NSAffineTransformStruct" name="matrix" validity="public">
          <desc>
            <em>Description forthcoming.</em>
          </desc>
        </ivariable>
        <method type="NSAffineTransform*" factory="yes" ovadd="1.0.0">
          <sel>transform</sel>
          <desc>
            Return an autoreleased instance of this class.
          </desc>
        </method>
        <method type="void" ovadd="1.0.0">
          <sel>appendTransform:</sel>
          <arg type="NSAffineTransform*">aTransform</arg>
          <desc>
            Appends the transform matrix to the receiver. This
            is done by performing a matrix multiplication of the
            receiver with <var>aTransform</var> so that
            <var>aTransform</var> is the first transform applied
            to the user coordinate. The new matrix then replaces the
            receiver's matrix.
          </desc>
        </method>
        <method type="void" ovadd="1.0.0">
          <sel>concat</sel>
          <desc>
            Concatenates the receiver's matrix with the
            one in the current graphics context.
          </desc>
        </method>
        <method type="id" ovadd="1.0.0">
          <sel>initWithTransform:</sel>
          <arg type="NSAffineTransform*">aTransform</arg>
          <desc>
            Initialize the receiever's instance with the
            instance represented by <var>aTransform</var>.
          </desc>
        </method>
        <method type="void" ovadd="1.0.0">
          <sel>invert</sel>
          <desc>
            Calculates the inverse of the receiver's matrix
            and replaces the receiever's matrix with it.
          </desc>
        </method>
        <method type="void" ovadd="1.0.0">
          <sel>prependTransform:</sel>
          <arg type="NSAffineTransform*">aTransform</arg>
          <desc>
            Prepends the transform matrix to the receiver.
            This is done by performing a matrix multiplication of
            the receiver with <var>aTransform</var> so that
            <var>aTransform</var> is the last transform applied
            to the user coordinate. The new matrix then replaces the
            receiver's matrix.
          </desc>
        </method>
        <method type="void" ovadd="1.0.0">
          <sel>rotateByDegrees:</sel>
          <arg type="float">angle</arg>
          <desc>
            Applies the rotation specified by <var>angle</var>
            in degrees. Points transformed with the transformation
            matrix of the receiver are rotated counter-clockwise
            by the number of degrees specified by <var>angle</var>.
          </desc>
        </method>
        <method type="void" ovadd="1.0.0">
          <sel>rotateByRadians:</sel>
          <arg type="float">angleRad</arg>
          <desc>
            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.
          </desc>
        </method>
        <method type="void" ovadd="1.0.0">
          <sel>scaleBy:</sel>
          <arg type="float">scale</arg>
          <desc>
            Scales the transformation matrix of the reciever by
            the factor specified by <var>scale</var>.
          </desc>
        </method>
        <method type="void" ovadd="1.0.0">
          <sel>scaleXBy:</sel>
          <arg type="float">scaleX</arg>
          <sel>yBy:</sel>
          <arg type="float">scaleY</arg>
          <desc>
            Scales the X axis of the receiver's transformation
            matrix by <var>scaleX</var> and the Y axis of the
            transformation matrix by <var>scaleY</var>.
          </desc>
        </method>
        <method type="void" ovadd="1.0.0">
          <sel>set</sel>
          <desc>
            Get the currently active graphics context's
            transformation matrix and set it into the
            receiver.
          </desc>
        </method>
        <method type="void" ovadd="1.0.0">
          <sel>setTransformStruct:</sel>
          <arg type="NSAffineTransformStruct">val</arg>
          <desc>
            <p>
              Sets the structure which represents the matrix of
              the reciever. The struct is of the form:
            </p>
            <p>{m11, m12, m21, m22, tX, tY}</p>
          </desc>
        </method>
        <method type="NSBezierPath*" ovadd="1.0.0">
          <sel>transformBezierPath:</sel>
          <arg type="NSBezierPath*">aPath</arg>
          <desc>
            <p>
              Applies the receiver's transformation matrix to
              each point in the bezier path, then returns the
              result. The original bezier path is not modified.
            </p>
          </desc>
        </method>
        <method type="NSPoint" ovadd="1.0.0">
          <sel>transformPoint:</sel>
          <arg type="NSPoint">aPoint</arg>
          <desc>
            Transforms a single point based on the
            transformation matrix. Returns the resulting
            point.
          </desc>
        </method>
        <method type="NSSize" ovadd="1.0.0">
          <sel>transformSize:</sel>
          <arg type="NSSize">aSize</arg>
          <desc>
            Transforms the NSSize represented by
            <var>aSize</var> using the reciever's transformation
            matrix. Returns the resulting NSSize.
          </desc>
        </method>
        <method type="NSAffineTransformStruct" ovadd="1.0.0">
          <sel>transformStruct</sel>
          <desc>
            <p>
              Returns the <code>NSAffineTransformStruct</code>
              structure which represents the matrix of the
              reciever. The struct is of the form:
            </p>
            <p>{m11, m12, m21, m22, tX, tY}</p>
          </desc>
        </method>
        <method type="void" ovadd="1.0.0">
          <sel>translateXBy:</sel>
          <arg type="float">tranX</arg>
          <sel>yBy:</sel>
          <arg type="float">tranY</arg>
          <desc>
            Applies the translation specified by
            <var>tranX</var> and <var>tranY</var> 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.
          </desc>
        </method>
      </class>
    </chapter>
    <chapter>
      <heading>
        Software documentation for the
        NSAffineTransform(GNUstep) category
      </heading>
      <category name="GNUstep" class="NSAffineTransform" gvadd="0.0.0">
        <declared>AppKit/NSAffineTransform.h</declared>
        <desc>
          <em>Description forthcoming.</em>
        </desc>
        <method type="void" gvadd="0.0.0">
          <sel>boundingRectFor:</sel>
          <arg type="NSRect">rect</arg>
          <sel>result:</sel>
          <arg type="NSRect*">newRect</arg>
          <desc>
            <em>Description forthcoming.</em>
          </desc>
        </method>
        <method type="void" gvadd="0.0.0">
          <sel>concatenateWith:</sel>
          <arg type="NSAffineTransform*">anotherMatrix</arg>
          <desc>
            <em>Description forthcoming.</em>
          </desc>
        </method>
        <method type="void" gvadd="0.0.0">
          <sel>concatenateWithMatrix:</sel>
          <arg type="const float[6]">anotherMatrix</arg>
          <desc>
            <em>Description forthcoming.</em>
          </desc>
        </method>
        <method type="NSPoint" gvadd="0.0.0">
          <sel>deltaPointInMatrixSpace:</sel>
          <arg type="NSPoint">point</arg>
          <desc>
            <em>Description forthcoming.</em>
          </desc>
        </method>
        <method type="void" gvadd="0.0.0">
          <sel>getMatrix:</sel>
          <arg type="float[6]">replace</arg>
          <desc>
            <em>Description forthcoming.</em>
          </desc>
        </method>
        <method type="void" gvadd="0.0.0">
          <sel>inverse</sel>
          <desc>
            <em>Description forthcoming.</em>
          </desc>
        </method>
        <method type="BOOL" gvadd="0.0.0">
          <sel>isRotated</sel>
          <desc>
            <em>Description forthcoming.</em>
          </desc>
        </method>
        <method type="void" gvadd="0.0.0">
          <sel>makeIdentityMatrix</sel>
          <desc>
            <em>Description forthcoming.</em>
          </desc>
        </method>
        <method type="NSPoint" gvadd="0.0.0">
          <sel>pointInMatrixSpace:</sel>
          <arg type="NSPoint">point</arg>
          <desc>
            <em>Description forthcoming.</em>
          </desc>
        </method>
        <method type="NSRect" gvadd="0.0.0">
          <sel>rectInMatrixSpace:</sel>
          <arg type="NSRect">rect</arg>
          <desc>
            <em>Description forthcoming.</em>
          </desc>
        </method>
        <method type="float" gvadd="0.0.0">
          <sel>rotationAngle</sel>
          <desc>
            <em>Description forthcoming.</em>
          </desc>
        </method>
        <method type="void" gvadd="0.0.0">
          <sel>scaleTo:</sel>
          <arg type="float">sx</arg>
          <sel>:</sel>
          <arg type="float">sy</arg>
          <desc>
            <em>Description forthcoming.</em>
          </desc>
        </method>
        <method type="void" gvadd="0.0.0">
          <sel>setFrameOrigin:</sel>
          <arg type="NSPoint">point</arg>
          <desc>
            <em>Description forthcoming.</em>
          </desc>
        </method>
        <method type="void" gvadd="0.0.0">
          <sel>setFrameRotation:</sel>
          <arg type="float">angle</arg>
          <desc>
            <em>Description forthcoming.</em>
          </desc>
        </method>
        <method type="void" gvadd="0.0.0">
          <sel>setMatrix:</sel>
          <arg type="const float[6]">replace</arg>
          <desc>
            <em>Description forthcoming.</em>
          </desc>
        </method>
        <method type="NSSize" gvadd="0.0.0">
          <sel>sizeInMatrixSpace:</sel>
          <arg type="NSSize">size</arg>
          <desc>
            <em>Description forthcoming.</em>
          </desc>
        </method>
        <method type="void" gvadd="0.0.0">
          <sel>takeMatrixFromTransform:</sel>
          <arg type="NSAffineTransform*">aTransform</arg>
          <desc>
            <em>Description forthcoming.</em>
          </desc>
        </method>
        <method type="void" gvadd="0.0.0">
          <sel>translateToPoint:</sel>
          <arg type="NSPoint">point</arg>
          <desc>
            <em>Description forthcoming.</em>
          </desc>
        </method>
      </category>
    </chapter>
  </body>
</gsdoc>
