Sha256: c3d116e3a0cfe1dfd84938d5c337ecfbddfd344e87b7224722d1e6bf630a575c

Contents?: true

Size: 1.03 KB

Versions: 1

Compression:

Stored size: 1.03 KB

Contents

# frozen_string_literal: true

module ChemScanner
  module Interpreter
    using Extension

    module PreProcess
      def find_fragment_inside_rectangle
        # 3 = Rectangle
        @graphic_map.select do |_, v|
          v.type == 3 && v.bounding_box.area < 100
        end.each do |_, graphic|
          @fragment_map.each_value do |fragment|
            next unless graphic.polygon.contains_polygon?(fragment.polygon)

            fragment.boxed = true
          end

          @fragment_group_map.each do |_, fgroup|
            fmap = fgroup[:fragment_map]
            next unless fmap.values.count == 1

            text = fgroup[:title]
            next unless graphic.polygon.contains_polygon?(text.polygon)

            fragment = fmap.values.first
            fragment.boxed = true
          end
        end
      end

      def extract_fragment_graphic
        @fragment_map.each_value do |fragment|
          next if fragment.graphic_map.empty?

          @graphic_map.merge!(fragment.graphic_map)
        end
      end
    end
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
chem_scanner-0.1.3 lib/chem_scanner/interpreter/pre_process/graphic.rb