router: DRAGGER::CurrentNode() should always return non-null value
This commit is contained in:
parent
a9c54c10a2
commit
4574f52eac
|
@ -364,16 +364,16 @@ bool DRAGGER::dragViaWalkaround( const VIA_HANDLE& aHandle, NODE* aNode, const V
|
||||||
if( !ok )
|
if( !ok )
|
||||||
return false;
|
return false;
|
||||||
|
|
||||||
m_lastNode->Remove( origLine );
|
m_lastNode->Remove( origLine );
|
||||||
optimizeAndUpdateDraggedLine( walkLine, origLine, aP );
|
optimizeAndUpdateDraggedLine( walkLine, origLine, aP );
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
m_draggedItems.Add( draggedLine );
|
m_draggedItems.Add( draggedLine );
|
||||||
|
|
||||||
m_lastNode->Remove( origLine );
|
m_lastNode->Remove( origLine );
|
||||||
m_lastNode->Add( draggedLine );
|
m_lastNode->Add( draggedLine );
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -395,11 +395,6 @@ void DRAGGER::optimizeAndUpdateDraggedLine( LINE& aDragged, const LINE& aOrig, c
|
||||||
|
|
||||||
optimizer.SetEffortLevel( OPTIMIZER::MERGE_SEGMENTS | OPTIMIZER::KEEP_TOPOLOGY );
|
optimizer.SetEffortLevel( OPTIMIZER::MERGE_SEGMENTS | OPTIMIZER::KEEP_TOPOLOGY );
|
||||||
|
|
||||||
//printf("sa %d %d\n", aDraggedSeg.A.x, aDraggedSeg.A.y );
|
|
||||||
//Dbg()->AddPoint( aDraggedSeg.A, 4 );
|
|
||||||
//Dbg()->AddPoint( aDraggedSeg.B, 5 );
|
|
||||||
|
|
||||||
// Dbg()->AddLine( aDragged.CLine(), 3, 1000 );
|
|
||||||
|
|
||||||
OPT_BOX2I affectedArea = *aDragged.ChangedArea( &aOrig );
|
OPT_BOX2I affectedArea = *aDragged.ChangedArea( &aOrig );
|
||||||
|
|
||||||
|
@ -410,7 +405,7 @@ void DRAGGER::optimizeAndUpdateDraggedLine( LINE& aDragged, const LINE& aOrig, c
|
||||||
//Dbg()->AddBox( *affectedArea, 2 );
|
//Dbg()->AddBox( *affectedArea, 2 );
|
||||||
optimizer.SetRestrictArea( *affectedArea );
|
optimizer.SetRestrictArea( *affectedArea );
|
||||||
optimizer.Optimize( &aDragged );
|
optimizer.Optimize( &aDragged );
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
OPT_BOX2I optArea = *aDragged.ChangedArea( &aOrig );
|
OPT_BOX2I optArea = *aDragged.ChangedArea( &aOrig );
|
||||||
|
@ -500,9 +495,8 @@ bool DRAGGER::dragWalkaround( const VECTOR2I& aP )
|
||||||
ok = true;
|
ok = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
if(ok)
|
if( ok )
|
||||||
{
|
{
|
||||||
//Dbg()->AddLine( origLine.CLine(), 4, 100000 );
|
|
||||||
m_lastNode->Remove( origLine );
|
m_lastNode->Remove( origLine );
|
||||||
optimizeAndUpdateDraggedLine( draggedWalk, origLine, aP );
|
optimizeAndUpdateDraggedLine( draggedWalk, origLine, aP );
|
||||||
}
|
}
|
||||||
|
@ -635,24 +629,24 @@ bool DRAGGER::Drag( const VECTOR2I& aP )
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
switch( m_currentMode )
|
switch( m_currentMode )
|
||||||
{
|
{
|
||||||
case RM_MarkObstacles:
|
case RM_MarkObstacles:
|
||||||
ret = dragMarkObstacles( aP );
|
ret = dragMarkObstacles( aP );
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case RM_Shove:
|
case RM_Shove:
|
||||||
case RM_Smart:
|
case RM_Smart:
|
||||||
ret = dragShove( aP );
|
ret = dragShove( aP );
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case RM_Walkaround:
|
case RM_Walkaround:
|
||||||
ret = dragWalkaround( aP );
|
ret = dragWalkaround( aP );
|
||||||
break;
|
break;
|
||||||
|
|
||||||
default:
|
default:
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if( ret )
|
if( ret )
|
||||||
|
|
Loading…
Reference in New Issue