anchor.diff:  
   
   { TFilterFF }
  +function TFilterFF.IsPolyInsideDef(aIdx: Word): Boolean;
  +begin
  +  Result := fQueueArray[aIdx].Visited = fVisitedIdx;
  +end;
  +
  +
   function TFilterFF.IsVisited(const aIdx: Word): Boolean;
   var
     I: Integer;
  
positive.code:   begin
      fVisitedIdx := $FE;
      MakeNewQueue(); // Init array and clear index
    end;
    // Mark exist defence lines as a visited in previous step (faster than check each node whether is part of defensive line)
    fVisitedIdx := fVisitedIdx + 1;
    for I := 0 to AllDefLines.Count - 1 do
    begin
      Idx := AllDefLines.Lines[I].Polygon;
      fQueueArray[Idx].Visited := fVisitedIdx;
    end;
    // Init queue - fVisitedIdx will be increased inside of this function
    inherited InitQueue(aMaxIdx, aInitIdxArray);
  end;
  
  
  
negative.code:     function IsVisited(const aIdx: Word): Boolean; override;
    public
      BestDefLines, AllDefLines: TKMDefenceLines;
      function IsPolyInsideDef(aIdx: Word): Boolean;
      procedure FilterDefenceLine(var aAllDefLines: TKMDefenceLines);
    end;
  
  