55 if ((rtp = calloc(1,
sizeof(
RTree_t))))
101void PrintIndex(
Node_t * n)
105 assert(n->
level >= 0);
108 for (
size_t i = 0; i <
NODECARD; i++) {
123 assert(n->
level >= 0);
128 for (
size_t i = 0; i <
NODECARD; i++) {
144 assert(n->
level >= 0);
147 for (
size_t i = 0; i <
NODECARD; i++)
159 for (
size_t i = 0; i <
NODECARD; i++) {
187 for (
size_t i = 0; i <
NUMDIMS; i++)
193 newroot->
level = (*n)->level + 1;
216 Node_t **
new,
int level) {
221 assert(level >= 0 && level <= n->level);
224 if (n->
level > level) {
235 }
else if (n->
level == level) {
static Agnode_t * newnode(Agraph_t *g, IDTYPE id, uint64_t seq)
static int RTreeClose2(RTree_t *rtp, Node_t *n)
static int RTreeInsert2(RTree_t *, Rect_t, void *, Node_t *, Node_t **, int)
LeafList_t * RTreeLeafListAdd(LeafList_t *llp, Leaf_t *lp)
void RTreeLeafListFree(LeafList_t *llp)
RTree_t * RTreeOpen(void)
int RTreeClose(RTree_t *rtp)
Node_t * RTreeNewIndex(void)
LeafList_t * RTreeNewLeafList(Leaf_t *lp)
int RTreeInsert(RTree_t *rtp, Rect_t r, void *data, Node_t **n)
LeafList_t * RTreeSearch(RTree_t *rtp, Node_t *n, Rect_t r)
Node_t * RTreeNewNode(void)
int AddBranch(RTree_t *rtp, Branch_t *b, Node_t *n, Node_t **new)
Rect_t NodeCover(Node_t *n)
void DisconBranch(Node_t *n, int i)
int PickBranch(Rect_t r, Node_t *n)
Rect_t CombineRect(const Rect_t r, const Rect_t rr)
bool Overlap(const Rect_t r, const Rect_t s)
struct Branch branch[NODECARD]
double boundary[NUMSIDES]