diff --git a/TODO.txt b/TODO.txt index 3e842a8f00..b554625122 100644 --- a/TODO.txt +++ b/TODO.txt @@ -48,37 +48,30 @@ E6) Start initial work for changing component library file format to use Dick's PCBNew ------ -* Make the zone hit testing be done in screen coordinates, not internal units. - See the @todos in class_zone.cpp +*) Make the zone hit testing be done in screen coordinates, not internal units. + See the @todos in class_zone.cpp. A fixed distance in internal units becomes + a variable distance based on zoom factor, leading to inconsistent results at + various zoom factors. I believe that a fixed distance in pixels might make + for a friendlier UI. - -Dick's Peronal TODO Items (Last Update: 24-April-2012) ------------------------------------------------------ - -1) Work through some scroll, pan, zoom overflows in PCBNEW's nanometer build mode. - It is thought that if we can constrain the virtual IU space to within - INT_MIN to INT_MAX then a whole host of other problems will go away. Most - of the evil is in EDA_DRAW_FRAME::AdjustScrollBars() which assumes the - virtual IU space is infinite. This function triggers a movement of the - viewport within the virtual IU space and also a change in size of the virtual - IU space. Once this happens, you can end up thinking there are problems in - functions like EDA_DRAW_PANE::DrawCrossHair(), but this may be an artifact - of having traveled outside a limited virtual IU space. - - -2) Check that the new load visibility BOARD settings is properly setting the toolbar +*) Check that the new load visibility BOARD settings is properly setting the toolbar buttons like show grid or ratsnest. Add PCB_EDIT_FRAME::SetVisibleElements() so toolbar crap is not known to a BOARD. -3) Finish removing global access requirements from KICAD_PLUGIN, so that: +*) Finish removing global access requirements from PLUGINs, so that: *) a BOARD is a fully self contained document description. *) plugin developers do not have to access globals, since a plugin could - very well be a dynamically loaded DLL/DSO. - One final problem remains with BASE_SCREEN's grid origin, easy solution is to - move just that one field into the BOARD. + very well be a dynamically loaded DLL/DSO in the future. + One final problem remains is the BASE_SCREEN's grid origin. An easy + solution is to move just that one field into the BOARD. + +*) Add ::Footprint*() functions to EAGLE_PLUGIN, so that Eagle footprint libraries + can be used in situ. + +*) Add a library table for Pcbnew like that in the sweet library and get rid of the + damn search path strategy. This will enable concurrent usage of various types + of PLUGIN::Footprint*() functions. At least LEGACY and KICAD are both needed + concurrently. -4) Do an EAGLE XML import PCBNEW PLUGIN, and possibly add export support to it. - This is PLUGIN::Load() and maybe PLUGIN::Save(). -5) Get back to the SWEET work. diff --git a/pcbnew/legacy_plugin.cpp b/pcbnew/legacy_plugin.cpp index e0f10c5905..fd56d27267 100644 --- a/pcbnew/legacy_plugin.cpp +++ b/pcbnew/legacy_plugin.cpp @@ -2659,7 +2659,7 @@ BIU LEGACY_PLUGIN::biuParse( const char* aValue, const char** nptrptr ) // fval is up into the whole number realm here, and should be bounded // within INT_MIN to INT_MAX since BIU's are nanometers. - return BIU( KiROUND( double( fval ) ) ); + return KiROUND( fval ); } diff --git a/tools/test-nm-biu-to-ascii-mm-round-tripping.cpp b/tools/test-nm-biu-to-ascii-mm-round-tripping.cpp index 29497a0df5..5ad16a531f 100644 --- a/tools/test-nm-biu-to-ascii-mm-round-tripping.cpp +++ b/tools/test-nm-biu-to-ascii-mm-round-tripping.cpp @@ -43,7 +43,7 @@ std::string biuFmt( BIU aValue ) if( engUnits != 0.0 && fabsl( engUnits ) <= 0.0001 ) { - len = snprintf( temp, sizeof( temp ), "%.16f", engUnits ); + len = snprintf( temp, sizeof( temp ), "%.10f", engUnits ); while( --len > 0 && temp[len] == '0' ) temp[len] = '\0'; @@ -52,7 +52,7 @@ std::string biuFmt( BIU aValue ) } else { - len = snprintf( temp, sizeof( temp ), "%.16g", engUnits ); + len = snprintf( temp, sizeof( temp ), "%.10g", engUnits ); } return std::string( temp, len );;