Рассматриваемая проблема является частью научного моделирования, связанного с двумерным ростом в трехмерном пространстве. 2D-форма увеличивается путем добавления (треугольных) сегментов к ранее выращенной форме.
Обратите внимание, что реальные сегменты в 3D имеют толщину, поэтому мой код фактически работает с треугольными призмами.
В какой-то момент эти 2D-формы (с любой относительной ориентацией и положением) сталкиваются.
Если одна из новых треугольных призм пересекается с ранее вставленными сегментами, я хочу вставить только «часть» сегмента, которая не пересекается с ранее вставленными сегментами. Как показано ниже для сегментов, обозначенных T1 и T2.
На первом этапе я рассчитал все пересечения ребер с гранями. Затем я использовал пакет CGAL Delaunay Triangulation в 3D для создания сетки результирующего набора точек в виде тетраэдрической сетки. В качестве последнего шага я отбрасываю все те тетраэдры, которые пересекаются с ранее вставленными отрезками. В большинстве случаев это прекрасно работает, но я уже убежден, что эта идея не может работать по фундаментальным причинам.
Какой более надежный способ вычислить это?