Jon Evans
01ab8b0584
Use polygonal hit testing for module selection
2018-02-20 10:43:43 -05:00
Maciej Suminski
2f4ec0c0c4
Code formatting
2018-02-19 10:18:01 +01:00
Tomasz Włostowski
5fef750b49
SHAPE_ARC: use more Kicad-ish arc representation. Fixes board outline collisions issues in the P&S
2018-02-17 18:25:20 +01:00
Maciej Suminski
570f4dd991
Coverity fixes
...
CIDs:
174166
174170
174171
2018-02-15 10:27:01 +01:00
Tomasz Włostowski
271363f822
router: support for board outline
2018-02-06 09:43:56 +01:00
Tomasz Włostowski
2faf1a1ed3
Initial support for keepout zones in the P&S router.
2018-02-06 09:43:56 +01:00
jean-pierre charras
1858852f57
rename files
2018-02-02 21:57:12 +01:00
Camille
9ff66a5274
Fix unnecessary value parameter detected by clang-tidy. - Replace value parameter by const reference parameter or move-assignement in some cases
2018-01-09 18:55:51 -05:00
Tomasz Włostowski
aab4c59615
SHAPE_POLY_SET: fix segfault in unfracturing of polygons with 0-width slits
...
Fixes: lp:1740253
* https://bugs.launchpad.net/kicad/+bug/1740253
2018-01-02 00:49:59 +01:00
jean-pierre charras
11d1188fdf
MODULE::CoverageRatio(): replace wxRegion (not working for us on Windows) by polygons to calculate areas.
...
At least on Windows, using wxRegion generates crashes.
Fixes: lp:1740646
https://bugs.launchpad.net/kicad/+bug/1740646
2017-12-31 17:46:56 +01:00
jean-pierre charras
992820f722
shape_line_chain ans shape_poly_det: add Rotate() geometric transform, useful for DRAWSEGMENT transforms
2017-12-22 10:54:47 +01:00
Tomasz Włostowski
eed924fe45
Fixed zone filling crash & thermal stubs inconsistency
...
Fixes: lp:1737557
* https://bugs.launchpad.net/kicad/+bug/1737557
Fixes: lp:1737542
* https://bugs.launchpad.net/kicad/+bug/1737542
Fixes: lp:1737541
* https://bugs.launchpad.net/kicad/+bug/1737541
2017-12-14 01:29:08 +01:00
Andreas Buhr
b33bf2eafe
fix double free and memory leak in SHAPE_POLY_SET
...
There were two problems in the triangulation caching
of SHAPE_POLY_SET:
First there was a double free:
While SHAPE_POLY_SET implements the copy constructor,
it did not implement the operator=, which resulted
in the default operator= being generated by the
compiler. The default operator= copied the member
m_triangulatedPolys, which is a std::vector of pointers.
So after operator= execution, there are two SHAPE_POLY_SET
having pointers to the same TRIANGULATED_POLYGONs, each
of them deleting them in their destructors. This led
to segfaults, because calling
TransformShapeWithClearanceToPolygon on a Zone
uses operator= to copy the contained SHAPE_POLY_SET.
The new SHAPE_POLY_SET then went out of scope and
deleted the cached triangulation within the Zone.
This first problem is fixed by implementing operator=
for SHAPE_POLY_SET.
Second, there was a memory leak: Calling
"CacheTriangulation" on a SHAPE_POLY_SET,
then changing the polygon and then calling
"CacheTriangulation" again led to
leaking the
triangulations generated in the first call.
This second problem is fixed by holding
the cached triangulations in a unique_ptr.
2017-12-08 14:55:46 +01:00
Simon Richter
2f8e60352b
Avoid nonstandard variable length array
2017-12-06 19:27:34 -05:00
Simon Richter
abd0d7fb58
Add missing include
2017-12-06 19:26:05 -05:00
jean-pierre charras
cdad02336d
fix minor compil warnings
2017-12-05 18:02:53 +01:00
Tomasz Włostowski
8df299a6bc
pcbnew: Optimized zone filling algorithm: code cleanup
2017-12-05 14:54:57 +01:00
Tomasz Włostowski
c6a15f1b9b
SHAPE_POLY_SET: fix empty triangulation bug
2017-12-05 14:54:57 +01:00
Tomasz Włostowski
dbdf085555
SHAPE_FILE_IO: default constructor outputs to stdout
2017-12-05 14:54:57 +01:00
Tomasz Włostowski
316ddadec1
pcbnew: Optimized zone filling algorithm.
2017-12-05 14:54:57 +01:00
Tomasz Włostowski
9932ff32ae
refactoring: wrapped boost::optional in OPT<> class for the purpose of easier transition to C++17 in the future
2017-11-03 23:59:02 +01:00
jean-pierre charras
78ec983632
DRAWSEGMENT fix crash when trying to copy a empty polygon.
...
SHAPE_POLY_SET: fix crash in VertexCount when it is a empty poly set, or when params are incorrect.
minor other fixes:
warning in degug mode in dialog_dxf_import_base.cpp
pcb_painter.cpp: remove a useless debug line.
2017-10-25 09:39:26 +02:00
Tomasz Włostowski
d2c9a5d81a
geometry: Area() method in SHAPE_LINE_CHAIN
2017-10-19 23:14:36 +02:00
Tomasz Włostowski
9ad886344b
New connectivity algorithm.
2017-06-23 11:12:36 +02:00
jean-pierre charras
2476e88c9d
Fix a few doxygen warnings
2017-06-15 13:13:24 +02:00
jean-pierre charras
88105f891f
Fixes Pcbnew bug: Drag Zone Outlines no longer working in legacy view
2017-04-16 18:32:47 +02:00
jean-pierre charras
ba37d6fca3
Temporary fix of broken command add corner to zone in GAL mode.
...
Fixes: lp:1680339
https://bugs.launchpad.net/kicad/+bug/1680339
2017-04-06 19:04:47 +02:00
Alejandro García Montoro
f68ce306bd
CPolyLine -> SHAPE_POLY_SET refactor.
...
Removes the need of using the legacy code in polygon/PolyLine.{h,cpp},
refactoring all CPolyLine instances with SHAPE_POLY_SET instances.
The remaining legacy methods have been ported to SHAPE_POLY_SET;
mainly: Chamfer, Fillet, {,Un}Hatch.
The iteration over the polygon vertices have been simplified using the
family of ITERATOR classes.
2017-03-24 10:43:47 +01:00
Tomasz Włostowski
ba9576b014
router: snap to clearance boundaries in Highlight Collisions mode
...
Fixes: lp:1655819
* https://bugs.launchpad.net/kicad/+bug/1655819
2017-01-19 17:47:15 +01:00
Tomasz Włostowski
69cd7177b9
SHAPE_POLY_SET: mark all newly added hole outlines as closed
2016-10-19 17:54:00 +02:00
Chris Pavlina
4b6d28333e
Revert "Memoize SHAPE_LINE_CHAIN bounding box computation"
...
This reverts commit 30566de69a
, which
caused some issues in PNS.
2016-09-01 12:09:06 -04:00
Maciej Suminski
9f0b42cb35
pns: fixed a few memleaks & conditional jumps depending on uninitalized variables
2016-08-17 15:09:48 +02:00
Chris Pavlina
30566de69a
Memoize SHAPE_LINE_CHAIN bounding box computation
...
For a specific project+system combination, this gives a 38% speedup on
the pcbnew side of netlist sync.
2016-08-11 09:34:58 -04:00
Mrio Luzeiro
d8eab321f7
3D Viewer: complete refactor of the 3D viewer.
...
* Split and rewrite the preview window and canvas.
* Create a new class for handling the board information.
* Adds new render targets: openGL, legacy, and ray tracing.
* Render targets take full advantage of the new 3D plugins system and 3D cache
for a fast 3D model loading.
* Faster board loading.
* New OpenGL render is faster than the old one.
* New ray tracing render target with a post processing shader.
* Use of new 3D plugins (WRL, X3D, STEP and IGES) and 3D model caching.
* Preview of 3D model while browsing the file name.
* 3D preview of the footprint while adding / align 3D shapes.
* Render of 3D models according to attributes: Normal, Normal+Insert, Virtual.
* Pivot rotation centered in one point over the PCB board.
* Shortcuts keys improved for XYZ orientation..
* Animated camera.
2016-07-19 13:35:25 -04:00
Simon Richter
1b2fd6a382
Replace BOOST_FOREACH with C++11 range based for.
2016-06-29 16:07:55 -04:00
Simon Richter
da5699de0a
Replace boost::shared_ptr with std::shared_ptr.
2016-06-29 11:09:55 -04:00
jean-pierre charras
bbe42d0f47
Fix very minor issues: compil warnings (mainly deprecated and shadowed vars warnings).
2016-05-22 19:39:20 +02:00
Chris Pavlina
a488cb0142
Sanity-check loop bounds in SHAPE_LINE_CHAIN::Parse
...
Coverity CID: 128540
2016-05-11 23:28:08 -04:00
jean-pierre charras
4a838fb8c3
Pcbnew: Add rounded rect pad shape.
2016-04-06 20:15:49 +02:00
Tomasz Wlostowski
0fa71d8d8f
more accurate pushout force calculation for circle-segment collisions
2016-03-01 14:26:08 +01:00
jean-pierre charras
731f785256
Fix erroneous calculation of segments by circle count in shape_poly_set.cpp Inflate method.
2016-01-14 12:37:09 +01:00
jean-pierre charras
178cf0dc25
Polygon calculation (zones filling): use fast mode when possible (in fact most of time) and strictly simple polygon option only in critical cases (in fact in plot Gerber functions mainly).
...
In polygon calculations (combining polygons, fracture) the mode of calculation (fast or strictly simple polygon option) as no more a default value, because choosing the best mode is better to optimize the calculation time.
2015-12-15 21:21:25 +01:00
unknown
276a923027
SHAPE_POLY_SET: fix segfault when checking for a point in empty polyset
2015-09-02 08:32:24 +02:00
Mario Luzeiro
61f4f1ca9d
Add hole count function and other minor improvements to SHAPE_POLY_SET.
2015-08-24 09:55:22 -04:00
Tomasz Wlostowski
a96299d456
router: improvements to shove algorithm
2015-08-19 18:07:16 +02:00
jean-pierre charras
c63f6aa3c5
Polygon boolean operations on SHAPE_POLY_SET: Add a parameter (aFastMode) to speed up calculations. By default, the transforms use an option to create stricly simple polygons.
...
In 3D viewer, this option can take a *very long* calculation time (minutes instead of seconds, or hangs) and they are now using aFastMode = true to do polygon calculations, especially for zones inside zones belong to the same net but having different priority (which creates weak polygons).
aFastMode = false is the default for other calculations (zone filling) as before.
2015-08-16 14:07:58 +02:00
jean-pierre charras
7a51a502b4
3D viewer: optimizations in code to build the 3D view.
...
Remove no more used code.
Building the 3D view is now faster.
2015-08-10 17:17:10 +02:00
Tomasz Wlostowski
07f5516e59
geometry: Parse() method for SHAPE_LINE_CHAIN, working on Read() in SHAPE_FILE_IO
2015-08-03 20:29:44 +02:00
Tomasz Wlostowski
037772fe3c
Corrected SHAPE_POLY_SET::pointInPolygon() return value.
2015-08-03 10:45:30 +02:00
jean-pierre charras
b0585253c3
Avoid creation of the zones_dump.txt file each time the zones are re-filled, when this option is not enabled.
2015-08-02 19:39:24 +02:00
Simon Richter
b35ad79d7b
Disambiguate fabs() cast.
2015-07-31 08:15:42 -04:00
Tomasz Wlostowski
fb29373b4c
fix hang in fracturing algorithm
2015-07-30 13:49:22 +02:00
jean-pierre charras
32f0ea621f
Shape poly set: fix bug in BBox calculation. Class MARKER : fix broken code and clean code. Fix bug #1369682 (EESchema Erc not show error count) due to this broken code.
2015-07-29 14:18:53 +02:00
Tomasz Wlostowski
1d7e49a45c
SHAPE_POLY_SET::Inflate(): correct arc approximation for negative offsets (deflation). Control circle->segments count explicitly in all Inflate() calls
2015-07-27 21:46:47 +02:00
Tomasz Wlostowski
63b35f40a7
Removed all dependencies on boost::polygon except for bitmap2component. Replaced almost all instances of CPOLYGONS_LIST with SHAPE_POLY_SET.
2015-07-27 21:45:57 +02:00
Maciej Suminski
d2ebf688f9
Reverted commits that remove boost::polygon dependency (need more testing).
2015-07-14 22:23:13 +02:00
Tomasz Wlostowski
9f18e5a98f
SHAPE_POLY_SET::Inflate(): correct arc approximation for negative offsets (deflation). Control circle->segments count explicitly in all Inflate() calls
2015-07-14 15:05:41 +02:00
Tomasz Wlostowski
41c753b05d
Removed all dependencies on boost::polygon except for bitmap2component. Replaced almost all instances of CPOLYGONS_LIST with SHAPE_POLY_SET.
2015-07-14 13:36:24 +02:00
Maciej Suminski
f2785d35bf
Muting Coverity report.
2015-07-07 18:37:03 +02:00
jean-pierre charras
169905d26e
Drc dialog: fix some issues, and mainly the fact the progress bar shown during track tests and zone filling can be sent to the background and the dialog can be closed during tests or the board edited during tests.
...
Add a minor change in dialog_shim only for OSX. (force raising the dialog).
Very minot other fixes: coverity warnings, better message in debug mode in baord outlines calculations.
2015-07-07 19:49:03 +02:00
Tomasz Włostowski
24170f5588
Fixes to SHAPE_POLY_SET slitting/fracturing algo, some speed optimization.
2015-07-06 15:15:48 +02:00
Mathias Grimmberger
7724c581fd
router: support for non-90 degree pad orientations
2015-07-02 16:09:43 +02:00
Chris Pavlina
ada5274b28
Remove some unused variables.
2015-06-26 19:29:01 -04:00
unknown
97010c3867
Fix Bug 146731: Zone fills entire area when set to THT Thermal ( fracturing (holes->single contour) algorithm bug )
2015-06-22 09:09:44 +02:00
Tomasz Wlostowski
e8fca89a2c
fix dereference of a deleted pointer
2015-06-19 19:39:33 +02:00
jean-pierre charras
49fac351ab
Fix a few coverity warnings.
2015-06-15 16:01:43 +02:00
Tomasz wlostowski
eba3a55bb2
pcbnew: new zone filling algorithm using ClipperLib. Possibility to fall back to the old one
2015-06-12 17:13:18 +02:00
Tomasz Wlostowski
feaa403266
common/geometry: introducing set-of-polygons class (SHAPE_POLY_SET) and File I/O for shapes class (SHAPE_FILE_IO)
2015-06-12 17:12:02 +02:00
Tomasz Wlostowski
9cf885c383
common/geometry: rouding error fixes
2015-06-12 17:11:50 +02:00
Maciej Suminski
c23adc47b7
Ratsnest algorithm distinguishes layers (GAL).
2015-06-04 14:54:08 +02:00
jean-pierre charras
bbbb84e6c2
Fix a few minor coverity warnings.
...
Fix minor 3D viewer issues (includling change number of segments and its optimization to draw pad holes.)
Fix Bug #1439132 (track and via list on toolbar not always refresh after loading a board).
Remove useless tool in Modedit.
2015-04-02 13:18:19 +02:00
Maciej Suminski
b6c5b291a2
Coverity fixes.
2015-03-11 14:17:43 +01:00
Maciej Suminski
e6a10faab7
FIxed a few clang warnings.
2015-03-09 11:06:54 +01:00
Alexander Golubev
f2ce42ddb5
fix several -Woverloaded-virtual warnings in common/* dir
...
- CACHED_CONTAINER::GetVertices: removed useless and unused function
which does nothing but tainted the API
- SHAPE_LINE_CHAIN::Collide( const BOX2I& aBox, int aClearance ):
removed an outdated function with assert(false)
- SHAPE::BBox(): fix a small typo in the doc string
2015-03-06 15:26:47 +01:00
Maciej Suminski
a6bd3314e4
Fixed warnings.
2015-03-03 12:59:26 +01:00
Maciej Suminski
0dd9efd9db
Merged the differential pair router & length tuning tool.
2015-03-03 11:50:50 +01:00
Tomasz Wlostowski
f0e7363f88
SHAPE_LINE_CHAIN: fix segfault
2015-02-20 10:37:25 +01:00
Maciej Suminski
4fb9bce354
Code formatting.
2015-02-18 17:53:46 +01:00
Tomasz Włostowski
c87b136522
geometry: new methods and fixes in SEG class
2015-02-18 00:40:11 +01:00
jean-pierre charras
c27b2fbf4c
Fix issues in fp lib table wizard
2015-01-16 09:10:23 +01:00
Maciej Suminski
9245b90392
Code formatting.
2014-11-14 20:19:00 +01:00
Tomasz Wlostowski
33f3aca611
geometry: IsSolid() and Move() methods, segment overlap detection, some improvements in SHAPE_LINE_CHAIN class.
2014-11-14 19:18:31 +01:00
Tomasz Wlostowski
4e280f065f
P&S router: fixed shove force propagation incorrect issues causing improper via dragging.
2014-11-14 19:17:52 +01:00
Tomasz Wlostowski
4e67de5c15
P&S router bugfixes
...
- fixed walkaround bug causing unwanted overlap/clearance violation when the first segment of trace being laid intersects the obstacle's hull at the same point twice (ie. goes in, turns around and goes out).
- fixed placer bug not splitting the start segment after toggling via placement or changing trace width
2014-11-14 19:17:01 +01:00
Wayne Stambaugh
e8362df15f
Add missing source file licenses and code policy fixes.
2014-10-19 16:20:16 -04:00
jean-pierre charras
fb590c7231
Fix PCB Module Editor Help Error.
...
Remove a minor compil warning in shape_collisions.cpp
2014-09-09 18:46:12 +02:00
Maciej Suminski
cce6e27096
Various fixes to geometry & math library.
2014-05-14 11:45:01 +02:00
Maciej Suminski
6fa2f060fa
Formatted ttl library to comply with KiCad coding policy.
2014-04-07 13:32:09 +02:00
Maciej Suminski
c557e52dab
Squashed memory leaks.
2014-03-05 14:57:14 +01:00
Maciej Suminski
1d4c6ad40e
Minor optimizations.
2014-02-05 14:51:19 +01:00
Maciej Suminski
a10d918cac
Thread-safe version of Delaunay triangulation.
2014-01-27 11:42:47 +01:00
Dick Hollenbeck
dbb72d161e
fix some compiler warnings
2014-01-03 18:07:20 -06:00
Maciej Suminski
fe5c5953fc
Upstream merge.
2013-12-20 10:15:00 +01:00
Povilas Kanapickas
7f12513c7e
Remove some uses of using namespace std.
2013-12-13 10:27:30 -06:00
Maciej Suminski
e76a151ee7
Added a missing file
2013-11-29 16:13:09 +01:00
Maciej Suminski
bc305859b2
Mainly case changes.
2013-10-14 20:40:36 +02:00
Maciej Suminski
0ac3e1fbf2
Namespace KiGfx->KIGFX.
...
template<> -> template <>
Some more reformatting according to uncrustify results.
2013-10-14 16:13:35 +02:00
Maciej Suminski
22045b61ea
Converted tabs to spaces. Removed trailing whitespaces.
2013-10-14 13:43:57 +02:00
Maciej Suminski
6b74b5771a
Even more code comments and reformatting.
2013-09-27 18:51:21 +02:00
Maciej Suminski
3f320e4d68
Some more comments and code formatting.
2013-09-27 16:23:43 +02:00