#
# Inverse ROI:
# replaces the current ROI by its inverse.
#
from icy.main import Icy
from icy.roi import ROI2DRectangle
from icy.roi import ROI2D
from icy.util import ShapeUtil
import sys
seq = Icy.getMainInterface().getFocusedSequence()
img = Icy.getMainInterface().getFocusedImage()
if seq == None:
sys.exit("No sequence")
# Get current ROI
roi = seq.getSelectedROI2D()
if roi == None:
sys.exit("No selected ROI")
# Create an ROI of the size of the image
roiImage = ROI2DRectangle(img.getBounds())
# Do the XOR operation
res = ROI2D.merge([roi, roiImage], ShapeUtil.ShapeOperation.XOR)
# Compute inverse by XOR operation
seq.addROI(res)