module Dieses::Geometry
Constants
- Error
Public Class Methods
bounding_box_of(*elements)
click to toggle source
# File lib/dieses/geometry/element.rb, line 56 def bounding_box_of(*elements) bboxes = elements.map(&:bbox) minimum = bboxes.map(&:minimum).min maximum = bboxes.map(&:maximum).max Element::BoundingBox.new minimum, maximum end
centered(elements, rect)
click to toggle source
# File lib/dieses/geometry/element.rb, line 41 def centered(elements, rect) bbox = bounding_box_of(*elements) x = (rect.width - bbox.maximum.x + bbox.minimum.x) / 2 y = (rect.height - bbox.maximum.y + bbox.minimum.y) / 2 elements.map { |element| element.translate(x: x, y: y).attr(**element.attributes.dup) } end
to_svg(elements, rect = Undefined, prefix: EMPTY_STRING)
click to toggle source
# File lib/dieses/geometry/element.rb, line 50 def to_svg(elements, rect = Undefined, prefix: EMPTY_STRING) (Undefined.equal?(rect) ? elements : centered(elements, rect)).map do |element| "#{prefix}#{element.to_svg}" end.join.chomp end