Commit 0ff83cba authored by charras's avatar charras
Browse files

MODULE::GetBoundingBox() takes in account the clearence around the pads. other very minor changes

parent 89acca7d
Loading
Loading
Loading
Loading
+8 −2
Original line number Original line Diff line number Diff line
@@ -5,6 +5,12 @@ Started 2007-June-11
Please add newer entries at the top, list the date and your name with
Please add newer entries at the top, list the date and your name with
email address.
email address.


2008-Mar-18 UPDATE  Jean-Pierre Charras <jean-pierre.charras@inpg.fr>
================================================================================
+pcbnew
    MODULE::GetBoundingBox() takes in account the clearence around the pads
    (the clearence limit shape around pads (when shown) was not always erased )



2008-Mar-17 UPDATE   Dick Hollenbeck <dick@softplc.com>
2008-Mar-17 UPDATE   Dick Hollenbeck <dick@softplc.com>
================================================================================
================================================================================
@@ -35,8 +41,8 @@ email address.
    some code cleaning and comment translations.
    some code cleaning and comment translations.
    added:
    added:
    /** EDA_Rect::Merge( EDA_Rect & aRect )
    /** EDA_Rect::Merge( EDA_Rect & aRect )
     * Modify Position and Size of this in order to contains the given rect
     * Modify Position and Size of this in order to contain the given rect
     * mainly used to calculate bouding boxes
     * mainly used to calculate bounding boxes
     * @param aRect = given rect to merge with this
     * @param aRect = given rect to merge with this
     */
     */


+73 −30
Original line number Original line Diff line number Diff line
@@ -729,11 +729,20 @@ bool EDA_Rect::Intersects( const EDA_Rect aRect ) const
/**************************************************/
/**************************************************/
EDA_Rect& EDA_Rect::Inflate( wxCoord dx, wxCoord dy )
EDA_Rect& EDA_Rect::Inflate( wxCoord dx, wxCoord dy )
/**************************************************/
/**************************************************/

/** Function Inflate
 * Inflate "this": move each horizontal edge by dx and each vertical edge by dy
 * toward rect outside
 * if dx and/or dy is negative, move toward rect inside (deflate)
 * Works for positive and negative rect size
 *
 */
{
{
    if( -2 * dx > m_Size.x )
    if( m_Size.x >= 0 )
    {
        if( m_Size.x < -2 * dx )
        {
        {
            // Don't allow deflate to eat more width than we have,
            // Don't allow deflate to eat more width than we have,
        // a well-defined rectangle cannot have negative width.
            m_Pos.x += m_Size.x / 2;
            m_Pos.x += m_Size.x / 2;
            m_Size.x = 0;
            m_Size.x = 0;
        }
        }
@@ -743,11 +752,29 @@ EDA_Rect& EDA_Rect::Inflate( wxCoord dx, wxCoord dy )
            m_Pos.x  -= dx;
            m_Pos.x  -= dx;
            m_Size.x += 2 * dx;
            m_Size.x += 2 * dx;
        }
        }
    }
    else    // size.x < 0:
    {
        if( m_Size.x > -2 * dx )
        {
            // Don't allow deflate to eat more width than we have,
            m_Pos.x -= m_Size.x / 2;
            m_Size.x = 0;
        }
        else
        {
            // The inflate is valid.
            m_Pos.x  += dx;
            m_Size.x -= 2 * dx; // m_Size.x <0: inflate when dx > 0
        }
    }


    if( -2 * dy > m_Size.y )

    if( m_Size.y >= 0 )
    {
        if( m_Size.y < -2 * dy )
        {
        {
            // Don't allow deflate to eat more height than we have,
            // Don't allow deflate to eat more height than we have,
        // a well-defined rectangle cannot have negative height.
            m_Pos.y += m_Size.y / 2;
            m_Pos.y += m_Size.y / 2;
            m_Size.y = 0;
            m_Size.y = 0;
        }
        }
@@ -757,6 +784,22 @@ EDA_Rect& EDA_Rect::Inflate( wxCoord dx, wxCoord dy )
            m_Pos.y  -= dy;
            m_Pos.y  -= dy;
            m_Size.y += 2 * dy;
            m_Size.y += 2 * dy;
        }
        }
    }
    else    // size.y < 0:
    {
        if( m_Size.y > 2 * dy )
        {
            // Don't allow deflate to eat more height than we have,
            m_Pos.y -= m_Size.y / 2;
            m_Size.y = 0;
        }
        else
        {
            // The inflate is valid.
            m_Pos.y  += dy;
            m_Size.y -= 2 * dy; // m_Size.y <0: inflate when dy > 0
        }
    }


    return *this;
    return *this;
}
}
+2 −6
Original line number Original line Diff line number Diff line
@@ -282,13 +282,9 @@ EDA_Rect EDA_SchComponentStruct::GetBoundingBox()
        ret.Merge( m_Field[i].GetBoundaryBox() );
        ret.Merge( m_Field[i].GetBoundaryBox() );
    }
    }


    // ... add padding TODO: improve this
    // ... add padding
    ret.m_Pos.x -= PADDING;
    ret.Inflate(PADDING, PADDING);
    ret.m_Pos.y -= PADDING;
    ret.m_Size.x += 2*PADDING;
    ret.m_Size.y += 2*PADDING;


//     D( printf("final box: %d,%d, %d,%d\n", ret.m_Pos.x, ret.m_Pos.y, ret.m_Size.x, ret.m_Size.y); )
    return ret;
    return ret;
}
}


+1 −1
Original line number Original line Diff line number Diff line
@@ -68,7 +68,7 @@ and then:


-- debug
-- debug
    cd build-debug
    cd build-debug
    ../confgiure --enable-unicode --enable-monolithic --enable-debug --enable-debug_gdb --disable-shared --with-msw --with-opengl
    ../configure --enable-unicode --enable-monolithic --enable-debug --enable-debug_gdb --disable-shared --with-msw --with-opengl
    make
    make
    make install
    make install


+7 −10
Original line number Original line Diff line number Diff line
@@ -3,16 +3,13 @@ if(ZLIB_FOUND)
    message(STATUS "Check for installed zlib -- found")
    message(STATUS "Check for installed zlib -- found")
else(ZLIB_FOUND)
else(ZLIB_FOUND)
    message(STATUS "Check for installed zlib -- not found")
    message(STATUS "Check for installed zlib -- not found")
    if(NOT MINGW)
    message(STATUS "Use wxWidgets zlib")
        message(FATAL_ERROR
                 "zlib was not found - it is required to build KiCad")
    else(NOT MINGW)
	# zlib is not installed, and in this case wxWidgets creates its own zlib library
	# zlib is not installed, and in this case wxWidgets creates its own zlib library
	# include files are in ${wxWidgets_ROOT_DIR}/src/zlib
	# include files are in ${wxWidgets_ROOT_DIR}/src/zlib
	# and the corresponding library is libwxzlib-<version>.a (like libwxzlib-2.8.a)
	# and the corresponding library is libwxzlib-<version>.a (like libwxzlib-2.8.a)
	# and we try to use it
	# and we try to use it
        include_directories(${wxWidgets_ROOT_DIR}/src/zlib)
	INCLUDE_DIRECTORIES( ${wxWidgets_ROOT_DIR}/src/zlib)
    endif(NOT MINGW)
	set(ZLIB_LIBRARIES ${wxWidgets_ROOT_DIR}/lib/libwxzlib-2.8.a)
endif(ZLIB_FOUND)
endif(ZLIB_FOUND)


set(MINIZIP_SRCS
set(MINIZIP_SRCS
Loading