# File lib/bio/graphics/feature.rb, line 180
  def find_row
    row_found = false

    # We've got to find out what row to draw the feature on. If two 
    # features overlap, one of them has to be 'bumped' down. So we'll
    # first try to draw a new feature at the top of the track. If
    # it however would overlap with another one, we'll bump it down
    # to the next row.
    feature_range = (@start.floor - 1..@stop.ceil + 1)
    row = 1
    row_available = true
    until row_found
      if ! @track.grid[row].nil?
        @track.grid[row].each do |covered|
          if feature_range.include?(covered.first) or covered.include?(feature_range.first)
            row_available = false
          end
        end
        if ! @track.grid[row+1].nil? #Still have to check if there is no label there.
          @track.grid[row+1].each do |covered|
            if feature_range.include?(covered.first) or covered.include?(feature_range.first)
              row_available = false
            end
          end
        end
      end

      if ! row_available
        row += 1
        row_available = true
      else # We've found the place where to draw the feature.
        if @track.grid[row].nil?
          @track.grid[row] = Array.new
        end
        @track.grid[row].push(feature_range)
        row_found = true
      end
    end
    return row
  end