summaryrefslogtreecommitdiffhomepage
path: root/dragon
diff options
context:
space:
mode:
authorAmir Rajan <[email protected]>2020-11-17 10:31:24 -0800
committerGitHub <[email protected]>2020-11-17 10:31:24 -0800
commit161fbca8dd6abdb3fb3785be559bb8b3e5843d68 (patch)
tree152daeae82406b658dc27b7b13e6ce6482cece7b /dragon
parentb51fab967e4c13b6a0ae468c4f029f65746b8123 (diff)
parentc5cf8071fc0788022e72ff4e56cd9d96e3cda0ab (diff)
downloaddragonruby-game-toolkit-contrib-161fbca8dd6abdb3fb3785be559bb8b3e5843d68.tar.gz
dragonruby-game-toolkit-contrib-161fbca8dd6abdb3fb3785be559bb8b3e5843d68.zip
Merge pull request #37 from danhealy/dh/add-tolerance-to-inside-rect
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