Class: SequenceLogo::LogoCanvas
Instance Attribute Summary collapse
Attributes inherited from GluingCanvas
#i_logo, #size
Instance Method Summary
collapse
#add_image, #x_size, #y_size
#add_image, #background, #image
Constructor Details
#initialize(canvas_factory) ⇒ LogoCanvas
Returns a new instance of LogoCanvas.
8
9
10
11
|
# File 'lib/sequence_logo/canvases/logo_canvas.rb', line 8
def initialize(canvas_factory)
super()
@canvas_factory = canvas_factory
end
|
Instance Attribute Details
#canvas_factory ⇒ Object
Returns the value of attribute canvas_factory.
7
8
9
|
# File 'lib/sequence_logo/canvases/logo_canvas.rb', line 7
def canvas_factory
@canvas_factory
end
|
Instance Method Details
#add_letter(letter) ⇒ Object
32
33
34
|
# File 'lib/sequence_logo/canvases/logo_canvas.rb', line 32
def add_letter(letter)
add_image( canvas_factory.letter_image(letter) )
end
|
#add_position_ordered(ordered_letter_heights) ⇒ Object
36
37
38
|
# File 'lib/sequence_logo/canvases/logo_canvas.rb', line 36
def add_position_ordered(ordered_letter_heights)
add_image( canvas_factory.logo_for_ordered_letters(ordered_letter_heights) )
end
|
#draw_threshold_line(threshold_level) ⇒ Object
13
14
15
16
17
|
# File 'lib/sequence_logo/canvases/logo_canvas.rb', line 13
def draw_threshold_line(threshold_level)
@rendering_callbacks.push ->{ render_threshold_line(threshold_level) }
end
|
#render_threshold_line(threshold_level) ⇒ Object
19
20
21
22
23
24
25
26
27
28
29
30
|
# File 'lib/sequence_logo/canvases/logo_canvas.rb', line 19
def render_threshold_line(threshold_level)
y_coord = y_size - threshold_level * y_size
dr = Magick::Draw.new
dr.fill('transparent')
dr.stroke_width(y_size / 200.0)
dr.stroke_dasharray(7,7)
dr.stroke('silver')
dr.line(0, y_coord, x_size, y_coord)
dr.draw(@i_logo)
end
|