Если в вкратце - то вам нужно хранить в какой то структуре все отрезки (стороны) каждого многоугольника в виде пар (x1, y1 , x2, y2), а также координаты краев. Затем При добавлении вам нужно сравнивать многоугольник которого хотите добавить со всеми многоугольниками. Суть сравнения в проверки пересечения отрезков. Т.Е. сравниваем отрезки друг с другом. Общее время для сравнение двух многоугольников N^M, где N и M - количество отрезков многоугольников. Для того чтобы не тратить ресурсов для сравнения многоугольников которые не могут быть пересекать друг друга, сначала сравнивайте координаты краев.
UPD:
Как отметил
Сергей Соколов нужно проверят возможность вхождения одной фигуры в другую. Для этого вдобавок нужно например проверять вхождение точки одного многоугольника в другую. Тоже NM операций.