Main Page   Alphabetical List   Compound List   File List   Compound Members   File Members  

geoobj.c File Reference

#include <stdlib.h>
#include <ctype.h>
#include <float.h>
#include <postgres.h>
#include <libpq-fe.h>
#include <access/gist.h>
#include <access/itup.h>
#include <access/rtree.h>
#include "geoobj.h"

Go to the source code of this file.

Defines

#define TRACE(a)    elog(NOTICE,a);
#define MAX_FMTYPE_STRING   20
#define BYTEORDER   1
#define P_MAXDIG   DBL_DIG
#define P_MAXLEN   (2*(DBL_DIG+7)+1)
#define max(a,b)    ((a) > (b) ? (a) : (b))
#define min(a,b)    ((a) <= (b) ? (a) : (b))
#define abs(a)    ((a) < (0) ? (-a) : (a))

Functions

int getFMTypeCode (char *begin, char **end, int4 *type)
 Get the geoobj type from the string. More...

int getFMTypeStr (GeoObj *obj, char *type)
PointGeoObjPoints (char *begin, char** end, int4 *numpoints)
WKBGeometryGeoObjParser (char *begin ,char **end, int4 type, int4 *size)
GeoObjnewGeoObj (char *instr)
int makeBox (char *input, char *output)
GeoObjgeoobj_in (char *)
char* geoobj_out (GeoObj *)
GeoObjenvelope (GeoObj *)
bool g_geoobj_consistent (GISTENTRY *entry, GeoObj *query, StrategyNumber strategy)
GISTENTRY* g_geoobj_compress (GISTENTRY *entry)
GISTENTRY* g_geoobj_decompress (GISTENTRY *entry)
float* g_geoobj_penalty (GISTENTRY *origentry, GISTENTRY *newentry, float *result)
GIST_SPLITVEC* g_geoobj_picksplit (bytea *entryvec, GIST_SPLITVEC *v)
bool g_geoobj_leaf_consistent (GeoObj *key, GeoObj *query, StrategyNumber strategy)
bool g_geoobj_internal_consistent (GeoObj *key, GeoObj *query, StrategyNumber strategy)
GeoObjg_geoobj_union (bytea *entryvec, int *sizep)
GeoObjg_geoobj_binary_union (GeoObj *r1, GeoObj *r2, int *sizep)
bool* g_geoobj_same (GeoObj *b1, GeoObj *b2, bool *result)
bool geoobj_same (GeoObj *a, GeoObj *b)
bool geoobj_different (GeoObj *a, GeoObj *b)
bool geoobj_contains (GeoObj *a, GeoObj *b)
bool geoobj_contained (GeoObj *a, GeoObj *b)
bool geoobj_overlap (GeoObj *a, GeoObj *b)
GeoObjgeoobj_union (GeoObj *a, GeoObj *b)
GeoObjgeoobj_inter (GeoObj *a, GeoObj *b)
float* geoobj_size (GeoObj *a)
void rt_geoobj_size (GeoObj *a, float *sz)
bool geoobj_over_left (GeoObj *a, GeoObj *b)
bool geoobj_over_right (GeoObj *a, GeoObj *b)
bool geoobj_left (GeoObj *a, GeoObj *b)
bool geoobj_right (GeoObj *a, GeoObj *b)
GeoObjbounds (GeoObj *obj)
bool geoobj_lt (GeoObj *box_a, GeoObj *box_b)
bool geoobj_gt (GeoObj *box_a, GeoObj *box_b)
float* geoobj_distance (GeoObj *a, GeoObj *b)


Define Documentation

#define BYTEORDER   1
 

Definition at line 58 of file geoobj.c.

#define MAX_FMTYPE_STRING   20
 

Definition at line 55 of file geoobj.c.

#define P_MAXDIG   DBL_DIG
 

Definition at line 61 of file geoobj.c.

#define P_MAXLEN   (2*(DBL_DIG+7)+1)
 

Definition at line 62 of file geoobj.c.

#define TRACE( a )   elog(NOTICE,a);
 

Definition at line 52 of file geoobj.c.

Referenced by GeoObjParser(), GeoObjPoints(), bounds(), envelope(), g_geoobj_binary_union(), g_geoobj_compress(), g_geoobj_consistent(), g_geoobj_decompress(), g_geoobj_internal_consistent(), g_geoobj_leaf_consistent(), g_geoobj_penalty(), g_geoobj_picksplit(), g_geoobj_same(), g_geoobj_union(), geoobj_contained(), geoobj_contains(), geoobj_different(), geoobj_distance(), geoobj_gt(), geoobj_in(), geoobj_inter(), geoobj_left(), geoobj_lt(), geoobj_out(), geoobj_over_left(), geoobj_over_right(), geoobj_overlap(), geoobj_right(), geoobj_same(), geoobj_size(), geoobj_union(), getFMTypeCode(), getFMTypeStr(), makeBox(), newGeoObj(), and rt_geoobj_size().

#define abs( a )   ((a) < (0) ? (-a) : (a))
 

Definition at line 67 of file geoobj.c.

Referenced by geoobj_size(), and rt_geoobj_size().

#define max( a, b )   ((a) > (b) ? (a) : (b))
 

Definition at line 65 of file geoobj.c.

Referenced by geoobj_inter(), and geoobj_union().

#define min( a, b )   ((a) <= (b) ? (a) : (b))
 

Definition at line 66 of file geoobj.c.

Referenced by geoobj_inter(), and geoobj_union().


Function Documentation

WKBGeometry * GeoObjParser ( char * begin,
char ** end,
int4 type,
int4 * size )
 

Definition at line 295 of file geoobj.c.

Referenced by newGeoObj().

Point * GeoObjPoints ( char * begin,
char ** end,
int4 * numpoints )
 

Definition at line 217 of file geoobj.c.

Referenced by GeoObjParser().

GeoObj * bounds ( GeoObj * obj )
 

Definition at line 641 of file geoobj.c.

GeoObj * envelope ( GeoObj * obj )
 

Definition at line 673 of file geoobj.c.

Referenced by g_geoobj_compress(), and geoobj_overlap().

GeoObj * g_geoobj_binary_union ( GeoObj * r1,
GeoObj * r2,
int * sizep )
 

Definition at line 1112 of file geoobj.c.

Referenced by g_geoobj_union().

GISTENTRY * g_geoobj_compress ( GISTENTRY * entry )
 

Definition at line 783 of file geoobj.c.

bool g_geoobj_consistent ( GISTENTRY * entry,
GeoObj * query,
StrategyNumber strategy )
 

Definition at line 763 of file geoobj.c.

GISTENTRY * g_geoobj_decompress ( GISTENTRY * entry )
 

Definition at line 797 of file geoobj.c.

bool g_geoobj_internal_consistent ( GeoObj * key,
GeoObj * query,
StrategyNumber strategy )
 

Definition at line 851 of file geoobj.c.

Referenced by g_geoobj_consistent().

bool g_geoobj_leaf_consistent ( GeoObj * key,
GeoObj * query,
StrategyNumber strategy )
 

Definition at line 812 of file geoobj.c.

Referenced by g_geoobj_consistent().

float * g_geoobj_penalty ( GISTENTRY * origentry,
GISTENTRY * newentry,
float * result )
 

Definition at line 927 of file geoobj.c.

GIST_SPLITVEC * g_geoobj_picksplit ( bytea * entryvec,
GIST_SPLITVEC * v )
 

Definition at line 952 of file geoobj.c.

bool * g_geoobj_same ( GeoObj * b1,
GeoObj * b2,
bool * result )
 

Definition at line 1100 of file geoobj.c.

GeoObj * g_geoobj_union ( bytea * entryvec,
int * sizep )
 

Definition at line 893 of file geoobj.c.

bool geoobj_contained ( GeoObj * a,
GeoObj * b )
 

Definition at line 1557 of file geoobj.c.

Referenced by g_geoobj_leaf_consistent().

bool geoobj_contains ( GeoObj * box_a,
GeoObj * box_b )
 

Definition at line 1519 of file geoobj.c.

Referenced by g_geoobj_internal_consistent(), g_geoobj_leaf_consistent(), and geoobj_contained().

bool geoobj_different ( GeoObj * box_a,
GeoObj * box_b )
 

Definition at line 1510 of file geoobj.c.

float * geoobj_distance ( GeoObj * a,
GeoObj * b )
 

Definition at line 1617 of file geoobj.c.

bool geoobj_gt ( GeoObj * box_a,
GeoObj * box_b )
 

Definition at line 1425 of file geoobj.c.

GeoObj * geoobj_in ( char * instr )
 

Definition at line 534 of file geoobj.c.

GeoObj * geoobj_inter ( GeoObj * box_a,
GeoObj * box_b )
 

Definition at line 1176 of file geoobj.c.

Referenced by g_geoobj_picksplit().

bool geoobj_left ( GeoObj * box_a,
GeoObj * box_b )
 

Definition at line 1328 of file geoobj.c.

Referenced by g_geoobj_leaf_consistent(), geoobj_over_left(), and geoobj_over_right().

bool geoobj_lt ( GeoObj * box_a,
GeoObj * box_b )
 

Definition at line 1380 of file geoobj.c.

char * geoobj_out ( GeoObj * obj )
 

Definition at line 546 of file geoobj.c.

Referenced by g_geoobj_compress(), g_geoobj_decompress(), and geoobj_overlap().

bool geoobj_over_left ( GeoObj * box_a,
GeoObj * box_b )
 

Definition at line 1275 of file geoobj.c.

Referenced by g_geoobj_internal_consistent(), and g_geoobj_leaf_consistent().

bool geoobj_over_right ( GeoObj * box_a,
GeoObj * box_b )
 

Definition at line 1301 of file geoobj.c.

Referenced by g_geoobj_leaf_consistent().

bool geoobj_overlap ( GeoObj * box_a,
GeoObj * box_b )
 

Definition at line 1568 of file geoobj.c.

Referenced by g_geoobj_internal_consistent(), and g_geoobj_leaf_consistent().

bool geoobj_right ( GeoObj * box_a,
GeoObj * box_b )
 

Definition at line 1354 of file geoobj.c.

Referenced by g_geoobj_internal_consistent(), g_geoobj_leaf_consistent(), geoobj_over_left(), and geoobj_over_right().

bool geoobj_same ( GeoObj * box_a,
GeoObj * box_b )
 

Definition at line 1474 of file geoobj.c.

Referenced by g_geoobj_leaf_consistent(), g_geoobj_same(), geoobj_different(), geoobj_gt(), and geoobj_lt().

float * geoobj_size ( GeoObj * a )
 

Definition at line 1226 of file geoobj.c.

GeoObj * geoobj_union ( GeoObj * box_a,
GeoObj * box_b )
 

Definition at line 1125 of file geoobj.c.

Referenced by g_geoobj_binary_union(), g_geoobj_penalty(), and g_geoobj_picksplit().

int getFMTypeCode ( char * begin,
char ** end,
int4 * type )
 

Get the geoobj type from the string.

getFMTypeCode: Parses the object type from the input character string "begin", placing the integer value in type. The double character pointer is set to the space following the "type" name -- suitable for passing to a later parser for the numbers. On error, the variable 'type' is set to zero. The function returns the value of 'type', so zero means failure -- which you should check!

Definition at line 136 of file geoobj.c.

Referenced by newGeoObj().

int getFMTypeStr ( GeoObj * obj,
char * type )
 

Definition at line 182 of file geoobj.c.

int makeBox ( char * input,
char * output )
 

Definition at line 458 of file geoobj.c.

Referenced by bounds().

GeoObj * newGeoObj ( char * instr )
 

Definition at line 414 of file geoobj.c.

Referenced by bounds(), envelope(), and geoobj_in().

void rt_geoobj_size ( GeoObj * a,
float * size )
 

Definition at line 1247 of file geoobj.c.

Referenced by g_geoobj_penalty(), and g_geoobj_picksplit().


Generated at Sat Jan 6 20:55:34 2001 for FMaps by doxygen1.2.1 written by Dimitri van Heesch, © 1997-2000