Commit fb0045a8 authored by Maciej Suminski's avatar Maciej Suminski
Browse files

Bugfix: Bottom layer not correctly handled in (PNS) Interactive router.

parent a3b421b0
Loading
Loading
Loading
Loading
+3 −0
Original line number Original line Diff line number Diff line
@@ -255,6 +255,9 @@ public:
     */
     */
    inline virtual void SetLayerDepth( double aLayerDepth )
    inline virtual void SetLayerDepth( double aLayerDepth )
    {
    {
        assert( aLayerDepth <= depthRange.y );
        assert( aLayerDepth >= depthRange.x );

        layerDepth = aLayerDepth;
        layerDepth = aLayerDepth;
    }
    }


+1 −1
Original line number Original line Diff line number Diff line
@@ -138,7 +138,7 @@ enum LAYER_ID
#define LAST_COPPER_LAYER       brain dead
#define LAST_COPPER_LAYER       brain dead
#define FIRST_LAYER             brain dead
#define FIRST_LAYER             brain dead
#define NB_LAYERS               use LAYER_ID_COUNT instead
#define NB_LAYERS               use LAYER_ID_COUNT instead
#define NB_COPPER_LAYERS        was always a max, not a number, use MAX_CU_COUNT now.
#define NB_COPPER_LAYERS        was always a max, not a number, use MAX_CU_LAYERS now.
*/
*/




+1 −1
Original line number Original line Diff line number Diff line
@@ -108,7 +108,7 @@ public:
    ///> Shortcut for comparisons/overlap tests
    ///> Shortcut for comparisons/overlap tests
    static PNS_LAYERSET All()
    static PNS_LAYERSET All()
    {
    {
        return PNS_LAYERSET( 0, 256 );
        return PNS_LAYERSET( 0, 64 );
    }
    }


private:
private:
+4 −4
Original line number Original line Diff line number Diff line
@@ -379,7 +379,7 @@ bool PNS_LINE_PLACER::handleViaPlacement( PNS_LINE& aHead )
    if( !m_placingVia )
    if( !m_placingVia )
        return true;
        return true;


    PNS_LAYERSET allLayers( 0, 15 );
    PNS_LAYERSET allLayers( 0, MAX_CU_LAYERS - 1 );
    PNS_VIA v( aHead.CPoint( -1 ), allLayers, m_viaDiameter, m_viaDrill, aHead.Net() );
    PNS_VIA v( aHead.CPoint( -1 ), allLayers, m_viaDiameter, m_viaDrill, aHead.Net() );


    VECTOR2I force;
    VECTOR2I force;
@@ -439,7 +439,7 @@ bool PNS_LINE_PLACER::rhWalkOnly( const VECTOR2I& aP, PNS_LINE& aNewHead )
    }
    }
    else if( m_placingVia && viaOk )
    else if( m_placingVia && viaOk )
    {
    {
        PNS_LAYERSET allLayers( 0, 15 );
        PNS_LAYERSET allLayers( 0, MAX_CU_LAYERS - 1 );
        PNS_VIA v1( walkFull.CPoint( -1 ), allLayers, m_viaDiameter, m_viaDrill );
        PNS_VIA v1( walkFull.CPoint( -1 ), allLayers, m_viaDiameter, m_viaDrill );
        walkFull.AppendVia( v1 );
        walkFull.AppendVia( v1 );
    }
    }
@@ -464,7 +464,7 @@ bool PNS_LINE_PLACER::rhMarkObstacles( const VECTOR2I& aP, PNS_LINE& aNewHead )
    
    
    if( m_placingVia )
    if( m_placingVia )
    {
    {
        PNS_LAYERSET allLayers( 0, 15 );
        PNS_LAYERSET allLayers( 0, MAX_CU_LAYERS - 1 );
        PNS_VIA v1( m_head.CPoint( -1 ), allLayers, m_viaDiameter, m_viaDrill );
        PNS_VIA v1( m_head.CPoint( -1 ), allLayers, m_viaDiameter, m_viaDrill );
        m_head.AppendVia( v1 );
        m_head.AppendVia( v1 );
    }
    }
@@ -507,7 +507,7 @@ bool PNS_LINE_PLACER::rhShoveOnly ( const VECTOR2I& aP, PNS_LINE& aNewHead )


    if( m_placingVia )
    if( m_placingVia )
    {
    {
        PNS_LAYERSET allLayers( 0, 15 );
        PNS_LAYERSET allLayers( 0, MAX_CU_LAYERS - 1 );
        PNS_VIA v1( l.CPoint( -1 ), allLayers, m_viaDiameter, m_viaDrill );
        PNS_VIA v1( l.CPoint( -1 ), allLayers, m_viaDiameter, m_viaDrill );
        PNS_VIA v2( l2.CPoint( -1 ), allLayers, m_viaDiameter, m_viaDrill );
        PNS_VIA v2( l2.CPoint( -1 ), allLayers, m_viaDiameter, m_viaDrill );


+5 −5
Original line number Original line Diff line number Diff line
@@ -116,12 +116,12 @@ private:


PNS_ITEM* PNS_ROUTER::syncPad( D_PAD* aPad )
PNS_ITEM* PNS_ROUTER::syncPad( D_PAD* aPad )
{
{
    PNS_LAYERSET layers( 0, 15 );
    PNS_LAYERSET layers( 0, MAX_CU_LAYERS - 1 );


    switch( aPad->GetAttribute() )
    switch( aPad->GetAttribute() )
    {
    {
    case PAD_STANDARD:
    case PAD_STANDARD:
        layers = PNS_LAYERSET( 0, 15 );
        layers = PNS_LAYERSET( 0, MAX_CU_LAYERS - 1 ); // TODO necessary? it is already initialized
        break;
        break;


    case PAD_SMD:
    case PAD_SMD:
@@ -229,7 +229,7 @@ PNS_ITEM* PNS_ROUTER::syncVia( VIA* aVia )
{
{
    PNS_VIA* v = new PNS_VIA(
    PNS_VIA* v = new PNS_VIA(
            aVia->GetPosition(),
            aVia->GetPosition(),
            PNS_LAYERSET( 0, 15 ),
            PNS_LAYERSET( 0, MAX_CU_LAYERS - 1 ),
            aVia->GetWidth(),
            aVia->GetWidth(),
            aVia->GetDrillValue(),
            aVia->GetDrillValue(),
            aVia->GetNetCode() );
            aVia->GetNetCode() );
Loading