18 #ifndef _R_TREE_INDEX_H_ 19 #define _R_TREE_INDEX_H_ 31 #define NODETYPE(l, fd) ((l) == 0 ? 0 : ((fd) < 0 ? 1 : 2)) 99 #define RTreeCopyRect(r1, r2, t) memcpy((r1)->boundary, (r2)->boundary, (t)->rectsize)
int RTreeCompareRect(struct RTree_Rect *, struct RTree_Rect *, struct RTree *)
int RTreeDeleteRectM(struct RTree_Rect *, union RTree_Child, struct RTree *)
int SearchHitCallback(int id, const struct RTree_Rect *rect, void *arg)
void RTreeReInsertNode(struct RTree_Node *, struct RTree_ListNode **)
RectReal RTreeRectSphericalVolume(struct RTree_Rect *, struct RTree *)
struct RTree_ListFNode * next
int RTreeSetNodeMax(int, struct RTree *)
RectReal RTreeRectMargin(struct RTree_Rect *, struct RTree *)
RectReal RTreeRectVolume(struct RTree_Rect *, struct RTree *)
int RTreeGetNodeMax(struct RTree *)
void RTreeNullRect(struct RTree_Rect *, struct RTree *)
int RTreeSetLeafMax(int, struct RTree *)
RectReal RTreeRectArea(struct RTree_Rect *, struct RTree *)
struct RTree_ListBranch * next
int RTreeValidChildM(union RTree_Child *child)
struct RTree_ListNode * next
void RTreeSplitNode(struct RTree_Node *, struct RTree_Branch *, struct RTree_Node *, struct RTree *)
struct RTree_ListNode * RTreeNewListNode(void)
void RTreeFreeListBranch(struct RTree_ListBranch *)
int RTreeDeleteRectF(struct RTree_Rect *, union RTree_Child, struct RTree *)
int RTreeSearchF(struct RTree *, struct RTree_Rect *, SearchHitCallback *, void *)
void RTreeCombineRect(struct RTree_Rect *, struct RTree_Rect *, struct RTree_Rect *, struct RTree *)
void RTreeAddNodePos(off_t, int, struct RTree *)
void RTreeDisconnectBranch(struct RTree_Node *, int, struct RTree *)
void RTreeInitRect(struct RTree_Rect *, struct RTree *)
Initialize a rectangle to have all 0 coordinates.
int RTreeGetLeafMax(struct RTree *)
int RTreeExpandRect(struct RTree_Rect *, struct RTree_Rect *, struct RTree *)
int RTreeInsertRectF(struct RTree_Rect *, union RTree_Child, int, struct RTree *)
int RTreeInsertRectM(struct RTree_Rect *, union RTree_Child, int, struct RTree *)
size_t RTreeRewriteNode(struct RTree_Node *, off_t, struct RTree *)
int RTreeAddBranch(struct RTree_Branch *, struct RTree_Node *, struct RTree_Node **, struct RTree_ListBranch **, struct RTree_Rect *, char *, struct RTree *)
void RTreeFreeListNode(struct RTree_ListNode *)
int RTreeValidChildF(union RTree_Child *)
void RTreeNodeChanged(struct RTree_Node *, off_t, struct RTree *)
void RTreePrintNode(struct RTree_Node *, int, struct RTree *)
struct RTree_Node * RTreeGetNode(off_t, int, struct RTree *)
int RTreePickBranch(struct RTree_Rect *, struct RTree_Node *, struct RTree *)
void RTreeCopyBranch(struct RTree_Branch *, struct RTree_Branch *, struct RTree *)
void RTreeNodeCover(struct RTree_Node *, struct RTree_Rect *, struct RTree *)
int RTreeSearchM(struct RTree *, struct RTree_Rect *, SearchHitCallback *, void *)