Class: Sevgi::Geometry::Element

Inherits:
Object
  • Object
show all
Defined in:
lib/sevgi/geometry/element.rb

Direct Known Subclasses

Rect, Segment, Tile

Instance Method Summary collapse

Instance Method Details

#at(point = nil, dx: 0, dy: 0) ⇒ Object



6
# File 'lib/sevgi/geometry/element.rb', line 6

def at(point = nil, dx: 0, dy: 0) = translate(dx: F.dxp(position, point ||= position) + dx, dy: F.dyp(position, point) + dy)

#bhObject



10
# File 'lib/sevgi/geometry/element.rb', line 10

def bh                            = box.height

#boxObject

Raises:

  • (NoMethodError)


8
# File 'lib/sevgi/geometry/element.rb', line 8

def box                           = raise(NoMethodError, "#{self.class}#box must be implemented")

#bwObject



12
# File 'lib/sevgi/geometry/element.rb', line 12

def bw                            = box.width

#ignorable?Boolean

Returns:

  • (Boolean)


14
# File 'lib/sevgi/geometry/element.rb', line 14

def ignorable?(...)               = box.zero?(...)

#positionObject



16
# File 'lib/sevgi/geometry/element.rb', line 16

def position                      = @position || Point.origin

#position!Object



18
# File 'lib/sevgi/geometry/element.rb', line 18

def position!(...)                = position.approx(...)

#translate(dx: nil, dy: nil) ⇒ Object

Raises:

  • (NoMethodError)


20
# File 'lib/sevgi/geometry/element.rb', line 20

def translate(dx: nil, dy: nil)   = raise(NoMethodError, "#{self.class}#translate must be implemented")