summaryrefslogtreecommitdiffhomepage
path: root/dragon
diff options
context:
space:
mode:
authordanhealy <[email protected]>2020-11-15 17:25:38 -0800
committerdanhealy <[email protected]>2020-11-15 17:25:38 -0800
commitc5cf8071fc0788022e72ff4e56cd9d96e3cda0ab (patch)
treed18256890aedc8caebfa79788213c9c216d6e9d3 /dragon
parent128fa1d90cea6289605a49daf56a0cbb72e2dd28 (diff)
downloaddragonruby-game-toolkit-contrib-c5cf8071fc0788022e72ff4e56cd9d96e3cda0ab.tar.gz
dragonruby-game-toolkit-contrib-c5cf8071fc0788022e72ff4e56cd9d96e3cda0ab.zip
Allow #inside_rect? to receive a tolerance arg like #intersect_rect?
Diffstat (limited to 'dragon')
-rw-r--r--dragon/geometry.rb14
1 files changed, 7 insertions, 7 deletions
diff --git a/dragon/geometry.rb b/dragon/geometry.rb
index b16c5b7..db3ebfc 100644
--- a/dragon/geometry.rb
+++ b/dragon/geometry.rb
@@ -26,8 +26,8 @@ module GTK
# Returns true if a primitive's rectangle is entirely inside another primitive's rectangle.
# @gtk
- def inside_rect? outer
- Geometry.inside_rect? self, outer
+ def inside_rect? outer, tolerance = 0.0
+ Geometry.inside_rect? self, outer, tolerance
end
# Returns true if a primitive's rectangle overlaps another primitive's rectangle.
@@ -308,11 +308,11 @@ S
end
# @gtk
- def self.inside_rect? inner_rect, outer_rect
- inner_rect.x >= outer_rect.x &&
- inner_rect.right <= outer_rect.right &&
- inner_rect.y >= outer_rect.y &&
- inner_rect.top <= outer_rect.top
+ def self.inside_rect? inner_rect, outer_rect, tolerance = 0.0
+ inner_rect.x + tolerance >= outer_rect.x - tolerance &&
+ inner_rect.right - tolerance <= outer_rect.right + tolerance &&
+ inner_rect.y + tolerance >= outer_rect.y - tolerance &&
+ inner_rect.top - tolerance <= outer_rect.top + tolerance
rescue Exception => e
raise e, ":inside_rect? failed for inner_rect: #{inner_rect} outer_rect: #{outer_rect}."
end