Commit Graph

220 Commits

Author SHA1 Message Date
Marco Mattila 6559d6a582 Fix pcbnew zone corner filleting 2012-11-30 07:51:47 +02:00
jean-pierre charras efdf28f67e Polyline.cpp: fix a bad wxASSERT test which generate error messages in Debug mode when there is no error, in DEBUG mode, when filling zones with holes. 2012-11-27 21:12:39 +01:00
jean-pierre charras 31332c3973 polygon: update clipper lib. 2012-11-20 12:42:39 +01:00
Dick Hollenbeck 210a7036db switch all <math.h> includes to <cmath> includes on an attempt to dodge some abiguous references to atan2() 2012-09-21 12:02:54 -05:00
jean-pierre charras 92b43c7407 Fix 0 length segment in outline zone creation, that breaks zone chamfer option. 2012-08-31 15:58:23 +02:00
jean-pierre charras 1f277fd66d Remove Kbool from Kicad. Use Clipper instead. 2012-08-04 11:43:27 +02:00
jean-pierre charras 7fd24c7f03 Very minor fixes. 2012-08-03 17:43:15 +02:00
jean-pierre charras 899d23d4fd Polygon code cleanup 2012-08-02 19:32:42 +02:00
jean-pierre charras 3b56ea6732 Eeschema: fix crash when changing a label type to a global label during creation.
Pcbnew: code cleaning in polygons
2012-08-02 15:23:53 +02:00
jean-pierre charras 90a6daa722 Cleanup math_for_graphic code 2012-08-01 09:07:56 +02:00
jean-pierre charras dfdd2cfdbf Remove freepcb arc legacy code from PolyLine. 2012-07-31 19:51:58 +02:00
jean-pierre charras ae05cd80c3 Remove arcs support in zone outlines: this is a legacy code from FreePCB, never used, never tested, never maintained. 2012-07-31 15:12:51 +02:00
jean-pierre charras f96d557e73 Fix issues in zones creation (DRC and merging) I created in 3658.1 2012-07-30 09:40:25 +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
Dick Hollenbeck d3f9554841 CPolyPt constructors 2012-06-10 04:48:42 -05:00
Marco Mattila 64c1ea5cec Add missing checks and undo support to pcbnew zone duplication. 2012-06-05 14:44:22 +03:00
jean-pierre charras 6d1fe6fe5e Fix 2 minor warning compil (unused variables) 2012-05-16 22:44:21 +02:00
Dick Hollenbeck 3fa7c200b7 Add tools/parser_gen.cpp which is the beginnings of an s-expression parser
generation tool.  For now, it is just an s-expression beautifier using
our "non-specctra mode" version of s-expressions.
2012-04-29 21:57:48 -05:00
jean-pierre charras fa3ebc4043 Define MM_TO_IU_SCALING_FACTOR (scaling factor from mm to internal units) only in convert_to_biu.h
Other scaling factors (MILS_TO_IU_SCALING_FACTOR and DECIMILS_TO_IU_SCALING_FACTOR)
also defined only in convert_to_biu.h.
Allows different scaling value for Gerbview.
Needs more tests.
2012-04-25 21:33:24 +02:00
Dick Hollenbeck 33616f3051 * Add DRECT, DPOINT, and DSIZE (double rect, point, and size) using Torsten's vector2d.h
as a starting point
* Make double Distance() take double arguments and remove internal range checking.
* Start on EDA_DRAW_FRAME::AdjustScrollBars() and use "double" for most all calculations
  in anticipation of setting INT_MAX INT_MIN limits eventually.
2012-04-23 16:56:26 -05:00
Dick Hollenbeck c24863c078 // Dick Hollenbeck's KiROUND R&D
// This provides better project control over rounding to int from double
// than wxRound() did.  This scheme provides better logging in Debug builds
// and it provides for compile time calculation of constants.


#include <stdio.h>
#include <assert.h>
#include <limits.h>

//-----<KiROUND KIT>------------------------------------------------------------

/**
 * KiROUND
 * rounds a floating point number to an int using
 * "round halfway cases away from zero".
 * In Debug build an assert fires if will not fit into an int.
 */

#if defined( DEBUG )

// DEBUG: a macro to capture line and file, then calls this inline

static inline int KiRound( double v, int line, const char* filename )
{
    v = v < 0 ? v - 0.5 : v + 0.5;
    if( v > INT_MAX + 0.5 )
    {
        printf( "%s: in file %s on line %d, val: %.16g too ' > 0 ' for int\n", __FUNCTION__, filename, line, v );
    }
    else if( v < INT_MIN - 0.5 )
    {
        printf( "%s: in file %s on line %d, val: %.16g too ' < 0 ' for int\n", __FUNCTION__, filename, line, v );
    }
    return int( v );
}

#define KiROUND( v )    KiRound( v, __LINE__, __FILE__ )

#else

// RELEASE: a macro so compile can pre-compute constants.

#define KiROUND( v )  int( (v) < 0 ? (v) - 0.5 : (v) + 0.5 )

#endif


//-----</KiROUND KIT>-----------------------------------------------------------

// Only a macro is compile time calculated, an inline function causes a static constructor
// in a situation like this.
// Therefore the Release build is best done with a MACRO not an inline function.
int Computed = KiROUND( 14.3 * 8 );


int main( int argc, char** argv )
{
    for( double d = double(INT_MAX)-1;  d < double(INT_MAX)+8;  d += 2.0 )
    {
        int i = KiROUND( d );

        printf( "t: %d  %.16g\n", i, d );
    }

    return 0;
}
2012-04-19 01:55:45 -05:00
Dick Hollenbeck 72d4b2353b uncrustify math_for_graphics, add copyright legacy_plugin.h 2012-04-17 09:18:14 -05: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 e730219b31 add PCNBEW nanometer support to specctra round-tripper, use micro-meters to do it. 2012-04-10 11:28:26 -05:00
Dick Hollenbeck 107ef8f102 see CHANGELOG.txt 2012-02-19 22:33:54 -06:00
Dick Hollenbeck b90d657cb8 fix bug 921553 2012-02-08 09:06:06 -06: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
Dick Hollenbeck e6c8515873 switch to C++'s false and true from C's FALSE and TRUE 2012-01-22 11:20:22 -06:00
jean-pierre charras 3383d6c8a5 Code cleaning and better comments.
Gebview: fix issue in export to pcbnew (Track arc shapes are now exported, approximated by segments)
2012-01-13 19:35:46 +01: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
jean-pierre charras 2df818b844 Fix issue in GPcb footprints import.
Better code in test connections in zones.
Very minor other fixes
2011-12-22 09:07:50 +01:00
Dick Hollenbeck b6508af0f4 KICAD_PLUGIN and nanometer intermediate checkin, work in progress... 2011-11-30 15:15:56 -06:00
Dick Hollenbeck cc097762c7 Temporarily reverse out the evolving support for finer Board Internal Units (BIU)s. 2011-11-24 11:32:51 -06:00
Vladimir Ur 09a61396ba Some code restyling: VECTOR_PCB is an array. Cleanup uncontrolled definitions of abs, max, etc. max is now overloaded function and MAX is a macro. 2011-11-15 22:26:06 +04:00
Wayne Stambaugh baa0d7920a EESchema bug fixes and other minor changes (fixes lp:793373).
* Fix debug build warning (lp:793373).
* Changed sheet edit restore and undo to use object copy and replace method.
* Add minimum width and height constraints when resizing sheets that have
  hierarchical pins.
* Fix drag sheet hot key bug.
* Change Doxygen configuration to extract private methods and members
  when creating documentation.
* Fix a bunch of Doxygen comment warnings.
2011-06-07 11:29:01 -04:00
Wayne Stambaugh a338e0e5b3 Minor GCC3 compiler warning fixes. 2011-03-17 09:53:19 -04:00
Marco Mattila d3932f5f25 Pcbnew: Fix add similar/cutout zone. Fix zone corner smoothing for zones with cutouts. 2011-02-23 23:34:28 +02:00
Wayne Stambaugh c9688deedf MSVC compiler error and GCC warning fixes.
* Fixed ambiguous call to sqrt() MSVC compiler error.
* Fixed a bunch of type conversion warnings in GCC 3 (MinGW).
2011-02-22 09:38:48 -05:00
Marco Mattila cbee247737 Add zone corner smoothing to pcbnew. 2011-02-21 21:43:59 +02:00
jean-pierre charras e7d5770f42 Fix some Doxygen warnings.
Eeschema: cleaning code. Start work to enhance annotation algorithm.
Already added an option to annotate using sheet number (sheet 1 uses numbers 100 to 199, sheet 2 uses 200 to 299..).
Works fine if deleting existing annotation, but needs work to be used when the existing annotation is kept .
2011-01-01 18:28:21 +01:00
jean-pierre charras fdb18547a6 Eeschema: fix bug 676532. Minor enhancements. 2010-11-17 19:41:20 +01:00
jean-pierre charras 746dea5ae3 Pcbnew: fix a serious bug in ZONE_CONTAINER::HitTestFilledArea( ) which could break connectivity calculations relative to copper areas.
Fix also very minor issues relative to copper zones.
Update boost::polygon from Boost svn repository.
2010-11-13 20:21:16 +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
Dick Hollenbeck 845d61acc5 coding standards consistency updates 2010-11-12 09:17:10 -06:00
jean-pierre charras fd1c159a59 Fix bug in PolyLine.cpp, Fix bug in DRC calculations (see changelog). Cvpcb: move dialog files in dialogs/ 2010-10-28 15:02:07 +02:00
jean-pierre charras a188f9d06e added orto2 patch 2010-10-04 14:58:07 +02:00
jean-pierre charras f1df65c51f DRC code cleaning, and added DRC tests for trapezoidal pads. Needs more tests 2010-09-20 18:21:47 +02:00
charras bee0d118f0 fixed a potential bug in fill zone.
Tried to fix a problem under Vista and Window 7 in fill zone: sometimes Pcbnew crashes.
Could be a bug in Kbool (see changelog).
2010-01-03 16:47:46 +00:00
charras da20f1109f Fixed my filling problem in pcbnew by changing some parameters in kbool
But this problem needs more investigations
2009-11-16 12:10:37 +00:00
charras ab66f9ecba rework on zones:try to fix a filling problem with kbool 2009-11-14 19:47:52 +00:00
charras 4537ac8c99 Fixed cvpcb crash (only when compiled in Debug version) 2009-09-19 16:15:40 +00:00
charras 7776dd61eb use kbool 2.1 in zones calculations. see CHANGELOG for others changes and more info 2009-09-17 17:48:40 +00:00
charras ef2e41e347 2009-09-10 13:04:04 +00:00
charras cfdb28394e Pcbnew: Work on undo/redo in Pcbnew almost finished. 2009-08-23 15:22:44 +00:00
charras cffe0cfcaa support for bezier curves 2009-06-25 20:45:27 +00:00
f3nix 7fc9e5f177 Clean some CMakeLists.txt files. 2009-06-21 13:37:27 +00:00
stambaughw 8bf7911125 Build improvements, compiler warning fixes and build fixes, and lots of clean up.
* Created separate SVN version header.
* Add true config.h for platform dependency checks.
* Add dependency check cmake module.
* Remove some leftover hand crafted make files.
* Remove non-cmake build instructions from COMPILING.txt.
* Fix split _() strings causing Visual C++ compiler error.
* Fix lots of compiler warnings.
* Change project file parameter container from wxArray to boost::vector_ptr.
* Removed lots of redundant header definitions.
* Fixed green_xpm redefinition in ercgreen.xpm.
* Remove some dead code and unnecessary class methods.
2009-05-21 17:42:42 +00:00
charras 13a1c6be37 delete "old" makefiles. Use CMakefiles only 2009-05-07 17:33:05 +00:00
charras 71ca194b68 overbar patch merged mainly in eechema/class_pin.cpp. Some cleanup and compil problem fixes. 2009-04-06 10:56:17 +00:00
stambaughw 689579bde1 Global variable unobfuscation, new library path search, and lots of other changes. See CHANGELOG.txt. 2009-04-05 20:49:15 +00:00
charras f2c03f2b97 gr_basic.cpp now clips filled polygons,using the Sutherland and Hodgman algo to clip the poly against a rectangle
Filled polygons are now correctly displayed under Linux(i hope)
2009-02-20 14:31:16 +00:00
charras c39ef78ddc minor changes. 2009-01-15 20:41:41 +00:00
charras 67fa1ddb92 comments updated 2008-12-03 19:45:57 +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 43f75cda0d code cleaning 2008-11-23 17:43:53 +00:00
charras b3b9c12173 code cleaning 2008-11-23 16:31:35 +00:00
charras 1c6ff86768 Zones now have a min thickness filled area parameter 2008-11-22 20:50:30 +00:00
charras 178bc946e3 First version of pcbnew using polygonal filled areas in zones in rats nets calculations. 2008-11-18 18:13:55 +00:00
raburton ba25d20f1a set eol-style native on new files 2008-11-14 22:40:31 +00:00
charras 521f428c35 Using the last version (1.9) of kbool, downloaded from the wxArt2D project site. 2008-11-14 19:38:58 +00:00
charras b3c064b0b4 Thermal shapes modification for round and oblong pads.
This is a workaround for a bug (i believe) of kbool.
2008-11-09 17:14:53 +00:00
charras 134c07f94b Thermal shapes modification for round and oblong pads.
This is a workaround for a bug (i believe) of kbool.
2008-11-09 15:01:35 +00:00
charras f723c540d0 code cleaning. Some comments translated into English.
Added: Zones unfill in polygon mode
2008-10-29 15:26:53 +00:00
charras 3c97a45f48 code cleaning, and some minor bugs solved 2008-10-25 10:21:46 +00:00
charras 544ca4c90d solved a very subtle bug in polygon_test_point_inside.cpp. Sometimes a point outside a polygon was seen inside the polygon 2008-10-15 17:14:51 +00:00
charras 2c60c00640 Some enhancements about code for zones 2008-10-13 12:01:12 +00:00
charras 72fae7e9e3 updating polygon lib code. A bug removed. 2008-10-12 15:30:23 +00:00
charras b7db0ef850 updating polygon lib code. A bug removed. 2008-10-12 15:29:43 +00:00
charras 7c5feb61e7 pcbnew: insulated islands in copper pour removed 2008-10-11 19:27:43 +00:00
charras 4cccb0dd7e First tests about copper zones filled by polygons, without grid (see changelog)
Only for tests! not for production.
2008-10-02 13:24:31 +00:00
charras ab1df3f1d7 more about non copper zones (see changelog) 2008-09-27 19:26:29 +00:00
charras 27cf4ad0ad pcbnew: addded zones in non copper areas and starting work to use polygons in zone fill algos in not copper areas
work in progress: see changelog
2008-09-26 19:51:36 +00:00
charras 5a904e460a Solved kbool lib compil problem under Windows and wxWidgets shared version
Pcbnew: Add position edition in footprint dialog edition
2008-09-05 16:08:13 +00:00
kajtek1 a8a351327d Fixed compiler warnings 2008-06-20 22:17:59 +00:00
f3nix 6bb111cb8e CMake files cleaning. 2008-06-06 12:39:00 +00:00
raburton 1e1a1bb620 set eol-style native on new files 2008-06-05 18:35:58 +00:00
charras 9131e2a104 compiling problems in kbool 2008-06-02 10:23:50 +00:00
charras 44743723d1 removed GPC library due to its unacceptable license. Using the great and powerfull kbool library insteed 2008-05-30 18:06:21 +00:00
charras b8ea76fe63 Solved netlist problems for multiple parts per package components in complex hierarchies.
B.O.M. generation still have a minor problem wih this.
2008-05-15 11:20:19 +00:00
f3nix 6ed78f5b16 Compiler warnings fixes. 2008-05-01 17:12:38 +00:00
plyatov dd38594d39 Compiler warnings elimination (Thanks to the unknown Martin!). 2008-05-01 16:16:36 +00:00
charras 9039a0a579 minor changes and cleanup 2008-04-03 18:03:42 +00:00
dickelbeck 4a2830e4a4 compiler warning 2008-03-31 13:44:42 +00:00
raburton 2a45c24880 removing 3rd party pdfs from svn, saving a couple of mb from the source tree
moved them to the files section of the kicad-devel yahoo group
2008-03-31 12:19:00 +00:00
f3nix 08467e0959 Kill compiler warnings. 2008-03-30 11:48:18 +00:00
charras 157298ba5b minor changes 2008-03-12 11:49:16 +00:00
f3nix 07a0e142ed Lowercase CMake commands. 2008-03-11 15:57:54 +00:00
CHARRAS 4a0b560766 zone outlines edition refinements 2008-02-01 11:01:32 +00:00
CHARRAS af445e70ea remove the old EDGEZONE class. Cleaning code in polyline.x 2008-01-31 20:53:44 +00:00
f3nix af1c15646f CMake:
* Change tabs to spaces.
* Make Boost required.
2008-01-30 09:42:19 +00:00
dickelbeck 11ddcd8e9b commented out a troublesome assert 2008-01-22 20:38:43 +00:00
CHARRAS e9b3322fc0 On line DRC when creating a zone outline 2008-01-20 19:55:22 +00:00
CHARRAS e6c938856a changed ASSERT to wxASSERT in math_for_graphic.cpp 2008-01-17 16:09:00 +00:00
CHARRAS f85ade75d8 see changelog 2008-01-16 20:37:50 +00:00
CHARRAS 638ab25498 more about zones. 2008-01-06 20:58:27 +00:00
CHARRAS 339a90e7ac Block commands now works with zones. 2008-01-06 12:43:57 +00:00
dickelbeck bd5ca82f63 use pad_shapes.h 2008-01-05 17:30:56 +00:00
CHARRAS 97be005035 Added: Delete cutout outline in zone popup menu 2008-01-05 13:37:51 +00:00
CHARRAS ffd3a7133a more about zones. current No DRC for outlines 2008-01-04 12:27:16 +00:00
CHARRAS 62a28440e0 wxstruct modified and wxPcbStuct.h added. some minor other changes 2008-01-01 11:46:47 +00:00
CHARRAS 738d00ba72 more about new zone handling: fill zones now exists 2007-12-30 18:20:51 +00:00
f3nix cbea44a663 * Fix CMake build.
* Add polygon library.
2007-12-30 03:30:34 +00:00
raburton e126042b1e set eol-style native on new files 2007-12-29 19:27:58 +00:00
CHARRAS 5eda8a52ce First draft (and first code..) about new zone handling 2007-12-29 19:15:58 +00:00
CHARRAS 7e7a793753 some changes about zones: enhanced dialog, and files reorganisation 2007-12-17 20:18:04 +00:00
raburton 4ce4631da6 set eol-style and mime-type properties for new polygon related files 2007-12-08 18:19:48 +00:00
CHARRAS dab0fd9edb added: libraries and infos relatives to polygons (usefull for zone redesign) 2007-12-08 17:49:55 +00:00