ある 2 つの NSRect があったとしようじゃないか。それらの AND や OR を取るにはどうしたらいいか?図で示すと、右のようになる。OR の方は、厳密な意味での OR ではないけどね。
だいたい予想はついているかもしれないが、Cocoa にはそれを行う関数が用意されている。NSIntersectionRect() と NSUnionRect() だ。
Foundation/NSGeometry.h
FOUNDATION_EXPORT NSRect NSIntersectionRect(
NSRect aRect, NSRect bRect);
FOUNDATION_EXPORT NSRect NSUnionRect(
NSRect aRect, NSRect bRect);
NSIntersectionRect() が AND を、NSUnionRect が OR を適用した NSRect を返してくれるんだ。