All possible combinations of two objects in CSG.
A |
not A |
||
---|---|---|---|
object { A } |
object { A inverse } |
||
B |
not B |
||
object { B } |
object { B inverse } |
||
A or B |
A nor B = |
||
union { object { A } object { B } } |
union { object { A } object { B } inverse } |
||
intersection { object { A inverse } object { B inverse } } |
|||
A and B |
A nand B = |
||
intersection { object { A } object { B } } |
intersection { object { A } object { B } inverse } |
||
union { object { A inverse } object { B inverse } } |
|||
A - B = |
not (A - B) = |
||
difference { object { A } object { B } } |
difference { object { A } object { B } inverse } |
||
intersection { object { A } object { B inverse } } |
union { object { A inverse } object { B } } |
||
difference { object { B inverse } object { A inverse } } |
|||
B - A = |
not (B - A) = |
||
difference { object { B } object { A } } |
difference { object { B } object { A } inverse } |
||
intersection { object { B } object { A inverse } } |
union { object { A } object { B inverse} } |
||
difference { object { A inverse } object { B inverse } } |
|||
A xor B = |
not (A xor B) = |
||
intersection { union { object { A } object { B } } intersection { object { A } object { B } inverse } } |
intersection { union { object { A } object { B } } intersection { object { A } object { B } inverse } inverse } |
||
intersection { union { object { A } object { B } } union { object { A inverse } object { B inverse } } } |
union { intersection { object { A } object { B } } union { object { A } object { B } inverse } } |
||
union { difference { object { A } object { B } } difference { object { B } object { A } } } |
union { intersection { object { A } object { B } } intersection { object { A inverse } object { B inverse } } } |
||
Special cases (no reasonable meaning in set theory) | |||
A or (A and B) |
not (A or (A and B)) |
||
union { object { A } intersection { object { A } object { B } } } |
union { object { A } intersection { object { A } object { B } } inverse } |
||
B or (A and B) |
not (B or (A and B)) |
||
union { object { B } intersection { object { A } object { B } } } |
union { object { B } intersection { object { A } object { B } } inverse } |
||
merge(A,B) = |
|||
merge { object { A } object { B } } |
|||
intersection { object { A inverse } object { B inverse } inverse } |