Index: trunk/src/find.h =================================================================== --- trunk/src/find.h (revision 21747) +++ trunk/src/find.h (revision 21748) @@ -62,7 +62,7 @@ pcb_bool pcb_isc_line_line(pcb_line_t *, pcb_line_t *); pcb_bool pcb_isc_line_arc(pcb_line_t *, pcb_arc_t *); -pcb_bool pcb_is_poly_in_poly(pcb_poly_t *, pcb_poly_t *); +pcb_bool pcb_isc_poly_poly(pcb_poly_t *, pcb_poly_t *); void pcb_lookup_conns_to_all_elements(FILE *); void pcb_lookup_conn(pcb_coord_t, pcb_coord_t, pcb_bool, pcb_coord_t, int); void pcb_lookup_conn_by_pin(int type, void *ptr1); @@ -77,7 +77,7 @@ void pcb_rat_find_hook(pcb_any_obj_t *obj, pcb_bool undo, pcb_bool AndRats); void pcb_save_find_flag(int); void pcb_restore_find_flag(void); -pcb_bool pcb_is_line_in_poly(pcb_line_t *, pcb_poly_t *); +pcb_bool pcb_isc_line_poly(pcb_line_t *, pcb_poly_t *); pcb_bool pcb_isc_arc_poly(pcb_arc_t *, pcb_poly_t *); pcb_bool pcb_intersect_obj_obj(pcb_any_obj_t *a, pcb_any_obj_t *b); pcb_bool_t pcb_pstk_intersect_line(pcb_pstk_t *ps, pcb_line_t *line); Index: trunk/src/find_any_isect.c =================================================================== --- trunk/src/find_any_isect.c (revision 21747) +++ trunk/src/find_any_isect.c (revision 21748) @@ -50,7 +50,7 @@ case PCB_OBJ_VOID: return pcb_false; case PCB_OBJ_LINE: return pcb_isc_line_line((pcb_line_t *)a, (pcb_line_t *)b); case PCB_OBJ_TEXT: return pcb_intersect_text_line((pcb_text_t *)b, (pcb_line_t *)a); - case PCB_OBJ_POLY: return pcb_is_line_in_poly((pcb_line_t *)a, (pcb_poly_t *)b); + case PCB_OBJ_POLY: return pcb_isc_line_poly((pcb_line_t *)a, (pcb_poly_t *)b); case PCB_OBJ_ARC: return pcb_isc_line_arc((pcb_line_t *)a, (pcb_arc_t *)b); case PCB_OBJ_PSTK: return pcb_pstk_intersect_line((pcb_pstk_t *)b, (pcb_line_t *)a); default:; @@ -71,9 +71,9 @@ case PCB_OBJ_POLY: switch(b->type) { case PCB_OBJ_VOID: return pcb_false; - case PCB_OBJ_LINE: return pcb_is_line_in_poly((pcb_line_t *)b, (pcb_poly_t *)a); + case PCB_OBJ_LINE: return pcb_isc_line_poly((pcb_line_t *)b, (pcb_poly_t *)a); case PCB_OBJ_TEXT: return pcb_intersect_text_poly((pcb_text_t *)b, (pcb_poly_t *)a); - case PCB_OBJ_POLY: return pcb_is_poly_in_poly((pcb_poly_t *)a, (pcb_poly_t *)b); + case PCB_OBJ_POLY: return pcb_isc_poly_poly((pcb_poly_t *)a, (pcb_poly_t *)b); case PCB_OBJ_ARC: return pcb_isc_arc_poly((pcb_arc_t *)b, (pcb_poly_t *)a); case PCB_OBJ_PSTK: return pcb_pstk_intersect_poly((pcb_pstk_t *)b, (pcb_poly_t *)a); default:; Index: trunk/src/find_deadcode.c =================================================================== --- trunk/src/find_deadcode.c (revision 21747) +++ trunk/src/find_deadcode.c (revision 21748) @@ -116,7 +116,7 @@ /* now check all polygons */ polylist_foreach(&(PCB->Data->Layer[layer].Polygon), &it, polygon) { if (!PCB_FLAG_TEST(TheFlag, polygon) - && pcb_is_line_in_poly(Line, polygon)) + && pcb_isc_line_poly(Line, polygon)) return pcb_true; } } Index: trunk/src/find_geo.c =================================================================== --- trunk/src/find_geo.c (revision 21747) +++ trunk/src/find_geo.c (revision 21748) @@ -566,7 +566,7 @@ * - check the two end points of the line. If none of them matches * - check all segments of the polygon against the line. */ -pcb_bool pcb_is_line_in_poly(pcb_line_t *Line, pcb_poly_t *Polygon) +pcb_bool pcb_isc_line_poly(pcb_line_t *Line, pcb_poly_t *Polygon) { pcb_box_t *Box = (pcb_box_t *) Line; pcb_polyarea_t *lp; @@ -602,7 +602,7 @@ * First check all points out of P1 against P2 and vice versa. * If both fail check all lines of P1 against the ones of P2 */ -pcb_bool pcb_is_poly_in_poly(pcb_poly_t *P1, pcb_poly_t *P2) +pcb_bool pcb_isc_poly_poly(pcb_poly_t *P1, pcb_poly_t *P2) { int pcp_cnt = 0; pcb_coord_t pcp_gap; @@ -659,7 +659,7 @@ line.Point2.X = v->point[0]; line.Point2.Y = v->point[1]; pcb_line_bbox(&line); - if (pcb_is_line_in_poly(&line, P2)) + if (pcb_isc_line_poly(&line, P2)) return pcb_true; line.Point1.X = line.Point2.X; line.Point1.Y = line.Point2.Y; @@ -671,15 +671,6 @@ return pcb_false; } -pcb_bool BoxBoxIntersection(pcb_box_t *b1, pcb_box_t *b2) -{ - if (b2->X2 < b1->X1 || b2->X1 > b1->X2) - return pcb_false; - if (b2->Y2 < b1->Y1 || b2->Y1 > b1->Y2) - return pcb_false; - return pcb_true; -} - /* returns whether a round-cap pcb line touches a polygon; assumes bounding boxes do touch */ PCB_INLINE pcb_bool_t pcb_intersect_line_polyline(pcb_pline_t *pl, pcb_coord_t x1, pcb_coord_t y1, pcb_coord_t x2, pcb_coord_t y2, pcb_coord_t thick) @@ -854,7 +845,7 @@ pcb_line_t tmp; shape_line_to_pcb_line(ps, shape->data.line, tmp); pcb_line_bbox(&tmp); - return pcb_is_line_in_poly(&tmp, poly); + return pcb_isc_line_poly(&tmp, poly); } case PCB_PSSH_CIRC: { @@ -865,7 +856,7 @@ tmp.Thickness = shape->data.circ.dia; tmp.Flags = pcb_no_flags(); pcb_line_bbox(&tmp); - return pcb_is_line_in_poly(&tmp, poly); + return pcb_isc_line_poly(&tmp, poly); } case PCB_PSSH_HSHADOW: return 0; /* non-object won't intersect */ Index: trunk/src/find_lookup.c =================================================================== --- trunk/src/find_lookup.c (revision 21747) +++ trunk/src/find_lookup.c (revision 21748) @@ -805,7 +805,7 @@ pcb_box_t *b; for(b = pcb_r_first(PCB->Data->Layer[layer].polygon_tree, &it); b != NULL; b = pcb_r_next(&it)) { pcb_poly_t *polygon = (pcb_poly_t *)b; - if (!PCB_FLAG_TEST(TheFlag, polygon) && pcb_is_line_in_poly(Line, polygon) + if (!PCB_FLAG_TEST(TheFlag, polygon) && pcb_isc_line_poly(Line, polygon) && ADD_POLYGON_TO_LIST(layer, polygon, PCB_OBJ_LINE, Line, PCB_FCT_COPPER, Line)) return pcb_true; } @@ -896,7 +896,7 @@ pcb_line_t *line = (pcb_line_t *) b; struct lo_info *i = (struct lo_info *) cl; - if (!PCB_FLAG_TEST(TheFlag, line) && pcb_is_line_in_poly(line, &i->polygon) && !INOCN(line, &i->polygon)) { + if (!PCB_FLAG_TEST(TheFlag, line) && pcb_isc_line_poly(line, &i->polygon) && !INOCN(line, &i->polygon)) { if (ADD_LINE_TO_LIST(i->layer, line, PCB_OBJ_POLY, &i->polygon, PCB_FCT_COPPER, i->orig_polygon)) longjmp(i->env, 1); } @@ -965,7 +965,7 @@ for(b = pcb_r_first(PCB->Data->Layer[layer].polygon_tree, &it); b != NULL; b = pcb_r_next(&it)) { pcb_poly_t *polygon = (pcb_poly_t *)b; if (!PCB_FLAG_TEST(TheFlag, polygon) - && pcb_is_poly_in_poly(polygon, Polygon) + && pcb_isc_poly_poly(polygon, Polygon) && ADD_POLYGON_TO_LIST(layer, polygon, PCB_OBJ_POLY, Polygon, PCB_FCT_COPPER, Polygon)) return pcb_true; }