00001 //-------------------------------------------------------------------------- 00002 // 00003 // File: csa.h 00004 // 00005 // Created: 16/10/2002 00006 // 00007 // Author: Pavel Sakov 00008 // CSIRO Marine Research 00009 // 00010 // Purpose: A header for csa library (2D data approximation with 00011 // bivariate C1 cubic spline) 00012 // 00013 // Revisions: None 00014 // 00015 //-------------------------------------------------------------------------- 00016 00017 #if !defined ( _CSA_H ) 00018 #define _CSA_H 00019 00020 // include header file for dll definitions 00021 #include "csadll.h" 00022 00023 #if _MSC_VER > 1309 00024 #define hypot _hypot 00025 #endif 00026 00027 #if !defined ( _POINT_STRUCT ) 00028 #define _POINT_STRUCT 00029 typedef struct 00030 { 00031 double x; 00032 double y; 00033 double z; 00034 } point; 00035 #endif 00036 00037 extern int csa_verbose; 00038 extern char* csa_version; 00039 00040 struct csa; 00041 typedef struct csa csa; 00042 00043 CSADLLIMPEXP 00044 csa* csa_create(); 00045 CSADLLIMPEXP 00046 void csa_destroy( csa* a ); 00047 CSADLLIMPEXP 00048 void csa_addpoints( csa* a, int n, point points[] ); 00049 CSADLLIMPEXP 00050 void csa_calculatespline( csa* a ); 00051 CSADLLIMPEXP 00052 void csa_approximate_point( csa* a, point* p ); 00053 CSADLLIMPEXP 00054 void csa_approximate_points( csa* a, int n, point* points ); 00055 00056 CSADLLIMPEXP 00057 void csa_setnpmin( csa* a, int npmin ); 00058 CSADLLIMPEXP 00059 void csa_setnpmax( csa* a, int npmax ); 00060 CSADLLIMPEXP 00061 void csa_setk( csa* a, int k ); 00062 CSADLLIMPEXP 00063 void csa_setnpps( csa* a, double npps ); 00064 00065 #endif