Jeff Young
3b424d3868
Use less-sophisticated arc editing math.
While it doesn't do the tangent retention that the old version did,
this one I can at least make work.
Fixes https://gitlab.com/kicad/code/kicad/issues/7135
5 years ago
Jeff Young
d9bbdffd99
Don't offer point-based pad editing in PCBNew.
5 years ago
Jeff Young
acfbcb4beb
Make distinction between PCBNew-wide tools and Board-specific tools.
The old names were really hard to keep straight (even for me, who named
many of them).
5 years ago
Jeff Young
37906511f5
Class renaming.
DRAWSEGMENT -> PCB_SHAPE
EDGE_MODULE -> FP_SHAPE
TEXTE_PCB -> PCB_TEXT
TEXTE_MODULE -> FP_TEXT
5 years ago
Jon Evans
690575e2b6
Improve edit point legibility with a hover state
5 years ago
Fabien Corona
4a0d6297ab
pcbnew: Add an alternate edit method for arcs
The alternate edit methods keeps the radius constant
Fixes https://gitlab.com/kicad/code/kicad/-/issues/5369
5 years ago
Jeff Young
631b5a9340
Don't allow point editor inversion when editing pad shapes.
Fixes https://gitlab.com/kicad/code/kicad/issues/5272
5 years ago
Seth Hillbrand
7c28c3838a
Comment-only changes
Makes class comments conform to coding standards
6 years ago
Jeff Young
a3c74051c2
Allow edits to self-intersecting polygons.
1) Intermediate states might be self-intersecting, and we shouldn't
be policing our users on what order to do things in
2) The polygon might already be self-intersecting, at which point we're
preventing the user from fixing it.
Also includes better const management for SHAPE_POLY_SET API.
Fixes: lp:1833831
* https://bugs.launchpad.net/kicad/+bug/1833831
6 years ago
Jeff Young
981072598b
Overhaul cursor code for new tool/action framework.
Includes the addition of an onSetCursor() handler which must be called
from both the GAL canvas AND the GAL backend (at least on OSX) to prevent
cursor flickering between (for instance) pencil and arrow.
Also includes new architecture for point editors which allows them to
coordiate cursors with the editing tools (so we can switch to an arrow
when over a point).
6 years ago
Jeff Young
69afa27a5f
Implement ACTION_TOOLBAR and update some of the menus to ACTION_MENU.
This gives us better separation of MVC in line with the design of
the modern toolset. It also reduces a whole bunch of duplicated
data.
7 years ago
Jeff Young
f602ccd814
Insert EE_TOOL_BASE under SchEdit and LibEdit tools, and fix errant rename scope which clobbered PCBNew's PICKER_TOOL.
7 years ago
Jeff Young
c1539ae014
Naming changes to reflect sharing between SchEdit and LibEdit.
7 years ago
Jeff Young
ea0941cab3
Implement modern tools for LibEdit.
7 years ago
John Beard
a1e0735853
Add hotkey (Insert) for zone create corner
Adds a hotkey to the TOOL_ACTION, and also checks for
action validity prior to running the actions (previously
implicitly gated by the enablement of the menu item).
7 years ago
Maciej Suminski
7943372e8b
Refill zones only when required
Previous implementation refilled zones every time they have been
unselected. This patch adds a flag that tracks whether the
zone has been actually modified, so it will be refilled only when
necessary.
Fixes: lp:1760903
* https://bugs.launchpad.net/kicad/+bug/1760903
8 years ago
Maciej Suminski
dd97718a50
Point Editor: prevent creation of self-intersecting polygons
8 years ago
Tomasz Włostowski
56336fdafe
POINT_EDITOR: migrate to ZONE_FILLER class
8 years ago
Maciej Suminski
76bd05a69b
Prevent creating too many transitions by TOOL_MANAGER
- added TOOL_INTERACTIVE::resetTransitions()
- made protected and moved TOOL_BASE::setTransitions() to TOOL_INTERACTIVE
- TOOL_MANAGER calls TOOL_INTERACTIVE::resetTransitions() instead of
setTransitions()
8 years ago
Maciej Suminski
75fb04d650
TOOL_ACTIONs are handled with transitions, no handlers needed in the event loops
There used to be a number of TOOL_ACTIONs that had entries both in
SetTransitions() and the event loop, which seemed redundant and
troublesome.
Now it is not necessary anymore, transitions setup is enough to execute
associated actions.
9 years ago
Simon Richter
59c81976dc
Explicitly mark overriding functions.
9 years ago
Simon Richter
da5699de0a
Replace boost::shared_ptr with std::shared_ptr.
9 years ago
Henrik Nyberg
a6c94e26f6
Improved code for handling zone corner dragging (GAL).
10 years ago
Maciej Suminski
09febe745d
Remove a corner from zone outline function (GAL).
11 years ago
Maciej Suminski
946b9d1933
setTransitions() are called automatically for tools.
11 years ago
Maciej Suminski
902d0e3f1f
Tools are processing const TOOL_EVENT& (Tool Framework).
11 years ago
Maciej Suminski
e6c1254dc8
"Create corner" context menu entry for draw segments and zone outlines (GAL).
11 years ago
Maciej Suminski
0379247fd4
Refactoring EDIT_POINTS, part 2: replaced index numbers with constants.
12 years ago
Maciej Suminski
17ec7ace4c
Breaking outlines for zones using POINT_EDITOR.
12 years ago
Maciej Suminski
19a87ac780
Added EC_CONVERGING for zone areas modification.
12 years ago
Maciej Suminski
85e8b8bd87
Yet another approach to 45 degree constraints.
12 years ago
Maciej Suminski
5ac6579a87
Cursor snaps to EDIT_POINTs.
Added POINT_EDITOR::isModified().
12 years ago
Maciej Suminski
3927c667cc
Added documentation. Moved some functions from .h to .cpp files.
12 years ago
Maciej Suminski
88a0311afe
Added EDIT_LINEs for dragging zone outlines.
12 years ago
Maciej Suminski
f72aec25c0
Auto zone refilling after using the POINT_EDITOR.
Minor code cleaning.
12 years ago
Maciej Suminski
3c656691cf
Fixed POINT_EDITOR crash on GAL change / board reload.
12 years ago
Maciej Suminski
f87f12e222
Added TOOL_ACTION for updating EDIT_POINTS.
EDIT_POINTs show up when there is only one item selected (now after deselection as well).
12 years ago
Maciej Suminski
94cfed4b9e
Initial version of POINT_EDITOR.
12 years ago
Maciej Suminski
a42a83a394
Minor changes to BRIGHT_BOX class.
12 years ago
Maciej Suminski
0ac3e1fbf2
Namespace KiGfx->KIGFX.
template<> -> template <>
Some more reformatting according to uncrustify results.
12 years ago
Maciej Suminski
460dcfc621
Removed SELECTION layer.
12 years ago
Maciej Suminski
9ec4520c45
Added missing files
12 years ago
Maciej Suminski
86f520f76e
Sorted out headers.
12 years ago
Maciej Suminski
f179183dea
Removed some dead code.
12 years ago
Maciej Suminski
c5d3376c26
Changed some 'magic numbers' into constants. Added const modifier in appropriate spots.
12 years ago
Maciej Suminski
16437e5d45
Added general purpose overlay layer and moved selection box to it.
12 years ago
Maciej Suminski
7d5a456344
Code reformatting.
12 years ago
tomasz.
69a44d5f13
pcbnew: hooked Tool Framework into the edit panel. Added a sample selection tool (not fully functional).
12 years ago
tomasz.
241061025b
Added core tool framework files + boost::context assembly stuff (initial, very buggy and unfinished work).
12 years ago
Maciej Suminski
5242fff9d7
Code refactorization. VBO_CONTAINER is split to [NON]CACHED_MANAGER, GPU_MANAGER and VERTEX_MANAGER.
12 years ago