int get_overlap(struct placement *p)
{
+ if (p->variant_used == -1) return 0;
+
struct map_part **parts = get_map_parts(p);
if (! parts)
{
if (dbg_overlaps >= VERBOSITY_PLACEMENT)
printf("Placement of request %d add %d to overlaps\n", p->request->ind, overlap);
+ if (p->x < 0) overlap += 0 - p->x;
+ if (p->x + p->request->variants[p->variant_used].width > page_width_int)
+ overlap += p->x + p->request->variants[p->variant_used].width - page_width_int;
+
+ if (p->y < 0) overlap += 0 - p->y;
+ if (p->y + p->request->variants[p->variant_used].height > page_height_int)
+ overlap += p->y + p->request->variants[p->variant_used].height - page_height_int;
+
return overlap;
}