def draw
gap_starts = Array.new
gap_stops = Array.new
pixel_ranges = @subfeature.pixel_range_collection.sort_by{|pr| pr.lend}
range_with_arrow = nil
if @subfeature.strand == -1
range_with_arrow = pixel_ranges.shift
@feature_context.rectangle((range_with_arrow.lend)+Bio::Graphics::FEATURE_ARROW_LENGTH, 0, range_with_arrow.rend - range_with_arrow.lend - Bio::Graphics::FEATURE_ARROW_LENGTH, Bio::Graphics::FEATURE_HEIGHT).fill
arrow(@feature_context,:left,range_with_arrow.lend+Bio::Graphics::FEATURE_ARROW_LENGTH, 0,Bio::Graphics::FEATURE_ARROW_LENGTH)
@feature_context.close_path.fill
else
range_with_arrow = pixel_ranges.pop
@feature_context.rectangle(range_with_arrow.lend, 0, range_with_arrow.rend - range_with_arrow.lend - Bio::Graphics::FEATURE_ARROW_LENGTH, Bio::Graphics::FEATURE_HEIGHT).fill
arrow(@feature_context,:right,range_with_arrow.rend-Bio::Graphics::FEATURE_ARROW_LENGTH, 0,Bio::Graphics::FEATURE_ARROW_LENGTH)
@feature_context.close_path.fill
end
gap_starts.push(range_with_arrow.rend)
gap_stops.push(range_with_arrow.lend)
draw_spliced(@feature_context, pixel_ranges, gap_starts, gap_stops)
end