class Geospatial::Dimension
An integral dimension which maps a continuous space into an integral space. The scale is the maximum integral unit.
Attributes
origin[R]
scale[R]
size[R]
Public Class Methods
map(min, max, steps)
click to toggle source
# File lib/geospatial/dimensions.rb, line 26 def self.map(min, max, steps) self.new(min, max-min, steps) end
new(origin, size, scale = 1.0)
click to toggle source
# File lib/geospatial/dimensions.rb, line 30 def initialize(origin, size, scale = 1.0) @origin = origin @size = size @scale = scale end
Public Instance Methods
*(factor)
click to toggle source
# File lib/geospatial/dimensions.rb, line 44 def * factor self.class.new(@origin, @size, @scale * factor) end
map(value)
click to toggle source
Normalize the value into the range 0..1 and then multiply by scale.
# File lib/geospatial/dimensions.rb, line 61 def map(value) ((value - @origin).to_f / @size) * @scale end
max()
click to toggle source
# File lib/geospatial/dimensions.rb, line 56 def max @origin + @size end
min()
click to toggle source
# File lib/geospatial/dimensions.rb, line 52 def min @origin end
to_s()
click to toggle source
# File lib/geospatial/dimensions.rb, line 36 def to_s if @scale != 1.0 "(#{min}..#{max} * #{@scale})" else "(#{min}..#{max})" end end
unmap(value)
click to toggle source
# File lib/geospatial/dimensions.rb, line 65 def unmap(value) @origin + (value / @scale) * @size end