1. 19 Apr, 2012 1 commit
    • Dick Hollenbeck's avatar
      // Dick Hollenbeck's KiROUND R&D · c24863c0
      Dick Hollenbeck authored
      // 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;
      }
      c24863c0
  2. 18 Apr, 2012 2 commits
  3. 17 Apr, 2012 6 commits
  4. 16 Apr, 2012 5 commits
    • Wayne Stambaugh's avatar
      Removal of internal units. · bf5802f1
      Wayne Stambaugh authored
      * Remove internal units from BASE_SCREEN and it's derivatives.
      * Remove internal units from EDA_DRAW_FRAME and it's derivatives.
      * Use build time code to replace internal units conversions.
      * Fix scaling bug in page layout sample window that I created in my
        last commit.
      bf5802f1
    • Wayne Stambaugh's avatar
      More internal unit improvements. · 6468805c
      Wayne Stambaugh authored
      * Move all convert from user to internal units into base_units.cpp.
      * Remove internal units parameters from all moved conversion functions.
      * Revise all source code that calls the moved conversion functions.
      * Remove internal units from all dialog text control helper classes.
      6468805c
    • jean-pierre charras's avatar
      Fix a serious bug in EDA_RECT::Intersects · 5d5eb7d3
      jean-pierre charras authored
      Kicad manager: code cleaning. Dead code removed and minor fixes. support of new .kicad_brd extension.
      5d5eb7d3
    • Dick Hollenbeck's avatar
      work on footprint plugin API · a42490e0
      Dick Hollenbeck authored
      a42490e0
    • Wayne Stambaugh's avatar
      Pcbnew nanometer internal unit fixes. · 8c0dc01f
      Wayne Stambaugh authored
      * Scale page reference border and title block, grid sizes, and zoom factors
        correctly for nanometers.
      8c0dc01f
  5. 15 Apr, 2012 1 commit
  6. 13 Apr, 2012 2 commits
    • Wayne Stambaugh's avatar
      More internal unit improvements. · 57d75a75
      Wayne Stambaugh authored
      * Move all convert from internal to user units functions into separate file.
      * Remove internal units parameter from all moved conversion functions.
      * Revise all source code that calls the moved conversion functions.
      * Compile these conversion routines separately for the appropriate pcb or
        schematic internal units.
      * Move internal units specific status bar update code into the appropriate
        application for updating the status bar.
      * Move millimeter user units rounding function to common.cpp.
      57d75a75
    • jean-pierre charras's avatar
      Eeschema: BOM list generation: some fixes and enhancements. · b28e976e
      jean-pierre charras authored
      drawframe.cpp: commit a fix about scrollbars  from lajos kamocsay
      b28e976e
  7. 12 Apr, 2012 2 commits
  8. 11 Apr, 2012 8 commits
  9. 10 Apr, 2012 1 commit
  10. 09 Apr, 2012 2 commits
  11. 08 Apr, 2012 3 commits
  12. 07 Apr, 2012 3 commits
  13. 06 Apr, 2012 2 commits
  14. 05 Apr, 2012 2 commits