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(index)
click to toggle source
# File lib/range_tree.rb, line 111 def search(index) return [] unless (min..max) === index Array === value && value.map{|v| v.search(index)}.flatten || [self] 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