diff --git a/qad/blockview/blockbusitem.cpp b/qad/blockview/blockbusitem.cpp index 7c7bb51..0a7231f 100644 --- a/qad/blockview/blockbusitem.cpp +++ b/qad/blockview/blockbusitem.cpp @@ -483,16 +483,16 @@ int BlockBusItem::neighborSegmentPoint(int point, int * seg) const { } -void BlockBusItem::testPoint(QPointF pos, int * sel_point, int * sel_segment) { +void BlockBusItem::testPoint(QPointF pos, int * sel_point, int * sel_segment, bool for_trace) { for (int i = 0; i < pol.size(); ++i) { - if ((pol[i] - pos).manhattanLength() <= 10.) { // Point + if ((pol[i] - pos).manhattanLength() <= (for_trace ? 5. : 10.)) { // Point *sel_point = i; *sel_segment = -1; return; } } for (int i = 0; i < segments.size(); ++i) { - if (distPointToLine(pol[segments[i].first], pol[segments[i].second], pos) <= 7.) { // Segment + if (distPointToLine(pol[segments[i].first], pol[segments[i].second], pos) <= (for_trace ? 5. : 7.)) { // Segment *sel_point = -1; *sel_segment = i; return; diff --git a/qad/blockview/blockbusitem.h b/qad/blockview/blockbusitem.h index 61eed85..54a5e45 100644 --- a/qad/blockview/blockbusitem.h +++ b/qad/blockview/blockbusitem.h @@ -46,7 +46,7 @@ public: double endpointImageScale() const {return im_end_scale;} void appendPoint(const QPointF & p); void appendPoint(qreal x, qreal y); - void testPoint(QPointF pos, int * sel_point, int * sel_segment); + void testPoint(QPointF pos, int * sel_point, int * sel_segment, bool for_trace = false); void clear(); /*void setStart(const QPointF & p) {pol[0] = p; scene()->update();} void setStart(qreal x, qreal y) {setStart(QPointF(x, y));} diff --git a/qad/blockview/blockview.cpp b/qad/blockview/blockview.cpp index 8525b10..4f804ac 100644 --- a/qad/blockview/blockview.cpp +++ b/qad/blockview/blockview.cpp @@ -1349,7 +1349,7 @@ void BlockView::matchBus() { //qDebug() << "1" << buses.size() << tmp_bus.pol; for (int i = 0; i < buses.size(); ++i) { b = buses[i]; - b->testPoint(point, &sp, &ss); + b->testPoint(point, &sp, &ss, true); //qDebug() << i << sp << ss; if (sp >= 0 || ss >= 0) break; }