Class: Line2D::Float
- Inherits:
-
Object
- Object
- Line2D::Float
- Defined in:
- lib/tabula/core_ext.rb
Instance Method Summary collapse
- #horizontal?(threshold = 0.00001) ⇒ Boolean
- #inspect ⇒ Object
- #rotate!(pointX, pointY, amount) ⇒ Object
- #snap!(cell_size) ⇒ Object
- #to_json(*args) ⇒ Object
- #transform!(affine_transform) ⇒ Object
- #vertical?(threshold = 0.00001) ⇒ Boolean
Instance Method Details
#horizontal?(threshold = 0.00001) ⇒ Boolean
114 115 116 |
# File 'lib/tabula/core_ext.rb', line 114 def horizontal?(threshold=0.00001) (self.getY2 - self.getY1).abs < threshold end |
#inspect ⇒ Object
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
118 119 120 |
# File 'lib/tabula/core_ext.rb', line 118 def vertical?(threshold=0.00001) (self.getX2 - self.getX1).abs < threshold end |