Class: Dedalus::Elements::Image
- Inherits:
-
Atom
show all
- Defined in:
- lib/dedalus/elements/image.rb
Instance Attribute Summary collapse
#background_color, #color, #height_percent, #margin, #position, #width_percent
Class Method Summary
collapse
Instance Method Summary
collapse
#big_font, #code_font, #draw_bounding_box, #font, #huge_font, #initialize, #tiny_font, #view, #window
Instance Attribute Details
#invert_x ⇒ Object
Returns the value of attribute invert_x.
4
5
6
|
# File 'lib/dedalus/elements/image.rb', line 4
def invert_x
@invert_x
end
|
#invert_y ⇒ Object
Returns the value of attribute invert_y.
4
5
6
|
# File 'lib/dedalus/elements/image.rb', line 4
def invert_y
@invert_y
end
|
#padding ⇒ Object
Returns the value of attribute padding.
4
5
6
|
# File 'lib/dedalus/elements/image.rb', line 4
def padding
@padding
end
|
#path ⇒ Object
Returns the value of attribute path.
4
5
6
|
# File 'lib/dedalus/elements/image.rb', line 4
def path
@path
end
|
#z_order ⇒ Object
Returns the value of attribute z_order.
4
5
6
|
# File 'lib/dedalus/elements/image.rb', line 4
def z_order
@z_order
end
|
Class Method Details
.description ⇒ Object
54
55
56
|
# File 'lib/dedalus/elements/image.rb', line 54
def self.description
"an image"
end
|
.example_data ⇒ Object
50
51
52
|
# File 'lib/dedalus/elements/image.rb', line 50
def self.example_data
{ path: "media/images/cosmos.jpg", scale: 0.2, invert_y: true }
end
|
Instance Method Details
#asset ⇒ Object
58
59
60
|
# File 'lib/dedalus/elements/image.rb', line 58
def asset
@asset ||= Dedalus::ImageRepository.lookup(path)
end
|
#dimensions ⇒ Object
38
39
40
|
# File 'lib/dedalus/elements/image.rb', line 38
def dimensions
[ width, height ]
end
|
#height ⇒ Object
34
35
36
|
# File 'lib/dedalus/elements/image.rb', line 34
def height
2*padding + (asset.height * scale)
end
|
#offset ⇒ Object
16
17
18
19
20
21
22
23
24
|
# File 'lib/dedalus/elements/image.rb', line 16
def offset
if invert_x
[ width, 0 ]
elsif invert_y
[ 0, height ]
else
[ 0, 0 ]
end
end
|
#render ⇒ Object
6
7
8
9
10
11
12
13
14
|
# File 'lib/dedalus/elements/image.rb', line 6
def render
x,y = *position
x_scale = invert_x ? -scale : scale
y_scale = invert_y ? -scale : scale
ox,oy = *offset
asset.draw(x + padding + ox, y + padding + oy, z_order, x_scale, y_scale)
end
|
#scale ⇒ Object
46
47
48
|
# File 'lib/dedalus/elements/image.rb', line 46
def scale
@scale ||= 1.0
end
|
#width ⇒ Object
30
31
32
|
# File 'lib/dedalus/elements/image.rb', line 30
def width
2*padding + (asset.width * scale)
end
|