Class: Emf::Model::Geometry::Point

Inherits:
Object
  • Object
show all
Defined in:
lib/emf/model/geometry/point.rb

Instance Attribute Summary collapse

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(x:, y:) ⇒ Point

Returns a new instance of Point.



7
8
9
10
# File 'lib/emf/model/geometry/point.rb', line 7

def initialize(x:, y:)
  @x = x
  @y = y
end

Instance Attribute Details

#xObject (readonly)

Returns the value of attribute x.



12
13
14
# File 'lib/emf/model/geometry/point.rb', line 12

def x
  @x
end

#yObject (readonly)

Returns the value of attribute y.



12
13
14
# File 'lib/emf/model/geometry/point.rb', line 12

def y
  @y
end

Class Method Details

.from_wire(wire) ⇒ Object



14
15
16
# File 'lib/emf/model/geometry/point.rb', line 14

def self.from_wire(wire)
  new(x: wire.x, y: wire.y)
end

Instance Method Details

#==(other) ⇒ Object Also known as: eql?



26
27
28
# File 'lib/emf/model/geometry/point.rb', line 26

def ==(other)
  other.is_a?(self.class) && x == other.x && y == other.y
end

#hashObject



31
32
33
# File 'lib/emf/model/geometry/point.rb', line 31

def hash
  [self.class, x, y].hash
end

#inspectObject



35
36
37
# File 'lib/emf/model/geometry/point.rb', line 35

def inspect
  "#<#{self.class.name} x=#{x} y=#{y}>"
end

#to_wireObject



18
19
20
# File 'lib/emf/model/geometry/point.rb', line 18

def to_wire
  Binary::Types::PointL.new(x: x, y: y)
end

#translate(dx, dy) ⇒ Object



22
23
24
# File 'lib/emf/model/geometry/point.rb', line 22

def translate(dx, dy)
  self.class.new(x: x + dx, y: y + dy)
end