## Определение пересечения двух тел Метод ```cpp MbResultType InterferenceSolids(MbSolid & solid1, MbSolid & solid2, std::vector * edges, std::vector (*faceNumbers)[4]) ``` выполняет оценку пересечения двух тел. Входными параметрами метода являются: - **solid**1 -- первое тело; - **solid**2 -- второе тело; - **edges** -- ребра пересечения тел (может быть 0); - (\*faceNumbers)\[4\] -- контейнер номеров граней (может быть 0). Выходными параметрами метода являются: - ребра пересечения **edges** граней тел **solid**1 и **solid**2; - номера пересекшихся граней (\*faceNumbers)\[4\]. Метод возвращает rt_Intersect, если тела пересекаются, или rt_NoIntersect, если тела не пересекаются. Метод объявлен в файле *cdet_bool.h*. Метод модифицирует ребра тел **solid**1 и **solid**2, поэтому если требуется сохранить тела неизменными, необходимо передавать в метод копии, сделанные с помощью MbSolid::Duplicate(). Модифицирование заключается в резке ребер тел ребрами пересечения. Возвращаемое значение rt_Intersect означает, что пара тел имеет некоторый объем пересечения или некоторую площадь соприкосновения. Функция вернет rt_NoIntersect, если тела не имеют объема пересечения. Касание в одной точке не считается пересечением, так как имеет нулевой объем пересечения. Если указатель на контейнер рёбер **edges** не равен NULL, то в **edges** будут помещены ребра пересечения тел **solid**1 и **solid**2. Если указатель на контейнер номеров граней faceNumbers не равен NULL, то в faceNumbers\[0\] и faceNumbers\[1\] будут помещены номера пересекшихся граней соответственно первого и второго тела, кроме того, в faceNumbers\[2\] и faceNumbers\[3\] будут помещены номера соприкасающихся граней соответственно первого и второго тела.