Class: Sevgi::Geometry::Element
- Inherits:
-
Object
- Object
- Sevgi::Geometry::Element
- Defined in:
- lib/sevgi/geometry/element.rb
Defined Under Namespace
Class Method Summary collapse
Instance Method Summary collapse
-
#at(point = nil, dx: 0, dy: 0) ⇒ Object
Core API.
- #box ⇒ Object
- #equations ⇒ Object
- #ignorable?(precision: nil) ⇒ Boolean
- #position ⇒ Object
- #translate(_x, _y) ⇒ Object
Class Method Details
.arced ⇒ Object
8 |
# File 'lib/sevgi/geometry/element.rb', line 8 def self.arced(...) = Arced.build(...) |
Instance Method Details
#at(point = nil, dx: 0, dy: 0) ⇒ Object
Core API
12 13 14 15 16 17 |
# File 'lib/sevgi/geometry/element.rb', line 12 def at(point = nil, dx: 0, dy: 0) translate( ((point ||= position).x - position.x) + dx, (point.y - position.y) + dy ) end |
#box ⇒ Object
19 |
# File 'lib/sevgi/geometry/element.rb', line 19 def box = raise NoMethodError, "#{self.class}#box must be implemented" |
#equations ⇒ Object
21 |
# File 'lib/sevgi/geometry/element.rb', line 21 def equations = raise NoMethodError, "#{self.class}#equations must be implemented" |
#ignorable?(precision: nil) ⇒ Boolean
23 |
# File 'lib/sevgi/geometry/element.rb', line 23 def ignorable?(precision: nil) = F.zero?(box.width, precision:) && F.zero?(box.height, precision:) |
#position ⇒ Object
25 |
# File 'lib/sevgi/geometry/element.rb', line 25 def position = raise NoMethodError, "#{self.class}#position must be implemented" |
#translate(_x, _y) ⇒ Object
27 |
# File 'lib/sevgi/geometry/element.rb', line 27 def translate(_x, _y) = raise NoMethodError, "#{self.class}#translate must be implemented" |