{
name:
(Two squares)
a:
( ( ((0, 0), (200, 0), (200, 200), (0, 200)) ) )
b:
((((100, 100), (300, 100), (300, 300), (100, 300))))
add:
((((0, 0), (200, 0), (200, 100), (300, 100), (300, 300), (100, 300), (100, 200), (0, 200))))
subtract:
((((0, 0), (200, 0), (200, 100), (100, 100), (100, 200), (0, 200))))
intersection:
((((100, 100), (200, 100), (200, 200), (100, 200))))
xor:
( (((0, 0), (200, 0), (200, 100), (100, 100), (100, 200), (0, 200))),
(((200, 200), (200, 100), (300, 100), (300, 300), (100, 300), (100, 200))) )
}
{
name:
(Self touch)
a:
((( (100, 100), (200, 0), (400, 0), (400, 300), (0, 300), (0, 200),
(100, 100), (100, 200), (200, 200), (200, 100) )))
b:
( (( (100, 0), (200, 0), (200, 300), (100, 300) )),
(( (250, 100), (350, 100), (350, 200), (250, 200) )) )
add:
((( (100, 100), (100, 0), (400, 0), (400, 300), (0, 300), (0, 200) )))
subtract:
( ( ( (100, 100), (100, 300), (0, 300), (0, 200) ) ),
( ( (200, 0), (400, 0), (400, 300), (200, 300) ),
( (250, 100), (250, 200), (350, 200), (350, 100) ) ) )
intersection:
( (( (100, 100), (200, 0), (200, 100) )),
(( (100, 200), (200, 200), (200, 300), (100, 300) )),
(( (250, 100), (350, 100), (350, 200), (250, 200) )) )
xor:
( ( ( (100, 0), (200, 0), (100, 100) ) ),
( ( (100, 100), (200, 100), (200, 0), (400, 0), (400, 300), (200, 300), (200, 200), (100, 200), (100, 300), (0, 300), (0, 200) ),
( (250, 100), (250, 200), (350, 200), (350, 100) ) ) )
}