Class: Panomosity::Measure
- Inherits:
-
Object
- Object
- Panomosity::Measure
show all
- Includes:
- Utils
- Defined in:
- lib/panomosity/measure.rb
Constant Summary
collapse
- ATTRIBUTES =
[:type, :center, :distances]
- DEFAULT_DISTANCE =
100
Instance Attribute Summary collapse
Instance Method Summary
collapse
Methods included from Utils
#calculate_average, #calculate_average_and_std, #remove_outliers
Constructor Details
#initialize(attributes = {}) ⇒ Measure
Returns a new instance of Measure.
13
14
15
16
17
|
# File 'lib/panomosity/measure.rb', line 13
def initialize(attributes = {})
@attributes = attributes
@attributes[:center] ||= {}
@attributes[:distances] ||= {}
end
|
Instance Attribute Details
#options ⇒ Object
Returns the value of attribute options.
10
11
12
|
# File 'lib/panomosity/measure.rb', line 10
def options
@options
end
|
Instance Method Details
#attributes ⇒ Object
52
53
54
|
# File 'lib/panomosity/measure.rb', line 52
def attributes
{ type: type, center: center.values, distances: distances.values }
end
|
#center ⇒ Object
31
32
33
|
# File 'lib/panomosity/measure.rb', line 31
def center
@attributes[:center]
end
|
#distance? ⇒ Boolean
23
24
25
|
# File 'lib/panomosity/measure.rb', line 23
def distance?
type == :distance
end
|
#distances ⇒ Object
35
36
37
|
# File 'lib/panomosity/measure.rb', line 35
def distances
@attributes[:distances]
end
|
#includes?(*values) ⇒ Boolean
48
49
50
|
# File 'lib/panomosity/measure.rb', line 48
def includes?(*values)
center.values.zip(values, distances.values).all? { |center, value, distance| (center - value).abs <= distance }
end
|
#position? ⇒ Boolean
19
20
21
|
# File 'lib/panomosity/measure.rb', line 19
def position?
type == :position
end
|
#type ⇒ Object
27
28
29
|
# File 'lib/panomosity/measure.rb', line 27
def type
@attributes[:type]
end
|
#update(attributes = {}) ⇒ Object
39
40
41
42
|
# File 'lib/panomosity/measure.rb', line 39
def update(attributes = {})
@attributes.merge!(attributes)
end
|
#update_distances(values = {}) ⇒ Object
44
45
46
|
# File 'lib/panomosity/measure.rb', line 44
def update_distances(values = {})
@attributes[:distances].merge!(values)
end
|