1. 03 Feb, 2014 1 commit
  2. 26 Jan, 2014 1 commit
  3. 25 Jan, 2014 1 commit
  4. 07 Jan, 2014 1 commit
  5. 06 Jan, 2014 1 commit
  6. 05 May, 2013 1 commit
    • Lorenzo Marcantonio's avatar
      Migrated the interfaces accepting angles to the double type · d00c83cd
      Lorenzo Marcantonio authored
      The plan goes like this:
      - eeschema still uses int in decidegrees
      - all the other things internally use double in decidegrees (or radians
        in temporaries)
      - in pcbnew UI the unit is *still* int in decidegrees
      
      The idea is to have better precision everywhere while keeping the user with int i
      angles. Hopefully, if a fractional angle doesn't come in from the outside, everything
      should *look* like an integer angle (unless I forgot something and it broke)
      
      When the time comes, simply updating the UI for allowing doubles from the user should
      be enough to get arbitrary angles in pcbnew.
      d00c83cd
  7. 04 May, 2013 1 commit
  8. 02 May, 2013 1 commit
  9. 01 May, 2013 1 commit
    • Lorenzo Marcantonio's avatar
      Angle and distances cleanup (preparing for angles in doubles) · 0e903dba
      Lorenzo Marcantonio authored
      - Removed spurious int casts (these are truncated anyway and will break
        doubles)
      
      - Applied the Distance, GetLineLength, EuclideanNorm, DEG2RAD, RAD2DEG
        ArcTangente and NORMALIZE* functions where possible
      
      - ArcTangente now returns double and handles the 0,0 case like atan2, so
        it's no longer necessary to check for it before calling
      
      - Small functions in trigo moved as inline
      0e903dba
  10. 04 Apr, 2013 1 commit
    • Lorenzo Marcantonio's avatar
      More work on EDA_COLOR_T and layers. · d12a4592
      Lorenzo Marcantonio authored
      In particular the new mechanism for handling extended color palettes is in place,
      included renaming the ini keys and saving the color name instead of its index; this means better forward compatibility with palette changes.
      
      Since ini keys are changed, colors will be reset
      d12a4592
  11. 31 Mar, 2013 1 commit
  12. 30 Mar, 2013 1 commit
  13. 28 Mar, 2013 1 commit
  14. 27 Mar, 2013 2 commits
  15. 26 Mar, 2013 1 commit
  16. 18 Mar, 2013 1 commit
    • Wayne Stambaugh's avatar
      More encapsulation work. · 7d0ec1a1
      Wayne Stambaugh authored
      * Complete encapsulation of the MODULE class.
      * Complete encapsulation of the EDA_TEXT class.
      * Encapsulate most of the ZONE_CONTAINER class.
      * Add pcbcommon library as a dependency for reSWIGging the scripting
        support.  This should cover most dependency cases.
      7d0ec1a1
  17. 13 Mar, 2013 1 commit
    • Wayne Stambaugh's avatar
      Pcbnew encapsulation and code cleaning. · 42d7bf6c
      Wayne Stambaugh authored
      * Encapsulate most of the MODULE class.
      * Start encapsulating the DIMENSION class.
      * Lay some groundwork for EDA_TEXT encapsulation.
      * Move cleverly hidden MODULE functions into class_module.cpp.
      * Use std::swap to exchange TEXTE_PCB values for undo/redo.
      * Remove unused members from MODULE class.
      * The usual coding policy and documentation fixes.
      42d7bf6c
  18. 08 Mar, 2013 1 commit
  19. 19 Feb, 2013 1 commit
  20. 13 Jan, 2013 2 commits
  21. 12 Jan, 2013 1 commit
  22. 05 Nov, 2012 1 commit
  23. 22 Sep, 2012 1 commit
  24. 02 Sep, 2012 2 commits
  25. 29 Aug, 2012 1 commit
  26. 19 Jun, 2012 1 commit
  27. 09 Jun, 2012 1 commit
    • Wayne Stambaugh's avatar
      Add Pcbnew s-expression file parser. · 2d0d8050
      Wayne Stambaugh authored
      * Add s-expression file parser object and keyword files.
      * Fix minor issues with s-expression file formatting.
      * Fix a minor bug the zone container fill state parsing in the legacy plugin.
      * Move EDA_TEXT visibility definition to eda_text.h.
      * Add minor BOARD_ITEM object improvements to support s-expression file
        parser.
      2d0d8050
  28. 11 May, 2012 1 commit
  29. 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
  30. 26 Mar, 2012 1 commit
    • Wayne Stambaugh's avatar
      Minor code improvements and coding policy fixes. · 45445dd8
      Wayne Stambaugh authored
      * BLOCK_SELECTOR class is not longer derived from EDA_ITEM.
      * Encapsulate BLOCK_SELECTOR class member variables and add access methods.
      * Move HandleBlockBegin() function from block_commande.cpp to drawframe.cpp.
      * Remove virtual methods from top level derived objects per future
        coding policy change.
      * Remove Doxygen copydoc statement from objects derived from EDA_ITEM
        since the comments are automatically copied to the derived object.
      * Removed copy and pasted Doxygen comments from objects derived from
        EDA_ITEM.
      45445dd8
  31. 19 Feb, 2012 1 commit
  32. 23 Jan, 2012 1 commit
  33. 22 Jan, 2012 1 commit
  34. 16 Dec, 2011 1 commit
  35. 14 Dec, 2011 1 commit
  36. 12 Dec, 2011 1 commit
  37. 05 Dec, 2011 1 commit
    • Dick Hollenbeck's avatar
      ++PCBNew · b26580d5
      Dick Hollenbeck authored
        * Removed Pcb_Frame argument from BOARD() constructor, since it precludes
          having a BOARD being edited by more than one editor, it was a bad design.
          And this meant removing m_PcbFrame from BOARD.
        * removed BOARD::SetWindowFrame(), and BOARD::m_PcbFrame
        * Removed the global BOARD_DESIGN_SETTINGS which was in class_board.cpp
        * added BOARD_DESIGN_SETTINGS to the BOARD class, a full instance
        * a couple dialogs now only change BOARD_DESIGN_SETTINGS when OK is pressed,
          such as dialog_mask_clearance, dialog_drc, etc.
        * Removed common/pcbcommon.cpp's int g_CurrentVersionPCB = 1 and replaced it
          with build_version.h's #define BOARD_FILE_VERSION, although there may be a
          better place for this constant.
        * Made the public functions in PARAM_CFG_ARRAY be type const.
          void SaveParam(..) const and void ReadParam(..) const
        * PARAM_CFG_BASE now has virtual destructor since we have various way of
          destroying the derived class and boost::ptr_vector must be told about this.
        * Pass const PARAM_CFG_ARRAY& instead of PARAM_CFG_ARRAY so that we can use
          an automatic PARAM_CFG_ARRAY which is on the stack.\
        * PCB_EDIT_FRAME::GetProjectFileParameters() may no longer cache the array,
          since it has to access the current BOARD and the BOARD can change.
          Remember BOARD_DESIGN_SETTINGS are now in the BOARD.
        * Made the m_BoundingBox member private, this was a brutally hard task,
          and indicative of the lack of commitment to accessors and object oriented
          design on the part of KiCad developers.  We must do better.
          Added BOARD::GetBoundingBox, SetBoundingBox(), ComputeBoundingBox().
        * Added PCB_BASE_FRAME::GetBoardBoundingBox() which calls BOARD::ComputeBoundingBox()
      b26580d5