/* This file is part of GEGL
*
* GEGL is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
* License as published by the Free Software Foundation; either
* version 3 of the License, or (at your option) any later version.
*
* GEGL is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public
* License along with GEGL; if not, see .
*
* Copyright 2006-2018 GEGL developers
*/
#ifndef __GEGL_BUFFER_MATRIX2_H__
#define __GEGL_BUFFER_MATRIX2_H__
#include
#include
G_BEGIN_DECLS
/* Currenly only used internally.
* Note: If making use of this in public API, add a boxed type for introspection
*/
typedef struct {
gdouble coeff[2][2];
} GeglBufferMatrix2;
/*
* gegl_buffer_matrix2_is_identity:
* @matrix: a #GeglBufferMatrix2
*
* Check if a matrix is the identity matrix.
*
* Returns TRUE if the matrix is the identity matrix.
*/
gboolean gegl_buffer_matrix2_is_identity (GeglBufferMatrix2 *matrix);
/*
* gegl_buffer_matrix2_is_scale:
* @matrix: a #GeglBufferMatrix2
*
* Check if a matrix only does scaling.
*
* Returns TRUE if the matrix only does scaling.
*/
gboolean gegl_buffer_matrix2_is_scale (GeglBufferMatrix2 *matrix);
/*
* gegl_buffer_matrix2_determinant:
* @matrix: a #GeglBufferMatrix2
*
* Returns the determinant of @matrix.
*/
gdouble gegl_buffer_matrix2_determinant (GeglBufferMatrix2 *matrix);
G_END_DECLS
#endif