mirror of
				https://github.com/sqlite/sqlite.git
				synced 2025-11-03 16:53:36 +03:00 
			
		
		
		
	to use only integer math and store only integer coordinates. FossilOrigin-Name: 02b7640f5118e0a635b68f65765191bb3171b7bd
		
			
				
	
	
		
			61 lines
		
	
	
		
			1.7 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
			
		
		
	
	
			61 lines
		
	
	
		
			1.7 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
/*
 | 
						|
** 2010 August 30
 | 
						|
**
 | 
						|
** The author disclaims copyright to this source code.  In place of
 | 
						|
** a legal notice, here is a blessing:
 | 
						|
**
 | 
						|
**    May you do good and not evil.
 | 
						|
**    May you find forgiveness for yourself and forgive others.
 | 
						|
**    May you share freely, never taking more than you give.
 | 
						|
**
 | 
						|
*************************************************************************
 | 
						|
*/
 | 
						|
 | 
						|
#ifndef _SQLITE3RTREE_H_
 | 
						|
#define _SQLITE3RTREE_H_
 | 
						|
 | 
						|
#include <sqlite3.h>
 | 
						|
 | 
						|
#ifdef __cplusplus
 | 
						|
extern "C" {
 | 
						|
#endif
 | 
						|
 | 
						|
typedef struct sqlite3_rtree_geometry sqlite3_rtree_geometry;
 | 
						|
 | 
						|
/*
 | 
						|
** Register a geometry callback named zGeom that can be used as part of an
 | 
						|
** R-Tree geometry query as follows:
 | 
						|
**
 | 
						|
**   SELECT ... FROM <rtree> WHERE <rtree col> MATCH $zGeom(... params ...)
 | 
						|
*/
 | 
						|
int sqlite3_rtree_geometry_callback(
 | 
						|
  sqlite3 *db,
 | 
						|
  const char *zGeom,
 | 
						|
#ifdef SQLITE_RTREE_INT_ONLY
 | 
						|
  int (*xGeom)(sqlite3_rtree_geometry*, int n, sqlite3_int64 *a, int *pRes),
 | 
						|
#else
 | 
						|
  int (*xGeom)(sqlite3_rtree_geometry*, int n, double *a, int *pRes),
 | 
						|
#endif
 | 
						|
  void *pContext
 | 
						|
);
 | 
						|
 | 
						|
 | 
						|
/*
 | 
						|
** A pointer to a structure of the following type is passed as the first
 | 
						|
** argument to callbacks registered using rtree_geometry_callback().
 | 
						|
*/
 | 
						|
struct sqlite3_rtree_geometry {
 | 
						|
  void *pContext;                 /* Copy of pContext passed to s_r_g_c() */
 | 
						|
  int nParam;                     /* Size of array aParam[] */
 | 
						|
  double *aParam;                 /* Parameters passed to SQL geom function */
 | 
						|
  void *pUser;                    /* Callback implementation user data */
 | 
						|
  void (*xDelUser)(void *);       /* Called by SQLite to clean up pUser */
 | 
						|
};
 | 
						|
 | 
						|
 | 
						|
#ifdef __cplusplus
 | 
						|
}  /* end of the 'extern "C"' block */
 | 
						|
#endif
 | 
						|
 | 
						|
#endif  /* ifndef _SQLITE3RTREE_H_ */
 |