/*
......... 2015 Ivan Mahonin
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
{
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) ) ) )
}
{
name:
(Bad contours - cross)
badA:
((( (0, 0), (0, 100), (200, 0), (200, 100) )))
a:
( (( (0, 0), (100, 50), (0, 100) )),
(( (200, 0), (200, 100), (100, 50) )) )
}
{
name:
(Bad contours - hole)
badA:
( (( (0, 0), (300, 0), (300, 300), (0, 300) )),
(( (100, 100), (200, 100), (200, 200), (100, 200) )) )
a:
(( ( (0, 0), (300, 0), (300, 300), (0, 300) ),
( (100, 100), (100, 200), (200, 200), (200, 100) ) ))
}