Ммм, далек от царицы всех наук, три идеи, последующая лучше предыдущей.
Проверьте фигуру на выпуклость, если она таковой не является - достройте её до выпуклой. Посчитайте сечение новой фигуры и вычтите из получившегося сечения то, что достроили. Подводный камень - то, что вы достроили может оказаться не выпуклой фигурой.
Вариант два, проверьте фигур на выпуклость, если она таковой не является, разбейте фигуру на отдельные выпуклые фигуры.
Вариант три, забить на проверки и разбить каждое сечение на гарантированно выпуклый многоугольник (треугольник). Ну или саму фигуру на треугольные пирамиды. И уже считать сумму сечений этих треугольников\треугольных пирамид.
Но это мысли вслух. Думаю, существует более красивое решение, основанное на какой-нибудь теореме. По сабжу я только помню, что фигура выпуклая, если отрезок, соединяющий любые две точки этой фигуры, лежит внутри этой фигуры.
Может, если хранить фигуру, как набор векторов, задачу можно будет решить проще через методы векторной алгебры. Но не могу сказать точнее, так как был балбесом и на парах во время учебы в универе занимался чем угодно, кроме самой учебы.