Loading pcbnew/router/pns_diff_pair.cpp +3 −1 Original line number Diff line number Diff line Loading @@ -385,7 +385,6 @@ void PNS_DP_GATEWAYS::BuildFromPrimitivePair( PNS_DP_PRIMITIVE_PAIR aPair, bool p0_n = aPair.AnchorN(); shP = aPair.PrimP()->Shape(); } else if( aPair.PrimP()->OfKind( PNS_ITEM::SEGMENT ) && aPair.PrimN()->OfKind( PNS_ITEM::SEGMENT ) ) { Loading @@ -396,6 +395,9 @@ void PNS_DP_GATEWAYS::BuildFromPrimitivePair( PNS_DP_PRIMITIVE_PAIR aPair, bool majorDirection = ( p0_p - p0_n ).Perpendicular(); if( shP == NULL ) return; switch( shP->Type() ) { case SH_RECT: Loading pcbnew/router/pns_diff_pair_placer.cpp +18 −0 Original line number Diff line number Diff line Loading @@ -42,11 +42,29 @@ using boost::optional; PNS_DIFF_PAIR_PLACER::PNS_DIFF_PAIR_PLACER( PNS_ROUTER* aRouter ) : PNS_PLACEMENT_ALGO ( aRouter ) { m_state = RT_START; m_chainedPlacement = false; m_initialDiagonal = false; m_startDiagonal = false; m_fitOk = false; m_netP = 0; m_netN = 0; m_iteration = 0; m_world = NULL; m_shove = NULL; m_currentNode = NULL; m_lastNode = NULL; m_placingVia = false; m_viaDiameter = 0; m_viaDrill = 0; m_currentWidth = 0; m_currentNet = 0; m_currentLayer = 0; m_startsOnVia = false; m_orthoMode = false; m_snapOnTarget = false; m_currentEndItem = NULL; m_currentMode = RM_MarkObstacles; m_idle = true; } Loading pcbnew/router/pns_dragger.cpp +8 −0 Original line number Diff line number Diff line Loading @@ -28,7 +28,15 @@ PNS_DRAGGER::PNS_DRAGGER( PNS_ROUTER* aRouter ) : PNS_ALGO_BASE( aRouter ) { m_world = NULL; m_lastNode = NULL; m_mode = SEGMENT; m_draggedLine = NULL; m_draggedVia = NULL; m_shove = NULL; m_draggedSegmentIndex = 0; m_dragStatus = false; m_currentMode = RM_MarkObstacles; m_initialVia = NULL; } Loading pcbnew/router/pns_line_placer.cpp +12 −7 Original line number Diff line number Diff line Loading @@ -929,7 +929,9 @@ bool PNS_LINE_PLACER::FixRoute( const VECTOR2I& aP, PNS_ITEM* aEndItem ) m_chainedPlacement = !pl.EndsWithVia(); m_splitSeg = false; initPlacement( ); } else { } else { m_idle = true; } Loading Loading @@ -997,12 +999,15 @@ void PNS_LINE_PLACER::simplifyNewLine( PNS_NODE* aNode, PNS_SEGMENT* aLatest ) lnew->SetShape( simplified ); aNode->Add( lnew.get() ); } delete l; } void PNS_LINE_PLACER::UpdateSizes( const PNS_SIZES_SETTINGS& aSizes ) { m_sizes = aSizes; if( !m_idle ) { initPlacement( m_splitSeg ); Loading pcbnew/router/pns_node.cpp +9 −2 Original line number Diff line number Diff line Loading @@ -52,6 +52,7 @@ PNS_NODE::PNS_NODE() m_root = this; m_parent = NULL; m_maxClearance = 800000; // fixme: depends on how thick traces are. m_clearanceFunctor = NULL; m_index = new PNS_INDEX; m_collisionFilter = NULL; Loading Loading @@ -179,6 +180,8 @@ struct PNS_NODE::OBSTACLE_VISITOR int m_extraClearance; OBSTACLE_VISITOR( PNS_NODE::OBSTACLES& aTab, const PNS_ITEM* aItem, int aKindMask ) : m_node( NULL ), m_override( NULL ), m_tab( aTab ), m_item( aItem ), m_kindMask( aKindMask ), Loading Loading @@ -521,7 +524,11 @@ void PNS_NODE::addLine( PNS_LINE* aLine, bool aAllowRedundant ) psegR = findRedundantSegment( pseg ); if( psegR ) { aLine->LinkSegment( psegR ); delete pseg; } else { pseg->SetOwner( this ); Loading Loading
pcbnew/router/pns_diff_pair.cpp +3 −1 Original line number Diff line number Diff line Loading @@ -385,7 +385,6 @@ void PNS_DP_GATEWAYS::BuildFromPrimitivePair( PNS_DP_PRIMITIVE_PAIR aPair, bool p0_n = aPair.AnchorN(); shP = aPair.PrimP()->Shape(); } else if( aPair.PrimP()->OfKind( PNS_ITEM::SEGMENT ) && aPair.PrimN()->OfKind( PNS_ITEM::SEGMENT ) ) { Loading @@ -396,6 +395,9 @@ void PNS_DP_GATEWAYS::BuildFromPrimitivePair( PNS_DP_PRIMITIVE_PAIR aPair, bool majorDirection = ( p0_p - p0_n ).Perpendicular(); if( shP == NULL ) return; switch( shP->Type() ) { case SH_RECT: Loading
pcbnew/router/pns_diff_pair_placer.cpp +18 −0 Original line number Diff line number Diff line Loading @@ -42,11 +42,29 @@ using boost::optional; PNS_DIFF_PAIR_PLACER::PNS_DIFF_PAIR_PLACER( PNS_ROUTER* aRouter ) : PNS_PLACEMENT_ALGO ( aRouter ) { m_state = RT_START; m_chainedPlacement = false; m_initialDiagonal = false; m_startDiagonal = false; m_fitOk = false; m_netP = 0; m_netN = 0; m_iteration = 0; m_world = NULL; m_shove = NULL; m_currentNode = NULL; m_lastNode = NULL; m_placingVia = false; m_viaDiameter = 0; m_viaDrill = 0; m_currentWidth = 0; m_currentNet = 0; m_currentLayer = 0; m_startsOnVia = false; m_orthoMode = false; m_snapOnTarget = false; m_currentEndItem = NULL; m_currentMode = RM_MarkObstacles; m_idle = true; } Loading
pcbnew/router/pns_dragger.cpp +8 −0 Original line number Diff line number Diff line Loading @@ -28,7 +28,15 @@ PNS_DRAGGER::PNS_DRAGGER( PNS_ROUTER* aRouter ) : PNS_ALGO_BASE( aRouter ) { m_world = NULL; m_lastNode = NULL; m_mode = SEGMENT; m_draggedLine = NULL; m_draggedVia = NULL; m_shove = NULL; m_draggedSegmentIndex = 0; m_dragStatus = false; m_currentMode = RM_MarkObstacles; m_initialVia = NULL; } Loading
pcbnew/router/pns_line_placer.cpp +12 −7 Original line number Diff line number Diff line Loading @@ -929,7 +929,9 @@ bool PNS_LINE_PLACER::FixRoute( const VECTOR2I& aP, PNS_ITEM* aEndItem ) m_chainedPlacement = !pl.EndsWithVia(); m_splitSeg = false; initPlacement( ); } else { } else { m_idle = true; } Loading Loading @@ -997,12 +999,15 @@ void PNS_LINE_PLACER::simplifyNewLine( PNS_NODE* aNode, PNS_SEGMENT* aLatest ) lnew->SetShape( simplified ); aNode->Add( lnew.get() ); } delete l; } void PNS_LINE_PLACER::UpdateSizes( const PNS_SIZES_SETTINGS& aSizes ) { m_sizes = aSizes; if( !m_idle ) { initPlacement( m_splitSeg ); Loading
pcbnew/router/pns_node.cpp +9 −2 Original line number Diff line number Diff line Loading @@ -52,6 +52,7 @@ PNS_NODE::PNS_NODE() m_root = this; m_parent = NULL; m_maxClearance = 800000; // fixme: depends on how thick traces are. m_clearanceFunctor = NULL; m_index = new PNS_INDEX; m_collisionFilter = NULL; Loading Loading @@ -179,6 +180,8 @@ struct PNS_NODE::OBSTACLE_VISITOR int m_extraClearance; OBSTACLE_VISITOR( PNS_NODE::OBSTACLES& aTab, const PNS_ITEM* aItem, int aKindMask ) : m_node( NULL ), m_override( NULL ), m_tab( aTab ), m_item( aItem ), m_kindMask( aKindMask ), Loading Loading @@ -521,7 +524,11 @@ void PNS_NODE::addLine( PNS_LINE* aLine, bool aAllowRedundant ) psegR = findRedundantSegment( pseg ); if( psegR ) { aLine->LinkSegment( psegR ); delete pseg; } else { pseg->SetOwner( this ); Loading