Class: Line2D::Float

Inherits:
Object
  • Object
show all
Defined in:
lib/tabula/core_ext.rb

Instance Method Summary collapse

Instance Method Details

#horizontal?(threshold = 0.00001) ⇒ Boolean

Returns:

  • (Boolean)


114
115
116
# File 'lib/tabula/core_ext.rb', line 114

def horizontal?(threshold=0.00001)
  (self.getY2 - self.getY1).abs < threshold
end

#inspectObject



83
84
85
# File 'lib/tabula/core_ext.rb', line 83

def inspect
  "<Line2D::Float[(#{self.getX1},#{self.getY1}),(#{self.getX2},#{self.getY2})]>"
end

#rotate!(pointX, pointY, amount) ⇒ Object



87
88
89
90
91
92
93
94
95
96
97
# File 'lib/tabula/core_ext.rb', line 87

def rotate!(pointX, pointY, amount)
  px1 = self.getX1 - pointX; px2 = self.getX2 - pointX
  py1 = self.getY1 - pointY; py2 = self.getY2 - pointY

  if amount == 90 || amount == -270
    self.java_send :setLine, [Java::float, Java::float, Java::float, Java::float,], pointX - py2, pointY + px1, pointX - py1, pointY + px2
  elsif amount == 270 || amount == -90
    self.java_send :setLine, [Java::float, Java::float, Java::float, Java::float,], pointX + py1, pointY - px2, pointX + py2, pointY - px1
  end

end

#snap!(cell_size) ⇒ Object



107
108
109
110
111
112
# File 'lib/tabula/core_ext.rb', line 107

def snap!(cell_size)
  newP1, newP2 = Point2D::Float.new, Point2D::Float.new
  newP1.java_send :setLocation, [Java::float, Java::float], (self.getX1 / cell_size).round * cell_size, (self.getY1 / cell_size).round * cell_size
  newP2.java_send :setLocation, [Java::float, Java::float], (self.getX2 / cell_size).round * cell_size, (self.getY2 / cell_size).round * cell_size
  setLine(newP1, newP2)
end

#to_json(*args) ⇒ Object



79
80
81
# File 'lib/tabula/core_ext.rb', line 79

def to_json(*args)
  [self.getX1, self.getY1, self.getX2, self.getY2].to_json(*args)
end

#transform!(affine_transform) ⇒ Object



99
100
101
102
103
104
105
# File 'lib/tabula/core_ext.rb', line 99

def transform!(affine_transform)
  newP1, newP2 = Point2D::Float.new, Point2D::Float.new
  affine_transform.transform(self.getP1, newP1)
  affine_transform.transform(self.getP2, newP2)
  setLine(newP1, newP2)
  self
end

#vertical?(threshold = 0.00001) ⇒ Boolean

Returns:

  • (Boolean)


118
119
120
# File 'lib/tabula/core_ext.rb', line 118

def vertical?(threshold=0.00001)
  (self.getX2 - self.getX1).abs < threshold
end