Class: Magick::RVG::Group
- Inherits:
-
Object
- Object
- Magick::RVG::Group
- Includes:
- Describable, Duplicatable, Embellishable, Stylable, Transformable
- Defined in:
- lib/rvg/container.rb
Overview
Define a collection of shapes, text, etc. that can be reused. Group objects are containers. That is, styles and transforms defined on the group are used by contained objects such as shapes, text, and nested groups unless overridden by a nested container or the object itself. Groups can be reused with the RVG::UseConstructors#use method. Create groups within containers with the RVG::StructureConstructors#g method.
Example:
# All elements in the group will be translated by 50 in the
# x-direction and 10 in the y-direction.
rvg.g.translate(50, 10).styles(:stroke=>'red',:fill=>'none') do |grp|
# The line will be red.
grp.line(10,10, 20,20)
# The circle will be blue.
grp.circle(10, 20, 20).styles(:stroke=>'blue')
end
Instance Attribute Summary
Attributes included from Describable
Instance Method Summary collapse
-
#<<(obj) ⇒ Object
Append an arbitrary object to the group’s content.
-
#add_primitives(gc) ⇒ Object
:nodoc:.
-
#initialize {|_self| ... } ⇒ Group
constructor
A new instance of Group.
-
#ref(x, y, width, height) ⇒ Object
Translate container according to #use arguments.
Methods included from Duplicatable
Methods included from ImageConstructors
Methods included from UseConstructors
Methods included from TextConstructors
Methods included from ShapeConstructors
#circle, #ellipse, #line, #path, #polygon, #polyline, #rect
Methods included from StructureConstructors
Methods included from Transformable
#matrix, #rotate, #scale, #skewX, #skewY, #translate
Methods included from Stylable
Constructor Details
Instance Method Details
#<<(obj) ⇒ Object
Append an arbitrary object to the group’s content. Called by #use to insert a non-container object into a group.
80 81 82 |
# File 'lib/rvg/container.rb', line 80 def <<(obj) #:nodoc: @content << obj end |
#add_primitives(gc) ⇒ Object
:nodoc:
65 66 67 68 69 70 71 |
# File 'lib/rvg/container.rb', line 65 def add_primitives(gc) #:nodoc: gc.push add_transform_primitives(gc) add_style_primitives(gc) @content.each { |element| element.add_primitives(gc) } gc.pop end |
#ref(x, y, width, height) ⇒ Object
Translate container according to #use arguments
74 75 76 |
# File 'lib/rvg/container.rb', line 74 def ref(x, y, width, height) #:nodoc: translate(x, y) if x != 0 || y != 0 end |