#ifndef DOXYGEN_SHOULD_SKIP_THIS
#ifdef DLL_EXPORT
#define GAIACP_DECLARE __declspec(dllexport)
#else
#define GAIACP_DECLARE extern
#endif
#endif
#ifndef _GAIACP_H
#ifndef DOXYGEN_SHOULD_SKIP_THIS
#define _GAIACP_H
#endif
#ifdef __cplusplus
extern "C"
{
#endif
typedef struct opaque_control_points GaiaControlPoints;
typedef GaiaControlPoints *GaiaControlPointsPtr;
typedef struct priv_polynomial_coeffs GaiaPolynomialCoeffs;
typedef GaiaPolynomialCoeffs *GaiaPolynomialCoeffsPtr;
GAIACP_DECLARE GaiaControlPointsPtr gaiaCreateControlPoints (int
allocation_incr,
int has3d,
int order,
int tps);
GAIACP_DECLARE void gaiaFreeControlPoints (GaiaControlPointsPtr cp_handle);
GAIACP_DECLARE int gaiaAddControlPoint3D (GaiaControlPointsPtr cp_handle,
double x0, double y0, double z0,
double x1, double y1, double z1);
GAIACP_DECLARE int gaiaAddControlPoint2D (GaiaControlPointsPtr cp_handle,
double x0, double y0, double x1,
double y1);
GAIACP_DECLARE int gaiaCreatePolynomialCoeffs (GaiaControlPointsPtr
cp_handle,
unsigned char **blob,
int *blob_sz);
GAIACP_DECLARE int gaiaPolynomialIsValid (const unsigned char *blob,
int blob_sz);
GAIACP_DECLARE char *gaiaPolynomialAsText (const unsigned char *blob,
int blob_sz);
GAIACP_DECLARE gaiaGeomCollPtr
gaiaPolynomialTransformGeometry (gaiaGeomCollPtr geom,
const unsigned char *blob,
int blob_sz);
GAIACP_DECLARE int gaiaPolynomialToMatrix (const unsigned char *iblob,
int iblob_sz,
unsigned char **oblob,
int *oblob_sz);
#ifdef __cplusplus
}
#endif
#endif