class ClusterCalculator::Cluster
Attributes
center[RW]
moved[RW]
samples[RW]
Public Class Methods
new(center)
click to toggle source
# File lib/quadtone/cluster_calculator.rb, line 13 def initialize(center) @center = center @samples = [] @moved = true end
Public Instance Methods
add_sample(sample)
click to toggle source
# File lib/quadtone/cluster_calculator.rb, line 19 def add_sample(sample) @samples << sample end
clear_samples()
click to toggle source
# File lib/quadtone/cluster_calculator.rb, line 23 def clear_samples @samples = [] end
distance_to(sample)
click to toggle source
# File lib/quadtone/cluster_calculator.rb, line 27 def distance_to(sample) @center.delta_e(sample.output) end
size()
click to toggle source
# File lib/quadtone/cluster_calculator.rb, line 40 def size @samples.length end
update_center(delta=0.001)
click to toggle source
# File lib/quadtone/cluster_calculator.rb, line 31 def update_center(delta=0.001) @moved = false average, error = Color::Lab.average(@samples.map(&:output)) unless average.delta_e(@center) < delta @center = average @moved = true end end