Loading TODO.txt +18 −25 Original line number Original line Diff line number Diff line Loading @@ -48,37 +48,30 @@ E6) Start initial work for changing component library file format to use Dick's PCBNew PCBNew ------ ------ * Make the zone hit testing be done in screen coordinates, not internal units. *) Make the zone hit testing be done in screen coordinates, not internal units. See the @todos in class_zone.cpp 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. *) Check that the new load visibility BOARD settings is properly setting the toolbar 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 buttons like show grid or ratsnest. Add PCB_EDIT_FRAME::SetVisibleElements() so buttons like show grid or ratsnest. Add PCB_EDIT_FRAME::SetVisibleElements() so toolbar crap is not known to a BOARD. 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. *) a BOARD is a fully self contained document description. *) plugin developers do not have to access globals, since a plugin could *) plugin developers do not have to access globals, since a plugin could very well be a dynamically loaded DLL/DSO. very well be a dynamically loaded DLL/DSO in the future. One final problem remains with BASE_SCREEN's grid origin, easy solution is to One final problem remains is the BASE_SCREEN's grid origin. An easy move just that one field into the BOARD. 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. pcbnew/legacy_plugin.cpp +1 −1 Original line number Original line Diff line number Diff line Loading @@ -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 // fval is up into the whole number realm here, and should be bounded // within INT_MIN to INT_MAX since BIU's are nanometers. // within INT_MIN to INT_MAX since BIU's are nanometers. return BIU( KiROUND( double( fval ) ) ); return KiROUND( fval ); } } Loading tools/test-nm-biu-to-ascii-mm-round-tripping.cpp +2 −2 Original line number Original line Diff line number Diff line Loading @@ -43,7 +43,7 @@ std::string biuFmt( BIU aValue ) if( engUnits != 0.0 && fabsl( engUnits ) <= 0.0001 ) 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' ) while( --len > 0 && temp[len] == '0' ) temp[len] = '\0'; temp[len] = '\0'; Loading @@ -52,7 +52,7 @@ std::string biuFmt( BIU aValue ) } } else else { { len = snprintf( temp, sizeof( temp ), "%.16g", engUnits ); len = snprintf( temp, sizeof( temp ), "%.10g", engUnits ); } } return std::string( temp, len );; return std::string( temp, len );; Loading Loading
TODO.txt +18 −25 Original line number Original line Diff line number Diff line Loading @@ -48,37 +48,30 @@ E6) Start initial work for changing component library file format to use Dick's PCBNew PCBNew ------ ------ * Make the zone hit testing be done in screen coordinates, not internal units. *) Make the zone hit testing be done in screen coordinates, not internal units. See the @todos in class_zone.cpp 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. *) Check that the new load visibility BOARD settings is properly setting the toolbar 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 buttons like show grid or ratsnest. Add PCB_EDIT_FRAME::SetVisibleElements() so buttons like show grid or ratsnest. Add PCB_EDIT_FRAME::SetVisibleElements() so toolbar crap is not known to a BOARD. 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. *) a BOARD is a fully self contained document description. *) plugin developers do not have to access globals, since a plugin could *) plugin developers do not have to access globals, since a plugin could very well be a dynamically loaded DLL/DSO. very well be a dynamically loaded DLL/DSO in the future. One final problem remains with BASE_SCREEN's grid origin, easy solution is to One final problem remains is the BASE_SCREEN's grid origin. An easy move just that one field into the BOARD. 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.
pcbnew/legacy_plugin.cpp +1 −1 Original line number Original line Diff line number Diff line Loading @@ -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 // fval is up into the whole number realm here, and should be bounded // within INT_MIN to INT_MAX since BIU's are nanometers. // within INT_MIN to INT_MAX since BIU's are nanometers. return BIU( KiROUND( double( fval ) ) ); return KiROUND( fval ); } } Loading
tools/test-nm-biu-to-ascii-mm-round-tripping.cpp +2 −2 Original line number Original line Diff line number Diff line Loading @@ -43,7 +43,7 @@ std::string biuFmt( BIU aValue ) if( engUnits != 0.0 && fabsl( engUnits ) <= 0.0001 ) 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' ) while( --len > 0 && temp[len] == '0' ) temp[len] = '\0'; temp[len] = '\0'; Loading @@ -52,7 +52,7 @@ std::string biuFmt( BIU aValue ) } } else else { { len = snprintf( temp, sizeof( temp ), "%.16g", engUnits ); len = snprintf( temp, sizeof( temp ), "%.10g", engUnits ); } } return std::string( temp, len );; return std::string( temp, len );; Loading