#ifndef DOXYGEN_SHOULD_SKIP_THIS
#ifdef DLL_EXPORT
#define GAIAMATRIX_DECLARE __declspec(dllexport)
#else
#define GAIAMATRIX_DECLARE extern
#endif
#endif
#ifndef _GAIAMATRIX_H
#ifndef DOXYGEN_SHOULD_SKIP_THIS
#define _GAIAMATRIX_H
#endif
#ifdef __cplusplus
extern "C"
{
#endif
typedef struct priv_affine_transform gaiaAffineTransformMatrix;
typedef gaiaAffineTransformMatrix *gaiaAffineTransformMatrixPtr;
GAIAMATRIX_DECLARE int gaia_matrix_create (double a, double b, double c,
double d, double e, double f,
double g, double h, double i,
double xoff, double yoff,
double zoff,
unsigned char **blob,
int *blob_sz);
GAIAMATRIX_DECLARE int gaia_matrix_multiply (const unsigned char *iblob1,
int iblob1_sz,
const unsigned char *iblob2,
int iblob2_sz,
unsigned char **blob,
int *blob_sz);
GAIAMATRIX_DECLARE int gaia_matrix_create_multiply (const unsigned char
*iblob, int iblob_sz,
double a, double b,
double c, double d,
double e, double f,
double g, double h,
double i, double xoff,
double yoff,
double zoff,
unsigned char **blob,
int *blob_sz);
GAIAMATRIX_DECLARE int gaia_matrix_is_valid (const unsigned char *blob,
int blob_sz);
GAIAMATRIX_DECLARE char *gaia_matrix_as_text (const unsigned char *blob,
int blob_sz);
GAIAMATRIX_DECLARE gaiaGeomCollPtr
gaia_matrix_transform_geometry (gaiaGeomCollPtr geom,
const unsigned char *blob, int blob_sz);
GAIAMATRIX_DECLARE double
gaia_matrix_determinant (const unsigned char *blob, int blob_sz);
GAIAMATRIX_DECLARE int gaia_matrix_invert (const unsigned char
*iblob, int iblob_sz,
unsigned char **blob,
int *blob_sz);
#ifdef __cplusplus
}
#endif
#endif