Skip to content

Instantly share code, notes, and snippets.

@Sephi-Chan
Created December 19, 2011 21:53
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save Sephi-Chan/44aab0970c99444cc3fc to your computer and use it in GitHub Desktop.
Save Sephi-Chan/44aab0970c99444cc3fc to your computer and use it in GitHub Desktop.
module Bitmap
# Logical OR between 2 bitmap having the same size.
def self.or(bitmap, other_bitmap)
result = []
bitmap.each_with_index do |line, y|
result[y] ||= []
line.each_with_index do |bit, x|
result[y][x] = bitmap[y][x] || other_bitmap[y][x]
end
end
result
end
end
some_bitmap = [
[ false, false, false, false, false ],
[ false, false, true, true, true ],
[ false, false, true, true, true ],
[ false, false, true, true, true ],
[ false, false, true, true, true ]
]
other_bitmap = [
[ true, false, false, false, false ],
[ false, false, true, true, true ],
[ false, false, true, true, true ],
[ false, false, true, true, true ],
[ false, false, true, true, true ]
]
Bitmap::or(some_bitmap, other_bitmap)
# =>
# [
# [ true, false, false, false, false ],
# [ false, false, true, true, true ],
# [ false, false, true, true, true ],
# [ false, false, true, true, true ],
# [ false, false, true, true, true ]
# ]
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment