Tomasz Włostowski
f34b86d39e
pcbnew: made zone filling algorithm thread-safe.
...
- moved zone filling algo outside ZONE_CONTAINER class
- const'ified methods that don't need to modify zone's properties
- cleanup: m_FillMode -> enum
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
jean-pierre charras
70226ecdeb
Fix a few doxygen warnings
2017-06-20 10:47:30 +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
jean-pierre charras
1d1453edbe
zone_filling_algorithm.cpp: fix missing closing parenthesis. Remove useless compare function.
2016-07-14 10:22:23 +02:00
jean-pierre charras
b7955001c1
zone_filling_algorithm.cpp: a small code cleanup, fix incorrect return type in a few methods, and add better comments.
2016-07-14 09:27:32 +02: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
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
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
jean-pierre charras
ba37f33bbb
Pcbnew: Use a better (i.e. more suitable to calculate clearance areas) algorithm to inflate/deflate zones outlines. It fixes bug#1459734.
...
Previously, acute angles (especially small angles) in zone outlines create incorrect shapes and sometimes strange shapes for clearance areas, when using generic algorithms.
This happens when zones outlines have "spikes", but not usually for smooth outlines.
2015-05-30 14:02:55 +02:00
jean-pierre charras
5c26381963
Pcbnew: Fix Bug #1432370 (Solder mask cutouts extended by "Zone min thickness value")
2015-03-15 16:11:14 +01:00
jean-pierre charras
25a801ed8a
Modify usage of Inflate/deflate polygon in zone calculations, in order to be compatible with boost::polygon >= 1.56
...
Some code cleanup.
2014-11-30 18:07:02 +01:00
jean-pierre charras
6a93777a51
Polyline.h: remove useless class CRect. Use the more powerful EDA_RECT instead. Clean and remove duplicate code.
2014-11-08 13:25:29 +01:00
Maciej Suminski
f72aec25c0
Auto zone refilling after using the POINT_EDITOR.
...
Minor code cleaning.
2014-03-06 11:49:08 +01:00
jean-pierre charras
ac1386a5a2
Pcbnew: fix bug 1179877, due a bad default copy constructor, after my changes about CPOLYGONS_LIST class.
...
More about CPOLYGONS_LIST work.
2013-05-14 20:47:01 +02:00
jean-pierre charras
2554575656
More work on CPOLYGONS_LIST class.
...
Pcbnew: fix minor bug about plot line width.
2013-05-09 21:08:12 +02:00
jean-pierre charras
b2a76062c7
All: use CPOLYGONS_LIST, a typedef of std::vector<CPolyPt> to handle a Corners Polygons List.
...
This is a starting point of some code enhancements relative to polygons in Pcbew and 3D viewer.
2013-05-03 19:51:10 +02:00
jean-pierre charras
4ac7dd5845
3D viewer: Modify yhe way board items shapes are built:
...
* All items shapes are converted to polygons.
* Polygons are merged layer by layer (for calculation time reasons,zones are not merged)
* for copper layers, vias and pads holes are substracted from polygons (but, for calculation time reasons, not inside zones areas).
* the look is better, mainly when displaying the copper thickness
* solder and paste layers are now shown in 3D viewer.
* the code was seriously cleaned (but still needs to be enhanced).
* Note this is a work in progress which needs refinements.
2013-05-01 21:01:14 +02:00
Wayne Stambaugh
25e7abec0d
Encapsulation, bug, context menu string, and, coding policy fixes.
...
* Complete encapsulation of the ZONE_CONTAINER class.
* Fixed a bug in the EDA_TEXT::Format() default effects behavior due to
improper conversion to internal units and missing test for default
thickness.
* Improved grammar of some Pcbnew context menu strings.
* Moved some more cleverly hidden BOARD object methods into class_board.cpp.
* Lots of coding policy and documentation fixes.
2013-03-20 10:50:12 -04:00
jean-pierre charras
9d5e271334
Pcbnew: fix a minor issue in non copper zones when creating the solid filled areas.
2012-08-04 18:33:04 +02:00
jean-pierre charras
7fd24c7f03
Very minor fixes.
2012-08-03 17:43:15 +02:00
jean-pierre charras
99b90d2fa3
More work on a better support of polygons in Kicad (code cleaning).
2012-07-25 20:46:25 +02:00
jean-pierre charras
ef5f1b9e6b
Start work on a better support of polygons in Kicad (code cleaning).
...
Some coding style policy fix.
2012-07-25 09:36:56 +02:00
jean-pierre charras
018b080001
Pcbnew: Add keepout areas (Copper zones without tracks or/and vias).
...
This is *a work in progress*, so some features are missing, and/or could be modified.
Mainly keepout zones are not yet exported to autorouters, and pads are not taken in account.
Some code cleanup in polygon.*
2012-07-13 20:55:29 +02:00
jean-pierre charras
7f07b48e88
Pcbnew: Update incorrect or incomplete copyrights in many files.
...
Minor code cleaning in autoroute files.
2012-06-08 11:56:42 +02:00
jean-pierre charras
36dac0c14d
Pcbnew nanometer: fix hatch lines issue in polyline.cpp
...
Some minor code cleaning.
2012-04-11 11:47:57 +02:00
Dick Hollenbeck
6c04e60587
see CHANGELOG.txt
2012-02-05 23:44:19 -06:00
jean-pierre charras
ee8d721c3c
Add priority level to zones.
2012-01-29 20:29:19 +01:00
Dick Hollenbeck
b8a0ab4c52
switch to <> for includes from "" per conversation with Jean-Pierre and Wayne, adjust search paths
2012-01-22 22:33:36 -06:00
jean-pierre charras
1c98200721
Pcbnew: fix issue when KICAD_NANOMETER is defined: when zones use htcth to show zones areas, hatch lines were incorrectly calculated (hunded of thousand lines created)
...
Eeschema: fix issue in search: search not made in reference strings.
Minor fixes, code cleaning and comment enhancements.
2012-01-10 21:12:46 +01:00
Wayne Stambaugh
edd35b4e90
PCB common library header rationalization.
...
* All header files used to create the PCB common library now compile as
stand alone code. This prevents the need to define them in a specific
order to make source code compile properly. It should also now be
possible to relocate the source code to build the common PCB library
to a separate folder.
2011-09-23 09:57:12 -04:00
Wayne Stambaugh
ebc7259a91
Rename WinEDA_App class to EDA_APP and remove redundant includes.
2011-09-06 10:09:40 -04:00
Wayne Stambaugh
67f70fe079
Coding style and Doxygen comment fixes.
...
* Rename EDA_Rect class to EDA_RECT.
* Rename EDA_TextStruct class to EDA_TEXT.
* Remove duplicate Doxygen comments from sch_sheet_path.cpp.
2011-03-29 15:33:07 -04:00
Marco Mattila
cbee247737
Add zone corner smoothing to pcbnew.
2011-02-21 21:43:59 +02:00
Wayne Stambaugh
7cb34aece7
Schematic component object encapsulation and Doxygen comment warning fixes.
2010-12-14 10:56:30 -05:00
jean-pierre charras
cdd9e8cabe
Pcbnew: code cleanup
2010-11-26 18:47:35 +01:00
Dick Hollenbeck
6c9244e8c3
fix function comments, this time ones in *.cpp files until they
...
can be deleted later if they exist in the headers, or moved to
headers if they should exist in the headers.
2010-11-12 10:59:16 -06:00
Dick Hollenbeck
636b2d301e
function comments, fix ones in *.cpp files until they can be deleted if they exist in the headers
2010-11-12 10:36:43 -06:00
charras
e5102715e2
class SEG_ZONE deprecated
2009-08-06 18:30:46 +00:00
charras
42022adb3f
code cleaning
2009-07-30 11:04:07 +00:00
charras
30da5aff07
Calculations to create filled areas in a zone modified and uses 2 pass. See changelog
2009-01-10 17:12:51 +00:00
dickelbeck
b603580355
WinEDA_BasePcbFrame::m_Pcb is now private, use GetBoard() to access it.
2009-01-05 05:21:35 +00:00
stambaughw
2611a54791
Convert global and embedded application pointers to wxGetApp()
2008-12-08 15:27:13 +00:00
charras
75b3c3bf37
Switch to polygons in zones (old way no more supported)
...
areas can be now filled using solid polygons, or using segments to fill areas inside polygons.
2008-12-03 10:32:53 +00:00
charras
fa472950b7
pcbnew: better protection against malformed zones
2008-11-28 20:10:05 +00:00
charras
ffca523980
code cleaning in zones functions
2008-10-23 10:26:06 +00:00