/* box_distance - returns the distance between the * center points of two boxes. */ double *box_distance(BOX *box1, BOX *box2) { double *result; Point *box_center(), *a, *b; result = PALLOCTYPE(double); a = box_center(box1); b = box_center(box2); *result = HYPOT(a->x - b->x, a->y - b->y); PFREE(a); PFREE(b); return(result); }
/* box_dt - returns the distance between the * center points of two boxes. */ double box_dt(BOX *box1, BOX *box2) { double result; Point *box_center(), *a, *b; a = box_center(box1); b = box_center(box2); result = HYPOT(a->x - b->x, a->y - b->y); PFREE(a); PFREE(b); return(result); }
/* remove a space-filler from the empty space representation. */ void mtspace_remove (mtspace_t * mtspace, const BoxType * box, mtspace_type_t which, Coord keepaway) { struct mts_info cl; BoxType small_search; cl.keepaway = keepaway; cl.box = *box; cl.tree = which_tree (mtspace, which); small_search = box_center(box); if (setjmp (cl.env) == 0) { r_search (cl.tree, &small_search, NULL, mts_remove_one, &cl); assert (0); /* didn't find it?? */ } }