static partition_t PartitionNew (void) { partition_t p; p = (partition_t) malloc(SIZEOF_PARTITION); /*TODO: check return value*/ memset((void *) p,0, SIZEOF_PARTITION); p->cover[0] = p->cover[1] = p->cover_all = RectInit(); return p; }
static rect_t RectOfTerm (Term term) { YAP_Term tmp; rect_t rect; int i; if (!YAP_IsPairTerm(term)) return (RectInit()); for (i = 0; YAP_IsPairTerm(term) && i < 4; i++) { tmp = YAP_HeadOfTerm (term); if (!YAP_IsNumberTerm(tmp,&(rect.coords[i]))) return (RectInit()); term = YAP_TailOfTerm (term); } return (rect); }
static rect_t RTreeNodeCover(node_t n) { int i; rect_t r = RectInit(); for (i = 0; i < MAXCARD; i++) if (n->branch[i].child) { r = RectCombine (r, n->branch[i].mbr); } else break; return r; }