Files
SaraP f29512578a Extern :
- C3d aggiornamento delle librerie ( 117832).
2022-07-21 14:53:00 +02:00

59 lines
3.1 KiB
C++

//////////////////////////////////////////////////////////////////////////////////////////
/**
\file
\brief \ru Расчет пересечений тел посредством аппарата булевой операции.
\en Calculation of intersections between solids using the boolean operations. \~
*/
//////////////////////////////////////////////////////////////////////////////////////////
#ifndef __CDET_BOOL_H
#define __CDET_BOOL_H
#include <mb_operation_result.h>
#include <mb_enum.h>
#include <math_define.h>
#include <vector>
class MATH_CLASS MbSolid;
class MATH_CLASS MbSNameMaker;
class MATH_CLASS MbCurveEdge;
//----------------------------------------------------------------------------------------
/** \brief \ru Расчет пересечений тел посредством аппарата булевой операции.
\en Calculation of intersections between solids using the boolean operations. \~
\details \ru Расчет пересечений тел посредством аппарата булевой операции.
\en Calculation of intersections between solids using the boolean operations. \~ \n
\param[in] solid1 - \ru Первое тело. \en The first solid. \~
\param[in] solid2 - \ru Второе тело. \en The second solid. \~
\param[out] edges - \ru Ребра пересечения тел. \en Intersection edges. \~
\param[out] intersectedFaces - \ru Пары номеров пересекшихся граней. \n
- \en The couples of indeses intersected faces of the solids, \n
\param[out] touchedFaces - \ru Пары номеров касающихся граней с противоположно направленными нормалями.
\en The couples of indeses of contacted faces with oppositely directed normals. \~
\param[out] similarFaces - \ru Пары номеров касающихся подобных граней, которые могут быть объединены.
\en The couples of indeses of relating to similar faces that can be combined. \~
\return \ru Код результата операции. \en Operation result code. \~
\warning \ru Тела будут изменены операцией! Если требуется сохранить тела без изменений,
передавайте копии, сделанные помощью MbSolid::Duplicate().
\en The solids will be modified by this operation! To keep the body intact,
give the copies made using MbSolid::Duplicate(). \~
\ingroup Collision_Detection
*/
//---
MATH_FUNC (MbResultType) InterferenceSolids( MbSolid & solid1, MbSolid & solid2,
std::vector<MbCurveEdge*> * edges,
c3d::IndicesPairsVector * intersectedFaces,
c3d::IndicesPairsVector * similarFaces,
c3d::IndicesPairsVector * touchedFaces );
#endif // __CDET_BOOL_H
// eof