← Back to team overview

kicad-developers team mailing list archive

Re: [FEATURE] Partial selection in pcbnew

 

On 02.05.2017 09:25, Oliver Walters wrote:
> I have attached a patch-set that implements "partial selection" of
> objects when the selection box is dragged right-to-left.
> 
> L -> R = Objects must be completely enclosed to be selected
> R -> L = Objects that intersect the selection rectangle will be selected.
> 

Hi Olivier,

I tested your patch and I like the way it works. As somebody suggested,
changing the color of the selection area depending on the selection mode
would make it easier to discover the new selection mode.

> this was broken for most shapes, under a variety of edge cases (some
> HitTest code did not work at all).
>
One remark about the HitTest() functions. We would prefer collision
tests to be implemented in the geometry library (common/geometry) and so
decoupled from the board objects to make these functions reusable. As a
matter of a fact, the geometry library already does most collision
checks between rectangles and other shapes (except for arcs and
polysets). I noticed you're good with computational geometry, would you
be able to move the features you wrote to the geometry library?

Best,
Tom

> To achieve this I had to fix a lot of the HitTest implementations as
> There are two issues I see as outstanding, and am unsure how to proceed:
> 
> 1. When editing a PCB, selecting part of a footprint (e.g. a line of the
> courtyard) selects both that line and the entire footprint. This causes
> some issues when the footprint is dragged around the PCB. I believe that
> the line should not be selected separately, but the entire footprint should.
> 
> 2. The inverse of 1. In the footprint editor, selecting a single
> graphical item selects the entire footprint. Somehow I would like to
> filter the selection such that individual items are selected but NOT the
> entire footprint.
> 
> Feedback please! :)
> 
> I have fixed hit testing (both for wxPoint and EDA_RECT comparison) for:
> 
> - Pads (all shapes)
> - Lines
> - Circles
> - Arcs
> - Text items
> - Zones
> - Footprints
> 
> Cheers,
> Oliver
> 
> 
> 
> 
> _______________________________________________
> Mailing list: https://launchpad.net/~kicad-developers
> Post to     : kicad-developers@xxxxxxxxxxxxxxxxxxx
> Unsubscribe : https://launchpad.net/~kicad-developers
> More help   : https://help.launchpad.net/ListHelp
> 



Follow ups

References