class RangeTree::Node

Attributes

max[RW]
mid_point[RW]
min[RW]
value[RW]

Public Class Methods

new(min, max, value) click to toggle source
# File lib/range_tree.rb, line 106
def initialize(min, max, value)
  self.min, self.max, self.value = min, max, value
  self.mid_point = self.min + (self.max - self.min) / 2.0
end

Public Instance Methods

intersect(r1, r2) click to toggle source
# File lib/range_tree.rb, line 121
def intersect(r1, r2)
  !(r2.end < r1.first || r2.first > r1.end)
end
search_range(range) click to toggle source
# File lib/range_tree.rb, line 116
def search_range(range)
  return [] unless intersect((self.min..self.max),range)
  Array === value && value.map{|v| v.search_range(range)}.flatten || [self]
end