Home | History | Annotate | Download | only in rtree
      1 /*
      2 ** 2010 August 30
      3 **
      4 ** The author disclaims copyright to this source code.  In place of
      5 ** a legal notice, here is a blessing:
      6 **
      7 **    May you do good and not evil.
      8 **    May you find forgiveness for yourself and forgive others.
      9 **    May you share freely, never taking more than you give.
     10 **
     11 *************************************************************************
     12 */
     13 
     14 #ifndef _SQLITE3RTREE_H_
     15 #define _SQLITE3RTREE_H_
     16 
     17 #include <sqlite3.h>
     18 
     19 #ifdef __cplusplus
     20 extern "C" {
     21 #endif
     22 
     23 typedef struct sqlite3_rtree_geometry sqlite3_rtree_geometry;
     24 
     25 /*
     26 ** Register a geometry callback named zGeom that can be used as part of an
     27 ** R-Tree geometry query as follows:
     28 **
     29 **   SELECT ... FROM <rtree> WHERE <rtree col> MATCH $zGeom(... params ...)
     30 */
     31 int sqlite3_rtree_geometry_callback(
     32   sqlite3 *db,
     33   const char *zGeom,
     34   int (*xGeom)(sqlite3_rtree_geometry *, int nCoord, double *aCoord, int *pRes),
     35   void *pContext
     36 );
     37 
     38 
     39 /*
     40 ** A pointer to a structure of the following type is passed as the first
     41 ** argument to callbacks registered using rtree_geometry_callback().
     42 */
     43 struct sqlite3_rtree_geometry {
     44   void *pContext;                 /* Copy of pContext passed to s_r_g_c() */
     45   int nParam;                     /* Size of array aParam[] */
     46   double *aParam;                 /* Parameters passed to SQL geom function */
     47   void *pUser;                    /* Callback implementation user data */
     48   void (*xDelUser)(void *);       /* Called by SQLite to clean up pUser */
     49 };
     50 
     51 
     52 #ifdef __cplusplus
     53 }  /* end of the 'extern "C"' block */
     54 #endif
     55 
     56 #endif  /* ifndef _SQLITE3RTREE_H_ */
     57