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