class SimplifyRb::Simplifier
Public Instance Methods
process(raw_points, tolerance = 1, highest_quality = false)
click to toggle source
# File lib/simplify_rb.rb, line 8 def process(raw_points, tolerance = 1, highest_quality = false) raise ArgumentError.new('raw_points must be enumerable') unless raw_points.is_a? Enumerable return raw_points if raw_points.length <= 1 sq_tolerance = tolerance * tolerance points = raw_points.map { |p| Point.new(p) } unless highest_quality points = RadialDistanceSimplifier.new.process(points, sq_tolerance) end DouglasPeuckerSimplifier.new .process(points, sq_tolerance) .map(&:original_entity) end