kicad-developers team mailing list archive
-
kicad-developers team
-
Mailing list archive
-
Message #29430
Re: [FEATURE] Partial selection in pcbnew
Windows builds on mingw using gcc 6.3.0 are broken. Here is the
compiler error:
C:/msys64/home/wstambaugh/src/kicad-trunk/common/base_struct.cpp: In
member function 'bool EDA_RECT::IntersectsCircleEdge(const wxPoint&,
int, int) const':
C:/msys64/home/wstambaugh/src/kicad-trunk/common/base_struct.cpp:592:17:
error: expected unqualified-id before '=' token
wxPoint far = FarthestPointTo( aCenter );
^
C:/msys64/home/wstambaugh/src/kicad-trunk/common/base_struct.cpp:594:18:
error: expected primary-expression before 'double'
double fx = (double) far.x;
^~~~~~
C:/msys64/home/wstambaugh/src/kicad-trunk/common/base_struct.cpp:594:18:
error: expected ')' before 'double'
C:/msys64/home/wstambaugh/src/kicad-trunk/common/base_struct.cpp:595:18:
error: expected primary-expression before 'double'
double fy = (double) far.y;
^~~~~~
C:/msys64/home/wstambaugh/src/kicad-trunk/common/base_struct.cpp:595:18:
error: expected ')' before 'double'
make[2]: *** [common/CMakeFiles/common.dir/build.make:1200:
common/CMakeFiles/common.dir/base_struct.cpp.obj] Error 1
make[1]: *** [CMakeFiles/Makefile2:326:
common/CMakeFiles/common.dir/all] Error 2
On 5/10/2017 5:41 AM, Maciej Sumiński wrote:
> Hi Oliver,
>
> Thank you very much for your effort, I have just pushed your patches to
> the master branch.
>
> Regards,
> Orson
>
> On 05/09/2017 09:32 AM, Oliver Walters wrote:
>> Two more patches for this set (attached)
>>
>> 0017 - Slight fix for arc segment hit test (line width was not accounted
>> for)
>> 0018 - SELECTION_AREA color now indicates selection mode as discussed above:
>>
>> a) Normal selection = BLUE
>> b) Addition selection = GREEN (Shift modifier)
>> c) Subtraction selection = RED (Control modifier)
>>
>> Additionally the line color indicates whether it is window selection (left
>> to right) or crossing selection (right to left). This is in lieu of making
>> the line dashed which does not seem to be possible unless that is added to
>> GAL_CAIRO and GAL_OPENGL.
>>
>> Regards,
>> Oliver
>>
>> On Tue, May 9, 2017 at 3:22 PM, Andrey Kuznetsov <kandrey89@xxxxxxxxx>
>> wrote:
>>
>>> What's CTRL taken by?
>>> I thought CTRL would be used to toggle grid snapping?
>>>
>>> On Mon, May 8, 2017 at 3:39 PM, José Ignacio <jose.cyborg@xxxxxxxxx>
>>> wrote:
>>>
>>>> Or switching between object and grid snap :)
>>>>
>>>> On Mon, May 8, 2017 at 5:34 PM, Wayne Stambaugh <stambaughw@xxxxxxxxx>
>>>> wrote:
>>>>
>>>>> I tend to lean toward Oliver's approach. Most CAD tools I've used have
>>>>> this type of includes vs intersects selection paradigm. I don't see the
>>>>> need to tie up the modifier key if we don't have to. I would prefer
>>>>> that we keep a modifier key open for something like orthogonal move.
>>>>>
>>>>> On 5/8/2017 5:51 PM, Oliver Walters wrote:
>>>>>> I was approaching this from having used mechanical CAD tools where the
>>>>>> direction of selection is the standard approach. Whatever function is
>>>>>> chosen, it will still be required that the users adjust to the new
>>>>>> style, manuals updated, etc.
>>>>>>
>>>>>> Is assigning what is essentially the last remaining modifier key worth
>>>>>> it for this?
>>>>>>
>>>>>> On 8 May 2017 23:55, "Nick Østergaard" <oe.nick@xxxxxxxxx
>>>>>> <mailto:oe.nick@xxxxxxxxx>> wrote:
>>>>>>
>>>>>> 2017-05-08 14:59 GMT+02:00 Maciej Sumiński <
>>>>> maciej.suminski@xxxxxxx
>>>>>> <mailto:maciej.suminski@xxxxxxx>>:
>>>>>> > Hi Oliver,
>>>>>> >
>>>>>> > I took your set of patches for a test drive. I am glad that you
>>>>>> thought
>>>>>> > about the subtractive mode in the selection tool, it really fits
>>>>>> there.
>>>>>> > Regarding different selection modes - I like the idea, but I
>>>>> think the
>>>>>> > two modes should be more distinct, changing the selection
>>>>> direction
>>>>>> > might be not enough.
>>>>>> >
>>>>>>
>>>>>> I personally prefer modifier keys as we are used to in Gimp and
>>>>>> Inkscape.
>>>>>>
>>>>>> > I observed another user trying out the tool and he could not
>>>>> tell how
>>>>>> > does it work, but noticed it is a bit different than the old
>>>>> tool.
>>>>>> >
>>>>>> > Perhaps one of the following would work:
>>>>>> >
>>>>>> > - change the selection box colors so they are easier to tell
>>>>> apart (my
>>>>>> > mate was surprised to find out there were two colors for the
>>>>>> selection box)
>>>>>> >
>>>>>> > - change the mode using a key modifier (I think only Alt is left
>>>>> free)
>>>>>> > or mouse button
>>>>>> >
>>>>>> > - add an option to select the default mode (though I do not
>>>>> really
>>>>>> like
>>>>>> > having too many options to set)
>>>>>> >
>>>>>> > I agree with Tom about the geometry library. IIRC currently it
>>>>> is only
>>>>>> > used by the PNS router, but ultimately we would like to use it
>>>>> in the
>>>>>> > primary model. The library already provides methods to check for
>>>>>> > collisions between basic shapes, yet we still need a few more.
>>>>>> > It would be a pity to drop your code now, so perhaps we could
>>>>>> merge the
>>>>>> > code as is and fix the methods during the model refactor.
>>>>>> >
>>>>>> > Just to let you know, there are a few code formatting violations
>>>>>> (mostly
>>>>>> > not keeping two empty lines between method definitions in .cpp
>>>>> files),
>>>>>> > but as they are infrequent - I can handle them myself.
>>>>>> >
>>>>>> > Regards,
>>>>>> > Orson
>>>>>> >
>>>>>> > On 05/07/2017 02:11 AM, Oliver Walters wrote:
>>>>>> >> Maciej,
>>>>>> >>
>>>>>> >> That was it! Thanks for the hint.
>>>>>> >>
>>>>>> >> #0016 attached, which fixes both issues:
>>>>>> >>
>>>>>> >> a) No more double-selection of module and module-items (pads /
>>>>>> lines / etc)
>>>>>> >> in PCBNEW
>>>>>> >> b) Disable selection of entire module in MODEDIT
>>>>>> >>
>>>>>> >> As far as I can tell this patchset is now working very well.
>>>>>> >>
>>>>>> >> Regards,
>>>>>> >> Oliver
>>>>>> >>
>>>>>> >> On Sat, May 6, 2017 at 10:21 PM, Oliver Walters <
>>>>>> >> oliver.henry.walters@xxxxxxxxx
>>>>>> <mailto:oliver.henry.walters@xxxxxxxxx>> wrote:
>>>>>> >>
>>>>>> >>> Maciej,
>>>>>> >>>
>>>>>> >>> Thanks, I'll look into that. If you have a chance to look over
>>>>>> what I've
>>>>>> >>> done, I'd appreciate that :)
>>>>>> >>>
>>>>>> >>> On Sat, May 6, 2017 at 10:17 PM, Maciej Suminski
>>>>>> <maciej.suminski@xxxxxxx <mailto:maciej.suminski@xxxxxxx>>
>>>>>> >>> wrote:
>>>>>> >>>
>>>>>> >>>> Hi Oliver,
>>>>>> >>>>
>>>>>> >>>> I have not tested the patches yet, but my gut feeling says
>>>>> that
>>>>>> you miss
>>>>>> >>>> calling SELECTION_TOOL::selectable() to filter out redundant
>>>>> items.
>>>>>> >>>>
>>>>>> >>>> Regards,
>>>>>> >>>> Orson
>>>>>> >>>>
>>>>>> >>>> On 05/06/2017 09:21 AM, Oliver Walters wrote:
>>>>>> >>>>> Three further patch files attached:
>>>>>> >>>>>
>>>>>> >>>>> - Different color select box based on direction
>>>>>> >>>>> - Fixed HitTest for EDA_TEXT
>>>>>> >>>>> - Control modifier unselects anything in rectangle.
>>>>>> >>>>>
>>>>>> >>>>> The major piece of feedback I need right now is how to
>>>>> perfect the
>>>>>> >>>>> behaviour of the tool in PCBNEW and MODEDIT:
>>>>>> >>>>>
>>>>>> >>>>> a) PCBNEW
>>>>>> >>>>>
>>>>>> >>>>> Selecting part of a MODULE (right to left) will select both
>>>>>> the entire
>>>>>> >>>>> module and also any parts of the module that you touched
>>>>>> (lines, pads,
>>>>>> >>>>> etc). Then, when you move the module, the doubly-selected
>>>>>> items are
>>>>>> >>>> moved
>>>>>> >>>>> twice! It is hard to describe properly but if you try this
>>>>> you
>>>>>> will see
>>>>>> >>>>> what I mean.
>>>>>> >>>>>
>>>>>> >>>>> b) MODEDIT
>>>>>> >>>>>
>>>>>> >>>>> Selecting any item in the footprint selects the entire
>>>>>> footprint, which
>>>>>> >>>> is
>>>>>> >>>>> highly undesirable. In this case I think the best approach is
>>>>>> to filter
>>>>>> >>>> the
>>>>>> >>>>> MODULE from the selection entirely. But I am not sure how to
>>>>>> do this.
>>>>>> >>>>>
>>>>>> >>>>> Feedback welcome :)
>>>>>> >>>>>
>>>>>> >>>>> Regards,
>>>>>> >>>>> Oliver
>>>>>> >>>>>
>>>>>> >>>>> On Tue, May 2, 2017 at 5:25 PM, Oliver Walters <
>>>>>> >>>>> oliver.henry.walters@xxxxxxxxx
>>>>>> <mailto:oliver.henry.walters@xxxxxxxxx>> 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.
>>>>>> >>>>>>
>>>>>> >>>>>> To achieve this I had to fix a lot of the HitTest
>>>>>> implementations as
>>>>>> >>>> this
>>>>>> >>>>>> was broken for most shapes, under a variety of edge cases
>>>>>> (some HitTest
>>>>>> >>>>>> code did not work at all).
>>>>>> >>>>>>
>>>>>> >>>>>> 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
>>>>>> <https://launchpad.net/~kicad-developers>
>>>>>> >>>>> Post to : kicad-developers@xxxxxxxxxxxxxxxxxxx
>>>>>> <mailto:kicad-developers@xxxxxxxxxxxxxxxxxxx>
>>>>>> >>>>> Unsubscribe : https://launchpad.net/~kicad-developers
>>>>>> <https://launchpad.net/~kicad-developers>
>>>>>> >>>>> More help : https://help.launchpad.net/ListHelp
>>>>>> <https://help.launchpad.net/ListHelp>
>>>>>> >>>>>
>>>>>> >>>>
>>>>>> >>>> _______________________________________________
>>>>>> >>>> Mailing list: https://launchpad.net/~kicad-developers
>>>>>> <https://launchpad.net/~kicad-developers>
>>>>>> >>>> Post to : kicad-developers@xxxxxxxxxxxxxxxxxxx
>>>>>> <mailto:kicad-developers@xxxxxxxxxxxxxxxxxxx>
>>>>>> >>>> Unsubscribe : https://launchpad.net/~kicad-developers
>>>>>> <https://launchpad.net/~kicad-developers>
>>>>>> >>>> More help : https://help.launchpad.net/ListHelp
>>>>>> <https://help.launchpad.net/ListHelp>
>>>>>> >>>>
>>>>>> >>>
>>>>>> >>>
>>>>>> >>
>>>>>> >
>>>>>> >
>>>>>> >
>>>>>> > _______________________________________________
>>>>>> > Mailing list: https://launchpad.net/~kicad-developers
>>>>>> <https://launchpad.net/~kicad-developers>
>>>>>> > Post to : kicad-developers@xxxxxxxxxxxxxxxxxxx
>>>>>> <mailto:kicad-developers@xxxxxxxxxxxxxxxxxxx>
>>>>>> > Unsubscribe : https://launchpad.net/~kicad-developers
>>>>>> <https://launchpad.net/~kicad-developers>
>>>>>> > More help : https://help.launchpad.net/ListHelp
>>>>>> <https://help.launchpad.net/ListHelp>
>>>>>> >
>>>>>>
>>>>>>
>>>>>>
>>>>>>
>>>>>> _______________________________________________
>>>>>> 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
>>>>>>
>>>>>
>>>>>
>>>>> _______________________________________________
>>>>> 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
>>>>>
>>>>
>>>>
>>>> _______________________________________________
>>>> 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
>>>>
>>>>
>>>
>>>
>>> --
>>> Remember The Past, Live The Present, Change The Future
>>> Those who look only to the past or the present are certain to miss the
>>> future [JFK]
>>>
>>> kandrey89@xxxxxxxxx
>>> Live Long and Prosper,
>>> Andrey
>>>
>>> _______________________________________________
>>> 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
>>>
>>>
>>
>>
>>
>> _______________________________________________
>> 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
>>
>
>
>
>
> _______________________________________________
> 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
-
[FEATURE] Partial selection in pcbnew
From: Oliver Walters, 2017-05-02
-
Re: [FEATURE] Partial selection in pcbnew
From: Oliver Walters, 2017-05-06
-
Re: [FEATURE] Partial selection in pcbnew
From: Maciej Suminski, 2017-05-06
-
Re: [FEATURE] Partial selection in pcbnew
From: Oliver Walters, 2017-05-06
-
Re: [FEATURE] Partial selection in pcbnew
From: Oliver Walters, 2017-05-07
-
Re: [FEATURE] Partial selection in pcbnew
From: Maciej Sumiński, 2017-05-08
-
Re: [FEATURE] Partial selection in pcbnew
From: Nick Østergaard, 2017-05-08
-
Re: [FEATURE] Partial selection in pcbnew
From: Oliver Walters, 2017-05-08
-
Re: [FEATURE] Partial selection in pcbnew
From: Wayne Stambaugh, 2017-05-08
-
Re: [FEATURE] Partial selection in pcbnew
From: José Ignacio, 2017-05-08
-
Re: [FEATURE] Partial selection in pcbnew
From: Andrey Kuznetsov, 2017-05-09
-
Re: [FEATURE] Partial selection in pcbnew
From: Oliver Walters, 2017-05-09
-
Re: [FEATURE] Partial selection in pcbnew
From: Maciej Sumiński, 2017-05-10