Index: trunk/doc-rnd/hacking/renames =================================================================== --- trunk/doc-rnd/hacking/renames (revision 5007) +++ trunk/doc-rnd/hacking/renames (revision 5008) @@ -802,3 +802,32 @@ IsArcInRectangle -> pcb_is_arc_in_rectangle IsPointInPad -> pcb_is_point_in_pad IsPointInBox -> pcb_is_point_in_box +lines_intersect -> pcb_lines_intersect +POINT_IN_BOX -> PCB_POINT_IN_BOX +VIA_OR_PIN_IN_BOX -> PCB_VIA_OR_PIN_IN_BOX +LINE_IN_BOX -> PCB_LINE_IN_BOX +PAD_IN_BOX -> PCB_PAD_IN_BOX +BOX_IN_BOX -> PCB_BOX_IN_BOX +TEXT_IN_BOX -> PCB_TEXT_IN_BOX +POLYGON_IN_BOX -> PCB_POLYGON_IN_BOX +ELEMENT_IN_BOX -> PCB_ELEMENT_IN_BOX +ARC_IN_BOX -> PCB_ARC_IN_BOX +POINT_IN_CIRCLE -> PCB_POINT_IN_CIRCLE +CIRCLE_TOUCHES_BOX -> PCB_CIRCLE_TOUCHES_BOX +VIA_OR_PIN_TOUCHES_BOX -> PCB_VIA_OR_PIN_TOUCHES_BOX +LINE_TOUCHES_BOX -> PCB_LINE_TOUCHES_BOX +PAD_TOUCHES_BOX -> PCB_PAD_TOUCHES_BOX +BOX_TOUCHES_BOX -> PCB_BOX_TOUCHES_BOX +TEXT_TOUCHES_BOX -> PCB_TEXT_TOUCHES_BOX +POLYGON_TOUCHES_BOX -> PCB_POLYGON_TOUCHES_BOX +ELEMENT_TOUCHES_BOX -> PCB_ELEMENT_TOUCHES_BOX +ARC_TOUCHES_BOX -> PCB_ARC_TOUCHES_BOX +IS_BOX_NEGATIVE -> PCB_IS_BOX_NEGATIVE +BOX_NEAR_BOX -> PCB_BOX_NEAR_BOX +VIA_OR_PIN_NEAR_BOX -> PCB_VIA_OR_PIN_NEAR_BOX +LINE_NEAR_BOX -> PCB_LINE_NEAR_BOX +PAD_NEAR_BOX -> PCB_PAD_NEAR_BOX +TEXT_NEAR_BOX -> PCB_TEXT_NEAR_BOX +POLYGON_NEAR_BOX -> PCB_POLYGON_NEAR_BOX +ELEMENT_NEAR_BOX -> PCB_ELEMENT_NEAR_BOX +ARC_NEAR_BOX -> PCB_ARC_NEAR_BOX Index: trunk/src/search.c =================================================================== --- trunk/src/search.c (revision 5007) +++ trunk/src/search.c (revision 5008) @@ -294,7 +294,7 @@ if (PCB_FLAG_TEST(i->locked, text)) return R_DIR_NOT_FOUND; - if (POINT_IN_BOX(PosX, PosY, &text->BoundingBox)) { + if (PCB_POINT_IN_BOX(PosX, PosY, &text->BoundingBox)) { *i->ptr2 = *i->ptr3 = text; return R_DIR_CANCEL; /* found */ } @@ -438,7 +438,7 @@ if (PCB_FLAG_TEST(i->locked, text)) return R_DIR_NOT_FOUND; - if ((PCB_FRONT(element) || i->BackToo) && !PCB_FLAG_TEST(PCB_FLAG_HIDENAME, element) && POINT_IN_BOX(PosX, PosY, &text->BoundingBox)) { + if ((PCB_FRONT(element) || i->BackToo) && !PCB_FLAG_TEST(PCB_FLAG_HIDENAME, element) && PCB_POINT_IN_BOX(PosX, PosY, &text->BoundingBox)) { /* use the text with the smallest bounding box */ newarea = (text->BoundingBox.X2 - text->BoundingBox.X1) * (double) (text->BoundingBox.Y2 - text->BoundingBox.Y1); if (newarea < i->area) { @@ -483,7 +483,7 @@ if (PCB_FLAG_TEST(i->locked, element)) return R_DIR_NOT_FOUND; - if ((PCB_FRONT(element) || i->BackToo) && POINT_IN_BOX(PosX, PosY, &element->VBox)) { + if ((PCB_FRONT(element) || i->BackToo) && PCB_POINT_IN_BOX(PosX, PosY, &element->VBox)) { /* use the element with the smallest bounding box */ newarea = (element->VBox.X2 - element->VBox.X1) * (double) (element->VBox.Y2 - element->VBox.Y1); if (newarea < i->area) { @@ -1340,7 +1340,7 @@ return (ans); } -int lines_intersect(pcb_coord_t ax1, pcb_coord_t ay1, pcb_coord_t ax2, pcb_coord_t ay2, pcb_coord_t bx1, pcb_coord_t by1, pcb_coord_t bx2, pcb_coord_t by2) +int pcb_lines_intersect(pcb_coord_t ax1, pcb_coord_t ay1, pcb_coord_t ax2, pcb_coord_t ay2, pcb_coord_t bx1, pcb_coord_t by1, pcb_coord_t bx2, pcb_coord_t by2) { /* TODO: this should be long double if pcb_coord_t is 64 bits */ double ua, xi, yi, X1, Y1, X2, Y2, X3, Y3, X4, Y4, tmp; Index: trunk/src/search.h =================================================================== --- trunk/src/search.h (revision 5007) +++ trunk/src/search.h (revision 5008) @@ -33,7 +33,7 @@ #include "rats.h" #include "misc_util.h" -int lines_intersect(pcb_coord_t ax1, pcb_coord_t ay1, pcb_coord_t ax2, pcb_coord_t ay2, pcb_coord_t bx1, pcb_coord_t by1, pcb_coord_t bx2, pcb_coord_t by2); +int pcb_lines_intersect(pcb_coord_t ax1, pcb_coord_t ay1, pcb_coord_t ax2, pcb_coord_t ay2, pcb_coord_t bx1, pcb_coord_t by1, pcb_coord_t bx2, pcb_coord_t by2); #define SLOP 5 /* --------------------------------------------------------------------------- @@ -42,103 +42,103 @@ /* --------------------------------------------------------------------------- * some define to check for 'type' in box */ -#define POINT_IN_BOX(x,y,b) \ - (IS_BOX_NEGATIVE(b) ? \ +#define PCB_POINT_IN_BOX(x,y,b) \ + (PCB_IS_BOX_NEGATIVE(b) ? \ ((x) >= (b)->X2 && (x) <= (b)->X1 && (y) >= (b)->Y2 && (y) <= (b)->Y1) \ : \ ((x) >= (b)->X1 && (x) <= (b)->X2 && (y) >= (b)->Y1 && (y) <= (b)->Y2)) -#define VIA_OR_PIN_IN_BOX(v,b) \ - POINT_IN_BOX((v)->X,(v)->Y,(b)) +#define PCB_VIA_OR_PIN_IN_BOX(v,b) \ + PCB_POINT_IN_BOX((v)->X,(v)->Y,(b)) -#define LINE_IN_BOX(l,b) \ - (POINT_IN_BOX((l)->Point1.X,(l)->Point1.Y,(b)) && \ - POINT_IN_BOX((l)->Point2.X,(l)->Point2.Y,(b))) +#define PCB_LINE_IN_BOX(l,b) \ + (PCB_POINT_IN_BOX((l)->Point1.X,(l)->Point1.Y,(b)) && \ + PCB_POINT_IN_BOX((l)->Point2.X,(l)->Point2.Y,(b))) -#define PAD_IN_BOX(p,b) LINE_IN_BOX((pcb_line_t *)(p),(b)) +#define PCB_PAD_IN_BOX(p,b) PCB_LINE_IN_BOX((pcb_line_t *)(p),(b)) -#define BOX_IN_BOX(b1,b) \ +#define PCB_BOX_IN_BOX(b1,b) \ ((b1)->X1 >= (b)->X1 && (b1)->X2 <= (b)->X2 && \ ((b1)->Y1 >= (b)->Y1 && (b1)->Y2 <= (b)->Y2)) -#define TEXT_IN_BOX(t,b) \ - (BOX_IN_BOX(&((t)->BoundingBox), (b))) +#define PCB_TEXT_IN_BOX(t,b) \ + (PCB_BOX_IN_BOX(&((t)->BoundingBox), (b))) -#define POLYGON_IN_BOX(p,b) \ - (BOX_IN_BOX(&((p)->BoundingBox), (b))) +#define PCB_POLYGON_IN_BOX(p,b) \ + (PCB_BOX_IN_BOX(&((p)->BoundingBox), (b))) -#define ELEMENT_IN_BOX(e,b) \ - (BOX_IN_BOX(&((e)->BoundingBox), (b))) +#define PCB_ELEMENT_IN_BOX(e,b) \ + (PCB_BOX_IN_BOX(&((e)->BoundingBox), (b))) -#define ARC_IN_BOX(a,b) \ - (BOX_IN_BOX(&((a)->BoundingBox), (b))) +#define PCB_ARC_IN_BOX(a,b) \ + (PCB_BOX_IN_BOX(&((a)->BoundingBox), (b))) /* == the same but accept if any part of the object touches the box == */ -#define POINT_IN_CIRCLE(x, y, cx, cy, r) \ +#define PCB_POINT_IN_CIRCLE(x, y, cx, cy, r) \ (pcb_distance2(x, y, cx, cy) <= (double)(r) * (double)(r)) -#define CIRCLE_TOUCHES_BOX(cx, cy, r, b) \ - ( POINT_IN_BOX((cx)-(r),(cy),(b)) || POINT_IN_BOX((cx)+(r),(cy),(b)) || POINT_IN_BOX((cx),(cy)-(r),(b)) || POINT_IN_BOX((cx),(cy)+(r),(b)) \ - || POINT_IN_CIRCLE((b)->X1, (b)->Y1, (cx), (cy), (r)) || POINT_IN_CIRCLE((b)->X2, (b)->Y1, (cx), (cy), (r)) || POINT_IN_CIRCLE((b)->X1, (b)->Y2, (cx), (cy), (r)) || POINT_IN_CIRCLE((b)->X2, (b)->Y2, (cx), (cy), (r))) +#define PCB_CIRCLE_TOUCHES_BOX(cx, cy, r, b) \ + ( PCB_POINT_IN_BOX((cx)-(r),(cy),(b)) || PCB_POINT_IN_BOX((cx)+(r),(cy),(b)) || PCB_POINT_IN_BOX((cx),(cy)-(r),(b)) || PCB_POINT_IN_BOX((cx),(cy)+(r),(b)) \ + || PCB_POINT_IN_CIRCLE((b)->X1, (b)->Y1, (cx), (cy), (r)) || PCB_POINT_IN_CIRCLE((b)->X2, (b)->Y1, (cx), (cy), (r)) || PCB_POINT_IN_CIRCLE((b)->X1, (b)->Y2, (cx), (cy), (r)) || PCB_POINT_IN_CIRCLE((b)->X2, (b)->Y2, (cx), (cy), (r))) -#define VIA_OR_PIN_TOUCHES_BOX(v,b) \ - CIRCLE_TOUCHES_BOX((v)->X,(v)->Y,((v)->Thickness + (v)->DrillingHole/2),(b)) +#define PCB_VIA_OR_PIN_TOUCHES_BOX(v,b) \ + PCB_CIRCLE_TOUCHES_BOX((v)->X,(v)->Y,((v)->Thickness + (v)->DrillingHole/2),(b)) -#define LINE_TOUCHES_BOX(l,b) \ - ( lines_intersect((l)->Point1.X,(l)->Point1.Y,(l)->Point2.X,(l)->Point2.Y, (b)->X1, (b)->Y1, (b)->X2, (b)->Y1) \ - || lines_intersect((l)->Point1.X,(l)->Point1.Y,(l)->Point2.X,(l)->Point2.Y, (b)->X1, (b)->Y1, (b)->X1, (b)->Y2) \ - || lines_intersect((l)->Point1.X,(l)->Point1.Y,(l)->Point2.X,(l)->Point2.Y, (b)->X2, (b)->Y2, (b)->X1, (b)->Y2) \ - || lines_intersect((l)->Point1.X,(l)->Point1.Y,(l)->Point2.X,(l)->Point2.Y, (b)->X2, (b)->Y2, (b)->X2, (b)->Y1) \ - || LINE_IN_BOX((l), (b))) +#define PCB_LINE_TOUCHES_BOX(l,b) \ + ( pcb_lines_intersect((l)->Point1.X,(l)->Point1.Y,(l)->Point2.X,(l)->Point2.Y, (b)->X1, (b)->Y1, (b)->X2, (b)->Y1) \ + || pcb_lines_intersect((l)->Point1.X,(l)->Point1.Y,(l)->Point2.X,(l)->Point2.Y, (b)->X1, (b)->Y1, (b)->X1, (b)->Y2) \ + || pcb_lines_intersect((l)->Point1.X,(l)->Point1.Y,(l)->Point2.X,(l)->Point2.Y, (b)->X2, (b)->Y2, (b)->X1, (b)->Y2) \ + || pcb_lines_intersect((l)->Point1.X,(l)->Point1.Y,(l)->Point2.X,(l)->Point2.Y, (b)->X2, (b)->Y2, (b)->X2, (b)->Y1) \ + || PCB_LINE_IN_BOX((l), (b))) -#define PAD_TOUCHES_BOX(p,b) LINE_TOUCHES_BOX((pcb_line_t *)(p),(b)) +#define PCB_PAD_TOUCHES_BOX(p,b) PCB_LINE_TOUCHES_BOX((pcb_line_t *)(p),(b)) /* a corner of either box is within the other, or edges cross */ -#define BOX_TOUCHES_BOX(b1,b2) \ - ( POINT_IN_BOX((b1)->X1,(b1)->Y1,b2) || POINT_IN_BOX((b1)->X1,(b1)->Y2,b2) || POINT_IN_BOX((b1)->X2,(b1)->Y1,b2) || POINT_IN_BOX((b1)->X2,(b1)->Y2,b2) \ - || POINT_IN_BOX((b2)->X1,(b2)->Y1,b1) || POINT_IN_BOX((b2)->X1,(b2)->Y2,b1) || POINT_IN_BOX((b2)->X2,(b2)->Y1,b1) || POINT_IN_BOX((b2)->X2,(b2)->Y2,b1) \ - || lines_intersect((b1)->X1,(b1)->Y1, (b1)->X2,(b1)->Y1, (b2)->X1,(b2)->Y1, (b2)->X1,(b2)->Y2) \ - || lines_intersect((b2)->X1,(b2)->Y1, (b2)->X2,(b2)->Y1, (b1)->X1,(b1)->Y1, (b1)->X1,(b1)->Y2)) +#define PCB_BOX_TOUCHES_BOX(b1,b2) \ + ( PCB_POINT_IN_BOX((b1)->X1,(b1)->Y1,b2) || PCB_POINT_IN_BOX((b1)->X1,(b1)->Y2,b2) || PCB_POINT_IN_BOX((b1)->X2,(b1)->Y1,b2) || PCB_POINT_IN_BOX((b1)->X2,(b1)->Y2,b2) \ + || PCB_POINT_IN_BOX((b2)->X1,(b2)->Y1,b1) || PCB_POINT_IN_BOX((b2)->X1,(b2)->Y2,b1) || PCB_POINT_IN_BOX((b2)->X2,(b2)->Y1,b1) || PCB_POINT_IN_BOX((b2)->X2,(b2)->Y2,b1) \ + || pcb_lines_intersect((b1)->X1,(b1)->Y1, (b1)->X2,(b1)->Y1, (b2)->X1,(b2)->Y1, (b2)->X1,(b2)->Y2) \ + || pcb_lines_intersect((b2)->X1,(b2)->Y1, (b2)->X2,(b2)->Y1, (b1)->X1,(b1)->Y1, (b1)->X1,(b1)->Y2)) -#define TEXT_TOUCHES_BOX(t,b) \ - (BOX_TOUCHES_BOX(&((t)->BoundingBox), (b))) +#define PCB_TEXT_TOUCHES_BOX(t,b) \ + (PCB_BOX_TOUCHES_BOX(&((t)->BoundingBox), (b))) -#define POLYGON_TOUCHES_BOX(p,b) \ - (BOX_TOUCHES_BOX(&((p)->BoundingBox), (b))) +#define PCB_POLYGON_TOUCHES_BOX(p,b) \ + (PCB_BOX_TOUCHES_BOX(&((p)->BoundingBox), (b))) -#define ELEMENT_TOUCHES_BOX(e,b) \ - (BOX_TOUCHES_BOX(&((e)->BoundingBox), (b))) +#define PCB_ELEMENT_TOUCHES_BOX(e,b) \ + (PCB_BOX_TOUCHES_BOX(&((e)->BoundingBox), (b))) -#define ARC_TOUCHES_BOX(a,b) \ - (BOX_TOUCHES_BOX(&((a)->BoundingBox), (b))) +#define PCB_ARC_TOUCHES_BOX(a,b) \ + (PCB_BOX_TOUCHES_BOX(&((a)->BoundingBox), (b))) /* == the combination of *_IN_* and *_TOUCHES_*: use IN for positive boxes == */ -#define IS_BOX_NEGATIVE(b) (((b)->X2 < (b)->X1) || ((b)->Y2 < (b)->Y1)) +#define PCB_IS_BOX_NEGATIVE(b) (((b)->X2 < (b)->X1) || ((b)->Y2 < (b)->Y1)) -#define BOX_NEAR_BOX(b1,b) \ - (IS_BOX_NEGATIVE(b) ? BOX_TOUCHES_BOX(b1,b) : BOX_IN_BOX(b1,b)) +#define PCB_BOX_NEAR_BOX(b1,b) \ + (PCB_IS_BOX_NEGATIVE(b) ? PCB_BOX_TOUCHES_BOX(b1,b) : PCB_BOX_IN_BOX(b1,b)) -#define VIA_OR_PIN_NEAR_BOX(v,b) \ - (IS_BOX_NEGATIVE(b) ? VIA_OR_PIN_TOUCHES_BOX(v,b) : VIA_OR_PIN_IN_BOX(v,b)) +#define PCB_VIA_OR_PIN_NEAR_BOX(v,b) \ + (PCB_IS_BOX_NEGATIVE(b) ? PCB_VIA_OR_PIN_TOUCHES_BOX(v,b) : PCB_VIA_OR_PIN_IN_BOX(v,b)) -#define LINE_NEAR_BOX(l,b) \ - (IS_BOX_NEGATIVE(b) ? LINE_TOUCHES_BOX(l,b) : LINE_IN_BOX(l,b)) +#define PCB_LINE_NEAR_BOX(l,b) \ + (PCB_IS_BOX_NEGATIVE(b) ? PCB_LINE_TOUCHES_BOX(l,b) : PCB_LINE_IN_BOX(l,b)) -#define PAD_NEAR_BOX(p,b) \ - (IS_BOX_NEGATIVE(b) ? PAD_TOUCHES_BOX(p,b) : PAD_IN_BOX(p,b)) +#define PCB_PAD_NEAR_BOX(p,b) \ + (PCB_IS_BOX_NEGATIVE(b) ? PCB_PAD_TOUCHES_BOX(p,b) : PCB_PAD_IN_BOX(p,b)) -#define TEXT_NEAR_BOX(t,b) \ - (IS_BOX_NEGATIVE(b) ? TEXT_TOUCHES_BOX(t,b) : TEXT_IN_BOX(t,b)) +#define PCB_TEXT_NEAR_BOX(t,b) \ + (PCB_IS_BOX_NEGATIVE(b) ? PCB_TEXT_TOUCHES_BOX(t,b) : PCB_TEXT_IN_BOX(t,b)) -#define POLYGON_NEAR_BOX(p,b) \ - (IS_BOX_NEGATIVE(b) ? POLYGON_TOUCHES_BOX(p,b) : POLYGON_IN_BOX(p,b)) +#define PCB_POLYGON_NEAR_BOX(p,b) \ + (PCB_IS_BOX_NEGATIVE(b) ? PCB_POLYGON_TOUCHES_BOX(p,b) : PCB_POLYGON_IN_BOX(p,b)) -#define ELEMENT_NEAR_BOX(e,b) \ - (IS_BOX_NEGATIVE(b) ? ELEMENT_TOUCHES_BOX(e,b) : ELEMENT_IN_BOX(e,b)) +#define PCB_ELEMENT_NEAR_BOX(e,b) \ + (PCB_IS_BOX_NEGATIVE(b) ? PCB_ELEMENT_TOUCHES_BOX(e,b) : PCB_ELEMENT_IN_BOX(e,b)) -#define ARC_NEAR_BOX(a,b) \ - (IS_BOX_NEGATIVE(b) ? ARC_TOUCHES_BOX(a,b) : ARC_IN_BOX(a,b)) +#define PCB_ARC_NEAR_BOX(a,b) \ + (PCB_IS_BOX_NEGATIVE(b) ? PCB_ARC_TOUCHES_BOX(a,b) : PCB_ARC_IN_BOX(a,b)) Index: trunk/src/select.c =================================================================== --- trunk/src/select.c (revision 5007) +++ trunk/src/select.c (revision 5008) @@ -249,7 +249,7 @@ /* Make sure our negative box is canonical: always from bottom-right to top-left This limits all possible box coordinate orders to two, one for positive and one for negative. */ - if (IS_BOX_NEGATIVE(Box)) { + if (PCB_IS_BOX_NEGATIVE(Box)) { if (Box->X1 < Box->X2) swap(Box->X1, Box->X2); if (Box->Y1 < Box->Y2) @@ -258,7 +258,7 @@ } #undef swap -/*pcb_printf("box: %mm %mm - %mm %mm [ %d ] %d %d\n", Box->X1, Box->Y1, Box->X2, Box->Y2, IS_BOX_NEGATIVE(Box), conf_core.editor.view.flip_x, conf_core.editor.view.flip_y);*/ +/*pcb_printf("box: %mm %mm - %mm %mm [ %d ] %d %d\n", Box->X1, Box->Y1, Box->X2, Box->Y2, PCB_IS_BOX_NEGATIVE(Box), conf_core.editor.view.flip_x, conf_core.editor.view.flip_y);*/ /* append an object to the return list OR set the flag if there's no list */ #define append(undo_type, p1, obj) \ @@ -278,7 +278,7 @@ changed = 1; \ } while(0) - if (IS_BOX_NEGATIVE(Box) && ((Box->X1 == Box->X2) || (Box->Y2 == Box->Y1))) { + if (PCB_IS_BOX_NEGATIVE(Box) && ((Box->X1 == Box->X2) || (Box->Y2 == Box->Y1))) { if (len != NULL) *len = 0; return NULL; @@ -287,7 +287,7 @@ if (PCB->RatOn || !Flag) PCB_RAT_LOOP(PCB->Data); { - if (LINE_NEAR_BOX((pcb_line_t *) line, Box) && !PCB_FLAG_TEST(PCB_FLAG_LOCK, line) && PCB_FLAG_TEST(PCB_FLAG_SELECTED, line) != Flag) { + if (PCB_LINE_NEAR_BOX((pcb_line_t *) line, Box) && !PCB_FLAG_TEST(PCB_FLAG_LOCK, line) && PCB_FLAG_TEST(PCB_FLAG_SELECTED, line) != Flag) { append(PCB_TYPE_RATLINE, line, line); if (PCB->RatOn) DrawRat(line); @@ -311,7 +311,7 @@ PCB_LINE_LOOP(layer); { - if (LINE_NEAR_BOX(line, Box) + if (PCB_LINE_NEAR_BOX(line, Box) && !PCB_FLAG_TEST(PCB_FLAG_LOCK, line) && PCB_FLAG_TEST(PCB_FLAG_SELECTED, line) != Flag) { append(PCB_TYPE_LINE, layer, line); @@ -322,7 +322,7 @@ END_LOOP; PCB_ARC_LOOP(layer); { - if (ARC_NEAR_BOX(arc, Box) + if (PCB_ARC_NEAR_BOX(arc, Box) && !PCB_FLAG_TEST(PCB_FLAG_LOCK, arc) && PCB_FLAG_TEST(PCB_FLAG_SELECTED, arc) != Flag) { append(PCB_TYPE_ARC, layer, arc); @@ -334,7 +334,7 @@ PCB_TEXT_LOOP(layer); { if (!Flag || pcb_text_is_visible(PCB, layer, text)) { - if (TEXT_NEAR_BOX(text, Box) + if (PCB_TEXT_NEAR_BOX(text, Box) && !PCB_FLAG_TEST(PCB_FLAG_LOCK, text) && PCB_FLAG_TEST(PCB_FLAG_SELECTED, text) != Flag) { append(PCB_TYPE_TEXT, layer, text); @@ -346,7 +346,7 @@ END_LOOP; PCB_POLY_LOOP(layer); { - if (POLYGON_NEAR_BOX(polygon, Box) + if (PCB_POLYGON_NEAR_BOX(polygon, Box) && !PCB_FLAG_TEST(PCB_FLAG_LOCK, polygon) && PCB_FLAG_TEST(PCB_FLAG_SELECTED, polygon) != Flag) { append(PCB_TYPE_POLYGON, layer, polygon); @@ -366,7 +366,7 @@ if ((PCB->ElementOn || !Flag) && !PCB_FLAG_TEST(PCB_FLAG_LOCK, element) && ((PCB_FLAG_TEST(PCB_FLAG_ONSOLDER, element) != 0) == SWAP_IDENT || PCB->InvisibleObjectsOn)) { - if (BOX_NEAR_BOX(&ELEMENT_TEXT(PCB, element).BoundingBox, Box) + if (PCB_BOX_NEAR_BOX(&ELEMENT_TEXT(PCB, element).BoundingBox, Box) && !PCB_FLAG_TEST(PCB_FLAG_LOCK, &ELEMENT_TEXT(PCB, element)) && PCB_FLAG_TEST(PCB_FLAG_SELECTED, &ELEMENT_TEXT(PCB, element)) != Flag) { /* select all names of element */ @@ -378,7 +378,7 @@ if (PCB->ElementOn) DrawElementName(element); } - if ((PCB->PinOn || !Flag) && ELEMENT_NEAR_BOX(element, Box)) + if ((PCB->PinOn || !Flag) && PCB_ELEMENT_NEAR_BOX(element, Box)) if (PCB_FLAG_TEST(PCB_FLAG_SELECTED, element) != Flag) { append(PCB_TYPE_ELEMENT, element, element); PCB_PIN_LOOP(element); @@ -407,7 +407,7 @@ if ((PCB->PinOn || !Flag) && !PCB_FLAG_TEST(PCB_FLAG_LOCK, element) && !gotElement) { PCB_PIN_LOOP(element); { - if ((VIA_OR_PIN_NEAR_BOX(pin, Box) + if ((PCB_VIA_OR_PIN_NEAR_BOX(pin, Box) && PCB_FLAG_TEST(PCB_FLAG_SELECTED, pin) != Flag)) { append(PCB_TYPE_PIN, element, pin); if (PCB->PinOn) @@ -417,7 +417,7 @@ END_LOOP; PCB_PAD_LOOP(element); { - if (PAD_NEAR_BOX(pad, Box) + if (PCB_PAD_NEAR_BOX(pad, Box) && PCB_FLAG_TEST(PCB_FLAG_SELECTED, pad) != Flag && (PCB_FLAG_TEST(PCB_FLAG_ONSOLDER, pad) == SWAP_IDENT || PCB->InvisibleObjectsOn || !Flag)) { append(PCB_TYPE_PAD, element, pad); @@ -434,7 +434,7 @@ if (PCB->ViaOn || !Flag) PCB_VIA_LOOP(PCB->Data); { - if (VIA_OR_PIN_NEAR_BOX(via, Box) + if (PCB_VIA_OR_PIN_NEAR_BOX(via, Box) && !PCB_FLAG_TEST(PCB_FLAG_LOCK, via) && PCB_FLAG_TEST(PCB_FLAG_SELECTED, via) != Flag) { append(PCB_TYPE_VIA, via, via);