/* * $Id: fcmatrix.fncs,v 1.1.1.2 2006/12/31 14:58:00 matthieu Exp $ * * Copyright © 2003 Keith Packard * * Permission to use, copy, modify, distribute, and sell this software and its * documentation for any purpose is hereby granted without fee, provided that * the above copyright notice appear in all copies and that both that * copyright notice and this permission notice appear in supporting * documentation, and that the name of Keith Packard not be used in * advertising or publicity pertaining to distribution of the software without * specific, written prior permission. Keith Packard makes no * representations about the suitability of this software for any purpose. It * is provided "as is" without express or implied warranty. * * KEITH PACKARD DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, * INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO * EVENT SHALL KEITH PACKARD BE LIABLE FOR ANY SPECIAL, INDIRECT OR * CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, * DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER * TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR * PERFORMANCE OF THIS SOFTWARE. */ @FUNC@ FcMatrixInit @PURPOSE@ initialize an FcMatrix structure @TYPE1@ FcMatrix * @ARG1@ matrix @DESC@ FcMatrixInit initializes matrix to the identity matrix. @@ @FUNC@ FcMatrixCopy @PURPOSE@ Copy a matrix @TYPE1@ const FcMatrix * @ARG1@ matrix @DESC@ FcMatrixCopy allocates a new FcMatrix and copies mat into it. @@ @FUNC@ FcMatrixEqual @PURPOSE@ Compare two matrices @TYPE1@ const FcMatrix * @ARG1@ matrix1 @TYPE2@ const FcMatrix * @ARG2@ matrix2 @DESC@ FcMatrixEqual compares matrix1 and matrix2 returning FcTrue when they are equal and FcFalse when they are not. @@ @FUNC@ FcMatrixMultiply @PURPOSE@ Multiply matrices @TYPE1@ FcMatrix * @ARG1@ result @TYPE2@ const FcMatrix * @ARG2@ matrix1 @TYPE3@ const FcMatrix * @ARG3@ matrix2 @DESC@ FcMatrixMultiply multiplies matrix1 and matrix2 storing the result in result. @@ @FUNC@ FcMatrixRotate @PURPOSE@ Rotate a matrix @TYPE1@ FcMatrix * @ARG1@ matrix @TYPE2@ double% @ARG2@ cos @TYPE3@ double% @ARG3@ sin @DESC@ FcMatrixRotate rotates matrix by the angle who's sine is sin and cosine is cos. This is done by multiplying by the matrix: cos -sin sin cos @@ @FUNC@ FcMatrixScale @PURPOSE@ Scale a matrix @TYPE1@ FcMatrix * @ARG1@ matrix @TYPE2@ double% @ARG2@ sx @TYPE3@ double% @ARG3@ dy @DESC@ FcMatrixScale multiplies matrix x values by sx and y values by sy. This is done by multiplying by the matrix: sx 0 0 sy @@ @FUNC@ FcMatrixShear @PURPOSE@ Shear a matrix @TYPE1@ FcMatrix * @ARG1@ matrix @TYPE2@ double% @ARG2@ sh @TYPE3@ double% @ARG3@ sv @DESC@ FcMatrixShare shears matrix horizontally by sh and vertically by sv. This is done by multiplying by the matrix: 1 sh sv 1 @@