<Type Name="Affine" FullName="Art.Affine">
  <TypeSignature Language="C#" Value="public class Affine" Maintainer="auto" />
  <TypeSignature Language="ILAsm" Value=".class public auto ansi beforefieldinit Affine extends System.Object" />
  <AssemblyInfo>
    <AssemblyName>art-sharp</AssemblyName>
    <AssemblyPublicKey>
    </AssemblyPublicKey>
    <AssemblyVersion>2.20.0.0</AssemblyVersion>
    <AssemblyVersion>2.24.0.0</AssemblyVersion>
  </AssemblyInfo>
  <ThreadSafetyStatement>Gtk# is thread aware, but not thread safe; See the <link location="node:gtk-sharp/programming/threads">Gtk# Thread Programming</link> for details.</ThreadSafetyStatement>
  <Base>
    <BaseTypeName>System.Object</BaseTypeName>
  </Base>
  <Interfaces />
  <Docs>
    <summary>Defines an affine transformation</summary>
    <remarks>To be added</remarks>
  </Docs>
  <Members>
    <Member MemberName=".ctor">
      <MemberSignature Language="C#" Value="public Affine ();" />
      <MemberSignature Language="ILAsm" Value=".method public hidebysig specialname rtspecialname instance void .ctor() cil managed" />
      <MemberType>Constructor</MemberType>
      <AssemblyInfo>
        <AssemblyVersion>2.24.0.0</AssemblyVersion>
      </AssemblyInfo>
      <ReturnValue />
      <Parameters />
      <Docs>
        <summary>To be added</summary>
        <remarks>To be added</remarks>
      </Docs>
    </Member>
    <Member MemberName="Equal">
      <MemberSignature Language="C#" Value="public static bool Equal (double[] matrix1, double[] matrix2);" />
      <MemberSignature Language="ILAsm" Value=".method public static hidebysig bool Equal(float64[] matrix1, float64[] matrix2) cil managed" />
      <MemberType>Method</MemberType>
      <AssemblyInfo>
        <AssemblyVersion>2.24.0.0</AssemblyVersion>
      </AssemblyInfo>
      <ReturnValue>
        <ReturnType>System.Boolean</ReturnType>
      </ReturnValue>
      <Parameters>
        <Parameter Name="matrix1" Type="System.Double[]" />
        <Parameter Name="matrix2" Type="System.Double[]" />
      </Parameters>
      <Docs>
        <param name="matrix1">An affine transformation.</param>
        <param name="matrix2">Another affine transformation.</param>
        <summary>Determine if two matrices are equal.</summary>
        <returns>
          <see langword="true" /> if the matrices are equal.</returns>
        <remarks>Equality is verified with epsilon-tolerance for roundoff errors.</remarks>
        <since version="Gtk# 2.4" />
      </Docs>
    </Member>
    <Member MemberName="Expansion">
      <MemberSignature Language="C#" Value="public static double Expansion (double[] src);" />
      <MemberSignature Language="ILAsm" Value=".method public static hidebysig float64 Expansion(float64[] src) cil managed" />
      <MemberType>Method</MemberType>
      <AssemblyInfo>
        <AssemblyVersion>2.24.0.0</AssemblyVersion>
      </AssemblyInfo>
      <ReturnValue>
        <ReturnType>System.Double</ReturnType>
      </ReturnValue>
      <Parameters>
        <Parameter Name="src" Type="System.Double[]" />
      </Parameters>
      <Docs>
        <param name="src">The affine transformation.</param>
        <summary>Finds the expansion factor, i.e. the square root of the factor by which the affine transform affects area.</summary>
        <returns>The expansion factor.</returns>
        <remarks>In an affine transform composed of scaling, rotation, shearing, and translation, returns the amount of scaling.</remarks>
      </Docs>
    </Member>
    <Member MemberName="Flip">
      <MemberSignature Language="C#" Value="public static void Flip (double[] dst_affine, double[] src_affine, bool horz, bool vert);" />
      <MemberSignature Language="ILAsm" Value=".method public static hidebysig void Flip(float64[] dst_affine, float64[] src_affine, bool horz, bool vert) cil managed" />
      <MemberType>Method</MemberType>
      <AssemblyInfo>
        <AssemblyVersion>2.24.0.0</AssemblyVersion>
      </AssemblyInfo>
      <ReturnValue>
        <ReturnType>System.Void</ReturnType>
      </ReturnValue>
      <Parameters>
        <Parameter Name="dst_affine" Type="System.Double[]" />
        <Parameter Name="src_affine" Type="System.Double[]" />
        <Parameter Name="horz" Type="System.Boolean" />
        <Parameter Name="vert" Type="System.Boolean" />
      </Parameters>
      <Docs>
        <param name="dst_affine">Where to store the resulting affine transform.</param>
        <param name="src_affine">The original affine transformation.</param>
        <param name="horz">Whether or not to flip horizontally.</param>
        <param name="vert">Whether or not to flip vertically.</param>
        <summary>Flips the affine transform.</summary>
        <remarks>Both horz and vert false results in a simple copy operation. True for both results in an 180 degree rotation.</remarks>
        <since version="Gtk# 2.4" />
      </Docs>
    </Member>
    <Member MemberName="Identity">
      <MemberSignature Language="C#" Value="public static void Identity (double[] dst);" />
      <MemberSignature Language="ILAsm" Value=".method public static hidebysig void Identity(float64[] dst) cil managed" />
      <MemberType>Method</MemberType>
      <AssemblyInfo>
        <AssemblyVersion>2.24.0.0</AssemblyVersion>
      </AssemblyInfo>
      <ReturnValue>
        <ReturnType>System.Void</ReturnType>
      </ReturnValue>
      <Parameters>
        <Parameter Name="dst" Type="System.Double[]" />
      </Parameters>
      <Docs>
        <param name="dst">Where to store the resulting affine transform.</param>
        <summary>Set up the identity matrix.</summary>
        <remarks>To be added</remarks>
      </Docs>
    </Member>
    <Member MemberName="Invert">
      <MemberSignature Language="C#" Value="public static void Invert (double[] dst_affine, double[] src_affine);" />
      <MemberSignature Language="ILAsm" Value=".method public static hidebysig void Invert(float64[] dst_affine, float64[] src_affine) cil managed" />
      <MemberType>Method</MemberType>
      <AssemblyInfo>
        <AssemblyVersion>2.24.0.0</AssemblyVersion>
      </AssemblyInfo>
      <ReturnValue>
        <ReturnType>System.Void</ReturnType>
      </ReturnValue>
      <Parameters>
        <Parameter Name="dst_affine" Type="System.Double[]" />
        <Parameter Name="src_affine" Type="System.Double[]" />
      </Parameters>
      <Docs>
        <param name="dst_affine">Where the resulting affine is stored.</param>
        <param name="src_affine">The original affine transformation.</param>
        <summary>Sets up the inverse of the given transformation.</summary>
        <remarks>The inverse is in the classical sense; src_affine multiplied with dst_affine, or dst_affine multiplied with src_affine will be (to within roundoff error) the identify affine. See <see cref="M:Art.Affine.Identity(double[])" /></remarks>
      </Docs>
    </Member>
    <Member MemberName="Multiply">
      <MemberSignature Language="C#" Value="public static void Multiply (double[] dst, double[] src1, double[] src2);" />
      <MemberSignature Language="ILAsm" Value=".method public static hidebysig void Multiply(float64[] dst, float64[] src1, float64[] src2) cil managed" />
      <MemberType>Method</MemberType>
      <AssemblyInfo>
        <AssemblyVersion>2.24.0.0</AssemblyVersion>
      </AssemblyInfo>
      <ReturnValue>
        <ReturnType>System.Void</ReturnType>
      </ReturnValue>
      <Parameters>
        <Parameter Name="dst" Type="System.Double[]" />
        <Parameter Name="src1" Type="System.Double[]" />
        <Parameter Name="src2" Type="System.Double[]" />
      </Parameters>
      <Docs>
        <param name="dst">Where to store the resulting affine transform.</param>
        <param name="src1">The first affine transform to multiply.</param>
        <param name="src2">The second affine transform to multiply.</param>
        <summary>Multiplies two affine transforms together, i.e. the resulting dst is equivalent to doing first src1 then src2.</summary>
        <remarks>To be added</remarks>
      </Docs>
    </Member>
    <Member MemberName="Point">
      <MemberSignature Language="C#" Value="public static Art.Point Point (Art.Point src, double[] affine);" />
      <MemberSignature Language="ILAsm" Value=".method public static hidebysig valuetype Art.Point Point(valuetype Art.Point src, float64[] affine) cil managed" />
      <MemberType>Method</MemberType>
      <AssemblyInfo>
        <AssemblyVersion>2.24.0.0</AssemblyVersion>
      </AssemblyInfo>
      <ReturnValue>
        <ReturnType>Art.Point</ReturnType>
      </ReturnValue>
      <Parameters>
        <Parameter Name="src" Type="Art.Point" />
        <Parameter Name="affine" Type="System.Double[]" />
      </Parameters>
      <Docs>
        <param name="src">The original point.</param>
        <param name="affine">The affine transform.</param>
        <summary>Apply an affine transform to an <see cref="T:Art.Point" />.</summary>
        <returns>The resulting point after performing the transform.</returns>
        <remarks>To be added</remarks>
      </Docs>
    </Member>
    <Member MemberName="Rectilinear">
      <MemberSignature Language="C#" Value="public static bool Rectilinear (double[] src);" />
      <MemberSignature Language="ILAsm" Value=".method public static hidebysig bool Rectilinear(float64[] src) cil managed" />
      <MemberType>Method</MemberType>
      <AssemblyInfo>
        <AssemblyVersion>2.24.0.0</AssemblyVersion>
      </AssemblyInfo>
      <ReturnValue>
        <ReturnType>System.Boolean</ReturnType>
      </ReturnValue>
      <Parameters>
        <Parameter Name="src" Type="System.Double[]" />
      </Parameters>
      <Docs>
        <param name="src">The affine transformation to test.</param>
        <summary>Determines wether a matrix is rectilinear, i.e. grid-aligned rectangles are transformed to other grid-aligned rectangles.</summary>
        <returns>
          <see langword="true" /> if the matrix is rectilinear.</returns>
        <remarks>The implementation has epsilon-tolerance for roundoff errors.</remarks>
        <since version="Gtk# 2.4" />
      </Docs>
    </Member>
    <Member MemberName="Rotate">
      <MemberSignature Language="C#" Value="public static void Rotate (double[] dst, double theta);" />
      <MemberSignature Language="ILAsm" Value=".method public static hidebysig void Rotate(float64[] dst, float64 theta) cil managed" />
      <MemberType>Method</MemberType>
      <AssemblyInfo>
        <AssemblyVersion>2.24.0.0</AssemblyVersion>
      </AssemblyInfo>
      <ReturnValue>
        <ReturnType>System.Void</ReturnType>
      </ReturnValue>
      <Parameters>
        <Parameter Name="dst" Type="System.Double[]" />
        <Parameter Name="theta" Type="System.Double" />
      </Parameters>
      <Docs>
        <param name="dst">Where to store the resulting affine transformation.</param>
        <param name="theta">Rotation angle in degrees.</param>
        <summary>Sets up a rotation matrix.</summary>
        <remarks>To be added</remarks>
      </Docs>
    </Member>
    <Member MemberName="Scale">
      <MemberSignature Language="C#" Value="public static void Scale (double[] dst, double sx, double sy);" />
      <MemberSignature Language="ILAsm" Value=".method public static hidebysig void Scale(float64[] dst, float64 sx, float64 sy) cil managed" />
      <MemberType>Method</MemberType>
      <AssemblyInfo>
        <AssemblyVersion>2.24.0.0</AssemblyVersion>
      </AssemblyInfo>
      <ReturnValue>
        <ReturnType>System.Void</ReturnType>
      </ReturnValue>
      <Parameters>
        <Parameter Name="dst" Type="System.Double[]" />
        <Parameter Name="sx" Type="System.Double" />
        <Parameter Name="sy" Type="System.Double" />
      </Parameters>
      <Docs>
        <param name="dst">Where to store the resulting affine transform.</param>
        <param name="sx">X scale factor.</param>
        <param name="sy">Y scale factor.</param>
        <summary>Sets up a scaling matrix.</summary>
        <remarks>To be added</remarks>
      </Docs>
    </Member>
    <Member MemberName="Shear">
      <MemberSignature Language="C#" Value="public static void Shear (double[] dst, double theta);" />
      <MemberSignature Language="ILAsm" Value=".method public static hidebysig void Shear(float64[] dst, float64 theta) cil managed" />
      <MemberType>Method</MemberType>
      <AssemblyInfo>
        <AssemblyVersion>2.24.0.0</AssemblyVersion>
      </AssemblyInfo>
      <ReturnValue>
        <ReturnType>System.Void</ReturnType>
      </ReturnValue>
      <Parameters>
        <Parameter Name="dst" Type="System.Double[]" />
        <Parameter Name="theta" Type="System.Double" />
      </Parameters>
      <Docs>
        <param name="dst">Where to store the resulting affine transformation.</param>
        <param name="theta">Shear angle in degrees.</param>
        <summary>Setup a shearing matrix</summary>
        <remarks>To be added</remarks>
      </Docs>
    </Member>
    <Member MemberName="ToStringArray">
      <MemberSignature Language="C#" Value="public static void ToStringArray (string[] str, double[] src);" />
      <MemberSignature Language="ILAsm" Value=".method public static hidebysig void ToStringArray(string[] str, float64[] src) cil managed" />
      <MemberType>Method</MemberType>
      <AssemblyInfo>
        <AssemblyVersion>2.24.0.0</AssemblyVersion>
      </AssemblyInfo>
      <ReturnValue>
        <ReturnType>System.Void</ReturnType>
      </ReturnValue>
      <Parameters>
        <Parameter Name="str" Type="System.String[]" />
        <Parameter Name="src" Type="System.Double[]" />
      </Parameters>
      <Docs>
        <param name="str">The resulting string.</param>
        <param name="src">The affine transform.</param>
        <summary>Converts an affine transform into a bit of PostScript code that implements the transform.</summary>
        <remarks>Special cases of scaling, rotation, and translation are detected, and the corresponding PostScript operators used (this greatly aids understanding the output generated). The identity transform is mapped to the null string.</remarks>
      </Docs>
    </Member>
    <Member MemberName="Translate">
      <MemberSignature Language="C#" Value="public static void Translate (double[] dst, double tx, double ty);" />
      <MemberSignature Language="ILAsm" Value=".method public static hidebysig void Translate(float64[] dst, float64 tx, float64 ty) cil managed" />
      <MemberType>Method</MemberType>
      <AssemblyInfo>
        <AssemblyVersion>2.24.0.0</AssemblyVersion>
      </AssemblyInfo>
      <ReturnValue>
        <ReturnType>System.Void</ReturnType>
      </ReturnValue>
      <Parameters>
        <Parameter Name="dst" Type="System.Double[]" />
        <Parameter Name="tx" Type="System.Double" />
        <Parameter Name="ty" Type="System.Double" />
      </Parameters>
      <Docs>
        <param name="dst">Where to store the resulting affine transform.</param>
        <param name="tx">X translation amount.</param>
        <param name="ty">Y translation amount.</param>
        <summary>Sets up a translation matrix.</summary>
        <remarks>To be added</remarks>
      </Docs>
    </Member>
  </Members>
</Type>
