Запуск стандартный - cmake + make, на вход имя файла
Способ парсинга фигуры основан на определении вершин. Сначала мы находим центр (масс) фигуры, и пытаемся найти самые далекие от него точки, на основе них формируем вершины, при этом мы считаем некоторую окрестность вершины свободной от других вершин (мы теряем из-за этого возможность парсить слишком вырожденные фигуры, но взамен можем более точно понять, что является вершинами нашей фигуры).
Если самых далеких точек 4 - то это значит что у нас квадрат или прямоугольник, отличаем мы их просто вычислением сторон. Если их больше - значит это круг. Иначе получаем треугольник. Я не успел дописать вычисление оставшихся его вершин (вышеописанный способ найдет все вершины только у равностороннего треугольника), но идея его такая - одну мы нашли, дальше проводим прямую, соединяющую его и центр масс и ищем самые далекие точки по каждую из его сторон - это и будут его вершины.