Exclusion and symmetrical difference (+ a bug?)

I am playing around with the mask manager and I came across a small problem. If I draw 2 ellipses and go into the mask manager and the correct group, I can get the union, intersection, difference and symmetric difference (exclusion) without a problem. But only if I do not touch the mask that is first in the group)

If however I have manipulated both masks and set an operation on the first, I cannot get these operations back.

I can get the union (set both to union), intersection (set both to intersection), the difference (set the first to union and the second to intersection) but I cannot get the symmetrical difference back however I set the first mask.

The only workaround is to create a path around the whole picture with 100% opacity, put it to the top of the group, set the first ellipse to intersection and the second to exclusion.

Am I missing something? Is there not a way to remove an operation from a shape to solve the problem simply?

Thanks for your advice,


IMHO combining shapes and parametric selections does not work well and is at best confusing, and possibly buggy.
I can see how you would specify how a shape lower down the list interacts with the shape above it, but I don’t understand what the first shape interacts with, and the manual is not clear on this, to me.
I think this part of dt would benefit from an overhaul, I made a suggestion here Ideas on how dt’s Mask interface could be improved
some time back.

Its only a guess but I suspect the first one is like an anchor for the group and serves as the reference point. Normally people would have a mask and then add or subtract to that so I guess maybe Nicolas has stumbled on to something…in the end its just math and things are masked where the mask is 1. Sometimes depending on the mode and drawn/parametric combinations this will be anywhere where the masks interact and both are 1 or one is 0 and the other 1 leaving only areas where both are zero unmasked

Edit: If you create a simple mask with three objects the union will by default be added to the second object and third. If you use the move down on the first line you can see that the logic follows it…any lines above are ingnored…so if you move line one to the bottom then you have only that shape in your combined mask. You could then add a logical operator to that but since you can’t remove it then then you are forced in to the gymnastics that you described above. It would be nice if you could insert an object at the top as the new anchor or reset a line to null for the logical operator so that you could re-order as you wanted. Having said that all the shapes are there still so you can select them all and create a new group quite fast. Set the operators as you need and then select that group as the one to use in your module…delete the messed up group afterwards if need be…finally I would personally I never use many of these combinations in practice. I usually use a parametric mask to start and then one or more drawn masks to include or exclude regions that are hard to mask like using a brush to erase or add to the mask…

I use union, intersection and difference but not the symmetrical difference.
One way around the problem would be to disable any operation on the topmost mask, it has no sense to me to allow it.
In that case, if a mask is moved to the top, its operator is removed and voilà !