Extern :
- C3d aggiornamento delle librerie ( 117952).
This commit is contained in:
@@ -531,9 +531,6 @@ private:
|
||||
OBVIOUS_PRIVATE_COPY( MbSurfacesJointAnalysisParams )
|
||||
};
|
||||
|
||||
DEPRECATE_DECLARE_REPLACE( MbSurfacesJointAnalysisParams )
|
||||
typedef MbSurfacesJointAnalysisParams MbNormalsMinMaxAnglesParams;
|
||||
|
||||
|
||||
//------------------------------------------------------------------------------
|
||||
/** \brief \ru Выходные параметры функции поиска минимальных и максимальных отклонений параметров поверхностей вдоль их кривой пересечения.
|
||||
@@ -605,9 +602,6 @@ public:
|
||||
OBVIOUS_PRIVATE_COPY( MbSurfacesJointAnalysisResults )
|
||||
};
|
||||
|
||||
DEPRECATE_DECLARE_REPLACE( MbSurfacesJointAnalysisResults )
|
||||
typedef MbSurfacesJointAnalysisResults MbNormalsMinMaxAnglesResults;
|
||||
|
||||
|
||||
//------------------------------------------------------------------------------
|
||||
/** \brief \ru Функция поиска минимальных и максимальных углов между нормалями поверхностей кривой пересечения.
|
||||
|
||||
@@ -24,7 +24,6 @@
|
||||
|
||||
class MATH_CLASS MbPlacement3D;
|
||||
class MATH_CLASS MbMesh;
|
||||
class MATH_CLASS MbCurve3D;
|
||||
class MATH_CLASS MbSurface;
|
||||
class MATH_CLASS MbSNameMaker;
|
||||
class MATH_CLASS MbFace;
|
||||
@@ -131,21 +130,6 @@ public:
|
||||
};
|
||||
|
||||
|
||||
//------------------------------------------------------------------------------
|
||||
/** \brief \ru Режим отбраковки выбросов при вписывании поверхности в набор точек.
|
||||
\en Outliers rejection mode for surface fitting. \~
|
||||
\ingroup Polygonal_Objects
|
||||
*/
|
||||
// ---
|
||||
enum MbeRejectOutliersType
|
||||
{
|
||||
rot_NoReject = 0, ///< \ru Не отбраковывать выбросы. \en No outliers rejection.
|
||||
rot_Sigma = 1, ///< \ru Отбраковывать выбросы по критерию N*sigma. \en Reject outliers by N*sigma criterion.
|
||||
rot_Percent = 2, ///< \ru Отбраковывать выбросы по процентному критерию. \en Reject outliers by percent criterion.
|
||||
rot_MaxDistance = 3 ///< \ru Отбраковывать выбросы по критерию максимального отклонения. \en Reject outliers by maximum distance criterion.
|
||||
};
|
||||
|
||||
|
||||
//------------------------------------------------------------------------------
|
||||
/** \brief \ru Параметры вписывания поверхности.
|
||||
\en Parameters of surface fitting. \~
|
||||
|
||||
+17
-21
@@ -21,7 +21,6 @@
|
||||
#include <mb_operation_result.h>
|
||||
#include <vector>
|
||||
|
||||
|
||||
class MATH_CLASS MbPlacement3D;
|
||||
class MATH_CLASS MbCurve;
|
||||
class MATH_CLASS MbContour;
|
||||
@@ -29,7 +28,8 @@ class MATH_CLASS MbCurve3D;
|
||||
class MATH_CLASS MbSurface;
|
||||
class MATH_CLASS MbSNameMaker;
|
||||
class MATH_CLASS MbFace;
|
||||
|
||||
class MATH_CLASS MbCurveFitParameters;
|
||||
class MATH_CLASS MbCurveFitResults;
|
||||
|
||||
//------------------------------------------------------------------------------
|
||||
/** \brief \ru Перечисление способов создания эллипса (окружности) или их дуг в двумерном пространстве.
|
||||
@@ -178,25 +178,6 @@ MATH_FUNC( MbResultType ) Arc( MbeArcCreateWay createWay,
|
||||
bool option,
|
||||
MbCurve *& result );
|
||||
|
||||
//------------------------------------------------------------------------------
|
||||
/**\attention \ru Функция устарела. Вместо неё применять #Arc.
|
||||
\en The function is deprecated. Use #Arc instead. \~
|
||||
\deprecated \ru Метод устарел.
|
||||
\en The method is deprecated. \~
|
||||
\ingroup Curve_Modeling
|
||||
*/
|
||||
// 2018
|
||||
//---
|
||||
DEPRECATE_DECLARE
|
||||
MATH_FUNC( MbResultType ) Arc( const MbCartPoint & centre,
|
||||
const SArray<MbCartPoint> & points,
|
||||
bool curveClosed,
|
||||
double angle,
|
||||
double & a,
|
||||
double & b,
|
||||
MbCurve *& result );
|
||||
|
||||
|
||||
//------------------------------------------------------------------------------
|
||||
/** \brief \ru Создать кривую, проходящую по набору точек.
|
||||
\en Create a curve passing through a set of points. \~
|
||||
@@ -853,4 +834,19 @@ MATH_FUNC ( MbCurve * ) SetProportionalParametrization( MbCurve * curve,
|
||||
double tMin, double tMax );
|
||||
|
||||
|
||||
//------------------------------------------------------------------------------
|
||||
/** \brief \ru Вписать кривую в множество точек.
|
||||
\en Fit the curve into point set. \~
|
||||
\details \ru Вписать кривую заданного типа в множество точек.
|
||||
\en Fit a curve of a given type into the point set. \~
|
||||
\param[in] params - \ru Параметры вписывания.
|
||||
\en The fitting parameters. \~
|
||||
\param[out] results - \ru Результаты вписывания.
|
||||
\en Results of curve fitting. \~
|
||||
\return \ru Возвращает код результата операции.
|
||||
\en Returns operation result code. \~
|
||||
\ingroup Polygonal_Objects
|
||||
*/
|
||||
// ---
|
||||
MATH_FUNC( MbResultType ) FitCurve( const MbCurveFitParameters & params, MbCurveFitResults & results );
|
||||
#endif // __ACTION_CURVE_H
|
||||
|
||||
@@ -39,6 +39,8 @@ class MATH_CLASS MbSNameMaker;
|
||||
class MATH_CLASS MbContourChamferParams;
|
||||
class MATH_CLASS MbNurbsCopyCurveResult;
|
||||
class MATH_CLASS MbCurvesWrappingParams;
|
||||
class MATH_CLASS MbCurveFitParameters3D;
|
||||
class MATH_CLASS MbCurveFitResults3D;
|
||||
|
||||
struct MATH_CLASS EvolutionValues;
|
||||
|
||||
@@ -547,8 +549,10 @@ MATH_FUNC (bool) IsCurveOnSurface( const MbCurve3D & curve,
|
||||
//------------------------------------------------------------------------------
|
||||
/** \brief \ru Создать массив контуров по массиву кривых.
|
||||
\en Create an array of contours given an array of curves. \~
|
||||
\details \ru Создать массив контуров по массиву кривых (на оригиналах кривых). \n
|
||||
\en Create an array of contours given an array of curves (using the original curves). \n \~
|
||||
\details \ru Создать массив контуров по массиву кривых (на оригиналах кривых). Вырожденные кривые,
|
||||
кривые с нулевым указателем и дубликаты кривых удаляются из входного массива, если у них нет владельца. \n
|
||||
\en Create an array of contours given an array of curves (using the original curves). Degenerate curves,
|
||||
curves with a null pointer and duplicates of the curves are removed from the input array if they do not have an owner. \n \~
|
||||
\param[in] curves - \ru Множество кривых.
|
||||
\en An array of curves. \~
|
||||
\param[in] metricEps - \ru Радиус захвата для стыковки кривых.
|
||||
@@ -574,8 +578,11 @@ MATH_FUNC (MbResultType) CreateContours( RPArray<MbCurve3D> & curves,
|
||||
//------------------------------------------------------------------------------
|
||||
/** \brief \ru Создать контуры по набору кривых с удалением вырожденных.
|
||||
\en Create contours given a set of curves with elimination of degenerate ones. \~
|
||||
\details \ru Создать контуры по набору кривых с удалением вырожденных (на оригиналах кривых). \n
|
||||
\en Create contours given a set of curves with elimination of degenerate ones (the original curves are used). \n \~
|
||||
\details \ru Создать контуры по набору кривых с удалением вырожденных (на оригиналах кривых). Вырожденные кривые,
|
||||
кривые с нулевым указателем и дубликаты кривых удаляются из входного массива, если у них нет владельца. \n
|
||||
\en Create contours given a set of curves with elimination of degenerate ones (the original curves are used).
|
||||
Degenerate curves, curves with a null pointer and duplicates of the curves are removed from the input array
|
||||
if they do not have an owner. \n \~
|
||||
\param[in, out] curves - \ru Множество кривых.
|
||||
\en An array of curves. \~
|
||||
\param[in] metricAcc - \ru Радиус захвата для стыковки кривых.
|
||||
@@ -1527,8 +1534,6 @@ MATH_FUNC ( MbCurve3D * ) SetProportionalParametrization( MbCurve3D * curve,
|
||||
\return \ru Возвращает код результата операции. В случае успеха всегда вернется ненулевая кривая (возможно, она будет совпадать с исходной кривой).
|
||||
\en Returns the code of the operation result. In case of success, the result curve cannot be nullptr (it will be possibly the same as the source one).
|
||||
\ingroup Curve3D_Modeling
|
||||
\warning \ru В разработке.
|
||||
\en Under development. \~
|
||||
*/
|
||||
// ---
|
||||
MATH_FUNC( MbResultType ) ExtendCurve( const MbCurve3D & sourceCurve,
|
||||
@@ -1586,4 +1591,39 @@ MATH_FUNC (MbResultType) CreateContourChamfer( const MbContourChamferParams & pa
|
||||
MATH_FUNC (MbResultType) UnwrapCurve( const MbCurvesWrappingParams & parameters,
|
||||
c3d::WireFrameSPtr & resFrame );
|
||||
|
||||
|
||||
//-------------------------------------------------------------------------------
|
||||
/** \brief \ru Выполнить операцию сворачивания кривых на поверхность.
|
||||
\en Perform the operation of wrapping curves on a surface. \~
|
||||
\details \ru Выполнить операцию сворачивания кривых на поверхность. См. также #CurvesWrapping.\n
|
||||
\en Perform the operation of wrapping curves on a surface. Also check out #CurvesWrapping.\n \~
|
||||
\param[in] params - \ru Параметры сворачивания.
|
||||
\en Wrapping parameters. \~
|
||||
\param[out] resFrame - \ru Каркас из свёрнутых 3д-кривых на присланной поверхности.
|
||||
\en Wireframe of wrapped 3d-curves on the input surface. \~
|
||||
\return \ru Возвращает код результата операции.
|
||||
\en Returns operation result code. \~
|
||||
\ingroup Curve3D_Modeling
|
||||
*/
|
||||
// ---
|
||||
MATH_FUNC( MbResultType ) WrapCurve( const MbCurvesWrappingParams & parameters,
|
||||
c3d::WireFrameSPtr & resFrame );
|
||||
|
||||
|
||||
//------------------------------------------------------------------------------
|
||||
/** \brief \ru Вписать кривую в множество точек.
|
||||
\en Fit the curve into point set. \~
|
||||
\details \ru Вписать кривую заданного типа в множество точек.
|
||||
\en Fit a curve of a given type into the point set. \~
|
||||
\param[in] params - \ru Параметры вписывания.
|
||||
\en The fitting parameters. \~
|
||||
\param[out] results - \ru Результаты вписывания.
|
||||
\en Results of curve fitting. \~
|
||||
\return \ru Возвращает код результата операции.
|
||||
\en Returns operation result code. \~
|
||||
\ingroup Polygonal_Objects
|
||||
*/
|
||||
// ---
|
||||
MATH_FUNC( MbResultType ) FitCurve( const MbCurveFitParameters3D & params, MbCurveFitResults3D & results );
|
||||
|
||||
#endif // __ACTION_CURVE3D_H
|
||||
|
||||
@@ -683,7 +683,7 @@ MATH_FUNC (bool) GetNearestSolid( const MbNearestSolidParams & params,
|
||||
\ingroup Algorithms_3D
|
||||
*/
|
||||
// ---
|
||||
// DEPRECATE_DECLARE_REPLACE( GetNearestSolid with MbNearestSolidParams )
|
||||
DEPRECATE_DECLARE_REPLACE( GetNearestSolid with MbNearestSolidParams )
|
||||
MATH_FUNC (bool) GetNearestSolid( const MbPlacement3D & pl,
|
||||
RPArray<MbContour> & c,
|
||||
MbSweptLayout::Direction direction,
|
||||
@@ -716,7 +716,7 @@ MATH_FUNC (bool) GetNearestSolid( const MbPlacement3D & pl,
|
||||
\ingroup Algorithms_3D
|
||||
*/
|
||||
// ---
|
||||
// DEPRECATE_DECLARE_REPLACE( GetNearestSolid with MbNearestSolidParams )
|
||||
DEPRECATE_DECLARE_REPLACE( GetNearestSolid with MbNearestSolidParams )
|
||||
MATH_FUNC (bool) GetNearestSolid( RPArray<MbCurve3D> & curves,
|
||||
const MbVector3D & direction,
|
||||
MbSweptLayout::Direction operationDirection,
|
||||
@@ -882,7 +882,7 @@ MATH_FUNC (MbSurface *) GetExtendedSurfaceCopy( MbCube &
|
||||
\en The function is deprecated, instead use #CreateFaces with #FacesSPtrVector. \~
|
||||
*/
|
||||
// ---
|
||||
// DEPRECATE_DECLARE_REPLACE( CreateFaces with FacesSPtrVector )
|
||||
DEPRECATE_DECLARE_REPLACE( CreateFaces with FacesSPtrVector )
|
||||
MATH_FUNC (bool) CreateFaces( const MbPlacement3D & place, const MbContour & contour,
|
||||
const MbVector3D & der, bool sense, const MbSNameMaker & n,
|
||||
RPArray<MbFace> & faces, bool useAddCount = false );
|
||||
|
||||
@@ -522,26 +522,6 @@ MATH_FUNC (MbResultType) MeshCutting( MbMesh & mesh,
|
||||
MbMesh *& result );
|
||||
|
||||
|
||||
//------------------------------------------------------------------------------
|
||||
/** \brief \ru Построить контур сечения полигонального объекта плоскостью.
|
||||
\en Create a section contour of a polygon figure. \~
|
||||
\details \ru Построить контур сечения присланного объекта плоскостью XY локальной системы координат. \n
|
||||
\en Construct curves of the section of the mesh object lying on the XY plane of the local coordinate system. \n
|
||||
\param[in] mesh - \ru Исходный полигональный объект.
|
||||
\en The source polygonal object. \~
|
||||
\param[in] place - \ru Секущая плоскость.
|
||||
\en A cutting plane. \~
|
||||
\param[out] polylines - \ru Построенные ломаные контура сечения объекта.
|
||||
\en The resultant contours. \~
|
||||
\return \ru Возвращает код результата операции.
|
||||
\en Returns operation result code. \~
|
||||
\ingroup Polygonal_Objects
|
||||
*/ // ---
|
||||
DEPRECATE_DECLARE
|
||||
MATH_FUNC (MbResultType) MeshSection( const MbMesh & mesh,
|
||||
const MbPlacement3D & place,
|
||||
RPArray<MbCurve3D> & polylines );
|
||||
|
||||
//------------------------------------------------------------------------------
|
||||
/** \brief \ru Построить контур сечения полигонального объекта плоскостью.
|
||||
\en Create a section contour of a polygon figure. \~
|
||||
@@ -654,25 +634,6 @@ MATH_FUNC(MbOrientedBox) CalculateBoundingBox( const MbMesh & mesh );
|
||||
MATH_FUNC (MbResultType) RepairInconsistentMesh( MbMesh & mesh );
|
||||
|
||||
|
||||
//------------------------------------------------------------------------------
|
||||
/** \brief \ru Провести поиск по набору объектов и заменить повторяющиеся полигональные объекты (#MbMesh)
|
||||
на #MbInstance, которые ссылаются на первый из набора одинаковых.
|
||||
\en Search an array of objects to replace repeating polygonal objects (#MbMesh)
|
||||
with #MbInstance, which are linked to the first in the set. \~
|
||||
\deprecated \ru Метод устарел. \en The method is deprecated. \~
|
||||
\param[in] meshContainer - \ru Набор объектов.
|
||||
\en The array of objects . \~
|
||||
\param[in] accuracy - \ru Точность сравнения.
|
||||
\en Comparison accuracy. \~
|
||||
\return \ru Возвращает код результата операции.
|
||||
\en Returns operation result code. \~
|
||||
\ingroup Polygonal_Objects
|
||||
*/ // ---
|
||||
DEPRECATE_DECLARE_REPLACE( ConvertMeshToInstance with MbMeshToInstanceParams )
|
||||
MATH_FUNC ( MbResultType ) ConvertMeshToInstance( c3d::ItemsSPtrVector & meshContainer,
|
||||
double accuracy = Math::metricRegion );
|
||||
|
||||
|
||||
//------------------------------------------------------------------------------
|
||||
/** \brief \ru Провести поиск по набору объектов и заменить повторяющиеся полигональные объекты (#MbMesh)
|
||||
на #MbInstance, которые ссылаются на первый из набора одинаковых.
|
||||
|
||||
@@ -52,7 +52,7 @@ class MATH_CLASS MbSNameMaker;
|
||||
\ingroup Algorithms_3D
|
||||
*/
|
||||
// ---
|
||||
// DEPRECATE_DECLARE_REPLACE( SmoothPhantom with MbSmoothPhantomParams )
|
||||
DEPRECATE_DECLARE_REPLACE( SmoothPhantom with MbSmoothPhantomParams )
|
||||
MATH_FUNC (MbResultType) SmoothPhantom( const MbSolid & solid,
|
||||
RPArray<MbCurveEdge> & edges,
|
||||
const SmoothValues & params,
|
||||
@@ -81,7 +81,7 @@ MATH_FUNC (MbResultType) SmoothPhantom( const MbSolid & solid,
|
||||
\ingroup Algorithms_3D
|
||||
*/
|
||||
// ---
|
||||
// DEPRECATE_DECLARE_REPLACE( SmoothPhantom with MbSmoothPhantomParams )
|
||||
DEPRECATE_DECLARE_REPLACE( SmoothPhantom with MbSmoothPhantomParams )
|
||||
MATH_FUNC (MbResultType) SmoothPhantom( const MbSolid & solid,
|
||||
SArray<MbEdgeFunction> & edges,
|
||||
const SmoothValues & params,
|
||||
@@ -241,36 +241,6 @@ MATH_FUNC (MbResultType) OffsetPhantom( const MbSolid & solid,
|
||||
size_t * hpShellFaceInd = nullptr ); // \ru Номер грани в исходной оболочки для построения хот-точки); \en The face number in the initial shell for a hot-point creation);
|
||||
|
||||
|
||||
//------------------------------------------------------------------------------
|
||||
/** \brief \ru Построить фантом габаритного куба в локальной системе координат.
|
||||
\en Create a phantom of a bounding box in local coordinate system. \~
|
||||
\details \ru Построить фантом габаритного куба в локальной системе координат. \n
|
||||
\en Create a phantom of a bounding box in local coordinate system. \n \~
|
||||
\param[in] solid - \ru Исходное тело.
|
||||
\en The initial solid. \~
|
||||
\param[in] place - \ru Локальная система координат (ЛСК).
|
||||
\en A local coordinate system (LCS). \~
|
||||
\param[in] bScale - \ru Является ли ЛСК масштабирующей.
|
||||
\en Whether the LCS is scaling. \~
|
||||
\param[in] operNames - \ru Именователь.
|
||||
\en An object for naming the new objects. \~
|
||||
\param[out] result - \ru Фантом локального куба.
|
||||
\en The phantom of the local bounding box. \~
|
||||
\return \ru Возвращает код результата построения.
|
||||
\en Returns the creation result code. \~
|
||||
\deprecated \ru Функция устарела, взамен использовать #LocalCubePhantom с набором параметров #MbLocalCubePhantomParams.
|
||||
\en The function is deprecated, instead use #LocalCubePhantom with the parameter list #MbLocalCubePhantomParams. \~
|
||||
\ingroup Shell_Modeling
|
||||
*/
|
||||
// ---
|
||||
DEPRECATE_DECLARE_REPLACE(LocalCubePhantom with LocalCubePhantomParam)
|
||||
MATH_FUNC (MbResultType) LocalCubePhantom( const MbSolid & solid,
|
||||
const MbPlacement3D & place,
|
||||
bool bScale,
|
||||
const MbSNameMaker & operNames,
|
||||
MbSolid *& result );
|
||||
|
||||
|
||||
//------------------------------------------------------------------------------
|
||||
/** \brief \ru Построить фантом габаритного куба в локальной системе координат.
|
||||
\en Create a phantom of a bounding box in local coordinate system. \~
|
||||
@@ -475,7 +445,7 @@ MATH_FUNC (MbResultType) SectionPhantom( const MbSectionData & sectionData,
|
||||
\ingroup Algorithms_3D
|
||||
*/
|
||||
// ---
|
||||
//DEPRECATE_DECLARE_REPLACE(SectionPhantom with MbSectionPhantom)
|
||||
DEPRECATE_DECLARE_REPLACE(SectionPhantom with MbSectionPhantom)
|
||||
MATH_FUNC (MbResultType) SectionPhantom( const MbSectionData & sectionData,
|
||||
MbPlacement3D & begPlace,
|
||||
MbCartPoint3D & begGuideP1,
|
||||
|
||||
+3
-504
@@ -926,45 +926,6 @@ MATH_FUNC (MbResultType) CutSolidArrayByBorders( MbSolid &
|
||||
c3d::SolidSPtr & resultSolid );
|
||||
|
||||
|
||||
//------------------------------------------------------------------------------
|
||||
/** \brief \ru Создание составляющих частей штамповки.
|
||||
\en Creation of stamping's components. \~
|
||||
\details \ru Штамповка строится посредством добавления к пластине выпуклой части и последующим вычитанием вогнутой.
|
||||
Данная функция возвращает обе эти части в качестве отдельных тел. Подрезка краями пластины, на которой находятся эскизы, не производится.\n
|
||||
\en The spherical stamp is created by adding a convex part to the plate and subtructing a concave part from it. This function returns these parts as separate solids.
|
||||
It does not cut them with the edges of the face on which the contours lay.\n \~
|
||||
\param[in] face - \ru Грань, контуром которой надо подрезать штамповку.
|
||||
\en A face by which bounding contours the stamp should be cutted. \~
|
||||
\param[in] placement - \ru Локальная система координат центра штамповки.
|
||||
\en A local coordinate system of the center. \~
|
||||
\param[in] contour - \ru Контур штамповки.
|
||||
\en The stamping contour. \~
|
||||
\param[in] params - \ru Параметры штамповки.
|
||||
\en The parameters of stamping. \~
|
||||
\param[in] thickness - \ru Толщина листа.
|
||||
\en The sheet metal thickness. \~
|
||||
\param[in] nameMaker - \ru Именователь.
|
||||
\en An object for naming the new objects. \~
|
||||
\param[out] partToAdd - \ru Добавляемая часть штамповки.
|
||||
\en Added part of the stamp. \~
|
||||
\param[out] partToSubtract - \ru Вычитаемая часть штамповки.
|
||||
\en Deductible part of the stamp. \~
|
||||
\result \ru - Код результата операции.
|
||||
\en - The operation result code. \~
|
||||
\ingroup Sheet_Metal_Modeling
|
||||
*/
|
||||
// ---
|
||||
DEPRECATE_DECLARE_REPLACE( CreateStampParts with 'MbStampPartsParams' argument )
|
||||
MATH_FUNC (MbResultType) CreateStampParts( const MbFace * face,
|
||||
const MbPlacement3D & placement,
|
||||
const MbContour & contour,
|
||||
const MbStampingValues & params,
|
||||
const double thickness,
|
||||
const MbSNameMaker & nameMaker,
|
||||
MbSolid *& partToAdd,
|
||||
MbSolid *& partToSubtract );
|
||||
|
||||
|
||||
//------------------------------------------------------------------------------
|
||||
/** \brief \ru Создание составляющих частей штамповки.
|
||||
\en Creation of stamping's components. \~
|
||||
@@ -988,6 +949,7 @@ MATH_FUNC (MbResultType) CreateStampParts( const MbStampPartsParams & params,
|
||||
//------------------------------------------------------------------------------
|
||||
// устаревшая
|
||||
// ---
|
||||
DEPRECATE_DECLARE_REPLACE( CreateStampParts with 'MbStampPartsParams' argument )
|
||||
MATH_FUNC (MbResultType) CreateStampParts( const MbPlacement3D & placement,
|
||||
const MbContour & contour,
|
||||
const MbStampingValues & params,
|
||||
@@ -997,55 +959,6 @@ MATH_FUNC (MbResultType) CreateStampParts( const MbPlacement3D & placement,
|
||||
MbSolid *& partToSubtract );
|
||||
|
||||
|
||||
//------------------------------------------------------------------------------
|
||||
/** \brief \ru Создание составляющих частей штамповки одного тела другим телом.
|
||||
\en Stamping with a tool solid (punch or die). \~
|
||||
\details \ru Штамповка строится на основе произвольного тела-инструмента и заданной плоской листовой грани.
|
||||
Штамповка подрезается границами листовой грани, которую пересекает тело.\n
|
||||
\en The stamping is created based on a tool body and a flat sheet face.
|
||||
The stamping is trimmed by the boundary of the sheet face which contains the sketch.\n \~
|
||||
\param[in] solid - \ru Листовое тело со штамповкой.
|
||||
\en The sheet solid with stamp. \~
|
||||
\param[in] sameShell - \ru Флаг удаления оболочки исходного тела.
|
||||
\en Whether to delete the shell of the source solid. \~
|
||||
\param[in] targetFace - \ru Грань штамповки.
|
||||
\en The face for stamping. \~
|
||||
\param[in] toolSolid - \ru Оболочка тела-инструмента.
|
||||
\en A shell of tool solid. \~
|
||||
\param[in] sameShellTool - \ru Флаг удаления оболочки тела-инструмента.
|
||||
\en Whether to delete the shell of the tool solid. \~
|
||||
\param[in] punch - \ru Является тело-инструмент пуансоном или матрицей.
|
||||
\en Is tool body a punch or a die. \~
|
||||
\param[in] removeOriginalStamp - \ru Удалить исходную штамповку.
|
||||
\en Remove the original stamping. \~
|
||||
\param[in] pierceFaces - \ru Вскрываемые для вырубки грани инструмента,
|
||||
\en Pierce faces of tool body. \~
|
||||
\param[in] params - \ru Параметры штамповки.
|
||||
\en The parameters of stamping. \~
|
||||
\param[in] nameMaker - \ru Именователь.
|
||||
\en An object for naming the new objects. \~
|
||||
\param[out] partToAdd - \ru Добавляемая часть штамповки.
|
||||
\en Added part of the stamp. \~
|
||||
\param[out] partToSubtract - \ru Вычитаемая часть штамповки.
|
||||
\en Deductible part of the stamp. \~
|
||||
\ingroup Sheet_Metal_Modeling
|
||||
*/
|
||||
// ---
|
||||
DEPRECATE_DECLARE_REPLACE( CreateStampWithToolSolidParts with 'MbStampWithToolPartsParams' argument )
|
||||
MATH_FUNC(MbResultType) CreateStampWithToolSolidParts( MbSolid & solid,
|
||||
MbeCopyMode sameShell,
|
||||
const MbFace & targetFace,
|
||||
MbSolid & toolSolid,
|
||||
MbeCopyMode sameShellTool,
|
||||
bool punch,
|
||||
bool removeOriginalStamp,
|
||||
const RPArray<MbFace> & pierceFaces,
|
||||
const MbToolStampingValues & params,
|
||||
const MbSNameMaker & nameMaker,
|
||||
MbSolid * & partsToAdd,
|
||||
MbSolid * & partsToSubtract );
|
||||
|
||||
|
||||
//------------------------------------------------------------------------------
|
||||
/** \brief \ru Создание составляющих частей штамповки одного тела другим телом.
|
||||
\en Stamping with a tool solid (punch or die). \~
|
||||
@@ -1076,33 +989,6 @@ MATH_FUNC(MbResultType) CreateStampWithToolSolidParts( const c3d::SolidSPtr &
|
||||
MbStampWithToolPartsResult & resultSolids );
|
||||
|
||||
|
||||
//------------------------------------------------------------------------------
|
||||
/** \brief \ru Нормализовать кромки выреза листового тела.
|
||||
\en Normalize cut sides of the sheet solid. \~
|
||||
\details \ru Нормализовать кромки выреза листового тела. \n
|
||||
\en Normalize cut sides of the sheet solid. \n \~
|
||||
\param[in] solid - \ru Исходное тело.
|
||||
\en The source solid. \~
|
||||
\param[in] sameShell - \ru Флаг удаления оболочки исходного тела.
|
||||
\en Whether to delete the shell of the source solid. \~
|
||||
\param[in] nameMaker - \ru Именователь.
|
||||
\en An object for naming the new objects. \~
|
||||
\param[out] result - \ru Результирующее тело.
|
||||
\en The resultant solid. \~
|
||||
\result \ru - Код результата операции.
|
||||
\en - The operation result code. \~
|
||||
\deprecated \ru Функция устарела, взамен использовать #NormalizeCutSides с набором параметров #MbNormalizeCutSidesParams.
|
||||
\en The function is deprecated, instead use #NormalizeCutSides with the parameter list #MbNormalizeCutSidesParams. \~
|
||||
\ingroup Sheet_Metal_Modeling
|
||||
*/
|
||||
// ---
|
||||
DEPRECATE_DECLARE_REPLACE( NormalizeCutSides with 'MbNormalizeCutSidesParams' argument )
|
||||
MATH_FUNC(MbResultType) NormalizeCutSides ( MbSolid & solid,
|
||||
MbeCopyMode sameShell,
|
||||
const MbSNameMaker & nameMaker,
|
||||
MbSolid *& result );
|
||||
|
||||
|
||||
//------------------------------------------------------------------------------
|
||||
/** \brief \ru Нормализовать кромки выреза листового тела.
|
||||
\en Normalize cut sides of the sheet solid. \~
|
||||
@@ -1127,51 +1013,6 @@ MATH_FUNC(MbResultType) NormalizeCutSides ( MbSolid & so
|
||||
c3d::SolidSPtr & result );
|
||||
|
||||
|
||||
//------------------------------------------------------------------------------
|
||||
/** \brief \ru Штамповка.
|
||||
\en Stamping. \~
|
||||
\details \ru Штамповка строится по одному замкнутому или незамкнутому контуру, лежащему на плоской листовой грани.
|
||||
Замкнутый эскиз может лежать на листовой грани полностью или частично,
|
||||
а незамкнутый должен начинаться и заканчиваться за пределами грани.
|
||||
Штамповка подрезается границами листовой грани, на которой располагается эскиз.\n
|
||||
\en The stamping is created from one closed or open contour lying on a flat sheet face.
|
||||
A closed sketch can lie on the sheet face entirely or partially,
|
||||
and an open sketch must have the start and the end points outside the face.
|
||||
The stamping is trimmed by the boundary of the sheet face which contains the sketch.\n \~
|
||||
\param[in] solid - \ru Исходное тело.
|
||||
\en The source solid. \~
|
||||
\param[in] sameShell - \ru Флаг удаления оболочки исходного тела.
|
||||
\en Whether to delete the shell of the source solid. \~
|
||||
\param[in] face - \ru Грань штамповки.
|
||||
\en The face for stamping. \~
|
||||
\param[in] placement - \ru Локальная система координат контура.
|
||||
\en A local coordinate system of the contour. \~
|
||||
\param[in] contour - \ru Контур штамповки.
|
||||
\en The stamping contour. \~
|
||||
\param[in] params - \ru Параметры штамповки.
|
||||
\en The parameters of stamping. \~
|
||||
\param[in] nameMaker - \ru Именователь.
|
||||
\en An object for naming the new objects. \~
|
||||
\param[out] result - \ru Результирующее тело.
|
||||
\en The resultant solid. \~
|
||||
\result \ru - Код результата операции.
|
||||
\en - The operation result code. \~
|
||||
\deprecated \ru Функция устарела, взамен использовать #Stamp с набором параметров #MbStampParams.
|
||||
\en The function is deprecated, instead use #Stamp with the parameter list #MbStampParams. \~
|
||||
\ingroup Sheet_Metal_Modeling
|
||||
*/
|
||||
// ---
|
||||
DEPRECATE_DECLARE_REPLACE( Stamp with 'MbStampParams' argument )
|
||||
MATH_FUNC (MbResultType) Stamp( MbSolid & solid,
|
||||
MbeCopyMode sameShell,
|
||||
const MbFace & face,
|
||||
const MbPlacement3D & placement,
|
||||
const MbContour & contour,
|
||||
const MbStampingValues & params,
|
||||
const MbSNameMaker & nameMaker,
|
||||
MbSolid *& result );
|
||||
|
||||
|
||||
//------------------------------------------------------------------------------
|
||||
/** \brief \ru Штамповка.
|
||||
\en Stamping. \~
|
||||
@@ -1202,53 +1043,6 @@ MATH_FUNC (MbResultType) Stamp( const c3d::SolidSPtr & solid,
|
||||
c3d::SolidSPtr & result );
|
||||
|
||||
|
||||
//------------------------------------------------------------------------------
|
||||
/** \brief \ru Штамповка телом-инструментом (пуансоном или матрицей).
|
||||
\en Stamping with a tool solid (punch or die). \~
|
||||
\details \ru Штамповка строится на основе произвольного тела-инструмента и заданной плоской листовой грани.
|
||||
Штамповка подрезается границами листовой грани, которую пересекает тело.\n
|
||||
\en The stamping is created based on a tool body and a flat sheet face.
|
||||
The stamping is trimmed by the boundary of the sheet face which contains the sketch.\n \~
|
||||
\param[in] solid - \ru Исходное листовое тело.
|
||||
\en The source sheet solid. \~
|
||||
\param[in] sameShell - \ru Флаг удаления оболочки исходного тела.
|
||||
\en Whether to delete the shell of the source solid. \~
|
||||
\param[in] targetFace - \ru Грань штамповки.
|
||||
\en The face for stamping. \~
|
||||
\param[in] toolSolid - \ru Оболочка тела-инструмента.
|
||||
\en A shell of tool solid. \~
|
||||
\param[in] sameShellTool - \ru Флаг удаления оболочки тела-инструмента.
|
||||
\en Whether to delete the shell of the tool solid. \~
|
||||
\param[in] punch - \ru Является тело-инструмент пуансоном или матрицей.
|
||||
\en Is tool body a punch or a die. \~
|
||||
\param[in] pierceFaces - \ru Вскрываемые для вырубки грани инструмента,
|
||||
\en Pierce faces of tool body. \~
|
||||
\param[in] params - \ru Параметры штамповки.
|
||||
\en The parameters of stamping. \~
|
||||
\param[in] nameMaker - \ru Именователь.
|
||||
\en An object for naming the new objects. \~
|
||||
\param[out] result - \ru Результирующее тело.
|
||||
\en The resultant solid. \~
|
||||
\result \ru - Код результата операции.
|
||||
\en - The operation result code. \~
|
||||
\deprecated \ru Функция устарела, взамен использовать #StampWithToolSolid с набором параметров #MbStampWithToolParams.
|
||||
\en The function is deprecated, instead use #StampWithToolSolid with the parameter list #MbStampWithToolParams. \~
|
||||
\ingroup Sheet_Metal_Modeling
|
||||
*/
|
||||
// ---
|
||||
DEPRECATE_DECLARE_REPLACE( StampWithToolSolid with 'MbStampWithToolParams' argument )
|
||||
MATH_FUNC( MbResultType ) StampWithToolSolid( MbSolid & solid,
|
||||
MbeCopyMode sameShell,
|
||||
const MbFace & targetFace,
|
||||
MbSolid & toolSolid,
|
||||
MbeCopyMode sameShellTool,
|
||||
bool punch,
|
||||
const RPArray<MbFace> & pierceFaces,
|
||||
const MbToolStampingValues & params,
|
||||
const MbSNameMaker & nameMaker,
|
||||
MbSolid *& result );
|
||||
|
||||
|
||||
//------------------------------------------------------------------------------
|
||||
/** \brief \ru Штамповка телом-инструментом (пуансоном или матрицей).
|
||||
\en Stamping with a tool solid (punch or die). \~
|
||||
@@ -1301,58 +1095,6 @@ MATH_FUNC (MbResultType) CreateSphericalStampParts( const MbSphericalStampPartsP
|
||||
MbSphericalStampPartsResult & resultSolids );
|
||||
|
||||
|
||||
//------------------------------------------------------------------------------
|
||||
/** \brief \ru Создание составляющих частей сферической штамповки.
|
||||
\en Creation of spherical stamping's components. \~
|
||||
\details \ru Штамповка строится посредством добавления к пластине выпуклой части и последующим вычитанием вогнутой.
|
||||
Данная функция возвращает обе эти части в качестве отдельных тел. Подрезка краями пластины, на которой находятся эскизы, не производится.\n
|
||||
\en The spherical stamp is created by adding a convex part to the plate and subtructing a concave part from it. This function returns these parts as separate solids.
|
||||
It does not cut them with the edges of the face on which the contours lay.\n \~
|
||||
\param[in] face - \ru Грань, контуром которой надо подрезать штамповку.
|
||||
\en A face by which bounding contours the stamp should be cutted. \~
|
||||
\param[in] placement - \ru Локальная система координат центра штамповки.
|
||||
\en A local coordinate system of the center. \~
|
||||
\param[in] params - \ru Параметры штамповки.
|
||||
\en The parameters of stamping. \~
|
||||
\param[in] thickness - \ru Толщина листа.
|
||||
\en The sheet metal thickness. \~
|
||||
\param[in] center - \ru Центр сферической штамповки.
|
||||
\en The center of the stamping. \~
|
||||
\param[in] nameMaker - \ru Именователь.
|
||||
\en An object for naming the new objects. \~
|
||||
\param[out] partToAdd - \ru Добавляемая часть штамповки.
|
||||
\en Added part of the stamp. \~
|
||||
\param[out] partToSubtract - \ru Вычитаемая часть штамповки.
|
||||
\en Deductible part of the stamp. \~
|
||||
\result \ru - Код результата операции.
|
||||
\en - The operation result code. \~
|
||||
\ingroup Sheet_Metal_Modeling
|
||||
*/
|
||||
// ---
|
||||
DEPRECATE_DECLARE_REPLACE( CreateSphericalStampParts with 'MbSphericalStampPartsParams' argument )
|
||||
MATH_FUNC (MbResultType) CreateSphericalStampParts( const MbFace * face,
|
||||
const MbPlacement3D & placement,
|
||||
const MbStampingValues & params,
|
||||
const double thickness,
|
||||
const MbCartPoint & center,
|
||||
const MbSNameMaker & nameMaker,
|
||||
MbSolid *& partToAdd,
|
||||
MbSolid *& partToSubtract );
|
||||
|
||||
|
||||
//------------------------------------------------------------------------------
|
||||
// устаревшая
|
||||
// ---
|
||||
DEPRECATE_DECLARE
|
||||
MATH_FUNC (MbResultType) CreateSphericalStampParts( const MbPlacement3D & placement,
|
||||
const MbStampingValues & params,
|
||||
const double thickness,
|
||||
const MbCartPoint & center,
|
||||
const MbSNameMaker & nameMaker,
|
||||
MbSolid *& partToAdd,
|
||||
MbSolid *& partToSubtract );
|
||||
|
||||
|
||||
//------------------------------------------------------------------------------
|
||||
/** \brief \ru Сферическая штамповка.
|
||||
\en Spherical stamping. \~
|
||||
@@ -1379,45 +1121,6 @@ MATH_FUNC (MbResultType) SphericalStamp( const c3d::SolidSPtr & solid,
|
||||
c3d::SolidSPtr & result );
|
||||
|
||||
|
||||
//------------------------------------------------------------------------------
|
||||
/** \brief \ru Сферическая штамповка.
|
||||
\en Spherical stamping. \~
|
||||
\details \ru Штамповка строится по параметрам и центру, лежащему на плоской листовой грани.
|
||||
Штамповка подрезается границами листовой грани, на которой располагается центр.\n
|
||||
\en The stamping is created by the parameters and a center lying on a flat sheet face.
|
||||
The stamping is trimmed by the boundary of the sheet face which contains the sketch.\n \~
|
||||
\param[in] solid - \ru Исходное тело.
|
||||
\en The source solid. \~
|
||||
\param[in] sameShell - \ru Флаг удаления оболочки исходного тела.
|
||||
\en Whether to delete the shell of the source solid. \~
|
||||
\param[in] face - \ru Грань штамповки.
|
||||
\en The face for stamping. \~
|
||||
\param[in] placement - \ru Локальная система координат центра штамповки.
|
||||
\en A local coordinate system of the center. \~
|
||||
\param[in] params - \ru Параметры штамповки.
|
||||
\en The parameters of stamping. \~
|
||||
\param[in] center - \ru Центр сферической штамповки.
|
||||
\en The center of the stamping. \~
|
||||
\param[in] nameMaker - \ru Именователь.
|
||||
\en An object for naming the new objects. \~
|
||||
\param[out] result - \ru Результирующее тело.
|
||||
\en The resultant solid. \~
|
||||
\result \ru - Код результата операции.
|
||||
\en - The operation result code. \~
|
||||
\ingroup Sheet_Metal_Modeling
|
||||
*/
|
||||
// ---
|
||||
DEPRECATE_DECLARE_REPLACE( SphericalStamp with 'MbSphericalStampParams' argument )
|
||||
MATH_FUNC (MbResultType) SphericalStamp( MbSolid & solid,
|
||||
MbeCopyMode sameShell,
|
||||
const MbFace & face,
|
||||
const MbPlacement3D & placement,
|
||||
const MbStampingValues & params,
|
||||
const MbCartPoint & center,
|
||||
const MbSNameMaker & nameMaker,
|
||||
MbSolid *& result );
|
||||
|
||||
|
||||
//------------------------------------------------------------------------------
|
||||
/** \brief \ru Создание составляющих частей буртика.
|
||||
\en Creation of bead's components. \~
|
||||
@@ -1459,20 +1162,6 @@ MATH_FUNC (MbResultType) CreateBeadParts( const MbFace * face,
|
||||
MbSolid *& partToSubtract );
|
||||
|
||||
|
||||
//------------------------------------------------------------------------------
|
||||
/// \deprecated \ru Метод устарел. \en The method is deprecated.
|
||||
// ---
|
||||
DEPRECATE_DECLARE
|
||||
MATH_FUNC (MbResultType) CreateBeadParts( const MbPlacement3D & placement,
|
||||
const RPArray<MbContour> & contours,
|
||||
const SArray<MbCartPoint> & centers,
|
||||
const MbBeadValues & params,
|
||||
const double thinkness,
|
||||
const MbSNameMaker & nameMaker,
|
||||
MbSolid *& partToAdd,
|
||||
MbSolid *& partToSubtract );
|
||||
|
||||
|
||||
//------------------------------------------------------------------------------
|
||||
/** \brief \ru Буртик.
|
||||
\en A bead. \~
|
||||
@@ -1516,18 +1205,6 @@ MATH_FUNC (MbResultType) CreateBead( MbSolid & solid,
|
||||
MbSolid *& result );
|
||||
|
||||
|
||||
/// \deprecated \ru Метод устарел. \en The method is deprecated.
|
||||
DEPRECATE_DECLARE
|
||||
MATH_FUNC (MbResultType) CreateBead( MbSolid & solid,
|
||||
MbeCopyMode sameShell,
|
||||
const MbFace & face,
|
||||
const MbPlacement3D & placement,
|
||||
const RPArray<MbContour> & contours,
|
||||
const MbBeadValues & params,
|
||||
const MbSNameMaker & nameMaker,
|
||||
MbSolid *& result );
|
||||
|
||||
|
||||
//------------------------------------------------------------------------------
|
||||
/** \brief \ru Создание составляющих частей жалюзи.
|
||||
\en Creation of jalousie's components. \~
|
||||
@@ -1566,19 +1243,6 @@ MATH_FUNC (MbResultType) CreateJalousieParts( const MbFace * fac
|
||||
MbSolid *& partToSubtract );
|
||||
|
||||
|
||||
//------------------------------------------------------------------------------
|
||||
/// \deprecated \ru Метод устарел. \en The method is deprecated.
|
||||
// ---
|
||||
DEPRECATE_DECLARE
|
||||
MATH_FUNC (MbResultType) CreateJalousieParts( const MbPlacement3D & placement,
|
||||
const RPArray<MbLineSegment> & segments,
|
||||
const MbJalousieValues & params,
|
||||
const double thickness,
|
||||
const MbSNameMaker & nameMaker,
|
||||
MbSolid *& partToAdd,
|
||||
MbSolid *& partToSubtract );
|
||||
|
||||
|
||||
//------------------------------------------------------------------------------
|
||||
/** \brief \ru Жалюзи.
|
||||
\en Jalousie. \~
|
||||
@@ -2054,48 +1718,6 @@ MATH_FUNC (bool) CalculateConicAxisLine( const MbFace & face,
|
||||
MbLineSegment & axisLineSegment );
|
||||
|
||||
|
||||
//------------------------------------------------------------------------------
|
||||
/** \brief \ru Рассчитать осевую линию разогнутых сгибов.
|
||||
\en Calculate the centerline of an unbent bend. \~
|
||||
\details \ru Возвращает трёхмерную осевую линию, лежащую на разогнутой грани сгиба.\n
|
||||
\en Returns the 3D centerline that lies on the unbent face of the bend.\n \~
|
||||
\deprecated \ru Функция устарела, взамен использовать #BuildBends3DCenterlines с параметром #MbBends3DLinesParams.
|
||||
\en The function is deprecated, instead use #BuildBends3DCenterlines with the parameter #MbBends3DLinesParams. \~
|
||||
\param[in] bendFaces - \ru Грани разогнутых сгибов, для которых строить линии сгиба.
|
||||
\en Sheet faces of unfolded bends, that need constraction of the axis lines. \~
|
||||
\param[out] axisLineSegments - \ru Искомая осевая линия.
|
||||
\en The required centerline. \~
|
||||
\return \ru true - в случае успеха операции, false - в противном случае.
|
||||
\en True if the operation succeeded, otherwise false. \~
|
||||
\ingroup Sheet_Metal_Modeling
|
||||
*/
|
||||
// ---
|
||||
DEPRECATE_DECLARE_REPLACE( BuildBends3DCenterlines with MbBends3DLinesParams )
|
||||
MATH_FUNC (bool) BuildBends3DAxisLines( const RPArray<MbFace> & bendFaces,
|
||||
RPArray<MbLineSegment3D> & axisLineSegments );
|
||||
|
||||
|
||||
//------------------------------------------------------------------------------
|
||||
/** \brief \ru Рассчитать осевые линии разогнутых сгибов.
|
||||
\en Calculate the centerlines of unfolded bends. \~
|
||||
\details \ru Возвращает трёхмерные осевые линии, лежащие на разогнутых гранях сгибов.\n
|
||||
\en Returns the 3D centerlines that lies on the unbent faces of the bends.\n \~
|
||||
\deprecated \ru Функция устарела, взамен использовать #BuildBends3DCenterlines с параметром #MbBends3DLinesParams.
|
||||
\en The function is deprecated, instead use #BuildBends3DCenterlines with the parameter #MbBends3DLinesParams. \~
|
||||
\param[in] bendFaces - \ru Грани разогнутых сгибов, для которых строить линии сгиба.
|
||||
\en Sheet faces of unfolded bends, that need constraction of the axis lines. \~
|
||||
\param[out] centerlines - \ru Искомые осевые линии.
|
||||
\en The required centerlines. \~
|
||||
\return \ru true - в случае успеха операции, false - в противном случае.
|
||||
\en True if the operation succeeded, otherwise false. \~
|
||||
\ingroup Sheet_Metal_Modeling
|
||||
*/
|
||||
// ---
|
||||
DEPRECATE_DECLARE_REPLACE( BuildBends3DCenterlines with MbBends3DLinesParams )
|
||||
MATH_FUNC (bool) BuildBends3DCenterlines( const RPArray<MbFace> & bendFaces,
|
||||
RPArray<MbCurve3D> & centerlines );
|
||||
|
||||
|
||||
//------------------------------------------------------------------------------
|
||||
/** \brief \ru Рассчитать осевые линии разогнутых сгибов.
|
||||
\en Calculate the centerlines of unfolded bends. \~
|
||||
@@ -2137,7 +1759,7 @@ MATH_FUNC (bool) BuildBends3DCenterlines( const MbBends3DLinesParams & params,
|
||||
\ingroup Sheet_Metal_Modeling
|
||||
*/
|
||||
// ---
|
||||
//DEPRECATE_DECLARE_REPLACE( GetParamsForCloseCorner with MbCloseCornerParams and MbCloseCornerResults arguments )
|
||||
DEPRECATE_DECLARE_REPLACE( GetParamsForCloseCorner with MbCloseCornerParams and MbCloseCornerResults arguments )
|
||||
MATH_FUNC (bool) GetParamsForCloseCorner( const RPArray<MbFace> & facesPlus,
|
||||
const RPArray<MbFace> & facesMinus,
|
||||
MbClosedCornerValues & parameters,
|
||||
@@ -2167,7 +1789,7 @@ MATH_FUNC (bool) GetParamsForCloseCorner( const RPArray<MbFace> & facesPlus
|
||||
\ingroup Sheet_Metal_Modeling
|
||||
*/
|
||||
// ---
|
||||
//DEPRECATE_DECLARE_REPLACE( GetParamsForCloseCorner with MbCloseCornerParams and MbCloseCornerResults arguments )
|
||||
DEPRECATE_DECLARE_REPLACE( GetParamsForCloseCorner with MbCloseCornerParams and MbCloseCornerResults arguments )
|
||||
MATH_FUNC (bool) GetParamsForCloseCorner( const MbCurveEdge & selectedEdgePlus,
|
||||
const MbCurveEdge & selectedEdgeMinus,
|
||||
MbClosedCornerValues & parameters,
|
||||
@@ -2545,50 +2167,6 @@ private:
|
||||
};
|
||||
|
||||
|
||||
//------------------------------------------------------------------------------
|
||||
/** \brief \ru Создание элементов ребра жёсткости листового тела.
|
||||
\en Create rib parts of a sheet solid. \~
|
||||
\details \ru Создание элементов ребра жёсткости листового тела. \n
|
||||
По заданному контуру функция строит ребро жёсткости а затем вычленяет составляющие его элементы, заделывая места разрыва. \n
|
||||
\en Create rib parts of a sheet solid. \n
|
||||
The function creates a rib from a given contour and then extructs its elements from the body, healing rip borders with patches. \n \~
|
||||
\deprecated \ru Функция устарела, взамен использовать #SheetRibParts с набором параметров #MbSheetRibSolidParams.
|
||||
\en The function is deprecated, instead use #SheetRibParts with the parameter list #MbSheetRibSolidParams. \~
|
||||
\param[in] solid - \ru Исходное листовое тело.
|
||||
\en The source sheet solid. \~
|
||||
\param[in] sameShell - \ru Режим копирования входного тела.
|
||||
\en Whether to copy the input solid. \~
|
||||
\param[in] place - \ru Система координат образующего контура.
|
||||
\en The generating contour coordinate system. \~
|
||||
\param[in] contour - \ru Формообразующий контур на плоскости XY системы координат place.
|
||||
\en The generating contour on XY-plane of coordinate system 'place'. \~
|
||||
\param[in] index - \ru Индекс сегмента в контуре, от которого будет установлено направление уклона.
|
||||
\en Index of a segment in the contour at which the inclination direction will be set. \~
|
||||
\param[in] pars - \ru Параметры листового ребра жёсткости.
|
||||
\en Parameters of a sheet rib. \~
|
||||
\param[in] names - \ru Именователь.
|
||||
\en An object for naming the new objects. \~
|
||||
\param[out] partToAdd - \ru Добавляемый элемент ребра.
|
||||
\en The adding rib element. \~
|
||||
\param[out] partToSubtract - \ru Вычитаемый элемент ребра.
|
||||
\en The subtracting rib element. \~
|
||||
\return \ru Возвращает код результата операции.
|
||||
\en Returns operation result code. \~
|
||||
\ingroup Sheet_Metal_Modeling
|
||||
*/
|
||||
// ---
|
||||
DEPRECATE_DECLARE_REPLACE( SheetRibParts with MbSheetRibSolidParams )
|
||||
MATH_FUNC (MbResultType) SheetRibParts( MbSolid & solid,
|
||||
MbeCopyMode sameShell,
|
||||
const MbPlacement3D & place,
|
||||
const MbContour & contour,
|
||||
size_t index,
|
||||
SheetRibValues & pars,
|
||||
const MbSNameMaker & names,
|
||||
MbSolid *& partToAdd,
|
||||
MbSolid *& partToSubtract );
|
||||
|
||||
|
||||
//------------------------------------------------------------------------------
|
||||
/** \brief \ru Создание элементов ребра жёсткости листового тела.
|
||||
\en Create rib parts of a sheet solid. \~
|
||||
@@ -2618,49 +2196,6 @@ MATH_FUNC (MbResultType) SheetRibParts( const c3d::SolidSPtr & solid,
|
||||
c3d::SolidSPtr & partToSubtract );
|
||||
|
||||
|
||||
//------------------------------------------------------------------------------
|
||||
/** \brief \ru Создание тела с листовым ребром жесткости.
|
||||
\en Create a sheet solid with rib. \~
|
||||
\details \ru Создать тело с листовым ребром жёсткости. \n
|
||||
По заданному контуру функция строит ребро жёсткости и объединяет его с исходным телом.
|
||||
Сегмент контура с указанным номером устанавливает вектор уклона. \n
|
||||
\en Create a sheet solid with a sheet rib. \n
|
||||
The function creates a rib from a given contour and unites it with the source solid.
|
||||
The segment of the contour with the given number determines the slope vector. \n \~
|
||||
\deprecated \ru Функция устарела, взамен использовать #SheetRibSolid с набором параметров #MbSheetRibSolidParams.
|
||||
\en The function is deprecated, instead use #SheetRibSolid with the parameter list #MbSheetRibSolidParams. \~
|
||||
\param[in] solid - \ru Исходное листовое тело.
|
||||
\en The source sheet solid. \~
|
||||
\param[in] sameShell - \ru Режим копирования входного тела.
|
||||
\en Whether to copy the input solid. \~
|
||||
\param[in] place - \ru Система координат образующего контура.
|
||||
\en The generating contour coordinate system. \~
|
||||
\param[in] contour - \ru Формообразующий контур на плоскости XY системы координат place.
|
||||
\en The generating contour on XY-plane of coordinate system 'place'. \~
|
||||
\param[in] index - \ru Индекс сегмента в контуре, от которого будет установлено направление уклона.
|
||||
\en Index of a segment in the contour at which the inclination direction will be set. \~
|
||||
\param[in] pars - \ru Параметры листового ребра жёсткости.
|
||||
\en Parameters of a sheet rib. \~
|
||||
\param[in] names - \ru Именователь.
|
||||
\en An object for naming the new objects. \~
|
||||
\param[out] result - \ru Построенное тело.
|
||||
\en The resultant solid. \~
|
||||
\return \ru Возвращает код результата операции.
|
||||
\en Returns operation result code. \~
|
||||
\ingroup Sheet_Metal_Modeling
|
||||
*/
|
||||
// ---
|
||||
DEPRECATE_DECLARE_REPLACE( SheetRibSolid with MbSheetRibSolidParams )
|
||||
MATH_FUNC (MbResultType) SheetRibSolid( MbSolid & solid,
|
||||
MbeCopyMode sameShell,
|
||||
const MbPlacement3D & place,
|
||||
const MbContour & contour,
|
||||
size_t index,
|
||||
SheetRibValues & pars,
|
||||
const MbSNameMaker & names,
|
||||
MbSolid *& result );
|
||||
|
||||
|
||||
//------------------------------------------------------------------------------
|
||||
/** \brief \ru Создание тела с листовым ребром жесткости.
|
||||
\en Create a sheet solid with rib. \~
|
||||
@@ -2782,42 +2317,6 @@ MATH_FUNC (MbResultType) RemoveOperationResult( MbSolid &
|
||||
SPtr<MbSolid> & result );
|
||||
|
||||
|
||||
//------------------------------------------------------------------------------
|
||||
/** \brief \ru Преобразовать тело в листовой металл.
|
||||
\en Construct sheet metal solid based on an arbitrary solid. \~
|
||||
\details \ru Операция строит листовое тело на базе произвольного тела.\n
|
||||
\en The operation builds a sheet metal solid based on an arbitrary solid.\n \~
|
||||
\param[in] solid - \ru Исходное тело.
|
||||
\en The source solid. \~
|
||||
\param[in] sameShell - \ru Флаг удаления оболочки исходного тела.
|
||||
\en Whether to delete the shell of the source solid. \~
|
||||
\param[in] initFace - \ru Исходная грань для построения листового тела.
|
||||
\en The initial face for sheet metall solid building. \~
|
||||
\param[in] sense - \ru Направление придания толщины относительно нормали исходной грани.
|
||||
\en Direction of sheet metal building relative to initial face normal. \~
|
||||
\param[in,out] parameters - \ru Параметры операции.
|
||||
\en Operation parameters. \~
|
||||
\param[in] nameMaker - \ru Именователь.
|
||||
\en An object for naming the new objects. \~
|
||||
\param[out] result - \ru Результирующее тело.
|
||||
\en The resultant solid. \~
|
||||
\result \ru - Код результата операции.
|
||||
\en - The operation result code. \~
|
||||
\deprecated \ru Функция устарела, взамен использовать #ConvertSolidToSheetMetal с набором параметров #MbSolidToSheetMetalParams.
|
||||
\en The function is deprecated, instead use #ConvertSolidToSheetMetal with the parameter list #MbSolidToSheetMetalParams. \~
|
||||
\ingroup Sheet_Metal_Modeling
|
||||
*/
|
||||
// ---
|
||||
DEPRECATE_DECLARE_REPLACE( ConvertSolidToSheetMetal with 'MbSolidToSheetMetalParams' argument )
|
||||
MATH_FUNC (MbResultType) ConvertSolidToSheetMetal( MbSolid & solid,
|
||||
const MbeCopyMode sameShell,
|
||||
const MbFace & initFace,
|
||||
bool sense,
|
||||
MbSolidToSheetMetalValues & parameters,
|
||||
const MbSNameMaker & nameMaker,
|
||||
MbSolid *& result );
|
||||
|
||||
|
||||
//------------------------------------------------------------------------------
|
||||
/** \brief \ru Преобразовать тело в листовой металл.
|
||||
\en Construct sheet metal solid based on an arbitrary solid. \~
|
||||
|
||||
+12
-12
@@ -164,7 +164,7 @@ MATH_FUNC (MbResultType) OffsetShell( MbSolid & solid,
|
||||
\ingroup Shell_Modeling
|
||||
*/
|
||||
// ---
|
||||
//DEPRECATE_DECLARE_REPLACE( NurbsSurfacesShell with MbNurbsSurfacesShellParams )
|
||||
DEPRECATE_DECLARE_REPLACE( NurbsSurfacesShell with MbNurbsSurfacesShellParams )
|
||||
MATH_FUNC (MbResultType) NurbsSurfacesShell( NurbsSurfaceValues & params,
|
||||
const MbSNameMaker & operNames,
|
||||
bool isPhantom,
|
||||
@@ -213,7 +213,7 @@ MATH_FUNC (MbResultType) NurbsSurfacesShell( MbNurbsSurfacesShellParams & params
|
||||
\ingroup Shell_Modeling
|
||||
*/
|
||||
// ---
|
||||
//DEPRECATE_DECLARE_REPLACE( MeshShell with MbMeshShellParameters )
|
||||
DEPRECATE_DECLARE_REPLACE( MeshShell with MbMeshShellParameters )
|
||||
MATH_FUNC (MbResultType) MeshShell( MeshSurfaceValues & pars,
|
||||
const MbSNameMaker & operNames,
|
||||
bool isPhantom,
|
||||
@@ -316,7 +316,7 @@ MATH_FUNC (MbResultType) TruncateShell( MbSolid & initSolid,
|
||||
\ingroup Shell_Modeling
|
||||
*/
|
||||
// ---
|
||||
//DEPRECATE_DECLARE_REPLACE( ExtensionShell with MbExtensionShellParams )
|
||||
DEPRECATE_DECLARE_REPLACE( ExtensionShell with MbExtensionShellParams )
|
||||
MATH_FUNC (MbResultType) ExtensionShell( MbSolid & solid,
|
||||
MbeCopyMode sameShell,
|
||||
MbFace & face,
|
||||
@@ -378,7 +378,7 @@ MATH_FUNC (MbResultType) ExtensionShell( MbSolid & solid,
|
||||
\ingroup Shell_Modeling
|
||||
*/
|
||||
// ---
|
||||
//DEPRECATE_DECLARE_REPLACE( RuledShell with RuledShellParams )
|
||||
DEPRECATE_DECLARE_REPLACE( RuledShell with RuledShellParams )
|
||||
MATH_FUNC (MbResultType) RuledShell( RuledSurfaceValues & pars,
|
||||
const MbSNameMaker & operNames,
|
||||
bool isPhantom,
|
||||
@@ -477,7 +477,7 @@ MATH_FUNC (bool) CheckRuledParams( const MbCurve3D & curve,
|
||||
\ingroup Shell_Modeling
|
||||
*/
|
||||
//---
|
||||
//DEPRECATE_DECLARE_REPLACE( JoinShell with MbJoinShellParams )
|
||||
DEPRECATE_DECLARE_REPLACE( JoinShell with MbJoinShellParams )
|
||||
MATH_FUNC (MbResultType) JoinShell( MbSurfaceCurve & curve1,
|
||||
MbSurfaceCurve & curve2,
|
||||
JoinSurfaceValues & parameters,
|
||||
@@ -517,7 +517,7 @@ MATH_FUNC (MbResultType) JoinShell( MbSurfaceCurve & curve1,
|
||||
\ingroup Shell_Modeling
|
||||
*/
|
||||
//---
|
||||
//DEPRECATE_DECLARE_REPLACE( JoinShell with MbJoinShellParams )
|
||||
DEPRECATE_DECLARE_REPLACE( JoinShell with MbJoinShellParams )
|
||||
MATH_FUNC (MbResultType) JoinShell( const RPArray<MbCurveEdge> & edges1,
|
||||
const SArray<bool> & orients1,
|
||||
const RPArray<MbCurveEdge> & edges2,
|
||||
@@ -570,7 +570,7 @@ MATH_FUNC (MbResultType) JoinShell( const MbJoinShellParams & parameters,
|
||||
\ingroup Shell_Modeling
|
||||
*/
|
||||
//---
|
||||
//DEPRECATE_DECLARE_REPLACE( DivideShell with MbDivideShellParams )
|
||||
DEPRECATE_DECLARE_REPLACE( DivideShell with MbDivideShellParams )
|
||||
MATH_FUNC (MbResultType) DivideShell( MbSolid & solid,
|
||||
MbeCopyMode sameShell,
|
||||
const RPArray<MbCurveEdge> & edges,
|
||||
@@ -712,7 +712,7 @@ MATH_FUNC (MbCurve3D *) CreateJoinedCurve( const RPArray<MbCurveEdge> & edges,
|
||||
\en The function is deprecated, use #FacesFillet with #MbFacesFilletParams instead. \~
|
||||
*/
|
||||
// ---
|
||||
//DEPRECATE_DECLARE_REPLACE( FacesFillet with MbFacesFilletParams )
|
||||
DEPRECATE_DECLARE_REPLACE( FacesFillet with MbFacesFilletParams )
|
||||
MATH_FUNC (MbResultType) FacesFillet( const MbSolid & solid1,
|
||||
const MbFace & face1,
|
||||
const MbSolid & solid2,
|
||||
@@ -807,7 +807,7 @@ MATH_FUNC (MbResultType) SurfaceShell( const MbSurface & surface,
|
||||
\ingroup Shell_Modeling
|
||||
*/
|
||||
// ---
|
||||
//DEPRECATE_DECLARE_REPLACE( CutShellSilhouetteContour with MbCutShellSilhouetteParams )
|
||||
DEPRECATE_DECLARE_REPLACE( CutShellSilhouetteContour with MbCutShellSilhouetteParams )
|
||||
MATH_FUNC (MbResultType) CutShellSilhouetteContour( MbSolid & solid,
|
||||
MbeCopyMode sameShell,
|
||||
const MbVector3D & eye,
|
||||
@@ -887,7 +887,7 @@ MATH_FUNC (MbResultType) LatheCurves( const MbLatheCurvesParams & params,
|
||||
\ingroup Shell_Modeling
|
||||
*/
|
||||
// ---
|
||||
//DEPRECATE_DECLARE_REPLACE( LatheCurves )
|
||||
DEPRECATE_DECLARE_REPLACE( LatheCurves )
|
||||
MATH_FUNC (MbResultType) LatheCurves( const MbSolid & solid,
|
||||
const MbAxis3D * axis,
|
||||
double angle,
|
||||
@@ -997,7 +997,7 @@ MATH_FUNC (MbResultType) RectifyFace( const MbFace & face,
|
||||
\ingroup Shell_Modeling
|
||||
*/
|
||||
// ---
|
||||
//DEPRECATE_DECLARE_REPLACE( OctaLattice with MbOctaLatticeParams )
|
||||
DEPRECATE_DECLARE_REPLACE( OctaLattice with MbOctaLatticeParams )
|
||||
MATH_FUNC (MbResultType) OctaLattice( const MbCartPoint3D & point0,
|
||||
const MbCartPoint3D & point1,
|
||||
const MbCartPoint3D & point2,
|
||||
@@ -1081,7 +1081,7 @@ MATH_FUNC( MbResultType ) SectionShell( const c3d::SolidSPtr & solid,
|
||||
\ingroup Shell_Modeling
|
||||
*/
|
||||
// ---
|
||||
//DEPRECATE_DECLARE_REPLACE( SectionShell with 'MbSectionData' argument )
|
||||
DEPRECATE_DECLARE_REPLACE( SectionShell with 'MbSectionData' argument )
|
||||
MATH_FUNC( MbResultType ) SectionShell( MbSolid * solid,
|
||||
MbeCopyMode sameShell,
|
||||
const MbSectionData & data,
|
||||
|
||||
@@ -107,61 +107,6 @@ MATH_FUNC (MbResultType) ElementarySolid( const MbElementarySolidParams & params
|
||||
c3d::SolidSPtr & result );
|
||||
|
||||
|
||||
//------------------------------------------------------------------------------
|
||||
/** \brief \ru Создать тело на основе полигональной модели.
|
||||
\en Create a solid on the basis of a polygonal geometric object. \~
|
||||
\details \ru Создать тело #MbSolid на основе полигональной модели #MbMesh. \n
|
||||
\en Create a solid #MbSolid on the basis of a polygonal geometric object #MbMesh. \n \~
|
||||
\deprecated \ru Функция устарела, взамен использовать #MeshSolid с набором параметров #MbGridShellParams.
|
||||
\en The function is deprecated, instead use #MeshSolid with the parameter list #MbGridShellParams. \~
|
||||
\param[in] mesh - \ru Полигональная модель.
|
||||
\en The polygonal geometric object. \~
|
||||
\param[in] params - \ru Параметры операции.
|
||||
\en Operation parameters. \~
|
||||
\param[in] names - \ru Именователь.
|
||||
\en An object for naming the new objects. \~
|
||||
\param[out] result - \ru Построенное тело.
|
||||
\en The resultant solid. \~
|
||||
\return \ru Возвращает код результата операции.
|
||||
\en Returns operation result code. \~
|
||||
\ingroup Solid_Modeling
|
||||
*/
|
||||
// ---
|
||||
DEPRECATE_DECLARE_REPLACE( MeshSolid with MbGridShellParams )
|
||||
MATH_FUNC (MbResultType) MeshSolid( const MbMesh & mesh,
|
||||
const GridsToShellValues & params,
|
||||
const MbSNameMaker & names,
|
||||
MbSolid *& result,
|
||||
IProgressIndicator * prog = nullptr );
|
||||
|
||||
|
||||
//------------------------------------------------------------------------------
|
||||
/** \brief \ru Создать тело на основе полигональной модели.
|
||||
\en Create a solid on the basis of a polygonal geometric object. \~
|
||||
\details \ru Создать тело #MbSolid на основе полигональной модели #MbMesh. \n
|
||||
\en Create a solid #MbSolid on the basis of a polygonal geometric object #MbMesh. \n \~
|
||||
\deprecated \ru Функция устарела, взамен использовать #MeshSolid с набором параметров #MbGridShellParams.
|
||||
\en The function is deprecated, instead use #MeshSolid with the parameter list #MbGridShellParams. \~
|
||||
\param[in] mesh - \ru Полигональная модель.
|
||||
\en The polygonal geometric object. \~
|
||||
\param[in] params - \ru Параметры операции.
|
||||
\en Operation parameters. \~
|
||||
\param[out] result - \ru Построенное тело.
|
||||
\en The resultant solid. \~
|
||||
\param[in,out] prog - \ru Индикатор прогресса выполнения операции.
|
||||
\en A progress indicator of the operation. \~
|
||||
\return \ru Возвращает код результата операции.
|
||||
\en Returns operation result code. \~
|
||||
\ingroup Solid_Modeling
|
||||
*/
|
||||
// ---
|
||||
DEPRECATE_DECLARE_REPLACE( MeshSolid with MbGridShellParams )
|
||||
MATH_FUNC( MbResultType ) MeshSolid( const MbMesh & mesh,
|
||||
const MbGridShellParams & params,
|
||||
c3d::SolidSPtr & result,
|
||||
IProgressIndicator * prog );
|
||||
|
||||
|
||||
//------------------------------------------------------------------------------
|
||||
/** \brief \ru Создать тело на основе полигональной модели.
|
||||
\en Create a solid on the basis of a polygonal geometric object. \~
|
||||
@@ -206,60 +151,6 @@ MATH_FUNC( MbResultType ) GridSolid( const MbGrid & grid,
|
||||
c3d::SolidSPtr & result );
|
||||
|
||||
|
||||
//------------------------------------------------------------------------------
|
||||
/** \brief \ru Создать тело на основе триангуляции.
|
||||
\en Create a solid on the basis of a triangulation. \~
|
||||
\details \ru Создать тело #MbSolid на основе триангуляции #MbGrid. \n
|
||||
\en Create a solid #MbSolid on the basis of a triangulation #MbGrid. \n \~
|
||||
\deprecated \ru Функция устарела, взамен использовать #GridSolid с набором параметров #MbGridShellParams.
|
||||
\en The function is deprecated, instead use #GridSolid with the parameter list #MbGridShellParams. \~
|
||||
\param[in] grid - \ru Полигональная модель.
|
||||
\en The polygonal geometric object. \~
|
||||
\param[in] params - \ru Параметры операции.
|
||||
\en Operation parameters. \~
|
||||
\param[in] names - \ru Именователь.
|
||||
\en An object for naming the new objects. \~
|
||||
\param[out] result - \ru Построенное тело.
|
||||
\en The resultant solid. \~
|
||||
\param[in,out] prog - \ru Индикатор прогресса выполнения операции.
|
||||
\en A progress indicator of the operation. \~
|
||||
\return \ru Возвращает код результата операции.
|
||||
\en Returns operation result code. \~
|
||||
\ingroup Solid_Modeling
|
||||
*/
|
||||
// ---
|
||||
DEPRECATE_DECLARE_REPLACE( GridSolid with MbGridShellParams )
|
||||
MATH_FUNC( MbResultType ) GridSolid( const MbGrid & grid,
|
||||
const MbGridShellParams & params,
|
||||
c3d::SolidSPtr & result,
|
||||
IProgressIndicator * prog );
|
||||
|
||||
|
||||
//------------------------------------------------------------------------------
|
||||
/** \brief \ru Создать тело на основе коллекции элементов.
|
||||
\en Create a solid on the basis of collection of elements. \~
|
||||
\details \ru Создать тело #MbSolid на основе коллекции элементов #MbCollection. \n
|
||||
\en Create a solid #MbSolid on the basis of collection of elements #MbCollection. \n \~
|
||||
\deprecated \ru Функция устарела, взамен использовать #CollectionSolid с набором параметров #MbGridShellParams.
|
||||
\en The function is deprecated, instead use #CollectionSolid with the parameter list #MbGridShellParams. \~
|
||||
\param[in] collection - \ru Коллекция элементов.
|
||||
\en The elements collection. \~
|
||||
\param[in] params - \ru Параметры операции (в том числе индикатор прогресса).
|
||||
\en The operation parameters (including a progress indicator). \~
|
||||
\param[out] result - \ru Построенное тело.
|
||||
\en The resultant solid. \~
|
||||
\return \ru Возвращает код результата операции.
|
||||
\en Returns operation result code. \~
|
||||
\ingroup Solid_Modeling
|
||||
*/
|
||||
// ---
|
||||
DEPRECATE_DECLARE_REPLACE( CollectionSolid with MbGridShellParams )
|
||||
MATH_FUNC( MbResultType ) CollectionSolid( const MbCollection & collection,
|
||||
const MbGridShellParams & params,
|
||||
c3d::SolidSPtr & result,
|
||||
IProgressIndicator * prog );
|
||||
|
||||
|
||||
//------------------------------------------------------------------------------
|
||||
/** \brief \ru Создать тело на основе коллекции элементов.
|
||||
\en Create a solid on the basis of collection of elements. \~
|
||||
|
||||
@@ -1189,27 +1189,6 @@ MATH_FUNC (MbResultType) CurvesWrapping( const MbCurvesWrappingParams & para
|
||||
c3d::SpaceCurvesSPtrVector & resultCurves );
|
||||
|
||||
|
||||
//-------------------------------------------------------------------------------
|
||||
/** \brief \ru Построить кривые, оборачивающие поверхность.
|
||||
\en Construct curves that wrap the surface. \~
|
||||
\details \ru Построить кривые, оборачивающие поверхность. \n
|
||||
\en Construction of curves that wrap the surface. \n \~
|
||||
\deprecated \ru Функция устарела, взамен использовать #CurvesWrapping с умными указателями.
|
||||
\en The function is deprecated, instead use #CurvesWrapping with the smart pointers. \~
|
||||
\param[in] parameters - \ru Параметры #MbCurvesWrappingParams для переноса копий двумерных кривых на другой носитель.
|
||||
\en Parameters #MbCurvesWrappingParams for transferring copies of two-dimensional curves on another medium. \~
|
||||
\param[out] resultCurves - \ru Построенные 3д-кривые на присланной поверхности.
|
||||
\en Constructed 3d-curves based on the input surface. \~
|
||||
\return \ru Возвращает код результата операции.
|
||||
\en Returns operation result code. \~
|
||||
\ingroup Curve3D_Modeling
|
||||
*/
|
||||
// ---
|
||||
DEPRECATE_DECLARE_REPLACE( CurvesWrapping with SpaceCurvesSPtrVector or PlaneCurvesSPtrVector )
|
||||
MATH_FUNC (MbResultType) CurvesWrapping( const MbCurvesWrappingParams & parameters,
|
||||
RPArray<MbCurve3D> & resultCurves );
|
||||
|
||||
|
||||
//-------------------------------------------------------------------------------
|
||||
/** \brief \ru Построить развертку кривой/контура на плоскость.
|
||||
\en Construct a unwrapping curve/contour. \~
|
||||
@@ -1246,27 +1225,6 @@ MATH_FUNC (MbResultType) CurvesUnwrapping( const MbCurvesWrappingParams & pa
|
||||
c3d::SpaceCurvesSPtrVector & resultCurves );
|
||||
|
||||
|
||||
//-------------------------------------------------------------------------------
|
||||
/** \brief \ru Построить развертку кривой/контура на плоскость.
|
||||
\en Construct a unwrapping curve/contour. \~
|
||||
\details \ru Построение развертки кривой/контура на плоскость. \n
|
||||
\en Construction unwrapping of the curve/contour on a plane. \n \~
|
||||
\deprecated \ru Функция устарела, взамен использовать #CurvesWrapping с умными указателями.
|
||||
\en The function is deprecated, instead use #CurvesWrapping with the smart pointers. \~
|
||||
\param[in] params - \ru Параметры разворачивания #MbCurvesWrappingParams.
|
||||
\en Unwrapping parameters #MbCurvesWrappingParams. \~
|
||||
\param[in] resultCurves - \ru Развёрнутые 3д-кривые на присланной плоскости.
|
||||
\en Unwrapped 3d-curves on the input plane. \~
|
||||
\return \ru Возвращает код результата операции.
|
||||
\en Returns operation result code. \~
|
||||
\ingroup Curve3D_Modeling
|
||||
*/
|
||||
// ---
|
||||
DEPRECATE_DECLARE_REPLACE( CurvesUnwrapping with SpaceCurvesSPtrVector or PlaneCurvesSPtrVector )
|
||||
MATH_FUNC (MbResultType) CurvesUnwrapping( const MbCurvesWrappingParams & parameters,
|
||||
RPArray<MbCurve3D> & resultCurves );
|
||||
|
||||
|
||||
//------------------------------------------------------------------------------
|
||||
/** \brief \ru Создать кривую или контур на поверхности грани по заданным рёбрам.
|
||||
\en Construct a curve or contour on the surface of a face along the specified edges. \~
|
||||
|
||||
@@ -305,8 +305,6 @@ typedef MbItemItemDist<double, double> MbCurvCurvDist;
|
||||
typedef MbItemItemDist<double, MbCartPoint> MbCurvSurfDist;
|
||||
typedef MbItemItemDist<MbCartPoint, double> MbSurfCurvDist;
|
||||
typedef MbItemItemDist<MbCartPoint, MbCartPoint> MbSurfSurfDist;
|
||||
DEPRECATE_DECLARE_REPLACE( MbSurfSurfDist )
|
||||
typedef MbSurfSurfDist MbSurfDist; // old
|
||||
|
||||
|
||||
//------------------------------------------------------------------------------
|
||||
@@ -533,11 +531,7 @@ public:
|
||||
}
|
||||
return false;
|
||||
}
|
||||
DEPRECATE_DECLARE_REPLACE( GetItemDistance )
|
||||
bool GetSurfDistance( size_t k, double & d, Param1 & par1, Param2 & par2 ) const
|
||||
{
|
||||
return GetItemDistance( k, d, par1, par2 );
|
||||
}
|
||||
|
||||
/// \ru Получить расстояние и точки на поверхностях. \en Get distance and points on surface.
|
||||
bool GetItemDistance( size_t k, double & d, bool & plus, Param1 & par1, Param2 & par2 ) const
|
||||
{
|
||||
@@ -550,11 +544,6 @@ public:
|
||||
}
|
||||
return false;
|
||||
}
|
||||
DEPRECATE_DECLARE_REPLACE( GetItemDistance )
|
||||
bool GetSurfDistance( size_t k, double & d, bool & plus, Param1 & par1, Param2 & par2 ) const
|
||||
{
|
||||
return GetItemDistance( k, d, plus, par1, par2 );
|
||||
}
|
||||
|
||||
/// \ru Добавить расстояние и точки на поверхностях. \en Add distance and points on surface.
|
||||
bool AddItemDistance( double d, bool plus, const Param1 & par1, const Param2 & par2,
|
||||
@@ -596,13 +585,7 @@ public:
|
||||
|
||||
return false;
|
||||
}
|
||||
/// \ru Добавить расстояние и точки на поверхностях. \en Add distance and points on surface.
|
||||
DEPRECATE_DECLARE_REPLACE( AddItemDistance )
|
||||
bool AddSurfDistance( double d, bool plus, const Param1 & par1, const Param2 & par2,
|
||||
bool addEqual, double eps = LENGTH_EPSILON )
|
||||
{
|
||||
return AddItemDistance( d, plus, par1, par2, addEqual, eps );
|
||||
}
|
||||
|
||||
/// \ru Сортировать по возрастанию расстояния. \en Sort by distance in the ascending order.
|
||||
void Sort()
|
||||
{
|
||||
@@ -658,63 +641,6 @@ typedef MbMinMaxItemItemDistances<double, double> MbMinMaxCurvCurvDist
|
||||
typedef MbMinMaxItemItemDistances<double, MbCartPoint> MbMinMaxCurvSurfDists;
|
||||
typedef MbMinMaxItemItemDistances<MbCartPoint, double> MbMinMaxSurfCurvDists;
|
||||
typedef MbMinMaxItemItemDistances<MbCartPoint, MbCartPoint> MbMinMaxSurfSurfDists;
|
||||
DEPRECATE_DECLARE_REPLACE( MbMinMaxSurfSurfDists )
|
||||
typedef MbMinMaxItemItemDistances<MbCartPoint, MbCartPoint> MbMinMaxSurfDists; // old
|
||||
|
||||
|
||||
//------------------------------------------------------------------------------
|
||||
/** \brief \ru Экстремальные расстояния между поверхностями.
|
||||
\en Extreme distances between surfaces. \~
|
||||
\details \ru Экстремальные расстояния между поверхностями по сетке на первой поверхности,
|
||||
причем замеры осуществляются в заданном направлении (если есть вектор)
|
||||
или по нормалям к первой поверхности.
|
||||
\en Extreme distances between surfaces by mesh on the first surface,
|
||||
measurements are performed in a given direction (if the vector is set)
|
||||
or by normals of the first surface. \~
|
||||
\param[in] surface1 - \ru Первая поверхность.
|
||||
\en The first surface. \~
|
||||
\param[in] u1cnt - \ru Количество точек по u (первая поверхность).
|
||||
\en The number of points by u (the first surface) \~
|
||||
\param[in] v1cnt - \ru Количество точек по v (первая поверхность).
|
||||
\en The number of points by v (the first surface) \~
|
||||
\param[in] dir - \ru Вектор заданного направления (если нет, то по нормали).
|
||||
\en The vector of direction (if not set then by the normal). \~
|
||||
\param[in] orient - \ru Относительное направление поиска.
|
||||
\en Relative search direction. \~
|
||||
\param[in] useEqualDistances - \ru Оставлять равные расстояния.
|
||||
\en Whether to use the equal distances. \~
|
||||
\param[in] surface2 - \ru Вторая поверхность.
|
||||
\en The second surface. \~
|
||||
\param[in,out] nMin - \ru Количество регистрируемых минимумов.
|
||||
\en The number of recorded minimums. \~
|
||||
\param[in,out] nMax - \ru Количество регистрируемых максимумов.
|
||||
\en The number of recorded maximums. \~
|
||||
\param[out] allResults - \ru Все результаты.
|
||||
\en All results. \~
|
||||
\param[out] minResults - \ru Результаты-минимумы.
|
||||
\en Results-minimums. \~
|
||||
\param[out] maxResults - \ru Результаты-максимумы.
|
||||
\en Results-maximums. \~
|
||||
\param[in,out] indicator - \ru Интерфейс-индикатор процесса выполнения.
|
||||
\en Interface-indicator of the execution process. \~
|
||||
\return \ru Возвращает результат замера (получен, не получен или же процесс был прерван).
|
||||
\en Returns the result of measurement (obtained, not obtained, or the process has been aborted). \~
|
||||
\ingroup Algorithms_3D
|
||||
*/ // ---
|
||||
DEPRECATE_DECLARE_REPLACE( MinMaxSurfaceSurfaceGridDistances )
|
||||
MATH_FUNC (MbeProcessState) MinMaxDistances( const MbSurface & surface1,
|
||||
ptrdiff_t u1cnt,
|
||||
ptrdiff_t v1cnt,
|
||||
const MbVector3D * dir,
|
||||
const MbeSenseValue & orient,
|
||||
bool useEqualDistances,
|
||||
const MbSurface & surface2,
|
||||
ptrdiff_t & nMin,
|
||||
ptrdiff_t & nMax,
|
||||
MbMinMaxSurfSurfDists & allResults,
|
||||
MbMinMaxSurfSurfDists & minResults,
|
||||
MbMinMaxSurfSurfDists & maxResults,
|
||||
IProgressIndicator * indicator = nullptr );
|
||||
|
||||
|
||||
//------------------------------------------------------------------------------
|
||||
|
||||
@@ -180,117 +180,6 @@ public :
|
||||
/// \ru Получить роли автора. \en Get person's roles.
|
||||
void GetPersonRoles( std::vector<c3d::string_t>& ) const;
|
||||
|
||||
/// \ru Получить роли автора. \en Get person's roles. \~ \deprecated \ru Метод устарел 11.08.2020. \en The method is deprecated 11.08.2020.
|
||||
template< typename T > DEPRECATE_DECLARE void GetRoles( T dest ) const { std::copy( roles.begin(), roles.end(), dest ); }
|
||||
|
||||
/// \ru Добавить роли к приёмнику. \en Add person's roles to destination. \~ \deprecated \ru Метод устарел 11.08.2020. \en The method is deprecated 11.08.2020.
|
||||
template< typename T > DEPRECATE_DECLARE void AddRolesTo( T dest ) const;
|
||||
|
||||
/**
|
||||
\brief \ru Задать данные лица. \en Set person's data. \~
|
||||
\deprecated \ru Метод устарел 11.08.2020. \en The method is deprecated 11.08.2020. \~
|
||||
\param[in] oPersonId - \ru Идентификатор лица. \en Identifier of the person. \~
|
||||
\param[in] oLast - \ru Фамилия. \en Last name. \~
|
||||
\param[in] oFirst - \ru Имя. \en First name. \~
|
||||
\param[in] firstMid - \ru Итератор первой строки, соответствующей отчеству/средним именам. \en First iterator for middle names. \~
|
||||
\param[in] lastMid - \ru Итератор за последней строкой, соответствующей отчеству/средним именам. \en Next after last iterator for middle names. \~
|
||||
\param[in] firstPre - \ru Итератор первой строки, соответствующей титулам предшествующих. \en First iterator for prefix titles. \~
|
||||
\param[in] lastPre - \ru Итератор первой строки, соответствующей титулам предшествующих. \en Next after last iterator for prefix titles. \~
|
||||
\param[in] firstSuf - \ru Итератор первой строки, соответствующей титулам завершающих. \en First iterator for suffix titles. \~
|
||||
\param[in] lastSuf - \ru Итератор первой строки, соответствующей титулам завершающих. \en Next after last iterator for suffix titles. \~
|
||||
*/
|
||||
template< typename InMid, typename InPre, typename InSuf >
|
||||
DEPRECATE_DECLARE void SetPerson( const c3d::string_t& oPersonId, const c3d::string_t& oLast, const c3d::string_t& oFirst,
|
||||
InMid firstMid, InMid lastMid,
|
||||
InPre firstPre, InPre lastPre,
|
||||
InSuf firstSuf, InSuf lastSuf );
|
||||
|
||||
/**
|
||||
\brief \ru Получить данные. \en Get data. \~
|
||||
\deprecated \ru Метод устарел 11.08.2020. \en The method is deprecated 11.08.2020. \~
|
||||
\param[out] oPersonId - \ru Идентификатор лица. \en Identifier of the person. \~
|
||||
\param[out] oLast - \ru Фамилия. \en Last name. \~
|
||||
\param[out] oFirst - \ru Имя. \en First name. \~
|
||||
\param[out] oMid - \ru Итератор для вставки всех строк, соответствующих отчеству/средним именам. \en Insert iterator for middle names. \~
|
||||
\param[out] oPre - \ru Итератор для вставки всех строк, соответствующих титулов предшествующих. \en Insert iterator for prefix titles. \~
|
||||
\param[out] oSuf - \ru Итератор для вставки всех строк, соответствующих титулов завершающих. \en Insert iterator for suffix titles. \~
|
||||
\param[out] oOrgId - \ru Идентификатор организации. \en Identifier of the organization. \~
|
||||
\param[out] oOrgLabel - \ru Название организации. \en Label of the organization. \~
|
||||
\param[out] oOrgDesc - \ru Описание организации. \en Description of the organization. \~
|
||||
*/
|
||||
template< typename OutMid, typename OutPre, typename OutSuf >
|
||||
DEPRECATE_DECLARE void GetData( c3d::string_t& oPersonId, c3d::string_t& oLast, c3d::string_t& oFirst,
|
||||
OutMid oMid, OutPre oPre, OutSuf oSuf,
|
||||
c3d::string_t& oOrgId, c3d::string_t& oOrgLabel, c3d::string_t& oOrgDesc ) const;
|
||||
|
||||
/**
|
||||
\brief \ru Задать данные лица. \en Set person's data. \~
|
||||
\deprecated \ru Метод устарел 11.08.2020. \en The method is deprecated 11.08.2020. \~
|
||||
\param[in] oPersonId - \ru Идентификатор лица. \en Identifier of the person. \~
|
||||
\param[in] oLast - \ru Фамилия. \en Last name. \~
|
||||
\param[in] oFirst - \ru Имя. \en First name. \~
|
||||
\param[in] firstMid - \ru Итератор первой строки, соответствующей отчеству/средним именам. \en First iterator for middle names. \~
|
||||
\param[in] lastMid - \ru Итератор за последней строкой, соответствующей отчеству/средним именам. \en Next after last iterator for middle names. \~
|
||||
\param[in] firstPre - \ru Итератор первой строки, соответствующей титулам предшествующих. \en First iterator for prefix titles. \~
|
||||
\param[in] lastPre - \ru Итератор первой строки, соответствующей титулам предшествующих. \en Next after last iterator for prefix titles. \~
|
||||
\param[in] firstSuf - \ru Итератор первой строки, соответствующей титулам завершающих. \en First iterator for suffix titles. \~
|
||||
\param[in] lastSuf - \ru Итератор первой строки, соответствующей титулам завершающих. \en Next after last iterator for suffix titles. \~
|
||||
*/
|
||||
template< typename InMid, typename InPre, typename InSuf >
|
||||
DEPRECATE_DECLARE void SetPersonInfo( const std::string& oPersonId, const std::string& oLast, const std::string& oFirst,
|
||||
InMid firstMid, InMid lastMid,
|
||||
InPre firstPre, InPre lastPre,
|
||||
InSuf firstSuf, InSuf lastSuf );
|
||||
|
||||
|
||||
/**
|
||||
\brief \ru Получить данные. \en Get data. \~
|
||||
\deprecated \ru Метод устарел 11.08.2020. \en The method is deprecated 11.08.2020. \~
|
||||
\param[out] oPersonId - \ru Идентификатор лица. \en Identifier of the person. \~
|
||||
\param[out] oLast - \ru Фамилия. \en Last name. \~
|
||||
\param[out] oFirst - \ru Имя. \en First name. \~
|
||||
\param[out] oMid - \ru Итератор для вставки всех строк, соответствующих отчеству/средним именам. \en Insert iterator for middle names. \~
|
||||
\param[out] oPre - \ru Итератор для вставки всех строк, соответствующих титулов предшествующих. \en Insert iterator for prefix titles. \~
|
||||
\param[out] oSuf - \ru Итератор для вставки всех строк, соответствующих титулов завершающих. \en Insert iterator for suffix titles. \~
|
||||
\param[out] oOrgId - \ru Идентификатор организации. \en Identifier of the organization. \~
|
||||
\param[out] oOrgLabel - \ru Название организации. \en Label of the organization. \~
|
||||
\param[out] oOrgDesc - \ru Описание организации. \en Description of the organization. \~
|
||||
*/
|
||||
template< typename OutMid, typename OutPre, typename OutSuf >
|
||||
DEPRECATE_DECLARE void GetPOData( std::string& oPersonId, std::string& oLast, std::string& oFirst,
|
||||
OutMid oMid, OutPre oPre, OutSuf oSuf,
|
||||
std::string& oOrgId, std::string& oOrgLabel, std::string& oOrgDesc ) const;
|
||||
|
||||
|
||||
/**
|
||||
\brief \ru Получить данные организации. \en Get organization data. \~
|
||||
\deprecated \ru Метод устарел 11.08.2020. \en The method is deprecated 11.08.2020. \~
|
||||
\param[out] oOrgId - \ru Идентификатор организации. \en Identifier of the organization. \~
|
||||
\param[out] oOrgLabel - \ru Название организации. \en Label of the organization. \~
|
||||
\param[out] oOrgDesc - \ru Описание организации. \en Description of the organization. \~
|
||||
*/
|
||||
DEPRECATE_DECLARE void GetOrganizationInfo( std::string& oOrgId, std::string& oOrgLabel, std::string& oOrgDesc ) const;
|
||||
|
||||
|
||||
/**
|
||||
\brief \ru Задать данные организации. \en Set organization's data. \~
|
||||
\deprecated \ru Метод устарел 11.08.2020. \en The method is deprecated 11.08.2020. \~
|
||||
\param[in] oOrgId - \ru Идентификатор организации. \en Identifier of the organization. \~
|
||||
\param[in] oOrgLabel - \ru Название организации. \en Label of the organization. \~
|
||||
\param[in] oOrgDesc - \ru Описание организации. \en Description of the organization. \~
|
||||
*/
|
||||
DEPRECATE_DECLARE void SetOrganizationInfo( const std::string& initOrgId, const std::string& initOrgLabel, const std::string& initOrgDesc );
|
||||
|
||||
|
||||
/**
|
||||
\brief \ru Задать данные лица и организации в упрощенной форме. \en Set person's and organization's simplified data. \~
|
||||
\deprecated \ru Метод устарел 11.08.2020. \en The method is deprecated 11.08.2020. \~
|
||||
\param[in] person - \ru Фамилия автора. \en Author's second name. \~
|
||||
\param[in] organization - \ru Название организации. \en Label of the organization. \~
|
||||
*/
|
||||
DEPRECATE_DECLARE void SetPersonOrganizationInfo( const std::string& person, const std::string& organization );
|
||||
|
||||
|
||||
private:
|
||||
MbPersonOrganizationInfo & operator = ( const MbPersonOrganizationInfo & ); // forbidden
|
||||
|
||||
@@ -344,9 +233,6 @@ public :
|
||||
/// \ru Получить данные. \en Get data.
|
||||
void GetData( c3d::string_t & oId, c3d::string_t & oName, c3d::string_t & oDesc ) const;
|
||||
|
||||
/// \ru Получить данные. \en Get data. \~ \deprecated \ru Метод устарел 11.08.2020. \en The method is deprecated 11.08.2020.
|
||||
DEPRECATE_DECLARE void GetDataStd( std::string & oId, std::string & oName, std::string & oDesc ) const;
|
||||
|
||||
/// \ru Задать название. \en Set the name of the product.
|
||||
void SetNameC3D( const c3d::string_t& oName );
|
||||
|
||||
@@ -368,113 +254,4 @@ private:
|
||||
|
||||
IMPL_PERSISTENT_OPS( MbProductInfo )
|
||||
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
//
|
||||
// Класс Лицо и организация.
|
||||
//
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
|
||||
//------------------------------------------------------------------------------
|
||||
// Получить данные
|
||||
// ---
|
||||
template< typename OutMid, typename OutPre, typename OutSuf >
|
||||
void MbPersonOrganizationInfo::GetData( c3d::string_t& oPersonId, c3d::string_t& oLast, c3d::string_t& oFirst,
|
||||
OutMid oMid, OutPre oPre, OutSuf oSuf,
|
||||
c3d::string_t& oOrgId, c3d::string_t& oOrgLabel, c3d::string_t& oOrgDesc ) const {
|
||||
oPersonId = personId;
|
||||
oLast = lastName;
|
||||
oFirst = firstName;
|
||||
std::copy( middleNames.begin(), middleNames.end(), oMid );
|
||||
std::copy( prefixTitles.begin(), prefixTitles.end(), oPre );
|
||||
std::copy( suffixTitles.begin(), suffixTitles.end(), oSuf );
|
||||
oOrgId = orgId;
|
||||
oOrgLabel = orgLabel;
|
||||
oOrgDesc = orgDescription;
|
||||
}
|
||||
|
||||
|
||||
//------------------------------------------------------------------------------
|
||||
// Получить данные
|
||||
// ---
|
||||
template< typename OutMid, typename OutPre, typename OutSuf >
|
||||
void MbPersonOrganizationInfo::GetPOData( std::string& oPersonId, std::string& oLast, std::string& oFirst,
|
||||
OutMid oMid, OutPre oPre, OutSuf oSuf,
|
||||
std::string& oOrgId, std::string& oOrgLabel, std::string& oOrgDesc ) const {
|
||||
oPersonId = c3d::ToSTDstring( personId );
|
||||
oLast = c3d::ToSTDstring( lastName );
|
||||
oFirst = c3d::ToSTDstring( firstName );
|
||||
std::list< std::string > tmp;
|
||||
for( std::list<c3d::string_t>::const_iterator itr = middleNames.begin(); itr != middleNames.end(); ++itr )
|
||||
tmp.push_back( c3d::ToSTDstring( *itr ) );
|
||||
std::copy( tmp.begin(), tmp.end(), oMid );
|
||||
tmp.clear();
|
||||
for( std::list<c3d::string_t>::const_iterator itr = prefixTitles.begin(); itr != prefixTitles.end(); ++itr )
|
||||
tmp.push_back( c3d::ToSTDstring( *itr ) );
|
||||
std::copy( tmp.begin(), tmp.end(), oPre );
|
||||
tmp.clear();
|
||||
for( std::list<c3d::string_t>::const_iterator itr = suffixTitles.begin(); itr != suffixTitles.end(); ++itr )
|
||||
tmp.push_back( c3d::ToSTDstring( *itr ) );
|
||||
std::copy( tmp.begin(), tmp.end(), oSuf );
|
||||
oOrgId = c3d::ToSTDstring( orgId );
|
||||
oOrgLabel = c3d::ToSTDstring( orgLabel );
|
||||
oOrgDesc = c3d::ToSTDstring( orgDescription );
|
||||
}
|
||||
|
||||
|
||||
//------------------------------------------------------------------------------
|
||||
// Задать данные лица
|
||||
// ---
|
||||
template< typename InMid, typename InPre, typename InSuf >
|
||||
void MbPersonOrganizationInfo::SetPerson( const c3d::string_t& oPersonId, const c3d::string_t& oLast, const c3d::string_t& oFirst,
|
||||
InMid firstMid, InMid lastMid,
|
||||
InPre firstPre, InPre lastPre,
|
||||
InSuf firstSuf, InSuf lastSuf ) {
|
||||
personId = oPersonId;
|
||||
lastName = oLast;
|
||||
firstName = oFirst;
|
||||
middleNames.assign( firstMid, lastMid );
|
||||
prefixTitles.assign( firstPre, lastPre );
|
||||
suffixTitles.assign( firstSuf, lastSuf );
|
||||
}
|
||||
|
||||
|
||||
//------------------------------------------------------------------------------
|
||||
// Задать данные лица
|
||||
// ---
|
||||
template< typename InMid, typename InPre, typename InSuf >
|
||||
void MbPersonOrganizationInfo::SetPersonInfo( const std::string& oPersonId, const std::string& oLast, const std::string& oFirst,
|
||||
InMid firstMid, InMid lastMid,
|
||||
InPre firstPre, InPre lastPre,
|
||||
InSuf firstSuf, InSuf lastSuf ) {
|
||||
personId = c3d::ToC3Dstring( oPersonId );
|
||||
lastName = c3d::ToC3Dstring( oLast );
|
||||
firstName = c3d::ToC3Dstring( oFirst );
|
||||
std::list< c3d::string_t > tmp;
|
||||
for( InMid itr = firstMid; itr != lastMid; ++itr )
|
||||
tmp.push_back( c3d::ToC3Dstring( *itr ) );
|
||||
middleNames.swap( tmp );
|
||||
tmp.clear();
|
||||
for( InPre itr = firstPre; itr != lastPre; ++itr )
|
||||
tmp.push_back( c3d::ToC3Dstring( *itr ) );
|
||||
prefixTitles.swap(tmp);
|
||||
tmp.clear();
|
||||
for( InSuf itr = firstSuf; itr != lastSuf; ++itr )
|
||||
tmp.push_back( c3d::ToC3Dstring( *itr ) );
|
||||
suffixTitles.swap(tmp);
|
||||
}
|
||||
|
||||
|
||||
//------------------------------------------------------------------------------
|
||||
// Добавить роли к приёмнику.
|
||||
// ---
|
||||
template< typename T >
|
||||
void MbPersonOrganizationInfo::AddRolesTo( T dest ) const {
|
||||
std::list<std::string> tmp;
|
||||
for( std::set<c3d::string_t>::const_iterator itr = roles.begin(); itr != roles.end(); ++itr )
|
||||
tmp.push_back( c3d::ToSTDstring( *itr ) );
|
||||
std::copy( tmp.begin(), tmp.end(), dest );
|
||||
}
|
||||
|
||||
|
||||
#endif // __ATTR_PRODUCT_H
|
||||
|
||||
@@ -33,41 +33,4 @@ enum MbeIntLoopsResult {
|
||||
};
|
||||
|
||||
|
||||
//-------------------------------------------------------------------------------
|
||||
/** \brief \ru Найти пересечение двух кривых.
|
||||
\en Calculate two curves intersection. \~
|
||||
\details \ru Найти пересечение областей двух замкнутых кривых.
|
||||
\en Calculate two closed curves' regions intersection. \~
|
||||
\deprecated \ru Метод устарел. \en The method is deprecated. \~
|
||||
\param[in] iCheck - \ru Признак проверки кривых на касание вершин.
|
||||
\en Attribute of check of curves for vertices tangency. \~
|
||||
\param[in] loop1 - \ru Первая замкнутая кривая.
|
||||
\en The first closed curve. \~
|
||||
\param[in] bOrient1 - \ru Ориентация первой замкнутой кривой:\n
|
||||
true - ее областью считаем внутренность,\n
|
||||
false - внешность.
|
||||
\en The first closed curve orientation:\n
|
||||
true - interior is considered to be the curve's region,\n
|
||||
false - exterior is the curve's region. \~
|
||||
\param[in] loop2 - \ru Вторая замкнутая кривая.
|
||||
\en The second closed curve. \~
|
||||
\param[in] bOrient2 - \ru Ориентация второй замкнутой кривой:\n
|
||||
true - ее областью считаем внутренность,\n
|
||||
false - внешность.
|
||||
\en The second closed curve orientation:\n
|
||||
true - interior is considered to be the curve's region,\n
|
||||
false - exterior is the curve's region. \~
|
||||
\param[out] intLoops - \ru Массив кривых пересечения.
|
||||
\en Intersection curve array. \~
|
||||
\deprecated \ru Метод устарел.
|
||||
\en The method is deprecated. \~
|
||||
\return \ru Код результата пересечения.
|
||||
\en Intersection result code. \~
|
||||
\ingroup Algorithms_2D
|
||||
*/
|
||||
// ---
|
||||
DEPRECATE_DECLARE MATH_FUNC ( MbeIntLoopsResult ) BooleanIntLoops( const MbCurve & loop1, bool bOrient1,
|
||||
const MbCurve & loop2, bool bOrient2,
|
||||
RPArray<MbCurve> & intLoops );
|
||||
|
||||
#endif // __CONTOUR_COMBINE_H
|
||||
@@ -232,6 +232,11 @@ enum eMsgDetail {
|
||||
emd_WarningIncorrectFaceWasNotAddedToShell, ///< \ru Некорректная грань не была добавлена в оболочку. \en Incorrect face was not added to shell.
|
||||
emd_WarningBoundsNotConnectedWithSeams, ///< \ru Границы замкнутой грани не стыкуются со швами. \en Bounds of periodic face not connected with seams.
|
||||
emd_WarningIntCurveWasReplacedBySegment, ///< \ru Кривая пересечения была заменена отрезком. \en Intersection curve was replaced by segment.
|
||||
emd_WarningOpenSolidsNotSupported, ///< \ru Формат не поддерживает запись незамкнутых тел. \en Format does not support export of open solids.
|
||||
emd_WarningOpenMeshesNotSupported, ///< \ru Формат не поддерживает запись незамкнутых полигональных объектов. \en Format does not support export of open meshes.
|
||||
emd_WarningClosedSolidBecameOpenMesh, ///< \ru В результате триангуляции замкнутого тела сформировался незамкнутый полигональный объект. \en Triangulation of closed solid created an open mesh.
|
||||
emd_WarningEmptyMeshSkipped, ///< \ru Пропущен полигональный объект, не содержащий триангуляций. \en Mesh without grids is skipped.
|
||||
emd_WarningTriangulationFailed, ///< \ru Не удалось выполнить триангуляцию. Объект пропущен. \en Triangulation failed. Object is skipped.
|
||||
|
||||
emd_MessageWeightsFilled, ///< \ru Веса заданы. \en Weights are set.
|
||||
|
||||
@@ -269,7 +274,11 @@ enum eMsgDetail {
|
||||
|
||||
emd_ErrorJTDuplicatedTriangles, ///< \ru Сетка содержит дублирующиеся треугольники и не может быть записана. \en Mesh contains duplicate triangles and cannot be written.
|
||||
|
||||
emd_WarningCreateEdgeBadInput ///< \ru Некорректные исходные данные для кривой пересечения. \en Incorrect input data for intersection curve.
|
||||
emd_WarningCreateEdgeBadInput, ///< \ru Некорректные исходные данные для кривой пересечения. \en Incorrect input data for intersection curve.
|
||||
|
||||
emd_PluginGeneralProblem, ///< \ru Сбой общего характера в плагине. \en General plugin fault.
|
||||
emd_PluginLicenceProblem, ///< \ru Ошибка активации плагина. \en Plugin couldn't be activated.
|
||||
emd_PluginFunctionalityLimitation ///< \ru Плагин не обладает требуемой функциональностью. \en Plugin' funtionality doesn't cover the required case.
|
||||
};
|
||||
|
||||
|
||||
|
||||
@@ -64,24 +64,26 @@ enum MbeModelExchangeFormat {
|
||||
*/
|
||||
// ---
|
||||
enum MbeConvResType {
|
||||
cnv_Success = 0, ///< \ru Успешное завершение. \en Success.
|
||||
cnv_Error, ///< \ru Ошибка в процессе конвертирования. \en Error.
|
||||
cnv_UserCanceled, ///< \ru Процесс прерван пользователем. \en Process interrupted by user.
|
||||
cnv_NoBody, ///< \ru Не найдено тел. \en No solids found.
|
||||
cnv_NoObjects, ///< \ru Не найдено объектов. \en No objects found.
|
||||
cnv_FileOpenError, ///< \ru Ошибка открытия файла. \en File open error.
|
||||
cnv_FileWriteError, ///< \ru Ошибка записи файла. \en File write error.
|
||||
cnv_FileDeleteError, ///< \ru Ошибка удаления файла. \en Could not delete file.
|
||||
cnv_ImpossibleReadAssembly,///< \ru Не поддерживает работу со сборками. \en Assemblies are not supported.
|
||||
cnv_LicenseNotFound, ///< \ru Ошибка получения лицензии. \en License check failure.
|
||||
cnv_NotEnoughMemory, ///< \ru Недостаточно памяти. \en Not enough memory.
|
||||
cnv_UnknownExtension ///< \ru Неизвестное расширение файла. \en Unknown file extenstion.
|
||||
cnv_Success = 0, ///< \ru Успешное завершение. \en Success.
|
||||
cnv_PartialSuccess, ///< \ru Успешно обработана только часть объектов. При экспорте некоторые из переданных объектов не соответствуют требованиям формата. \en Only some objects were successfully processed. While export it turned out that some objects don't meet the requirements of the exchange format.
|
||||
cnv_Error, ///< \ru Ошибка в процессе конвертирования. \en Error.
|
||||
cnv_UserCanceled, ///< \ru Процесс прерван пользователем. \en Process interrupted by user.
|
||||
cnv_NoBody, ///< \ru Не найдено тел. \en No solids found.
|
||||
cnv_NoObjects, ///< \ru Не найдено объектов. \en No objects found.
|
||||
cnv_FileOpenError, ///< \ru Ошибка открытия файла. \en File open error.
|
||||
cnv_FileWriteError, ///< \ru Ошибка записи файла. \en File write error.
|
||||
cnv_FileDeleteError, ///< \ru Ошибка удаления файла. \en Could not delete file.
|
||||
cnv_ImpossibleReadAssembly,///< \ru Не поддерживает работу со сборками. \en Assemblies are not supported.
|
||||
cnv_LicenseNotFound, ///< \ru Ошибка получения лицензии. \en License check failure.
|
||||
cnv_NotEnoughMemory, ///< \ru Недостаточно памяти. \en Not enough memory.
|
||||
cnv_UnknownExtension, ///< \ru Неизвестное расширение файла. \en Unknown file extenstion.
|
||||
cnv_UnsupportedVersion ///< \ru Неподдерживаемая версия формата. \en Unsupported format version.
|
||||
};
|
||||
|
||||
|
||||
namespace c3d {
|
||||
|
||||
class C3DExchangeBuffer;
|
||||
class CONV_CLASS C3DExchangeBuffer;
|
||||
|
||||
typedef std::map<c3d::string_t, c3d::string_t> optionNameValuePairs_t; ///< \ru Набор имеованных значений опций. \en The container of named values of options.
|
||||
|
||||
@@ -368,7 +370,7 @@ namespace c3d {
|
||||
\en Prvides data exchange with memory allocation and deallocation control. \~
|
||||
\ingroup Exchange_Interface
|
||||
*/
|
||||
class C3DExchangeBuffer {
|
||||
class CONV_CLASS C3DExchangeBuffer {
|
||||
char* data; ///< \ru Адрес буфера. \en Buffer address.
|
||||
size_t count; ///< \ru Число байт. \en Bytes count.
|
||||
public:
|
||||
|
||||
@@ -57,7 +57,7 @@ namespace JTC {
|
||||
MeshPolygonVector ownFacePolygons;
|
||||
std::map< size_t, std::vector<size_t> > degeneratedTriangles;
|
||||
std::vector<MbCartPoint3D> boundaryPoints;
|
||||
double metricTolerance;
|
||||
double const metricTolerance;
|
||||
public:
|
||||
/// Конструктор
|
||||
TopoMesh();
|
||||
|
||||
@@ -50,12 +50,6 @@ protected :
|
||||
|
||||
public :
|
||||
MbCuttingSolid( const MbShellCuttingParams & cuttingParams, bool sameCutterObject );
|
||||
DEPRECATE_DECLARE
|
||||
MbCuttingSolid( const MbSurface & surface, bool sameSurface, int part,
|
||||
bool closed, const MbMergingFlags & flags, const MbSNameMaker & n ); ///< \deprecated \ru Метод устарел. \en The method is deprecated.
|
||||
DEPRECATE_DECLARE
|
||||
MbCuttingSolid( const MbPlacement3D & place, const MbContour & contour, const MbVector3D & direction, int part,
|
||||
bool closed, const MbMergingFlags & flags, const MbSNameMaker & n ); ///< \deprecated \ru Метод устарел. \en The method is deprecated.
|
||||
private :
|
||||
MbCuttingSolid( const MbCuttingSolid &, MbRegDuplicate * ireg );
|
||||
// \ru Объявление конструктора копирования без реализации, чтобы не было копирования по умолчанию. \en Declaration without implementation of the copy-constructor to prevent copying by default.
|
||||
|
||||
@@ -72,37 +72,6 @@ private :
|
||||
IMPL_PERSISTENT_OPS( MbDuplicationSolid )
|
||||
|
||||
|
||||
//------------------------------------------------------------------------------
|
||||
/** \brief \ru Создать оболочку размножения исходной оболочки.
|
||||
\en Create a shell of duplication of original shell. \~
|
||||
\details \ru По данной оболочке и параметрам размножения построить оболочку как результат объединения копий.\n
|
||||
Одновременно с построением оболочки функция создаёт её строитель. \n
|
||||
\en For a given shell and duplication parameters construct a shell as a result of a union of copies. \n
|
||||
The function simultaneously constructs the shell and creates its constructor.\~
|
||||
\deprecated \ru Метод устарел. Взамен использовать #CreateDuplication с набором параметров #MbDuplicationSolidParams.
|
||||
\en The method is deprecated. Use instead #CreateDuplication with the parameters #MbDuplicationSolidParams.\~
|
||||
\param[in] solid - \ru Исходная оболочка.
|
||||
\en Original face set. \~
|
||||
\param[in] params - \ru Параметры размножения.
|
||||
\en Parameters of duplication. \~
|
||||
\param[in] operNames - \ru Именователь операции.
|
||||
\en An object defining names generation in the operation. \~
|
||||
\param[out] shell - \ru Построенный набор граней.
|
||||
\en Constructed set of faces. \~
|
||||
\param[out] res - \ru Код результата операции.
|
||||
\en Operation result code. \~
|
||||
\result \ru Возвращает строитель, если операция была выполнена успешно.
|
||||
\en Returns the constructor if the operation has been successfully performed. \~
|
||||
\ingroup Solid_Modeling
|
||||
*/
|
||||
DEPRECATE_DECLARE_REPLACE(CreateDuplication with MbDuplicationSolidParams)
|
||||
MATH_FUNC (MbCreator *) CreateDuplication( const MbFaceShell & solid,
|
||||
const DuplicationValues & params,
|
||||
const MbSNameMaker & operNames,
|
||||
MbResultType & res,
|
||||
MbFaceShell *& shell );
|
||||
|
||||
|
||||
//------------------------------------------------------------------------------
|
||||
/** \brief \ru Создать оболочку размножения исходной оболочки.
|
||||
\en Create a shell of duplication of original shell. \~
|
||||
|
||||
@@ -173,87 +173,6 @@ MbElementarySolid::MbElementarySolid( const PointsVector & pnts, ElementaryShell
|
||||
}
|
||||
|
||||
|
||||
//------------------------------------------------------------------------------
|
||||
/** \brief \ru Создать оболочку элементарного тела.
|
||||
\en Create a shell of an elementary solid. \~
|
||||
\details \ru Создать оболочку элементарного тела по набору опорных точек и типу:\n
|
||||
solidType = et_Sphere - шар (3 точки), \n
|
||||
solidType = et_Torus - тор (3 точки), \n
|
||||
solidType = et_Cylinder - цилиндр (3 точки), \n
|
||||
solidType = et_Cone - конус (3 точки), \n
|
||||
solidType = et_Block - блок (4 точки), \n
|
||||
solidType = et_Wedge - клин (4 точки), \n
|
||||
solidType = et_Prism - призма (количество вершин основания+1 точка), \n
|
||||
solidType = et_Pyramid - пирамида (количество вершин основания+1 точка), \n
|
||||
solidType = et_Plate - плита (4 точки). \n
|
||||
Одновременно с построением оболочки функция создаёт её строитель. \n
|
||||
\en Create an elementary solid shell by a set of support points and type:\n
|
||||
solidType = et_Sphere - a sphere (3 points), \n
|
||||
solidType = et_Torus - a torus (3 points), \n
|
||||
solidType = et_Cylinder - a cylinder (3 points), \n
|
||||
solidType = et_Cone - a cone (3 points), \n
|
||||
solidType = et_Block - a block (4 points), \n
|
||||
solidType = et_Wedge - a wedge (4 points), \n
|
||||
solidType = et_Prism - a prism (points count is equal to the base vertices count + 1), \n
|
||||
solidType = et_Pyramid - a pyramid (points count is equal to the base vertices count + 1), \n
|
||||
solidType = et_Plate - a plate (4 points). \n
|
||||
The function simultaneously constructs the shell and creates its constructor. \n \~
|
||||
\deprecated \ru Функция устарела, взамен использовать #CreateElementary с набором параметров #MbElementarySolidParams.
|
||||
\en The function is deprecated, instead use #CreateElementary with the parameter list #MbElementarySolidParams. \~
|
||||
\param[in] points - \ru Набор опорных точек.
|
||||
\en Set of support points. \~
|
||||
\param[in] t - \ru Тип элементарного тела.
|
||||
\en Elementary solid type. \~
|
||||
\param[in] n - \ru Именователь операции.
|
||||
\en An object defining names generation in the operation. \~
|
||||
\param[out] res - \ru Код результата операции.
|
||||
\en Operation result code. \~
|
||||
\param[out] shell - \ru Оболочка - результат построения.
|
||||
\en Shell - the result of construction. \~
|
||||
\result \ru Возвращает строитель.
|
||||
\en Returns the constructor. \~
|
||||
\ingroup Solid_Modeling
|
||||
*/
|
||||
// ---
|
||||
DEPRECATE_DECLARE_REPLACE( CreateElementary with MbElementarySolidParams )
|
||||
MATH_FUNC (MbCreator *) CreateElementary( const SArray<MbCartPoint3D> & points,
|
||||
const ElementaryShellType t,
|
||||
const MbSNameMaker & n,
|
||||
MbResultType & res,
|
||||
c3d::ShellSPtr & shell );
|
||||
|
||||
|
||||
//------------------------------------------------------------------------------
|
||||
/** \brief \ru Создать оболочку элементарного тела.
|
||||
\en Create a shell of an elementary solid. \~
|
||||
\details \ru Создать оболочку элементарного тела по элементарной поверхности.\n
|
||||
Одновременно с построением оболочки функция создаёт её строитель. \n
|
||||
\en Create an elementary solid shell by an elementary surface.\n
|
||||
The function simultaneously constructs the shell and creates its constructor. \n \~
|
||||
\deprecated \ru Функция устарела, взамен использовать #CreateElementary с набором параметров #MbElementarySolidParams.
|
||||
\en The function is deprecated, instead use #CreateElementary with the parameter list #MbElementarySolidParams. \~
|
||||
\param[in] surface - \ru Элементарная поверхность.\n
|
||||
Допускается тип поверхности - шар, тор, цилиндр, конус.
|
||||
\en Elementary surface.\n
|
||||
The acceptable surface types are sphere, torus, cylinder, cone. \~
|
||||
\param[in] n - \ru Именователь операции.
|
||||
\en An object defining names generation in the operation. \~
|
||||
\param[out] res - \ru Код результата операции.
|
||||
\en Operation result code. \~
|
||||
\param[out] shell - \ru Оболочка - результат операции.
|
||||
\en Shell - the result of operation. \~
|
||||
\result \ru Возвращает строитель.
|
||||
\en Returns the constructor. \~
|
||||
\ingroup Solid_Modeling
|
||||
*/
|
||||
// ---
|
||||
DEPRECATE_DECLARE_REPLACE( CreateElementary with MbElementarySolidParams )
|
||||
MATH_FUNC (MbCreator *) CreateElementary( const MbElementarySurface & surface,
|
||||
const MbSNameMaker & n,
|
||||
MbResultType & res,
|
||||
c3d::ShellSPtr & shell );
|
||||
|
||||
|
||||
//------------------------------------------------------------------------------
|
||||
/** \brief \ru Создать оболочку элементарного тела.
|
||||
\en Create a shell of an elementary solid. \~
|
||||
|
||||
@@ -245,7 +245,7 @@ MATH_FUNC (c3d::CreatorSPtr) CreateCurveEvolution( c3d::ShellSPtr &
|
||||
\ingroup Model_Creators
|
||||
*/
|
||||
// ---
|
||||
//DEPRECATE_DECLARE_REPLACE( CreateCurveEvolution with 'MbEvolutionShellParams' argument )
|
||||
DEPRECATE_DECLARE_REPLACE( CreateCurveEvolution with 'MbEvolutionShellParams' argument )
|
||||
MATH_FUNC (MbCreator *) CreateCurveEvolution( MbFaceShell * solid,
|
||||
MbeCopyMode sameShell,
|
||||
const MbSweptData & sweptData,
|
||||
@@ -294,7 +294,7 @@ MATH_FUNC (MbCreator *) CreateCurveEvolution( MbFaceShell * soli
|
||||
\ingroup Model_Creators
|
||||
*/
|
||||
// ---
|
||||
//DEPRECATE_DECLARE_REPLACE( CreateCurveEvolution with 'MbEvolutionShellParams' argument )
|
||||
DEPRECATE_DECLARE_REPLACE( CreateCurveEvolution with 'MbEvolutionShellParams' argument )
|
||||
MATH_FUNC (MbCreator *) CreateCurveEvolution( MbFaceShell * solid,
|
||||
MbeCopyMode sameShell,
|
||||
const MbSweptData & sweptData,
|
||||
|
||||
@@ -21,8 +21,6 @@
|
||||
\details \ru Строитель продления кривой.
|
||||
\en Constructor of curve extension. \~
|
||||
\ingroup Model_Creators
|
||||
\warning \ru В разработке.
|
||||
\en Under development. \~
|
||||
*/
|
||||
// ---
|
||||
class MATH_CLASS MbExtendCurveCreator : public MbCreator
|
||||
@@ -93,8 +91,6 @@ IMPL_PERSISTENT_OPS( MbExtendCurveCreator )
|
||||
\result \ru Возвращает строитель.
|
||||
\en Returns the constructor. \~
|
||||
\ingroup Curve3D_Modeling
|
||||
\warning \ru В разработке.
|
||||
\en Under development. \~
|
||||
*/
|
||||
// ---
|
||||
MATH_FUNC( c3d::CreatorSPtr ) CreateExtendedCurve( const MbCurve3D & sourceCurve,
|
||||
|
||||
@@ -132,7 +132,7 @@ IMPL_PERSISTENT_OPS( MbHoleSolid )
|
||||
\ingroup Model_Creators
|
||||
*/
|
||||
// ---
|
||||
//DEPRECATE_DECLARE_REPLACE( CreateHole with MbHoleSolidParams )
|
||||
DEPRECATE_DECLARE_REPLACE( CreateHole with MbHoleSolidParams )
|
||||
MATH_FUNC (MbCreator *) CreateHole( MbFaceShell * solid,
|
||||
MbeCopyMode sameShell,
|
||||
const MbPlacement3D & place,
|
||||
|
||||
@@ -151,7 +151,7 @@ MATH_FUNC (c3d::CreatorSPtr) CreateCurveLofted( c3d::ShellSPtr & srcS
|
||||
\ingroup Model_Creators
|
||||
*/
|
||||
// ---
|
||||
//DEPRECATE_DECLARE_REPLACE( CreateCurveLofted with 'MbLoftedSolidParams' argument )
|
||||
DEPRECATE_DECLARE_REPLACE( CreateCurveLofted with 'MbLoftedSolidParams' argument )
|
||||
MATH_FUNC (MbCreator *) CreateCurveLofted( MbFaceShell * solid,
|
||||
MbeCopyMode sameShell,
|
||||
SArray<MbPlacement3D> & places,
|
||||
@@ -181,7 +181,7 @@ MATH_FUNC (MbCreator *) CreateCurveLofted( MbFaceShell * solid,
|
||||
\ingroup Model_Creators
|
||||
*/
|
||||
// ---
|
||||
//DEPRECATE_DECLARE_REPLACE( CreateCurveLofted with 'MbLoftedSolidParams' argument )
|
||||
DEPRECATE_DECLARE_REPLACE( CreateCurveLofted with 'MbLoftedSolidParams' argument )
|
||||
MATH_FUNC (MbCreator *) CreateCurveLofted( MbFaceShell * solid,
|
||||
MbeCopyMode sameShell,
|
||||
RPArray<MbSurface> & surfaces,
|
||||
@@ -212,7 +212,7 @@ MATH_FUNC (MbCreator *) CreateCurveLofted( MbFaceShell * solid,
|
||||
\ingroup Model_Creators
|
||||
*/
|
||||
// ---
|
||||
//DEPRECATE_DECLARE_REPLACE( CreateCurveLofted with 'MbLoftedSolidParams' argument )
|
||||
DEPRECATE_DECLARE_REPLACE( CreateCurveLofted with 'MbLoftedSolidParams' argument )
|
||||
MATH_FUNC (MbCreator *) CreateCurveLofted( MbFaceShell * solid,
|
||||
MbeCopyMode sameShell,
|
||||
SArray<MbPlacement3D> & places,
|
||||
@@ -243,7 +243,7 @@ MATH_FUNC (MbCreator *) CreateCurveLofted( MbFaceShell * solid,
|
||||
\ingroup Model_Creators
|
||||
*/
|
||||
// ---
|
||||
//DEPRECATE_DECLARE_REPLACE( CreateCurveLofted with 'MbLoftedSolidParams' argument )
|
||||
DEPRECATE_DECLARE_REPLACE( CreateCurveLofted with 'MbLoftedSolidParams' argument )
|
||||
MATH_FUNC (MbCreator *) CreateCurveLofted( MbFaceShell * solid,
|
||||
MbeCopyMode sameShell,
|
||||
RPArray<MbSurface> & surfaces,
|
||||
|
||||
@@ -114,7 +114,7 @@ IMPL_PERSISTENT_OPS( MbStampRibSolid )
|
||||
\ingroup Model_Creators
|
||||
*/
|
||||
// ---
|
||||
//DEPRECATE_DECLARE_REPLACE( CreateSheetRib with MbSheetRibSolidParams )
|
||||
DEPRECATE_DECLARE_REPLACE( CreateSheetRib with MbSheetRibSolidParams )
|
||||
MATH_FUNC (MbCreator *) CreateSheetRib( MbFaceShell * solid,
|
||||
MbeCopyMode sameShell,
|
||||
const MbPlacement3D & place,
|
||||
|
||||
@@ -131,7 +131,7 @@ IMPL_PERSISTENT_OPS( MbSphericalStampSolid )
|
||||
\ingroup Model_Creators
|
||||
*/
|
||||
// ---
|
||||
//DEPRECATE_DECLARE_REPLACE( CreateSphericalStamp with 'MbSphericalStampParams' argument )
|
||||
DEPRECATE_DECLARE_REPLACE( CreateSphericalStamp with 'MbSphericalStampParams' argument )
|
||||
MATH_FUNC (MbCreator *) CreateSphericalStamp( SPtr<MbFaceShell> & solid,
|
||||
const MbeCopyMode sameShell,
|
||||
const MbFace * face,
|
||||
|
||||
@@ -130,7 +130,7 @@ IMPL_PERSISTENT_OPS( MbUserStampSolid )
|
||||
\ingroup Model_Creators
|
||||
*/
|
||||
// ---
|
||||
//DEPRECATE_DECLARE_REPLACE( CreateUserStamp with 'MbStampWithToolParams' argument )
|
||||
DEPRECATE_DECLARE_REPLACE( CreateUserStamp with 'MbStampWithToolParams' argument )
|
||||
MATH_FUNC (MbCreator *) CreateUserStamp( MbFaceShell * initialShell, // Исходная оболочка,
|
||||
const MbeCopyMode sameShell, // флаг способа использования исходной оболочки,
|
||||
const MbFace & targetFace, // грань штамповки,
|
||||
@@ -211,7 +211,7 @@ MATH_FUNC( c3d::CreatorSPtr ) CreateUserStamp( c3d::ShellSPtr & i
|
||||
\ingroup Model_Creators
|
||||
*/
|
||||
// ---
|
||||
//DEPRECATE_DECLARE_REPLACE( StampWithToolSolid with 'MbStampWithToolPartsParams' argument )
|
||||
DEPRECATE_DECLARE_REPLACE( StampWithToolSolid with 'MbStampWithToolPartsParams' argument )
|
||||
MbFaceShell * MakeUserStampShellForStampParts ( MbFaceShell * initialShell, // Исходная оболочка,
|
||||
const MbeCopyMode sameShell, // флаг способа использования исходной оболочки,
|
||||
const MbFace & targetFace, // грань штамповки,
|
||||
|
||||
@@ -21,8 +21,8 @@
|
||||
*/
|
||||
// ---
|
||||
class MATH_CLASS MbUnwrapCurveCreator : public MbCreator {
|
||||
/// \ru Параметры разворачивания. \en Parameters of the unwrapping.
|
||||
MbCurvesWrappingParams _params;
|
||||
private:
|
||||
MbCurvesWrappingParams _params; ///< \ru Параметры разворачивания. \en Parameters of the unwrapping.
|
||||
|
||||
protected:
|
||||
/// \ru Конструктор копирования. \en Copy-constructor.
|
||||
@@ -56,8 +56,9 @@ public:
|
||||
|
||||
private:
|
||||
MbUnwrapCurveCreator(); // \ru Не реализовано \en Not implemented
|
||||
OBVIOUS_PRIVATE_COPY ( MbUnwrapCurveCreator );
|
||||
DECLARE_PERSISTENT_CLASS_NEW_DEL( MbUnwrapCurveCreator );
|
||||
|
||||
OBVIOUS_PRIVATE_COPY( MbUnwrapCurveCreator )
|
||||
DECLARE_PERSISTENT_CLASS_NEW_DEL( MbUnwrapCurveCreator )
|
||||
}; // MbUnwrapCurveCreator
|
||||
|
||||
IMPL_PERSISTENT_OPS( MbUnwrapCurveCreator )
|
||||
|
||||
@@ -0,0 +1,94 @@
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
/**
|
||||
\file
|
||||
\brief \ru Строитель свёрнутой кривой.
|
||||
\en Wrapped curve creator.
|
||||
*/
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
#ifndef __CR_WRAP_CURVE_H
|
||||
#define __CR_WRAP_CURVE_H
|
||||
|
||||
#include <creator.h>
|
||||
#include <op_curve_parameter.h>
|
||||
|
||||
//------------------------------------------------------------------------------
|
||||
/** \brief \ru Строитель свёрнутой кривой.
|
||||
\en Wrapped curve creator. \~
|
||||
\details \ru Строитель свёрнутой кривой.\n
|
||||
\en Wrapped curve creator.\n \~
|
||||
\ingroup Model_Creators
|
||||
*/
|
||||
// ---
|
||||
class MATH_CLASS MbWrapCurveCreator : public MbCreator {
|
||||
private:
|
||||
MbCurvesWrappingParams _params; ///< \ru Параметры cворачивания. \en Parameters of the wrapping.
|
||||
|
||||
protected:
|
||||
/// \ru Конструктор копирования. \en Copy-constructor.
|
||||
MbWrapCurveCreator( const MbWrapCurveCreator & other, MbRegDuplicate * iReg );
|
||||
|
||||
public:
|
||||
/// \ru Конструктор по параметрам. \en Constructor by parameters.
|
||||
MbWrapCurveCreator( const MbCurvesWrappingParams & params );
|
||||
|
||||
public:
|
||||
virtual ~MbWrapCurveCreator() {};
|
||||
|
||||
// \ru Общие функции строителя. \en The common functions of the creator.
|
||||
MbeCreatorType IsA() const override; // \ru Тип элемента \en A type of element
|
||||
MbCreator & Duplicate( MbRegDuplicate * iReg = nullptr ) const override; // \ru Сделать копию \en Create a copy
|
||||
|
||||
bool IsSame ( const MbCreator &, double accuracy ) const override; // \ru Являются ли объекты равными? \en Determine whether an object is equal?
|
||||
bool IsSimilar( const MbCreator & ) const override; // \ru Являются ли объекты подобными \en Whether the objects are similar
|
||||
bool SetEqual ( const MbCreator & ) override; // \ru Сделать равным \en Make equal
|
||||
|
||||
void Transform( const MbMatrix3D &, MbRegTransform * = nullptr ) override; // \ru Преобразовать элемент согласно матрице \en Transform element according to the matrix
|
||||
void Move ( const MbVector3D &, MbRegTransform * = nullptr ) override; // \ru Сдвиг \en Translation
|
||||
void Rotate ( const MbAxis3D &, double angle, MbRegTransform * = nullptr ) override; // \ru Повернуть вокруг оси \en Rotate about an axis
|
||||
|
||||
MbePrompt GetPropertyName() override; // \ru Дать имя свойства объекта \en Get the object property name
|
||||
void GetProperties ( MbProperties & ) override; // \ru Выдать свойства объекта \en Get properties of the object
|
||||
void SetProperties ( const MbProperties & ) override; // \ru Записать свойства объекта \en Set properties of the object
|
||||
|
||||
// \ru Построить кривую по журналу построения \en Create a curve from the history tree
|
||||
bool CreateWireFrame( MbWireFrame *&, MbeCopyMode, RPArray<MbSpaceItem> * items = nullptr ) override;
|
||||
|
||||
private:
|
||||
MbWrapCurveCreator(); // \ru Не реализовано \en Not implemented
|
||||
|
||||
OBVIOUS_PRIVATE_COPY( MbWrapCurveCreator )
|
||||
DECLARE_PERSISTENT_CLASS_NEW_DEL( MbWrapCurveCreator )
|
||||
}; // MbWrapCurveCreator
|
||||
|
||||
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
//
|
||||
// Неклассные функции
|
||||
//
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
|
||||
//------------------------------------------------------------------------------
|
||||
/** \brief \ru Создание строителя свёрнутой кривой.
|
||||
\en Create a constructor of wrapped curve. \~
|
||||
\details \ru Создание строителя свёрнутой кривой. Ожидется, что на вход будет подана одна кривая, или набор связных кривых.
|
||||
Иначе корректное сворачивание не гарантируется. \n
|
||||
\en Create a constructor of wrapped curve. It is expected to receive as input 1 curve or an array of connected curves.
|
||||
Otherwise the correct wrapping is not guaranteed. \n \~
|
||||
\param[in] parameters - \ru Параметры операции.
|
||||
\en Parameters of the operation. \~
|
||||
\param[out] res - \ru Код результата операции.
|
||||
\en Operation result code. \~
|
||||
\param[out] resWire - \ru Возвращаемый каркас из свёрнутых кривых. Может быть nullptr.
|
||||
\en Wrapped curves wireframe. Can be nullptr. \~
|
||||
\result \ru Возвращает строитель.
|
||||
\en Returns the creator. \~
|
||||
\ingroup Curve3D_Modeling
|
||||
*/
|
||||
// ---
|
||||
MATH_FUNC( c3d::CreatorSPtr ) CreateWrappedCurve( const MbCurvesWrappingParams & parameters,
|
||||
MbResultType & res,
|
||||
c3d::WireFrameSPtr & resWire );
|
||||
|
||||
#endif // __CR_WRAP_CURVE_H
|
||||
@@ -474,7 +474,7 @@ public :
|
||||
virtual const MbCartPoint & GetCentre() const; ///< \ru Вернуть центр эллипса или окружности. \en Return the center of an ellipse or a circle.
|
||||
bool GetMiddlePoint( MbCartPoint & p ) const override; // \ru Выдать среднюю точку дуги окружности \en Get the middle point of a circular arc
|
||||
bool GetWeightCentre( MbCartPoint & p ) const override; // \ru Выдать центр тяжести кривой \en Get the center of gravity of the curve
|
||||
double GetRadius() const override; // \ru Дать физический радиус объекта или ноль, если это невозможно. \en Get the physical radius of the object or null if it impossible.
|
||||
double GetRadius( double accuracy = PARAM_REGION ) const override; // \ru Дать физический радиус объекта или ноль, если это невозможно. \en Get the physical radius of the object or null if it impossible.
|
||||
bool IsSimilarToCurve( const MbCurve & curve, double precision = PARAM_PRECISION ) const override; // \ru Подобные ли кривые для объединения (слива) \en Whether the curves for union (joining) are similar
|
||||
size_t GetCount() const override; // \ru Количество разбиений для прохода в операциях \en Count of splittings for pass in operations
|
||||
void GetPointsByEvenLengthDelta( size_t n, std::vector<MbCartPoint> & pnts ) const override; // \ru Выдать n точек кривой с равными интервалами по длине дуги \en Get n points of curves equally spaced by the arc length
|
||||
@@ -527,7 +527,7 @@ public :
|
||||
MbResultType Extend( const MbCurveExtensionParameters & parameters, c3d::PlaneCurveSPtr & resCurve ) const override;
|
||||
|
||||
/// \ru Проверить с заданной точностью, является ли эллипс окружностью. \en Check whether the ellipse is a circle with a given tolerance.
|
||||
bool IsCircle( double eps = PARAM_EPSILON ) const;
|
||||
bool IsCircle( double eps = PARAM_REGION ) const;
|
||||
/** \} */
|
||||
/** \ru \name Функции в локальной системе координат плейсмента объекта.
|
||||
\en \name Functions in the local coordinate system of object placement.
|
||||
|
||||
@@ -385,7 +385,7 @@ public :
|
||||
MbCurve * GetMapPsp( const MbMatrix3D &, double zNear,
|
||||
MbRect1D * pRgn = nullptr ) const override;
|
||||
|
||||
double GetRadius() const override; // \ru Дать физический радиус объекта или ноль, если это невозможно. \en Get the physical radius of the object or null if it impossible.
|
||||
double GetRadius( double accuracy = METRIC_REGION ) const override; // \ru Дать физический радиус объекта или ноль, если это невозможно. \en Get the physical radius of the object or null if it impossible.
|
||||
bool GetCircleAxis ( MbAxis3D & ) const override; // \ru Дать ось кривой \en Get the axis of the curve
|
||||
// \ru Дать плоскую кривую и плейсмент, если пространственная кривая плоская (после использования вызывать DeleteItem на двумерную кривую) \en Get a planar curve and placement, if the spatial curve is planar (after using the DeleteItem must be called on a three-dimensional curve)
|
||||
bool GetPlaneCurve( MbCurve *& curve2d, MbPlacement3D & place, bool saveParams, PlanarCheckParams params = PlanarCheckParams() ) const override;
|
||||
@@ -407,7 +407,7 @@ public :
|
||||
double GetAngle() const { return (trim2 - trim1); } ///< \ru Выдать граничный угол дуги \en Get the end angle of the arc.
|
||||
void SetAngle ( double ang ) { trim2 = trim1 + ang; CheckClosed(); Refresh(); } ///< \ru Изменить граничный угол дуги. \en Change the end angle of the arc.
|
||||
|
||||
bool IsCircle( double eps = Math::metricRegion ) const; ///< \ru Является ли дуга эллипса дугой окружности. \en Whether the arc of an ellipse is an arc of a circle.
|
||||
bool IsCircle( double eps = METRIC_REGION ) const; ///< \ru Является ли дуга эллипса дугой окружности. \en Whether the arc of an ellipse is an arc of a circle.
|
||||
|
||||
inline double CheckParam( double & t ) const; ///< \ru Установить параметр в область допустимых значений \en Set the parameter into the region of the legal values
|
||||
inline void ParamToAngle( double & t ) const; ///< \ru Перевод параметра кривой в угол. \en Convert parameter of curve to the angle.
|
||||
|
||||
@@ -446,7 +446,7 @@ public:
|
||||
|
||||
// \ru Определение особых точек офсетной кривой \en Determination of singular points of the offset curve
|
||||
void OffsetCuspPoint( SArray<double> & tCusps, double dist ) const override;
|
||||
double GetRadius() const override; // \ru Дать физический радиус объекта или ноль, если это невозможно. \en Get the physical radius of the object or null if it impossible.
|
||||
double GetRadius( double accuracy = PARAM_REGION ) const override; // \ru Дать физический радиус объекта или ноль, если это невозможно. \en Get the physical radius of the object or null if it impossible.
|
||||
bool GetAxisPoint( MbCartPoint & ) const override; // \ru Выдать центр оси кривой. \en Give the curve axis center.
|
||||
|
||||
void CombineNurbsSegments(); ///< \ru Объединить NURBS кривые в контуре. \en Unite NURBS curves into the contour.
|
||||
|
||||
@@ -201,7 +201,7 @@ public:
|
||||
size_t GetCount() const override;
|
||||
void ChangeCarrier( const MbSpaceItem & item, MbSpaceItem & init ) override; // \ru Изменение носителя \en Changing of carrier
|
||||
|
||||
double GetRadius() const override; // \ru Дать физический радиус объекта или ноль, если это невозможно. \en Get the physical radius of the object or null if it impossible.
|
||||
double GetRadius( double accuracy = METRIC_REGION ) const override; // \ru Дать физический радиус объекта или ноль, если это невозможно. \en Get the physical radius of the object or null if it impossible.
|
||||
bool GetCircleAxis( MbAxis3D & ) const override; // \ru Дать ось кривой. \en Get the curve axis.
|
||||
void GetCentre( MbCartPoint3D & ) const override;
|
||||
void GetWeightCentre( MbCartPoint3D & ) const override;
|
||||
|
||||
@@ -106,7 +106,7 @@ public :
|
||||
// \ru Заполнить плейсмент, если кривая плоская. \en Fill the placement if curve is planar.
|
||||
bool GetPlacement( MbPlacement3D & place, PlanarCheckParams params = PlanarCheckParams() ) const override;
|
||||
|
||||
double GetRadius() const override; // \ru Дать физический радиус объекта или ноль, если это невозможно. \en Get the physical radius of the object or null if it impossible.
|
||||
double GetRadius( double accuracy = METRIC_REGION ) const override; // \ru Дать физический радиус объекта или ноль, если это невозможно. \en Get the physical radius of the object or null if it impossible.
|
||||
bool GetCircleAxis( MbAxis3D & ) const override; // \ru Дать ось кривой. \en Get the curve axis.
|
||||
void GetCentre( MbCartPoint3D & ) const override; // \ru Дать центр тяжести. \en Get the center of gravity.
|
||||
void GetWeightCentre( MbCartPoint3D & ) const override; // \ru Дать центр тяжести. \en Get the center of gravity.
|
||||
|
||||
@@ -786,7 +786,7 @@ public :
|
||||
void OffsetCuspPoint( SArray<double> & tCusps, double dist ) const override; // \ru Определение особых точек офсетной кривой. \en Determination of singular points of the offset curve.
|
||||
|
||||
bool GetCentre( MbCartPoint & ) const override; // \ru Выдать центр кривой. \en Give the curve center.
|
||||
double GetRadius() const override; // \ru Дать физический радиус объекта или ноль, если это невозможно. \en Get the physical radius of the object or null if it impossible.
|
||||
double GetRadius( double accuracy = PARAM_REGION ) const override; // \ru Дать физический радиус объекта или ноль, если это невозможно. \en Get the physical radius of the object or null if it impossible.
|
||||
bool GetAxisPoint( MbCartPoint & p ) const override; // \ru Выдать центр оси кривой. \en Give the curve axis center.
|
||||
bool IsSimilarToCurve( const MbCurve & curve, double precision = PARAM_PRECISION ) const override; // \ru Подобные ли кривые для объединения (слива). \en Whether the curves to union (joining) are similar.
|
||||
|
||||
@@ -965,7 +965,7 @@ public :
|
||||
*/
|
||||
bool BreakC0NURBS4( RPArray<MbCurve> &, bool bline = true );
|
||||
/// \ru Разбить NURBS-кривую в местах, где кривая не дифференцируема. Параметризация не сохраняется. \en Split NURBS-curve at places where the curve is non-differentiable. Parametrization does not remain.
|
||||
bool BreakC0( c3d::PlaneCurvesSPtrVector &, double metricAcc = METRIC_EPSILON );
|
||||
bool BreakC0( c3d::PlaneCurvesSPtrVector &, double metricAcc = METRIC_EPSILON, VERSION version = Math::DefaultMathVersion() );
|
||||
/// \ru Расширить незамкнутую NURBS-кривую по касательным. \en Extend open NURBS-curve by tangents.
|
||||
bool ExtendNurbs( double, double, bool bmerge = false );
|
||||
|
||||
|
||||
@@ -208,9 +208,12 @@ public :
|
||||
\en Returns pointer to the created object or null pointer in case of failure. \~
|
||||
*/
|
||||
template <class PointsVector, class DoubleVector>
|
||||
static MbNurbs3D * Create( size_t initDegree, bool initClosed, const PointsVector & initPoints,
|
||||
const DoubleVector & initWeights, const DoubleVector & initKnots,
|
||||
MbeNurbsCurveForm initForm = ncf_Unspecified )
|
||||
static MbNurbs3D * Create( size_t initDegree,
|
||||
bool initClosed,
|
||||
const PointsVector & initPoints,
|
||||
const DoubleVector & initWeights,
|
||||
const DoubleVector & initKnots,
|
||||
MbeNurbsCurveForm initForm = ncf_Unspecified )
|
||||
{
|
||||
MbNurbs3D * resNurbs = new MbNurbs3D;
|
||||
if ( !resNurbs->Init( initDegree, initClosed, initPoints, initWeights, initKnots, initForm ) )
|
||||
@@ -351,9 +354,12 @@ public:
|
||||
|
||||
*/
|
||||
template <class PointsVector, class DoubleVector>
|
||||
bool Init( size_t initDegree, bool initClosed, const PointsVector & initPoints,
|
||||
const DoubleVector & initWeights, const DoubleVector & initKnots,
|
||||
MbeNurbsCurveForm initForm = ncf_Unspecified )
|
||||
bool Init( size_t initDegree,
|
||||
bool initClosed,
|
||||
const PointsVector & initPoints,
|
||||
const DoubleVector & initWeights,
|
||||
const DoubleVector & initKnots,
|
||||
MbeNurbsCurveForm initForm = ncf_Unspecified )
|
||||
{
|
||||
bool bRes = ::IsValidNurbsParamsExt( initDegree, initClosed, initPoints, &initWeights, &initKnots );
|
||||
|
||||
@@ -522,7 +528,7 @@ public:
|
||||
|
||||
MbCurve3D * Trimmed( double t1, double t2, int sense, bool saveParamLenAndLaw = false ) const override;
|
||||
|
||||
double GetRadius() const override; // \ru Дать физический радиус объекта или ноль, если это невозможно. \en Get the physical radius of the object or null if it impossible.
|
||||
double GetRadius( double accuracy = METRIC_REGION ) const override; // \ru Дать физический радиус объекта или ноль, если это невозможно. \en Get the physical radius of the object or null if it impossible.
|
||||
bool GetCircleAxis ( MbAxis3D & ) const override; // \ru Дать ось кривой \en Get the axis of the curve
|
||||
// \ru Дать плоскую кривую и плейсмент, если пространственная кривая плоская (после использования вызывать DeleteItem на двумерную кривую). \en Get a planar curve and placement, if the spatial curve is planar (after using the DeleteItem must be called for a two-dimensional curve)
|
||||
bool GetPlaneCurve( MbCurve *& curve2d, MbPlacement3D & place, bool saveParams, PlanarCheckParams params = PlanarCheckParams() ) const override;
|
||||
@@ -791,7 +797,7 @@ public:
|
||||
/// \ru Преобразовать кривую в коническое сечение, если это возможно. \en Transform a curve into a conic section if it is possible.
|
||||
MbCurve3D * ConvertToConic();
|
||||
/// \ru Разбить NURBS-кривую в местах, где кривая не дифференцируема. Если кривая дифференцируема, то добавляется копия кривой. \en Split a NURBS-curve at places where the curve is non-differentiable. If the curve is differentiable, then the curve copy is added.
|
||||
bool BreakC0( c3d::SpaceCurvesSPtrVector &, double metricAcc = METRIC_EPSILON );
|
||||
bool BreakC0( c3d::SpaceCurvesSPtrVector &, double metricAcc = METRIC_EPSILON, VERSION version = Math::DefaultMathVersion() );
|
||||
|
||||
/** \brief \ru Замкнуть кривую.
|
||||
\en Make the curve closed. \~
|
||||
|
||||
@@ -131,7 +131,7 @@ public :
|
||||
MbCurve * GetMapPsp( const MbMatrix3D &, double zNear,
|
||||
MbRect1D * pRgn = nullptr ) const override;
|
||||
|
||||
double GetRadius() const override; // \ru Дать физический радиус объекта или ноль, если это невозможно. \en Get the physical radius of the object or null if it impossible.
|
||||
double GetRadius( double accuracy = METRIC_REGION ) const override; // \ru Дать физический радиус объекта или ноль, если это невозможно. \en Get the physical radius of the object or null if it impossible.
|
||||
bool GetCircleAxis ( MbAxis3D & ) const override; // \ru Дать ось кривой \en Get the curve axis
|
||||
void GetCentre ( MbCartPoint3D & wc ) const override;
|
||||
void GetWeightCentre( MbCartPoint3D & wc ) const override;
|
||||
|
||||
@@ -279,7 +279,7 @@ public :
|
||||
const MbCurve & GetParamCurve() const { return *curve; }
|
||||
|
||||
bool GetCentre( MbCartPoint & c ) const override; // \ru Выдать центр кривой \en Get center of curve
|
||||
double GetRadius() const override; // \ru Дать физический радиус объекта или ноль, если это невозможно. \en Get the physical radius of the object or null if it impossible.
|
||||
double GetRadius( double accuracy = PARAM_REGION ) const override; // \ru Дать физический радиус объекта или ноль, если это невозможно. \en Get the physical radius of the object or null if it impossible.
|
||||
bool GetAxisPoint( MbCartPoint & ) const override; // \ru Точка для построения оси \en Point for the axis construction
|
||||
|
||||
bool SetSameSurface( const MbSurface & s ); ///< \ru Заменить поверхность на такую же. \en Whether the projecting curve lies on the surface.
|
||||
|
||||
@@ -219,7 +219,7 @@ public :
|
||||
bool GetSpecificPoint( const MbCartPoint & from, double & dmax, MbCartPoint & pnt ) const override; // \ru Выдать характерную точку кривой если она ближе чем dmax \en Get control point of curve if it is closer than 'dmax'
|
||||
bool GetWeightCentre( MbCartPoint & c ) const override; // \ru Выдать центр тяжести кривой \en Get the center of gravity of the curve
|
||||
bool GetCentre( MbCartPoint & c ) const override; // \ru Выдать центр кривой \en Get center of curve
|
||||
double GetRadius() const override; // \ru Дать физический радиус объекта или ноль, если это невозможно. \en Get the physical radius of the object or null if it impossible.
|
||||
double GetRadius( double accuracy = PARAM_REGION ) const override; // \ru Дать физический радиус объекта или ноль, если это невозможно. \en Get the physical radius of the object or null if it impossible.
|
||||
bool DistanceAlong( double & t, double len, int curveDir, double eps = Math::LengthEps,
|
||||
VERSION version = Math::DefaultMathVersion() ) const override; // \ru Сдвинуть параметр t на расстояние len по направлению \en Translate parameter 't' by distance 'len' along the direction
|
||||
bool GetAxisPoint( MbCartPoint & ) const override; // \ru Точка для построения оси \en Point for the axis construction
|
||||
|
||||
@@ -180,7 +180,7 @@ public :
|
||||
void ChangeCarrier( const MbSpaceItem & item, MbSpaceItem & init ) override; // \ru Изменение носителя \en Change a carrier
|
||||
bool IsPlanar ( double accuracy = METRIC_EPSILON ) const override; // \ru Является ли кривая плоской \en Whether the curve is planar
|
||||
bool IsStraight( bool ignoreParams = false ) const override; // \ru Является ли линия прямолинейной \en Whether the line is straight
|
||||
double GetRadius() const override; // \ru Дать физический радиус объекта или ноль, если это невозможно. \en Get the physical radius of the object or null if it impossible.
|
||||
double GetRadius( double accuracy = METRIC_REGION ) const override; // \ru Дать физический радиус объекта или ноль, если это невозможно. \en Get the physical radius of the object or null if it impossible.
|
||||
bool GetCircleAxis ( MbAxis3D & ) const override; // \ru Дать ось кривой \en Get axis of curve
|
||||
|
||||
void ParameterInto( double & ) const; // \ru Перевод параметра базовой кривой в локальный параметр \en Transformation of the base curve parameter to a local parameter
|
||||
|
||||
@@ -206,7 +206,7 @@ public:
|
||||
void CalculateGabarit( MbCube & ) const override; // \ru Вычислить габарит кривой. \en Calculate bounding box of a curve.
|
||||
double GetMetricLength() const override; // \ru Вычислить метрическую длину кривой. \en Calculate the metric length of a curve.
|
||||
double GetLengthEvaluation() const override; // \ru Оценить метрическую длину кривой. \en Estimate the metric length of a curve.
|
||||
double GetRadius() const override; // \ru Дать физический радиус объекта или ноль, если это невозможно. \en Get the physical radius of the object or null if it impossible.
|
||||
double GetRadius( double accuracy = METRIC_REGION ) const override; // \ru Дать физический радиус объекта или ноль, если это невозможно. \en Get the physical radius of the object or null if it impossible.
|
||||
bool GetCircleAxis ( MbAxis3D & ) const override; // \ru Дать ось кривой. \en Get the curve axis.
|
||||
void GetCentre ( MbCartPoint3D & c ) const override; // \ru Выдать центр кривой. \en Get center of curve.
|
||||
void GetWeightCentre( MbCartPoint3D & wc ) const override; // \ru Выдать центр тяжести кривой. \en Get center of mass of curve.
|
||||
|
||||
@@ -420,7 +420,7 @@ public:
|
||||
*/
|
||||
bool CopyReadyMutable( const MbSurfaceIntersectionCurve & s );
|
||||
double CalculateLength( double t1, double t2 ) const override; // \ru Вычислить метрическую длину. \en Calculate the metric length.
|
||||
double GetRadius() const override; // \ru Дать физический радиус объекта или ноль, если это невозможно. \en Get the physical radius of the object or null if it impossible.
|
||||
double GetRadius( double accuracy = METRIC_REGION ) const override; // \ru Дать физический радиус объекта или ноль, если это невозможно. \en Get the physical radius of the object or null if it impossible.
|
||||
bool GetCircleAxis ( MbAxis3D & ) const override; // \ru Дать ось кривой. \en Get the curve axis.
|
||||
void GetCentre( MbCartPoint3D & ) const override; // \ru Вычислить центр кривой. \en Calculate the center of a curve.
|
||||
void GetWeightCentre( MbCartPoint3D & ) const override; // \ru Вычислить центр тяжести кривой. \en Calculate the center of gravity of a curve.
|
||||
|
||||
@@ -190,7 +190,7 @@ public :
|
||||
void Inverse( MbRegTransform * iReg = nullptr ) override; // \ru Изменить направление кривой \en Change direction of a curve
|
||||
bool GetAxisPoint( MbCartPoint & p ) const override; // \ru Точка для построения оси \en Point for the axis construction
|
||||
bool IsSimilarToCurve( const MbCurve & curve, double precision = PARAM_PRECISION ) const override; // \ru Подобные ли кривые для объединения (слива) \en Whether the curves for union (joining) are similar
|
||||
double GetRadius() const override; // \ru Дать физический радиус объекта или ноль, если это невозможно. \en Get the physical radius of the object or null if it impossible.
|
||||
double GetRadius( double accuracy = PARAM_REGION ) const override; // \ru Дать физический радиус объекта или ноль, если это невозможно. \en Get the physical radius of the object or null if it impossible.
|
||||
bool GetCentre ( MbCartPoint & ) const override; ///< \ru Вычислить центр кривой. \en Calculate center of curve.
|
||||
size_t GetCount() const override; // \ru Количество разбиений для прохода в операциях \en Count of subdivisions for pass in operations
|
||||
|
||||
|
||||
@@ -117,7 +117,7 @@ public :
|
||||
void ChangeCarrier( const MbSpaceItem & item, MbSpaceItem & init ) override; // \ru Изменение носителя \en Change a carrier
|
||||
bool IsPlanar ( double accuracy = METRIC_EPSILON ) const override; // \ru Является ли кривая плоской \en Whether the curve is planar
|
||||
bool IsStraight( bool ignoreParams = false ) const override; // \ru Является ли линия прямолинейной \en Whether the line is straight
|
||||
double GetRadius() const override; // \ru Дать физический радиус объекта или ноль, если это невозможно. \en Get the physical radius of the object or null if it impossible.
|
||||
double GetRadius( double accuracy = METRIC_REGION ) const override; // \ru Дать физический радиус объекта или ноль, если это невозможно. \en Get the physical radius of the object or null if it impossible.
|
||||
bool GetCircleAxis ( MbAxis3D & ) const override; // \ru Дать ось кривой \en Get axis of curve
|
||||
void GetCentre( MbCartPoint3D &wc ) const override; // \ru Посчитать центр кривой \en Calculate the center of a curve
|
||||
|
||||
|
||||
+12
-11
@@ -1014,16 +1014,19 @@ public :
|
||||
/// \ru Вычислить центр кривой. \en Calculate a center of curve.
|
||||
virtual bool GetCentre ( MbCartPoint & ) const;
|
||||
|
||||
/** \brief \ru Дать физический радиус скривой или ноль, если это невозможно.
|
||||
\en Get the physical radius of the curve or null if it impossible. \~
|
||||
\details \ru В общем случае на запрос радиуса возвращается 0. Число, отличное от 0, можно получить лишь в том случае,
|
||||
если кривая является дугой окружности или эквивалентна дуге окружности.
|
||||
\en In general case 0 is returned. A value different from 0 may be obtained only in a case,
|
||||
when the curve is an arc of a circle or it is equivalent to an arc of a circle. \~
|
||||
\return \ru Значение радиуса, если есть, или 0.0.
|
||||
\en A value of radius, if it is existed, or 0.0. \~
|
||||
/** \brief \ru Дать физический радиус кривой или ноль, если это невозможно.
|
||||
\en Get the physical radius of the curve or zero if it impossible. \~
|
||||
\details \ru В общем случае на запрос радиуса возвращается 0. Число, отличное от 0, можно получить лишь в том случае,
|
||||
если кривая является дугой окружности или эквивалентна дуге окружности с заданной точностью
|
||||
(по-умолчанию PARAM_REGION).
|
||||
\en Generally returns 0. A non-zero value may be obtained only when the curve
|
||||
is an arc or is equal to an arc with the set precision (PARAM_REGION by default). \~
|
||||
\params[in] accuracy - \ru Максимальное отклонение кривой от дуги окружности (по-умолчанию PARAM_REGION).
|
||||
\en The maximum curve deviation from an arc (PARAM_REGION by default). \~
|
||||
\return \ru Значение радиуса, если есть, или 0.0.
|
||||
\en Radius value if it can be obtained or 0.0. \~
|
||||
*/
|
||||
virtual double GetRadius () const;
|
||||
virtual double GetRadius( double accuracy = PARAM_REGION ) const;
|
||||
|
||||
/** \brief \ru Вычислить точку для построения оси.
|
||||
\en Calculate a point to construct an axis. \~
|
||||
@@ -1360,8 +1363,6 @@ public :
|
||||
\en The extended curve or nullptr if extension is impossible. \~
|
||||
\return \ru Возвращает статус ошибки или rt_Success, если все хорошо.
|
||||
\en Returns error status or rt_Success if all is OK.
|
||||
\warning \ru В разработке.
|
||||
\en Under development. \~
|
||||
*/
|
||||
// ---
|
||||
virtual MbResultType Extend( const MbCurveExtensionParameters & parameters, c3d::PlaneCurveSPtr & resCurve ) const;
|
||||
|
||||
+12
-11
@@ -709,16 +709,19 @@ public :
|
||||
/// \ru Ближайшая точка кривой к плейсменту. \en The nearest point of a curve by the placement.
|
||||
virtual double DistanceToPlace( const MbPlacement3D & place, double & t0, double & angle ) const;
|
||||
|
||||
/** \brief \ru Дать физический радиус кривой или ноль, если это невозможно.
|
||||
\en Get the physical radius of the curve or null if it impossible. \~
|
||||
\details \ru В общем случае на запрос радиуса возвращается 0. Число, отличное от 0, можно получить лишь в том случае,
|
||||
если кривая является дугой окружности или эквивалентна дуге окружности.
|
||||
\en In general case 0 is returned. A value different from 0 may be obtained only in a case,
|
||||
when the curve is an arc of a circle or it is equivalent to an arc of a circle. \~
|
||||
\return \ru Значение радиуса, если есть, или 0.0.
|
||||
\en A value of radius, if it is existed, or 0.0. \~
|
||||
/** \brief \ru Дать физический радиус кривой или ноль, если это невозможно.
|
||||
\en Get the physical radius of the curve or zero if it impossible. \~
|
||||
\details \ru В общем случае на запрос радиуса возвращается 0. Число, отличное от 0, можно получить лишь в том случае,
|
||||
если кривая является дугой окружности или эквивалентна дуге окружности с заданной точностью
|
||||
(по-умолчанию METRIC_REGION).
|
||||
\en Generally returns 0. A non-zero value may be obtained only when the curve
|
||||
is an arc or is equal to an arc with the set precision (METRIC_REGION by default). \~
|
||||
\params[in] accuracy - \ru Максимальное отклонение кривой от дуги окружности (по-умолчанию METRIC_REGION).
|
||||
\en The maximum curve deviation from an arc (METRIC_REGION by default). \~
|
||||
\return \ru Значение радиуса, если есть, или 0.0.
|
||||
\en Radius value if it can be obtained or 0.0. \~
|
||||
*/
|
||||
virtual double GetRadius() const;
|
||||
virtual double GetRadius( double accuracy = METRIC_REGION ) const;
|
||||
|
||||
/** \brief \ru Дать ось окружности, геометрически совпадающей с данной кривой
|
||||
\en Get an axis of a circle which is geometrically coincident to the given curve. \~
|
||||
@@ -1092,8 +1095,6 @@ public :
|
||||
\en The extended curve or nullptr if extension is impossible. \~
|
||||
\return \ru Возвращает статус ошибки или rt_Success, если все хорошо.
|
||||
\en Returns error status or rt_Success if all is OK.
|
||||
\warning \ru В разработке.
|
||||
\en Under development. \~
|
||||
*/
|
||||
virtual MbResultType Extend( const MbCurveExtensionParameters3D & parameters, c3d::SpaceCurveSPtr & resCurve ) const;
|
||||
|
||||
|
||||
@@ -43,13 +43,6 @@ public:
|
||||
MbResultType Status() const; ///< \ru Получить статус создания. \en Get the state of creation.
|
||||
|
||||
public:
|
||||
/// \deprecated \ru Метод устарел. \en The method is deprecated.
|
||||
DEPRECATE_DECLARE_REPLACE( MbFunctionFactory::CreateAnalyticalFunction(const c3d::string_t &, const c3d::string_t &, double, double, bool) )
|
||||
MbFunction * CreateAnalyticalFunction ( const c3d::string_t & data, MbListVars & vars,
|
||||
const MbMathematicalNode & root,
|
||||
const c3d::string_t & argument,
|
||||
double tmin, double tmax ) const;
|
||||
|
||||
/** \brief \ru Создать символьную функцию.
|
||||
\en Create a symbolic function. \~
|
||||
\details \ru Создать символьную функцию из ее строкового представления.\n
|
||||
|
||||
@@ -92,15 +92,6 @@ typedef enum
|
||||
//---
|
||||
GCE_FUNC(bool) GCE_CheckPointSatisfaction( GCE_system gSys, geom_item pnt, point_type cp, double px, double py );
|
||||
|
||||
//----------------------------------------------------------------------------------------
|
||||
/**
|
||||
\brief \ru Выдать состояние системы ограничений.
|
||||
\en Get constraint system state.
|
||||
\note It will be removed at 2023. Use GCE_DefinitionState instead.
|
||||
*/
|
||||
//---
|
||||
DEPRECATE_DECLARE GCE_FUNC(GCE_s_state) GCE_StateOfSystem( GCE_system gSys );
|
||||
|
||||
//----------------------------------------------------------------------------------------
|
||||
/** \brief \ru Выдать состояние определенности системы ограничений.
|
||||
\en Get constraint system definition state.
|
||||
@@ -234,11 +225,6 @@ GCE_FUNC(bool) GCE_CollectLinearDependedConstrains( GCE_system, SArray<constrain
|
||||
Deprecated functions
|
||||
*/
|
||||
|
||||
//----------------------------------------------------------------------------------------
|
||||
// It will be removed at 2023.
|
||||
//---
|
||||
DEPRECATE_DECLARE GCE_FUNC(GCE_s_state) GCE_GetConstraintStatus( GCE_system gSys );
|
||||
|
||||
//----------------------------------------------------------------------------------------
|
||||
/**
|
||||
\attention \ru Функция устарела. Рекомендуется использовать #GCE_AddSymmetry.
|
||||
|
||||
@@ -2144,15 +2144,6 @@ inline geom_item GCE_AddPoint( GCE_system gSys, GCE_point pVal, int )
|
||||
return GCE_AddPoint( gSys, pVal );
|
||||
}
|
||||
|
||||
//----------------------------------------------------------------------------------------
|
||||
/**
|
||||
\attention \ru Устаревшая функция. Вызов будет удален в одной из следующих версий.
|
||||
\en An obsolete function. The call will be removed in one of the next versions. \~
|
||||
*/
|
||||
//---
|
||||
DEPRECATE_DECLARE
|
||||
inline GCE_system GCE_CreateSystem(void*) { return nullptr; }
|
||||
|
||||
//----------------------------------------------------------------------------------------
|
||||
/**
|
||||
\attention \ru Устаревшая функция. Вызов будет удален в одной из следующих версий (2016).
|
||||
|
||||
+20
-9
@@ -945,6 +945,17 @@ GCM_FUNC(GCM_result) GCM_EvaluationResult( GCM_system gSys, GCM_constraint cItem
|
||||
//---
|
||||
GCM_FUNC(bool) GCM_IsSatisfied( GCM_system gSys, GCM_constraint cItem );
|
||||
|
||||
//----------------------------------------------------------------------------------------
|
||||
/** \brief \ru Является ли геометрический объект полностью определенным или недоопределенным.
|
||||
\en Whether the geometric entity is fully defined or underdefined.
|
||||
\return \ru Вернет значение GCM_DOF_RESULT_WellDefined, если установлено, что
|
||||
геометрический объект принадлежит полностью-определенной части модели.
|
||||
\en Returns GCM_DOF_RESULT_WellDefined, if the solver determines a geometric entity
|
||||
belongs to a well-defined part of the model. \~
|
||||
*/
|
||||
// ---
|
||||
GCM_FUNC(GCM_dof_result) GCM_IsWellDefined( GCM_system gSys, GCM_geom g );
|
||||
|
||||
//----------------------------------------------------------------------------------------
|
||||
/** \brief \ru Выдать текущее положение (решение) геометрического объекта.
|
||||
\en Get current placement (solution) of the geometric object.
|
||||
@@ -1168,6 +1179,15 @@ GCM_FUNC(GCM_result) GCM_SolveReposition( GCM_system gSys, double alpha );
|
||||
//---
|
||||
GCM_FUNC(bool) GCM_SetJournal( GCM_system gSys, const char * fName );
|
||||
|
||||
//----------------------------------------------------------------------------------------
|
||||
/** \brief \ru Выдать журнал записывающий вызовы Solver API, а также другие события, имеющие отношение к взаимодействием с солвером.
|
||||
\en Get a logger that recording API calls, as well as other events related to interaction with the solver. \~
|
||||
\note \ru Вызов используется пока только для тестовых целей. Может быть изменен или удален из API в следующих ревизиях.
|
||||
\en The call is used for testing purposes only. It may be changed or removed in future revisions. \~
|
||||
*/
|
||||
//---
|
||||
GCM_FUNC(GCM_journal) GCM_SubscribeJournal( GCM_system gSys, GCM_log_func logFunc, GCM_extra_param extParam );
|
||||
|
||||
/** \} */ // GCM_3D_API
|
||||
|
||||
struct GCT_diagnostic_pars;
|
||||
@@ -1189,15 +1209,6 @@ DEPRECATE_DECLARE GCM_FUNC(void) GCM_FixGeom( GCM_system gSys, GCM_geom g );
|
||||
//---
|
||||
GCM_FUNC(bool) GCM_IsFixed( GCM_system gSys, GCM_geom g );
|
||||
|
||||
//----------------------------------------------------------------------------------------
|
||||
// Является ли геометрический объект полностью определенным или недоопределенным.
|
||||
// Whether the geometric entity is fully defined or underdefined.
|
||||
/**
|
||||
\attention Internal use only.The feature is under development.
|
||||
*/
|
||||
// ---
|
||||
GCM_FUNC(GCM_dof_result) GCM_IsWellDefined( GCM_system gSys, GCM_geom g ); // GCM_IsWellConstrained
|
||||
|
||||
//----------------------------------------------------------------------------------------
|
||||
// Статус геометрического объекта в системе.
|
||||
/**
|
||||
|
||||
@@ -651,23 +651,6 @@ public:
|
||||
SPtr<ItConstraintsEnum> GetConstraintsEnum();
|
||||
|
||||
public:
|
||||
/**
|
||||
\}
|
||||
\ru \name Устаревшие функции, которые будут удалены в будущей версии.
|
||||
\en \name Deprecated functions will be removed in the future version.
|
||||
\{
|
||||
*/
|
||||
|
||||
/// \ru Функция будет удалена из API. Использовать ChangeDefinition(). \en The call is deprecated. Use ChangeDefinition() instead this.
|
||||
DEPRECATE_DECLARE MtResultCode3D ChangeAlignCondition( ItConstraintItem & );
|
||||
DEPRECATE_DECLARE MtResultCode3D FixGeom( ItGeom & );
|
||||
DEPRECATE_DECLARE ItConstraintItem * AddConstraint( MtArgument, MtArgument, const GCM_c_params &, MtResultCode3D & );
|
||||
/// \ru Функция будет удалена из API. Использовать Evalute(). \en The call is deprecated. Use Evaluate() instead this.
|
||||
DEPRECATE_DECLARE MtResultCode3D Solve( bool diagQuery );
|
||||
|
||||
/**
|
||||
\}
|
||||
*/
|
||||
|
||||
// Internal use only
|
||||
GCM_geom _QueryArgument( const MtArgument & gArg );
|
||||
|
||||
+21
-33
@@ -476,49 +476,37 @@ GCT_FUNC(bool) CheckSatisfaction( GCM_system );
|
||||
//----------------------------------------------------------------------------------------
|
||||
// for testing only.
|
||||
//---
|
||||
GCT_FUNC(size_t) GetGeomsCount( GCM_system );
|
||||
GCT_FUNC(size_t) GCT_GeomsCount( GCM_system gSys );
|
||||
|
||||
//----------------------------------------------------------------------------------------
|
||||
// Get current value of a geometry position and orientation in the world CS.
|
||||
// for testing only.
|
||||
//---
|
||||
GCT_FUNC(size_t) GetConstraintsCount( GCM_system );
|
||||
GCT_FUNC(MbPlacement3D) GCT_Placement( GCM_system gSys, GCM_geom g );
|
||||
|
||||
//----------------------------------------------------------------------------------------
|
||||
// Get current value of a geometry position the world CS.
|
||||
// for testing only.
|
||||
//---
|
||||
GCT_FUNC(MbCartPoint3D) GCT_Origin( GCM_system gSys, GCM_geom g );
|
||||
|
||||
//----------------------------------------------------------------------------------------
|
||||
// Get current value of a first radius.
|
||||
// for testing only.
|
||||
//---
|
||||
GCT_FUNC(double) GCT_RadiusA( GCM_system gSys, GCM_geom g );
|
||||
|
||||
//----------------------------------------------------------------------------------------
|
||||
// Get current value of a second radius.
|
||||
// for testing only.
|
||||
//---
|
||||
GCT_FUNC(double) GCT_RadiusB( GCM_system gSys, GCM_geom g );
|
||||
|
||||
//----------------------------------------------------------------------------------------
|
||||
// Get a range to traverse constraints of the system.
|
||||
//---
|
||||
GCT_FUNC(void) GCM_GetConstraints( GCM_system gSys, CNodeIterator & begIter, CNodeIterator & endIter );
|
||||
|
||||
//----------------------------------------------------------------------------------------
|
||||
// Callback function for logging messages from the solver.
|
||||
//---
|
||||
typedef void ( *GCM_log_func )( GCM_journal, GCM_log_type logType, const char* recStr );
|
||||
|
||||
//----------------------------------------------------------------------------------------
|
||||
/** \brief \ru Выдать журнал записывающий вызовы Solver API, а также другие события, имеющие отношение к взаимодействием с солвером.
|
||||
\en Get a logger that recording API calls, as well as other events related to interaction with the solver. \~
|
||||
\note \ru Вызов используется пока только для тестовых целей. Может быть изменен или удален из API в следующих ревизиях.
|
||||
\en The call is used for testing purposes only. It may be changed or removed in future revisions. \~
|
||||
*/
|
||||
//---
|
||||
GCM_FUNC(GCM_journal) GCM_SubscribeJournal( GCM_system gSys, GCM_log_func logFunc, GCM_extra_param extParam );
|
||||
|
||||
/*
|
||||
* Deprecated calls.
|
||||
*/
|
||||
|
||||
//----------------------------------------------------------------------------------------
|
||||
// for internal use only
|
||||
// \en This call is out of date, it will be removed in 2023. \~
|
||||
//---
|
||||
DEPRECATE_DECLARE GCM_FUNC(MtResultCode3D) AdHocDiagnose(GCM_system, const ItGeom*);
|
||||
|
||||
//----------------------------------------------------------------------------------------
|
||||
/** \brief The deprecated version of GCM_CreateSolver.
|
||||
\note The call is deprecated. Use GCM_CreateSolver instead. It will be removed in 2024.
|
||||
*/
|
||||
//---
|
||||
DEPRECATE_DECLARE GCM_FUNC(SPtr<MtGeomSolver>) CreateSolver( ItPositionManager & );
|
||||
|
||||
#endif // __GCM_ROUTINES_H
|
||||
|
||||
// eof
|
||||
|
||||
@@ -410,7 +410,7 @@ typedef enum
|
||||
{
|
||||
GCM_DOF_RESULT_WellDefined ///< \ru Геометрический объект полностью определен или заморожен (DOF=0). \en An geometric object is well defined, fixed or frozen (dof=0).
|
||||
, GCM_DOF_RESULT_UnderDefined ///< \ru Геометрический объект имеет переносную или поворотную подвижность (DOF>0). \en An geometric object has translational or rotational freedom (dof>0).
|
||||
, GCM_DOF_RESULT_Unknown ///< \ru Степень свободы геометрического объекта не вычислена. \en The geomeric object state of freedom is not calculated.
|
||||
, GCM_DOF_RESULT_Unknown ///< \ru Степень свободы геометрического объекта не вычислена. \en The geometric object state of freedom is not calculated.
|
||||
} GCM_dof_result;
|
||||
|
||||
//----------------------------------------------------------------------------------------
|
||||
@@ -618,6 +618,11 @@ typedef enum
|
||||
, GCM_LOG_Error /// \ru Строка извещает об ошибочной ситуации. \en Error notification.
|
||||
} GCM_log_type;
|
||||
|
||||
//----------------------------------------------------------------------------------------
|
||||
// Callback function for logging messages from the solver.
|
||||
//---
|
||||
typedef void ( *GCM_log_func )( GCM_journal, GCM_log_type logType, const char* recStr );
|
||||
|
||||
//----------------------------------------------------------------------------------------
|
||||
//
|
||||
//---
|
||||
@@ -638,9 +643,7 @@ static const GCM_c_type mct_Tangency = GCM_TANGENT;
|
||||
static const GCM_c_type mct_Concentric = GCM_CONCENTRIC;
|
||||
static const GCM_c_type mct_Distance = GCM_DISTANCE;
|
||||
static const GCM_c_type mct_Angle = GCM_ANGLE;
|
||||
static const GCM_c_type mct_InPlace = GCM_IN_PLACE;
|
||||
static const GCM_c_type mct_Unknown = GCM_UNKNOWN;
|
||||
static const GCM_c_type mct_CamMechanism = GCM_CAM_MECHANISM;
|
||||
static const GCM_c_type mct_Symmetry = GCM_SYMMETRIC;
|
||||
static const GCM_c_type mct_Symmetric = GCM_SYMMETRIC;
|
||||
static const GCM_c_type mct_Parallelism = GCM_PARALLEL;
|
||||
|
||||
@@ -1146,6 +1146,8 @@ struct range : public std::pair<Iterator, Iterator>
|
||||
size_t size() const { return (size_t)std::distance( _Pair::first, _Pair::second ); }
|
||||
void clear() { _Pair::first = _Pair::second; }
|
||||
range & move_front() { ++_Pair::first; return *this; }
|
||||
range & drop_front() { ++_Pair::first; return *this; }
|
||||
range & drop_back() { --_Pair::second; return *this; }
|
||||
|
||||
const reference front() const { return *_Pair::first; }
|
||||
const reference back() const { return *(_Pair::second - 1); }
|
||||
|
||||
@@ -1,9 +1,7 @@
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
/**
|
||||
\file
|
||||
\brief \ru Сериализация: буфер потока, работа с диском, хранитель версий.
|
||||
\en Serialization: stream buffer, access to disk, version storage. \~
|
||||
|
||||
\file \brief \ru Сериализация: буфер потока, работа с диском, хранитель версий.
|
||||
\en Serialization: stream buffer, access to disk, version storage. \~
|
||||
*/
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
@@ -111,8 +109,8 @@ namespace io
|
||||
badClassId = 0x00008000L,
|
||||
/// \ru Попытка повторной регистрации идентификатора класса. \en Attempt for repeated registration of the class identifier.
|
||||
doubledClassId = 0x00010000L,
|
||||
// AR /// \ru Версия хранилища старше версии задачи. \en The storage version is older than the task version.
|
||||
//AR storeVerViolation= 0x00020000L,
|
||||
// \ru Версия хранилища старше версии задачи. \en The storage version is older than the task version.
|
||||
//AR storeVerViolation= 0x00020000L,
|
||||
/// \ru Версия файла старше версии задачи. \en The file version is older than the task version.
|
||||
verViolation = 0x00040000L,
|
||||
/// \ru Ошибка файловой операции. \en The file operation error.
|
||||
@@ -140,7 +138,6 @@ namespace io
|
||||
/// \ru Лицензия не найдена. \en License not found.
|
||||
licenseMissing = 0x20000000L,
|
||||
/// \ru Все ошибки. \en All errors.
|
||||
//AR all = 0xffffffe0L
|
||||
allMask = 0xffffffffL
|
||||
};
|
||||
};
|
||||
|
||||
+45
-9
@@ -303,13 +303,6 @@ void WriteVBase( writer & out, const Base * base )
|
||||
}
|
||||
|
||||
|
||||
//----------------------------------------------------------------------------------------
|
||||
// \ru Удаление пробелов, записей перед пробелами, символов "<" и ">".
|
||||
// \en Deleting of spaces, records before spaces, symbols "<" and ">". \~
|
||||
// \ingroup Base_Tools_IO
|
||||
DEPRECATE_DECLARE
|
||||
MATH_FUNC( const char * ) pureTemplateName( const char * name );
|
||||
|
||||
//----------------------------------------------------------------------------------------
|
||||
// \ru Удаление пробелов и записей перед пробелами. \en Deleting of spaces and records before spaces. \~
|
||||
// \ingroup Base_Tools_IO
|
||||
@@ -365,6 +358,40 @@ uint16 hash( const char * name )
|
||||
return h;
|
||||
}
|
||||
|
||||
|
||||
//----------------------------------------------------------------------------------------
|
||||
/** \brief \ru Локальное задание локали.
|
||||
\en Local setting of the locale. \~
|
||||
\details \ru Поддержка RAII (Resource Acquisition Is Initialization) для задания локали. \n
|
||||
\en Support of RAII (Resource Acquisition Is Initialization) for the setting of the locale. \~
|
||||
\ingroup Base_Tools_IO
|
||||
*/ // ---
|
||||
class MATH_CLASS C3DLocaleSwitcher {
|
||||
static const char * UNSET;
|
||||
|
||||
std::string _locale;
|
||||
int _category;
|
||||
public:
|
||||
/// \ru Конструктор. При fix == false это просто заглушка.
|
||||
/// \en Constructor. With fix == false, this is just a stub.
|
||||
C3DLocaleSwitcher( const char * loc, bool fix = true, int cat = LC_CTYPE ) : _locale( UNSET ), _category( cat ) {
|
||||
if ( fix ) {
|
||||
_locale = ::setlocale( cat, nullptr );
|
||||
::setlocale( cat, loc );
|
||||
}
|
||||
}
|
||||
/// \ru Деструктор. \en Destructor.
|
||||
~C3DLocaleSwitcher() {
|
||||
if ( _locale != UNSET )
|
||||
::setlocale( _category, _locale.c_str() ); // \ru Вернуть предыдущую локаль. \en Return to the previous locale.
|
||||
}
|
||||
private:
|
||||
C3DLocaleSwitcher();
|
||||
OBVIOUS_PRIVATE_COPY( C3DLocaleSwitcher )
|
||||
};
|
||||
|
||||
#define FIX_ANSI1251 "ru_RU.CP1251"
|
||||
|
||||
//----------------------------------------------------------------------------------------
|
||||
// \ru Чтение CHAR строки из потока. (в кодировке ANSI, с русской локалью) \en Reading of CHAR string from the stream. (in ANSI coding, with Russian locale)
|
||||
// \ru И нулевой указатель и пустая строка возвращаются как нулевой указатель! \en Both null pointer and an empty string are returned as null pointer!
|
||||
@@ -1127,11 +1154,14 @@ void WriteTCHAR( writer & out, const TCHAR * ts, bool directSingleByte = false )
|
||||
inline
|
||||
void ReadTCHAR( reader & in, TCHAR *& ts, bool directSingleByte = false )
|
||||
{
|
||||
if ( directSingleByte || in.MathVersion() < UNICODE_VERSION )
|
||||
if ( directSingleByte || in.MathVersion() < UNICODE_VERSION )
|
||||
{
|
||||
#ifndef C3D_WINDOWS
|
||||
C3DLocaleSwitcher lh( FIX_ANSI1251, in.MathVersion() < UNICODE_VERSION );
|
||||
#endif
|
||||
// \ru читаем WCHAR* из CHAR* \en read WCHAR* from CHAR*
|
||||
char * s = nullptr;
|
||||
__readChar( in, s ); // \ru читаем строку в формате ANSI \en read string in ANSI format
|
||||
__readChar( in, s ); // \ru читаем строку в формате ANSI \en read string in ANSI format
|
||||
ts = _strNtcs( s ); // \ru создаем TCHAR из ANSI (если TCHAR == char, то просто дублируем) \en create TCHAR from ANSI (if TCHAR == char, then simply duplicate)
|
||||
delete [] s;
|
||||
}
|
||||
@@ -1551,6 +1581,9 @@ reader & operator >> ( reader & ps, std::string & s )
|
||||
{
|
||||
if ( ps.MathVersion() < UNICODE_VERSION )
|
||||
{
|
||||
#ifndef C3D_WINDOWS
|
||||
C3DLocaleSwitcher lh( FIX_ANSI1251 );
|
||||
#endif
|
||||
char * str( nullptr );
|
||||
__readChar( ps, str ); // \ru читаем строку в формате ANSI \en read string in ANSI format
|
||||
if ( str )
|
||||
@@ -1604,6 +1637,9 @@ reader & operator >> ( reader & ps, std::wstring & s )
|
||||
{
|
||||
if ( ps.MathVersion() < UNICODE_VERSION )
|
||||
{
|
||||
#ifndef C3D_WINDOWS
|
||||
C3DLocaleSwitcher lh( FIX_ANSI1251 );
|
||||
#endif
|
||||
char * str( nullptr );
|
||||
__readChar( ps, str ); // \ru читаем строку в формате ANSI \en read string in ANSI format
|
||||
wchar_t* p = mbsnewwcs( str );
|
||||
|
||||
@@ -446,11 +446,6 @@ public:
|
||||
/// \ru Деструктор. \en Destructor.
|
||||
virtual ~tape();
|
||||
|
||||
/// \ru Получить доступ к буферу. \en Get access to the buffer. \~ \deprecated \ru Метод устарел. \en The method is deprecated.
|
||||
DEPRECATE_DECLARE iobuf & buffer() const;
|
||||
/// \ru Получить доступ к буферу. \en Get access to the buffer. \~ \deprecated \ru Метод устарел. \en The method is deprecated.
|
||||
DEPRECATE_DECLARE iobuf & operator()() const;
|
||||
|
||||
/// \ru Получить доступ к буферу. \en Get access to the buffer.
|
||||
const iobuf_Seq & GetIOBuffer() const;
|
||||
/// \ru Получить доступ к буферу. \en Get access to the buffer.
|
||||
@@ -556,16 +551,11 @@ protected:
|
||||
reader( iobuf_Seq & buf, bool ownbuf, bool openSys, uint16 om, TapeRegistrator * reg );
|
||||
|
||||
/// \ru Конструктор. \en Constructor. \~ \deprecated \ru Метод устарел. \en The method is deprecated.
|
||||
DEPRECATE_DECLARE reader( iobuf_Seq & buf, bool ownbuf, bool openSys, uint16 om, TapeRegistrator & reg );
|
||||
reader( membuf & sb, uint8 om );
|
||||
/// \ru Конструктор. \en Constructor. \~ \deprecated \ru Метод устарел. \en The method is deprecated.
|
||||
DEPRECATE_DECLARE reader( membuf & sb, bool openSys, uint8 om, TapeRegistrator & reg );
|
||||
|
||||
public:
|
||||
/// \ru Конструктор. \en Constructor. \~ \deprecated \ru Метод устарел. \en The method is deprecated.
|
||||
DEPRECATE_DECLARE reader( membuf & sb, uint8 om );
|
||||
/// \ru Конструктор. \en Constructor. \~ \deprecated \ru Метод устарел. \en The method is deprecated.
|
||||
DEPRECATE_DECLARE reader( iobuf_Seq & buf, uint16 om );
|
||||
reader( iobuf_Seq & buf, uint16 om );
|
||||
|
||||
public:
|
||||
virtual ~reader() {}
|
||||
|
||||
public:
|
||||
@@ -587,9 +577,6 @@ public:
|
||||
/// \ru Установить позицию чтения. \en Set reading position.
|
||||
virtual bool SetReadPosition ( ClusterReference & ) { return false; } // not supported
|
||||
|
||||
/// \ru Прочитать последовательность байт из буфера. \en Read a sequence of bytes from the buffer. \~ \deprecated \ru Метод устарел. \en The method is deprecated.
|
||||
DEPRECATE_DECLARE size_t readSBytes ( void * bf, size_t len );
|
||||
|
||||
/// \ru Прочитать беззнаковое 64-разрядное целое \en Read unsigned 64-bit integer.
|
||||
bool readUInt64( uint64 & );
|
||||
/// \ru Прочитать 64-разрядное целое \en Read 64-bit integer.
|
||||
@@ -644,13 +631,13 @@ protected:
|
||||
/// \ru Конструктор. \en Constructor.
|
||||
reader_ex( iobuf_Seq & buf, bool ownbuf, bool openSys, uint16 om );
|
||||
|
||||
/// \ru Конструктор. \en Constructor. \~ \deprecated \ru Метод устарел. \en The method is deprecated.
|
||||
reader_ex( membuf & sb, uint8 om );
|
||||
|
||||
/// \ru Конструктор. \en Constructor. \~ \deprecated \ru Метод устарел. \en The method is deprecated.
|
||||
reader_ex( iobuf_Seq & buf, uint16 om );
|
||||
|
||||
public:
|
||||
/// \ru Конструктор. \en Constructor. \~ \deprecated \ru Метод устарел. \en The method is deprecated.
|
||||
DEPRECATE_DECLARE reader_ex( membuf & sb, uint8 om );
|
||||
|
||||
/// \ru Конструктор. \en Constructor. \~ \deprecated \ru Метод устарел. \en The method is deprecated.
|
||||
DEPRECATE_DECLARE reader_ex( iobuf_Seq & buf, uint16 om );
|
||||
|
||||
virtual ~reader_ex() {}
|
||||
|
||||
public:
|
||||
@@ -710,17 +697,13 @@ public:
|
||||
protected:
|
||||
/// \ru Конструктор. \en Constructor.
|
||||
writer ( iobuf_Seq & buf, bool ownBuf, bool openSys, uint16 om, TapeRegistrator * reg );
|
||||
|
||||
/// \ru Конструктор. \en Constructor. \~ \deprecated \ru Метод устарел. \en The method is deprecated.
|
||||
DEPRECATE_DECLARE writer( iobuf_Seq & buf, bool ownBuf, bool openSys, uint16 om, TapeRegistrator & reg );
|
||||
writer ( membuf & sb, uint8 om );
|
||||
/// \ru Конструктор. \en Constructor. \~ \deprecated \ru Метод устарел. \en The method is deprecated.
|
||||
DEPRECATE_DECLARE writer ( membuf & sb, bool openSys, uint8 om, TapeRegistrator & reg );
|
||||
writer ( iobuf_Seq & buf, uint16 om );
|
||||
|
||||
public:
|
||||
/// \ru Конструктор. \en Constructor. \~ \deprecated \ru Метод устарел. \en The method is deprecated.
|
||||
DEPRECATE_DECLARE writer ( membuf & sb, uint8 om );
|
||||
/// \ru Конструктор. \en Constructor. \~ \deprecated \ru Метод устарел. \en The method is deprecated.
|
||||
DEPRECATE_DECLARE writer ( iobuf_Seq & buf, uint16 om );
|
||||
|
||||
virtual ~writer() {}
|
||||
|
||||
public:
|
||||
@@ -744,8 +727,6 @@ public:
|
||||
virtual void writeByte ( uint8 ch );
|
||||
/// \ru Записать последовательность байт в буфер. \en Write the sequence of bytes to the buffer.
|
||||
virtual void writeBytes ( const void * bf, size_t len );
|
||||
/// \ru Записать последовательность байт в буфер. \en Write the sequence of bytes to the buffer. \~ \deprecated \ru Метод устарел. \en The method is deprecated.
|
||||
DEPRECATE_DECLARE size_t writeSBytes( const void * bf, size_t len );
|
||||
/// \ru Записать беззнаковое 64-разрядное целое. \en Write unsigned 64-bit integer. \~ \return \ru Возвращает количество записанных байт. \en Returns the number of written bytes. \~
|
||||
void writeUInt64( const uint64 & val );
|
||||
/// \ru Записать 64-разрядное целое. \en Write 64-bit integer. \~ \return \ru Возвращает количество записанных байт. \en Returns the number of written bytes. \~
|
||||
@@ -795,12 +776,12 @@ protected:
|
||||
/// \ru Конструктор. \en Constructor.
|
||||
writer_ex ( iobuf_Seq & buf, bool ownBuf, bool openSys, uint16 om );
|
||||
|
||||
public:
|
||||
/// \ru Конструктор. \en Constructor. \~ \deprecated \ru Метод устарел. \en The method is deprecated.
|
||||
DEPRECATE_DECLARE writer_ex ( membuf & sb, uint8 om );
|
||||
writer_ex ( membuf & sb, uint8 om );
|
||||
/// \ru Конструктор. \en Constructor. \~ \deprecated \ru Метод устарел. \en The method is deprecated.
|
||||
DEPRECATE_DECLARE writer_ex ( iobuf_Seq & buf, uint16 om );
|
||||
writer_ex ( iobuf_Seq & buf, uint16 om );
|
||||
|
||||
public:
|
||||
virtual ~writer_ex() {}
|
||||
|
||||
public:
|
||||
@@ -846,8 +827,6 @@ class MATH_CLASS rw : public writer, public reader {
|
||||
public:
|
||||
typedef std::unique_ptr<rw> rw_ptr;
|
||||
public:
|
||||
/// \ru Конструктор. \en Constructor. \~ \deprecated \ru Метод устарел. \en The method is deprecated.
|
||||
DEPRECATE_DECLARE rw( membuf & sb, uint8 om );
|
||||
|
||||
/// \ru Создать читатель/писатель для буфера в памяти. \en Create reader/writer for membuf.
|
||||
static rw_ptr CreateMemWriter( membuf & sb, uint8 om );
|
||||
|
||||
@@ -116,9 +116,6 @@ public:
|
||||
MbMatrix3D & SetMatrixFrom() { return _from; }
|
||||
/// \ru Инициализировать тело и матрицу. \en Initialize solid and matrix.
|
||||
void SetSolid( const MbSolid & solid, const MbMatrix3D & from, bool changed = true );
|
||||
/// \ru Получить тело. \en Get solid.
|
||||
DEPRECATE_DECLARE_REPLACE( GetItem )
|
||||
const MbSolid & GetSolid() const;
|
||||
/// \ru Инициализировать тело и матрицу. \en Initialize solid and matrix.
|
||||
void SetMesh( const MbMesh & mesh, const MbMatrix3D & from, bool changed = true );
|
||||
/// \ru Получить объект геометрической модели. \en Get a geometric model object.
|
||||
|
||||
@@ -195,7 +195,8 @@ private:
|
||||
// \note \ru В многопоточном режиме m_Items выполняется параллельно. \en In multithreaded mode m_Items runs in parallel. \~
|
||||
void BodiesCreateSecondLocal( const PArraySort<MbSimbolthThreadView> * annotations );
|
||||
// \ru добавление тела \en addition of solid
|
||||
bool AddBody( MbMapBody * mapBody, size_t & replaceInd, bool checkShadedSolids );
|
||||
bool AddBody( MbMapBody * mapBody, size_t & replaceInd, bool checkShadedSolids,
|
||||
c3d::BoolVector & isSolids, c3d::IndicesVector & nFacesVec );
|
||||
|
||||
OBVIOUS_PRIVATE_COPY( MbMapBodiesPArray )
|
||||
};
|
||||
|
||||
@@ -34,26 +34,6 @@ public:
|
||||
|
||||
public:
|
||||
|
||||
/** \brief \ru Конструктор.
|
||||
\en Constructor. \~
|
||||
\details \ru Конструктор.\n
|
||||
\en Constructor.\n \~
|
||||
\param[in] thr - \ru Резьба
|
||||
\en A thread \~
|
||||
\param[in] lump - \ru Тело с матрицей преобразования.
|
||||
\en A solid with a matrix of transformation. \~
|
||||
*/
|
||||
DEPRECATE_DECLARE_REPLACE( ThreadMapperStruct with 'MbSolid' )
|
||||
ThreadMapperStruct( const MbThread & thr, const MbLump & lump,
|
||||
const VERSION ver = Math::DefaultMathVersion() )
|
||||
: thread ( thr )
|
||||
, solid ( static_cast<const MbSolid &>(lump.GetItem()) )
|
||||
, matrFrom ( lump.GetMatrixFrom() )
|
||||
, placeView ( )
|
||||
, thrMapType( tmt_CompleteView )
|
||||
, version ( ver )
|
||||
{}
|
||||
|
||||
/** \brief \ru Конструктор.
|
||||
\en Constructor. \~
|
||||
\details \ru Конструктор.\n
|
||||
@@ -88,17 +68,6 @@ public:
|
||||
\param[in] tmType - \ru Тип отображения резьбы.
|
||||
\en A type of thread mapping. \~
|
||||
*/
|
||||
DEPRECATE_DECLARE_REPLACE( ThreadMapperStruct with 'MbSolid' )
|
||||
ThreadMapperStruct( const MbThread & thr, const MbLump & lump, const MbPlacement3D & plView, MbeThrMapType tmType,
|
||||
const VERSION ver = Math::DefaultMathVersion() )
|
||||
: thread ( thr )
|
||||
, solid ( static_cast<const MbSolid &>(lump.GetItem()) )
|
||||
, matrFrom ( lump.GetMatrixFrom() )
|
||||
, placeView ( plView )
|
||||
, thrMapType( tmType )
|
||||
, version ( ver )
|
||||
{}
|
||||
|
||||
/** \brief \ru Конструктор.
|
||||
\en Constructor. \~
|
||||
\details \ru Конструктор.\n
|
||||
|
||||
@@ -90,10 +90,11 @@
|
||||
#define C3D_2021_VERSION 0x14002001L ///< \ru Версия файла - C3D 2021. \en The file version - C3D 2021. \~ \ingroup Base_Tools
|
||||
#define MATH_21_VERSION 0x15000001L ///< \ru Версия файла - 21.0. \en The file version - 21.0. \~ \ingroup Base_Tools
|
||||
#define MATH_21_UHF_VERSION 0x15000011L ///< \ru Версия файла - 21.0 UHF (Upper Hot Fix). \en The file version - 21.0 UHF (Upper Hot Fix). \~ \ingroup Base_Tools
|
||||
#define C3D_2022_VERSION 0x15001001L ///< \ru Версия файла - C3D 2022. \en The file version - C3D 2021. \~ \ingroup Base_Tools
|
||||
#define C3D_2022_VERSION 0x15001001L ///< \ru Версия файла - C3D 2022. \en The file version - C3D 2022. \~ \ingroup Base_Tools
|
||||
#define MATH_22_VERSION 0x16000001L ///< \ru Версия файла - 22.0. \en The file version - 22.0. \~ \ingroup Base_Tools
|
||||
#define MATH_22_HF1_VERSION 0x16000002L ///< \ru Версия файла - 22.0 HF1. \en The file version - 22.0 HF1. \~ \ingroup Base_Tools
|
||||
#define MATH_22_UHF_VERSION 0x16000011L ///< \ru Версия файла - 22.0 UHF (Upper Hot Fix). \en The file version - 22.0 UHF (Upper Hot Fix). \~ \ingroup Base_Tools
|
||||
#define C3D_2023_VERSION 0x16001001L ///< \ru Версия файла - C3D 2023. \en The file version - C3D 2023. \~ \ingroup Base_Tools
|
||||
|
||||
|
||||
//------------------------------------------------------------------------------
|
||||
@@ -145,11 +146,12 @@ enum MbeWritableReleaseVersion
|
||||
wrv_MATH_20 = MATH_20_VERSION, ///< \ru Версия файла - 20.0. \en The file version - 20.0.
|
||||
wrv_C3D_2021 = C3D_2021_VERSION, ///< \ru Версия файла - C3D 2021. \en The file version - C3D 2021.
|
||||
wrv_MATH_21 = MATH_21_VERSION, ///< \ru Версия файла - 21.0. \en The file version - 21.0.
|
||||
wrv_C3D_2022 = C3D_2022_VERSION, ///< \ru Версия файла - C3D 2021. \en The file version - C3D 2021.
|
||||
wrv_C3D_2022 = C3D_2022_VERSION, ///< \ru Версия файла - C3D 2022. \en The file version - C3D 2022.
|
||||
wrv_MATH_22 = MATH_22_VERSION, ///< \ru Версия файла - 22.0. \en The file version - 22.0.
|
||||
wrv_C3D_2023 = C3D_2023_VERSION, ///< \ru Версия файла - C3D 2023. \en The file version - C3D 2023.
|
||||
|
||||
wrv_PrevRelease = wrv_C3D_2022, ///< \ru Версия потока предпоследнего релиза. \en The previous release version.
|
||||
wrv_LastRelease = wrv_MATH_22, ///< \ru Версия потока последнего релиза. \en The last release version.
|
||||
wrv_PrevRelease = wrv_MATH_22, ///< \ru Версия потока предпоследнего релиза. \en The previous release version.
|
||||
wrv_LastRelease = wrv_C3D_2023, ///< \ru Версия потока последнего релиза. \en The last release version.
|
||||
wrv_MaxPossible = SYS_MAX_INT32 ///< \ru Использовать последнюю версия потока. \en Use current working version.
|
||||
};
|
||||
|
||||
|
||||
@@ -93,7 +93,7 @@ namespace c3d {
|
||||
#define CONCAT_TKNS(A, B, C, D) A B C D // Concatenate tokens without expanding macro (if invoked from macro, arguments are expanded).
|
||||
#define CONCAT_TOKENS(A, B, C, D) CONCAT_TKNS(A, B, C, D) // Concatenate tokens with expanding macro.
|
||||
|
||||
#define DEPR_MSG "This is a deprecated API that will be removed in version 2023!" // Message about a deprecated API.
|
||||
#define DEPR_MSG "This is a deprecated API that will be removed in version 2024!" // Message about a deprecated API.
|
||||
#define DEPR_MSG_EX(msg) CONCAT_TOKENS(DEPR_MSG, " Use ", #msg, " instead it.") // Message about a deprecated API indicating a replacement API.
|
||||
|
||||
|
||||
|
||||
@@ -16,6 +16,28 @@
|
||||
#include <iterator>
|
||||
#include <algorithm>
|
||||
#include <limits>
|
||||
#include <queue>
|
||||
|
||||
//------------------------------------------------------------------------------
|
||||
/** \brief \ru Базовый интерфейс для вычисления квадрата расстояния до объекта, которому
|
||||
принадлежит габаритный куб дерева по указанному индексу.
|
||||
\en The base interface for calculating of squared distance to the object from
|
||||
the tree's bounding box with specified index. \~
|
||||
\ingroup Base_Items
|
||||
*/
|
||||
// ---
|
||||
template <class Point>
|
||||
class MbTreeDistanceToElementBase
|
||||
{
|
||||
public:
|
||||
/// \ru Конструктор. \en Constructor.
|
||||
MbTreeDistanceToElementBase() {}
|
||||
/// \ru Деструктор. \en Destructor.
|
||||
virtual ~MbTreeDistanceToElementBase() {}
|
||||
|
||||
/// \ru Вычислить квадрат расстояния от точки до объекта из габаритного куба. \en Find the squared distance from the point to tree object from bounding box.
|
||||
virtual double DistanceToElement2( const Point & pnt, size_t iElem ) const = 0;
|
||||
};
|
||||
|
||||
|
||||
//------------------------------------------------------------------------------
|
||||
@@ -250,6 +272,9 @@ public:
|
||||
void GetNearestObjects ( const Point & pnt, const double distance,
|
||||
std::vector<size_t> & indices,
|
||||
double eps = MbCubeTree::defaultEpsilon ) const;
|
||||
/// \ru Выдать индекс объекта дерева, ближайшего к точке, и квадрат расстояния до него. \en Get tree objects index that are closest to the point, and squared distance to object.
|
||||
double FindNearestObject ( const Point & pnt, const MbTreeDistanceToElementBase<Point> & calc, size_t & index ) const;
|
||||
|
||||
private:
|
||||
// функции инициализация и заполнение ветвей дерева / internal functions for initialization, filling branches
|
||||
|
||||
@@ -1650,4 +1675,95 @@ inline void MbCubeTree<Type, Cube, Point, Vector>::GetNearestObjects( const Poin
|
||||
}
|
||||
|
||||
|
||||
//------------------------------------------------------------------------------
|
||||
/** \brief \ru Вспомогательная структура для элемента приоритетной очереди.
|
||||
\en Auxilliary structure for the priority queue element. \~
|
||||
\ingroup Base_Items
|
||||
*/
|
||||
// ---
|
||||
template <class Type>
|
||||
struct NodeElem
|
||||
{
|
||||
const Type * _ptr; ///< \ru Указатель на узел дерева. \en Pointer to the tree node.
|
||||
double _weight; ///< \ru Расстояние от куба узла до точки. \en Distance from the node bounding box to the point.
|
||||
|
||||
/// \ru Конструктор. \en Constructor.
|
||||
NodeElem() : _ptr( nullptr ), _weight( MB_MAXDOUBLE ) {}
|
||||
/// \ru Конструктор. \en Constructor.
|
||||
NodeElem( const Type * ptr, double weigth ) : _ptr( ptr ), _weight( weigth ) {}
|
||||
/// \ru Конструктор копирования. \en Copy constructor.
|
||||
NodeElem( const NodeElem<Type> & that ) : _ptr( that._ptr ), _weight( that._weight ) {}
|
||||
/// \ru Деструктор. \en Destructor.
|
||||
~NodeElem() {}
|
||||
/// \ru Оператор присваивания. \en An assignment operator.
|
||||
NodeElem<Type> & operator = ( const NodeElem<Type> & that )
|
||||
{
|
||||
_ptr = that._ptr;
|
||||
_weight = that._weight;
|
||||
return *this;
|
||||
}
|
||||
/// \ru Оператор сравнения. \en Comparison operator.
|
||||
bool operator < ( const NodeElem<Type> & that ) const
|
||||
{
|
||||
return _weight > that._weight;
|
||||
}
|
||||
};
|
||||
|
||||
|
||||
//-------------------------------------------------------------------------------
|
||||
// \ru Выдать индекс объекта дерева, ближайшего к точке. \en Get tree objects index that are closest to the point.
|
||||
// ---
|
||||
template <class Type, class Cube, class Point, class Vector>
|
||||
double MbCubeTree<Type, Cube, Point, Vector>::FindNearestObject( const Point & pnt, const MbTreeDistanceToElementBase<Point> & calc, size_t & index ) const
|
||||
{
|
||||
double dist2( MB_MAXDOUBLE );
|
||||
index = SYS_MAX_T;
|
||||
|
||||
std::priority_queue< NodeElem<TypeTree> > queue;
|
||||
queue.push( NodeElem<TypeTree>(this, 0.) );
|
||||
while ( !queue.empty() ) {
|
||||
const NodeElem<TypeTree> node = queue.top(); // Первым рассматриваем узлы, наиболее близкие к точке.
|
||||
queue.pop();
|
||||
|
||||
double d2 = node._ptr->branchCube.DistanceToPoint( pnt );
|
||||
d2 *= d2;
|
||||
if ( d2 > dist2 )
|
||||
break; // Все оставшиеся узлы дальше уже найденного расстояния.
|
||||
|
||||
if ( ( node._ptr->lowerBranch != nullptr ) || ( node._ptr->upperBranch != nullptr ) || ( node._ptr->midstBranch != nullptr ) ) {
|
||||
if ( node._ptr->lowerBranch != nullptr ) {
|
||||
d2 = node._ptr->lowerBranch->branchCube.DistanceToPoint( pnt );
|
||||
d2 *= d2;
|
||||
if ( d2 < dist2 )
|
||||
queue.push( NodeElem<TypeTree>( node._ptr->lowerBranch, d2 ) );
|
||||
}
|
||||
|
||||
if ( node._ptr->upperBranch != nullptr ) {
|
||||
d2 = node._ptr->upperBranch->branchCube.DistanceToPoint( pnt );
|
||||
d2 *= d2;
|
||||
if ( d2 < dist2 )
|
||||
queue.push( NodeElem<TypeTree>( node._ptr->upperBranch, d2 ) );
|
||||
}
|
||||
|
||||
if ( node._ptr->midstBranch != nullptr ) {
|
||||
d2 = node._ptr->midstBranch->branchCube.DistanceToPoint( pnt );
|
||||
d2 *= d2;
|
||||
if ( d2 < dist2 )
|
||||
queue.push( NodeElem<TypeTree>( node._ptr->midstBranch, d2 ) );
|
||||
}
|
||||
}
|
||||
else { // содержимое конечной ветви // terminal branch content
|
||||
for ( size_t i = 0, iCount = node._ptr->leafObjects.size(); i < iCount; ++i ) {
|
||||
const ItemIndex & obj = node._ptr->leafObjects[i];
|
||||
d2 = calc.DistanceToElement2( pnt, obj.second );
|
||||
if ( d2 < dist2 ) {
|
||||
dist2 = d2;
|
||||
index = obj.second;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return dist2;
|
||||
}
|
||||
#endif
|
||||
|
||||
@@ -203,18 +203,18 @@ public:
|
||||
, grid( true )
|
||||
, seam( true )
|
||||
, quad( false )
|
||||
, fair( false )
|
||||
, fair( true )
|
||||
, mere( true )
|
||||
{}
|
||||
/// \ru Конструктор с заданным типом шага. \en Constructor by step type.
|
||||
MbFormNote( bool w, bool g, bool s = true, bool e = false, bool q = false, bool f = false, bool p = true )
|
||||
MbFormNote( bool w, bool g, bool s = true, bool e = false, bool q = false, bool f = true, bool m = true )
|
||||
: exact( e )
|
||||
, wire( w )
|
||||
, grid( g )
|
||||
, seam( s )
|
||||
, quad( q )
|
||||
, fair( f )
|
||||
, mere( p )
|
||||
, mere( m )
|
||||
{}
|
||||
/// \ru Конструктор копирования. \en Copy-constructor.
|
||||
MbFormNote( const MbFormNote & other )
|
||||
@@ -243,7 +243,7 @@ public:
|
||||
/// \ru Установить флаг удаления вырожденных треугольников. \en Set flag degenerate triangles removing. \~
|
||||
void SetFair( bool f ) { fair = f; }
|
||||
/// \ru Установить флаг специального алгоритма для плоской поверхности. \en Set flag to use a special algorithm for a flat surface. \~
|
||||
void SetMere( bool p ) { mere = p; }
|
||||
void SetMere( bool m ) { mere = m; }
|
||||
|
||||
/// \ru Выполнить построение полигональных объектов на числах double (true) на числах float (false). \en Polygonal objects will created on double data (true) on float data (false).
|
||||
bool DoExact() const { return exact; }
|
||||
@@ -261,14 +261,14 @@ public:
|
||||
bool Mere() const { return mere; }
|
||||
|
||||
/// \ru Установить Данные для вычисления шага при триангуляции. \en Set data for step calculation during triangulation.
|
||||
void Init( bool w, bool g, bool s, bool e = false, bool q = false, bool f = false, bool p = true ) {
|
||||
void Init( bool w, bool g, bool s, bool e = false, bool q = false, bool f = true, bool m = true ) {
|
||||
exact = e;
|
||||
wire = w;
|
||||
grid = g;
|
||||
seam = s;
|
||||
quad = q;
|
||||
fair = f;
|
||||
mere = p;
|
||||
mere = m;
|
||||
}
|
||||
|
||||
/// \ru Функция копирования данных. \en Copy function of data.
|
||||
|
||||
@@ -896,10 +896,8 @@ enum MbePairObjectsSelection
|
||||
|
||||
//------------------------------------------------------------------------------
|
||||
/** \brief \ru Перечисление способов продления кривой.
|
||||
\en Enumeration of ways to extend the curve. \~
|
||||
\ingroup Curve_Modeling
|
||||
\warning \ru В разработке.
|
||||
\en Under development. \~
|
||||
\en Enumeration of ways to extend the curve. \~
|
||||
\ingroup Curve_Modeling
|
||||
*/
|
||||
// ---
|
||||
enum class MbeCurveExtensionWays : unsigned int
|
||||
|
||||
@@ -1004,6 +1004,7 @@ enum MbePrompt
|
||||
IDS_PROP_0719, ///< \ru Полюс при umax. \en Pole at umax.
|
||||
IDS_PROP_0720, ///< \ru Полюс при vmin. \en Pole at vmin.
|
||||
IDS_PROP_0721, ///< \ru Полюс при vmax. \en Pole at vmax.
|
||||
IDS_PROP_0722, ///< \ru Сохранение круговой обработки угла. \en Keeping circular reliefs.
|
||||
IDS_PROP_0724, ///< \ru Вершина. \en Vertex.
|
||||
IDS_PROP_0725, ///< \ru Ребро. \en Edge.
|
||||
IDS_PROP_0726, ///< \ru Цикл. \en Loop.
|
||||
|
||||
@@ -459,6 +459,22 @@ public:
|
||||
bool LineIntersection( const MbFloatAxis3D & line,
|
||||
MbFloatPoint3D & crossPnt,
|
||||
float & tRes );
|
||||
|
||||
/** \brief \ru Найти индекс треугольника или четырехугольника, ближайших к точке.
|
||||
\en Find index of triangle or quadrangle which is closect to a point. \~
|
||||
\param[in] pnt - \ru Точка.
|
||||
\en Point. \~
|
||||
\param[out] pntProj - \ru Ближайшая точка на сетке.
|
||||
\en Nearest point from mesh. \~
|
||||
\param[out] iGrid - \ru Индекс ближайшего грида.
|
||||
\en Nearest grid index. \~
|
||||
\param[out] tqInd - \ru Индекс ближайшего треугольника или четырехугольника.
|
||||
\en Index of nearest triangle or quadrangle. \~
|
||||
\return \ru Расстояние до ближайшей точки.
|
||||
\en Distance to the nearest point. \~
|
||||
*/
|
||||
double FindNearest( const MbCartPoint3D & pnt, MbCartPoint3D & pntProj, size_t & iGrid, c3d::IndicesPair & tqInd ) const;
|
||||
|
||||
/** \brief \ru Создать дерево поиска элементов.
|
||||
\en Create elements search tree. \~
|
||||
\details \ru Создать дерево поиска элементов. \n
|
||||
|
||||
@@ -1207,12 +1207,19 @@ public:
|
||||
\en Returns true if a search by cubes tree was performed. \~
|
||||
*/
|
||||
bool FindIntersectingElementsByCubesTree( const MbAxis3D & ray, c3d::IndicesVector & triIndices, c3d::IndicesVector & quadIndices, double eps = METRIC_EPSILON ) const;
|
||||
/** \brief \ru Найти индекс треугольника или четырехугольника, ближайших к точке.
|
||||
\en Find index of triangle or quadrangle which is closect to a point. \~
|
||||
\param[in] pnt - \ru Точка.
|
||||
\en Point. \~
|
||||
\param[out] pntProj - \ru Ближайшая точка на сетке.
|
||||
\en Nearest point from mesh. \~
|
||||
\param[out] tqInd - \ru Индекс ближайшего треугольника или четырехугольника.
|
||||
\en Index of nearest triangle or quadrangle. \~
|
||||
\return \ru Расстояние до ближайшей точки.
|
||||
\en Distance to the nearest point. \~
|
||||
*/
|
||||
double FindNearest( const MbCartPoint3D & pnt, MbCartPoint3D & pntProj, c3d::IndicesPair & tqInd ) const;
|
||||
|
||||
DEPRECATE_DECLARE_REPLACE( FindIntersectingElements )
|
||||
bool FindIntersectElements( const MbAxis3D & ray, c3d::IndicesVector & triIndices, c3d::IndicesVector & quadIndices, double eps = METRIC_EPSILON ) const
|
||||
{
|
||||
return FindIntersectingElements( ray, triIndices, quadIndices, eps );
|
||||
}
|
||||
/** \brief \ru Найти индексы треугольников и четырехугольников, пересекающихся с лучом.
|
||||
\en Find indices of triangles and quadrangles intersecting with a ray. \~
|
||||
\details \ru Найти индексы треугольников и четырехугольников, пересекающихся с лучом. \n
|
||||
@@ -1234,7 +1241,19 @@ protected:
|
||||
void MoveSearchTree( const MbVector3D & ) const;
|
||||
private :
|
||||
// \ru Объявление оператора присваивания без реализации, чтобы не было присваивания по умолчанию. \en The declaration of the assignment operator without implementation, to prevent an assignment by default.
|
||||
void operator = ( const MbGrid & );
|
||||
void operator = ( const MbGrid & );
|
||||
/** \brief \ru Найти индекс треугольника или четырехугольника, ближайших к точке, простым перебором.
|
||||
\en Find index of triangle or quadrangle which is closect to a point by a brutforce method. \~
|
||||
\param[in] pnt - \ru Точка.
|
||||
\en Point. \~
|
||||
\param[out] pntProj - \ru Ближайшая точка на сетке.
|
||||
\en Nearest point from mesh. \~
|
||||
\param[out] tqInd - \ru Индекс ближайшего треугольника или четырехугольника.
|
||||
\en Index of nearest triangle or quadrangle. \~
|
||||
\return \ru Расстояние до ближайшей точки.
|
||||
\en Distance to the nearest point. \~
|
||||
*/
|
||||
double FindNearestBrutforce( const MbCartPoint3D & pnt, MbCartPoint3D & pntProj, c3d::IndicesPair & tqInd ) const;
|
||||
}; // MbGrid
|
||||
|
||||
|
||||
|
||||
@@ -38,7 +38,9 @@ class MATH_CLASS MbIntCurveValues
|
||||
protected:
|
||||
/// \ru Конструктор без параметров закрыт. \en The default constructor is protected.
|
||||
explicit MbIntCurveValues() {};
|
||||
OBVIOUS_PRIVATE_COPY(MbIntCurveValues)
|
||||
public:
|
||||
virtual ~MbIntCurveValues() {};
|
||||
OBVIOUS_PRIVATE_COPY( MbIntCurveValues )
|
||||
};
|
||||
|
||||
|
||||
@@ -52,11 +54,11 @@ protected:
|
||||
class MATH_CLASS MbIntCurveOnePointValues : public MbIntCurveValues
|
||||
{
|
||||
protected:
|
||||
MbRect2D _surface1Domain; ///< \ru Область ограничения кривой на первой поверхности. \en The curve bound area on the first surface. \~
|
||||
MbRect2D _surface2Domain; ///< \ru Область ограничения кривой на второй поверхности.\en The curve bound area on the second surface. \~
|
||||
MbRect2D _surface1Domain; ///< \ru Область ограничения кривой на первой поверхности. \en The curve bound area on the first surface. \~
|
||||
MbRect2D _surface2Domain; ///< \ru Область ограничения кривой на второй поверхности.\en The curve bound area on the second surface. \~
|
||||
MbCartPoint _uvInitOnSurface1; ///< \ru Начальная точка на первой поверхности. \en The curve starting point on the first surface. \~
|
||||
MbCartPoint _uvInitOnSurface2; ///< \ru Начальная точка на второй поверхности. \en The curve starting point on the second surface. \~
|
||||
MbVector3D _initDirection; ///< \ru Начальное направление создания линии пересечения. \en The initial direction for the intersection curve creation. \~
|
||||
MbVector3D _initDirection; ///< \ru Начальное направление создания линии пересечения. \en The initial direction for the intersection curve creation. \~
|
||||
|
||||
private:
|
||||
/// \ru Конструктор без параметров запрещён. \en The default constructor is forbidden.
|
||||
@@ -561,16 +563,11 @@ OBVIOUS_PRIVATE_COPY( MbSurfaceOffsetCurveParams )
|
||||
\details \ru Параметры продления одного конца кривой.
|
||||
\en Parameters of extension of the one curve end. \~
|
||||
\ingroup Data_Structures
|
||||
\warning \ru В разработке.
|
||||
\en Under development. \~
|
||||
*/
|
||||
// ---
|
||||
class MATH_CLASS MbCurveExtensionEnds : public MbPrecision
|
||||
{
|
||||
private:
|
||||
friend class MbExtendCurveCreator;
|
||||
friend class MbCurveExtensionParameters;
|
||||
|
||||
MbeCurveExtensionWays _extensionWay; ///< \ru Способ продления. \en The way to extend. \~
|
||||
double _extensionLength; ///< \ru Длина продления (в метрическом диапазоне). Всегда неотрицательна \en The length to extend (in metric range). It is always not negative. \~
|
||||
|
||||
@@ -637,8 +634,6 @@ KNOWN_OBJECTS_RW_REF_OPERATORS( MbCurveExtensionEnds ) // \ru Для работ
|
||||
\details \ru Параметры продления одного конца кривой по линейному закону.
|
||||
\en Parameters of extension of the one curve end by linear way. \~
|
||||
\ingroup Data_Structures
|
||||
\warning \ru В разработке.
|
||||
\en Under development. \~
|
||||
*/
|
||||
// ---
|
||||
class MATH_CLASS MbCurveExtensionLinear : public MbCurveExtensionEnds
|
||||
@@ -662,8 +657,6 @@ public:
|
||||
\details \ru Параметры продления одного конца кривой по соприкасающейся окружности.
|
||||
\en Parameters of extension of the one curve end by osculating circle. \~
|
||||
\ingroup Data_Structures
|
||||
\warning \ru В разработке.
|
||||
\en Under development. \~
|
||||
*/
|
||||
// ---
|
||||
class MATH_CLASS MbCurveExtensionCircular : public MbCurveExtensionEnds
|
||||
@@ -687,8 +680,6 @@ public:
|
||||
\details \ru Входные параметры продления одного конца кривой по натуральному закону.
|
||||
\en Input parameters of extension of the one curve end by natural way. \~
|
||||
\ingroup Data_Structures
|
||||
\warning \ru В разработке.
|
||||
\en Under development. \~
|
||||
*/
|
||||
// ---
|
||||
class MATH_CLASS MbCurveExtensionNatural : public MbCurveExtensionEnds
|
||||
@@ -712,8 +703,6 @@ public:
|
||||
\details \ru Параметры продления кривой.
|
||||
\en Parameters of the curve extension. \~
|
||||
\ingroup Data_Structures
|
||||
\warning \ru В разработке.
|
||||
\en Under development. \~
|
||||
*/
|
||||
// ---
|
||||
class MATH_CLASS MbCurveExtensionParameters : public MbPrecision
|
||||
@@ -818,8 +807,6 @@ KNOWN_OBJECTS_RW_REF_OPERATORS( MbCurveExtensionParameters ) // \ru Для ра
|
||||
\details \ru Параметры продления кривой.
|
||||
\en Parameters of the curve extension. \~
|
||||
\ingroup Data_Structures
|
||||
\warning \ru В разработке.
|
||||
\en Under development. \~
|
||||
*/
|
||||
// ---
|
||||
class MATH_CLASS MbCurveExtensionParameters3D : public MbCurveExtensionParameters
|
||||
@@ -1052,7 +1039,7 @@ public:
|
||||
class MATH_CLASS MbCurvesWrappingParams : public MbPrecision {
|
||||
private:
|
||||
c3d::ConstPlaneCurvesSPtrVector curves; ///< \ru Двумерные кривые, копии которых будут перенесены на другой носитель. \en 2d curves, copies of which will be transferred to another medium. \~
|
||||
c3d::ConstSurfaceSPtr surface; ///< \ru Поверхность. \en The surface. \~
|
||||
c3d::SurfaceSPtr surface; ///< \ru Поверхность. \en The surface. \~
|
||||
MbPlacement3D place; ///< \ru Локальная система координат (ЛСК). \en The local coordinate system (LCS) of the curves. \~
|
||||
MbCartPoint xy; ///< \ru Точка привязки на плоскости XY локальной системы координат. \en The anchor point on the "XY" plane of the LCS that will be aligned with the uv point on the parametric plane of the surface. \~
|
||||
MbCartPoint uv; ///< \ru Точка привязки в параметрической плоскости "UV" параметров поверхности. \en The anchor point in the parametric plane "UV" of the surface parameters. \~
|
||||
@@ -1340,6 +1327,8 @@ public:
|
||||
\en Create a copy of the surface. \~
|
||||
*/
|
||||
MbCurvesWrappingParams( const MbCurvesWrappingParams & other, bool copyCurves, bool copySurface, MbRegDuplicate * iReg = nullptr );
|
||||
// \ru Конструктор для чтения. \en Constructor for reading.
|
||||
MbCurvesWrappingParams( TapeInit tapeInit );
|
||||
/// \ru Деструктор. \ en Destructor.
|
||||
~MbCurvesWrappingParams() {}
|
||||
|
||||
@@ -1377,6 +1366,8 @@ public:
|
||||
const MbPlacement3D & GetPlacement() const { return place; }
|
||||
/// \ru Установить локальную систему координат. \en Set the local coordinate system. \~
|
||||
void SetPlacement( const MbPlacement3D & p ) { place = p; }
|
||||
/// \ru Дать локальную систему координат. \en Get the local coordinate system. \~
|
||||
MbPlacement3D & SetPlacement() { return place; }
|
||||
/// \ru Дать точку на плоскости XY локальной системы координат. \en Get a point on the "XY" plane of the LCS that will be aligned with the uv point on the parametric plane of the surface. \~
|
||||
const MbCartPoint & GetPlacePoint() const { return xy; }
|
||||
/// \ru Установить точку на плоскости XY локальной системы координат. \en Set a point on the "XY" plane of the LCS that will be aligned with the uv point on the parametric plane of the surface. \~
|
||||
@@ -1384,13 +1375,13 @@ public:
|
||||
|
||||
/// \ru Дать поверхность. \en Get the surface. \~
|
||||
const MbSurface & GetSurface() const;
|
||||
/// \ru Дать поверхность. \en Get the surface. \~
|
||||
const c3d::ConstSurfaceSPtr & GetSurfacePtr() const { return surface; }
|
||||
|
||||
/// \ru Установить поверхность. \en Set the surface. \~
|
||||
void SetSurface ( MbSurface & surf ) { surface.assign( &surf ); }
|
||||
void SetSurface( MbSurface & surf ) { surface.assign( &surf ); }
|
||||
/// \ru Дать поверхность. \en Get the surface. \~
|
||||
MbSurface & SetSurface() { return *surface; }
|
||||
/// \ru Установить поверхность. \en Set the surface. \~
|
||||
void SetSurfacePtr( const c3d::ConstSurfaceSPtr & surf ) { if ( surf != nullptr ) surface = surf; }
|
||||
void SetSurfacePtr( const c3d::ConstSurfaceSPtr & surf );
|
||||
|
||||
/// \ru Дать точку в области параметров поверхности. \en Get a point on the parametric plane "UV" of the surface corresponding to the point xy on the plane. \~
|
||||
const MbCartPoint & GetSurfacePoint() const { return uv; }
|
||||
@@ -1462,9 +1453,32 @@ public:
|
||||
*/
|
||||
MbCurvesWrappingParams * Duplicate( bool copyCurves, bool copySurface );
|
||||
|
||||
/// \ru Выдать свойства объекта. \en Get properties of the object.
|
||||
void GetProperties( MbProperties & );
|
||||
/// \ru Записать свойства объекта. \en Set properties of the object.
|
||||
void SetProperties( const MbProperties & );
|
||||
|
||||
/** \brief \ru Сделать объекты равными.
|
||||
\en Make the objects equal.\~
|
||||
\details \ru Сделать объекты равными, если они подобны.
|
||||
\en Make the objects equal if they are similar.\~
|
||||
\param[in] other - \ru Копируемый объект.
|
||||
\en Object to be copied. \~
|
||||
\param[in] copyCurves - \ru Создать копии кривых.
|
||||
\en Create copies of the curves. \~
|
||||
\param[in] copySurface - \ru Создать копию поверхности.
|
||||
\en Create a copy of the surface. \~
|
||||
\param[in] iReg - \ru Регистратор.
|
||||
\en Registrator. \~
|
||||
*/
|
||||
void SetEqual( const MbCurvesWrappingParams & other,
|
||||
bool copyCurves,
|
||||
bool copySurface,
|
||||
MbRegDuplicate * iReg = nullptr );
|
||||
|
||||
|
||||
private:
|
||||
MbCurvesWrappingParams & operator = ( const MbCurvesWrappingParams & other ); // \ru Приравнивание. \en Equal operator. \~
|
||||
friend class MATH_CLASS MbUnwrapCurveCreator;
|
||||
KNOWN_OBJECTS_RW_REF_OPERATORS( MbCurvesWrappingParams ) // \ru Для работы со ссылками и объектами класса. \en For working with references and objects of the class. \~
|
||||
};
|
||||
|
||||
|
||||
@@ -17,6 +17,9 @@
|
||||
#include <model_item.h>
|
||||
#include <templ_sptr.h>
|
||||
#include <cur_contour.h>
|
||||
#include <op_binding_data.h>
|
||||
#include <curve3d.h>
|
||||
#include <curve.h>
|
||||
|
||||
//------------------------------------------------------------------------------
|
||||
/** \brief \ru Параметры операции упрощения триангуляции.
|
||||
@@ -350,4 +353,235 @@ public:
|
||||
|
||||
OBVIOUS_PRIVATE_COPY( MbMeshToInstanceResults );
|
||||
};
|
||||
|
||||
|
||||
//------------------------------------------------------------------------------
|
||||
/** \brief \ru Режим отбраковки выбросов при вписывании поверхности в набор точек.
|
||||
\en Outliers rejection mode for surface fitting. \~
|
||||
\ingroup Polygonal_Objects
|
||||
*/
|
||||
// ---
|
||||
enum MbeRejectOutliersType
|
||||
{
|
||||
rot_NoReject = 0, ///< \ru Не отбраковывать выбросы. \en No outliers rejection.
|
||||
rot_Sigma = 1, ///< \ru Отбраковывать выбросы по критерию N*sigma. \en Reject outliers by N*sigma criterion.
|
||||
rot_Percent = 2, ///< \ru Отбраковывать выбросы по процентному критерию. \en Reject outliers by percent criterion.
|
||||
rot_MaxDistance = 3 ///< \ru Отбраковывать выбросы по критерию максимального отклонения. \en Reject outliers by maximum distance criterion.
|
||||
};
|
||||
|
||||
|
||||
//------------------------------------------------------------------------------
|
||||
/** \brief \ru Базовый класс для параметров вписывания кривых.
|
||||
\en Base class for curve fitting parameters. \~
|
||||
\ingroup Polygonal_Objects
|
||||
*/
|
||||
// ---
|
||||
class MATH_CLASS MbCurveFitParametersBase : public MbPrecision
|
||||
{
|
||||
public:
|
||||
/** \brief \ru Тип кривой для вписывания.
|
||||
\en Type of a curve to be fit. \~
|
||||
\ingroup Polygonal_Objects
|
||||
*/
|
||||
enum MbeCurveFitType
|
||||
{
|
||||
cft_Undef = 0, ///< \ru Не определено. \en Undefined.
|
||||
cft_Line = 1, ///< \ru Прямая. \en Line.
|
||||
cft_Circle = 2, ///< \ru Окружность. \en Circle.
|
||||
cft_Ellipse = 3 ///< \ru Эллипс. \en Ellipse.
|
||||
};
|
||||
|
||||
private:
|
||||
MbeRejectOutliersType _typeReject; ///< \ru Способ отбраковки выбросов. \en Outliers rejection mode.
|
||||
double _valueReject; ///< \ru Пороговое значения для отбраковки выбросов. \en Outliers rejection mode treshold value.
|
||||
MbeCurveFitType _curveType; ///< \ru Тип кривой. \en A curve type.
|
||||
|
||||
public:
|
||||
/// \ru Конструктор по параметрам. \en Constructor by parameters.
|
||||
explicit MbCurveFitParametersBase( double tolerance,
|
||||
MbeRejectOutliersType typeReject,
|
||||
double valueReject,
|
||||
MbeCurveFitType curveType )
|
||||
: MbPrecision ( tolerance, tolerance )
|
||||
, _typeReject ( typeReject )
|
||||
, _valueReject( valueReject )
|
||||
, _curveType ( curveType )
|
||||
{}
|
||||
|
||||
/// \ru Выдать метод отбраковки выбросов. \en Get outliers rejection mode.
|
||||
MbeRejectOutliersType GetOutliersRejectionMode() const { return _typeReject; }
|
||||
/// \ru Выдать пороговое значения для отбраковки выбросов. \en Get outliers rejection mode treshold value.
|
||||
double GetOutliersRejectionValue() const { return _valueReject; }
|
||||
/// \ru Выдать тип кривой. \en Get curve type.
|
||||
MbeCurveFitType GetCurveType() const { return _curveType; }
|
||||
|
||||
OBVIOUS_PRIVATE_COPY( MbCurveFitParametersBase )
|
||||
};
|
||||
|
||||
|
||||
//------------------------------------------------------------------------------
|
||||
/** \brief \ru Параметры вписывания 2Д кривых.
|
||||
\en 2D curve fitting parameters. \~
|
||||
\ingroup Polygonal_Objects
|
||||
*/
|
||||
// ---
|
||||
class MATH_CLASS MbCurveFitParameters : public MbCurveFitParametersBase
|
||||
{
|
||||
private:
|
||||
c3d::ParamPointsVector _points; ///< \ru Точки. \en Points.
|
||||
|
||||
public:
|
||||
/// \ru Конструктор по параметрам. \en Constructor by parameters.
|
||||
explicit MbCurveFitParameters( MbeCurveFitType curveType,
|
||||
double tolerance,
|
||||
MbeRejectOutliersType typeReject,
|
||||
double valueReject )
|
||||
: MbCurveFitParametersBase( tolerance, typeReject, valueReject, curveType )
|
||||
{}
|
||||
|
||||
/// \ru Конструктор по параметрам. \en Constructor by parameters.
|
||||
explicit MbCurveFitParameters( MbeCurveFitType curveType,
|
||||
double tolerance )
|
||||
: MbCurveFitParametersBase( tolerance, rot_NoReject, 0., curveType )
|
||||
{}
|
||||
|
||||
/// \ru Установить точки для вписывания. \en Set points to fit in.
|
||||
void SetPoints( const c3d::ParamPointsVector & points ) { _points = points; }
|
||||
/// \ru Получить точки для вписывания. \en Get points to fit in.
|
||||
const c3d::ParamPointsVector & GetPoints() const { return _points; }
|
||||
|
||||
OBVIOUS_PRIVATE_COPY( MbCurveFitParameters )
|
||||
};
|
||||
|
||||
|
||||
//------------------------------------------------------------------------------
|
||||
/** \brief \ru Параметры вписывания 3Д кривых.
|
||||
\en 3D curve fitting parameters. \~
|
||||
\ingroup Polygonal_Objects
|
||||
*/
|
||||
// ---
|
||||
class MATH_CLASS MbCurveFitParameters3D : public MbCurveFitParametersBase
|
||||
{
|
||||
private:
|
||||
c3d::SpacePointsVector _points; ///< \ru Точки. \en Points.
|
||||
|
||||
public:
|
||||
/// \ru Конструктор по параметрам. \en Constructor by parameters.
|
||||
explicit MbCurveFitParameters3D( MbeCurveFitType curveType,
|
||||
double tolerance,
|
||||
MbeRejectOutliersType typeReject,
|
||||
double valueReject )
|
||||
: MbCurveFitParametersBase( tolerance, typeReject, valueReject, curveType )
|
||||
{}
|
||||
|
||||
/// \ru Конструктор по параметрам. \en Constructor by parameters.
|
||||
explicit MbCurveFitParameters3D( MbeCurveFitType curveType,
|
||||
double tolerance )
|
||||
: MbCurveFitParametersBase( tolerance, rot_NoReject, 0., curveType )
|
||||
{}
|
||||
|
||||
/// \ru Установить точки для вписывания. \en Set points to fit in.
|
||||
void SetPoints( const c3d::SpacePointsVector & points ) { _points = points; }
|
||||
/// \ru Получить точки для вписывания. \en Get points to fit in.
|
||||
const c3d::SpacePointsVector & GetPoints() const { return _points; }
|
||||
|
||||
OBVIOUS_PRIVATE_COPY( MbCurveFitParameters3D )
|
||||
};
|
||||
|
||||
|
||||
//------------------------------------------------------------------------------
|
||||
/** \brief \ru Базовый класс для результатов вписывания.
|
||||
\en Base class for fitting results. \~
|
||||
\ingroup Polygonal_Objects
|
||||
*/
|
||||
// ---
|
||||
class MATH_CLASS MbFitResultsBase
|
||||
{
|
||||
private:
|
||||
double _devMax; ///< \ru Максимальное получившееся отклонение. \en A maximal deviation.
|
||||
double _devMean; ///< \ru Среднее получившееся отклонение. \en A mean deviation.
|
||||
double _rmsd; ///< \ru Среднее квадратическое отклонение. \en A root-mean-square deviation.
|
||||
|
||||
public:
|
||||
/// \ru Конструктор по умолчанию. \en Default constructor.
|
||||
explicit MbFitResultsBase()
|
||||
: _devMax ( 0.0 )
|
||||
, _devMean( 0.0 )
|
||||
, _rmsd ( 0.0 )
|
||||
{}
|
||||
/// \ru Инициализировать данные. \en Initialize data.
|
||||
void Init( double devMax, double devMean, double rmsd ) {
|
||||
_devMax = devMax;
|
||||
_devMean = devMean;
|
||||
_rmsd = rmsd;
|
||||
}
|
||||
/// \ru Выдать максимальное отклонение. \en Get maximal deviation.
|
||||
double GetTolerance() const { return _devMax; }
|
||||
/// \ru Выдать среднее отклонение. \en Get mean deviation.
|
||||
double GetMeanDeviation() const { return _devMean; }
|
||||
/// \ru Выдать cреднее квадратическое отклонение. \en Get root-mean-square deviation.
|
||||
double GetRmsd() const { return _rmsd; }
|
||||
|
||||
OBVIOUS_PRIVATE_COPY( MbFitResultsBase )
|
||||
};
|
||||
|
||||
|
||||
//------------------------------------------------------------------------------
|
||||
/** \brief \ru Результат вписывания 2Д кривой.
|
||||
\en 2D curve fitting results. \~
|
||||
\ingroup Polygonal_Objects
|
||||
*/
|
||||
// ---
|
||||
class MATH_CLASS MbCurveFitResults : public MbFitResultsBase
|
||||
{
|
||||
private:
|
||||
SPtr<MbCurve> _curve; ///< \ru Кривая. \en A curve.
|
||||
|
||||
public:
|
||||
/// \ru Конструктор по умолчанию. \en Default constructor.
|
||||
explicit MbCurveFitResults()
|
||||
: MbFitResultsBase( )
|
||||
, _curve ( nullptr )
|
||||
{}
|
||||
/// \ru Инициализировать данные. \en Initialize data.
|
||||
void Init( MbCurve * pCurve, double devMax, double devMean, double rmsd )
|
||||
{
|
||||
_curve = pCurve;
|
||||
MbFitResultsBase::Init( devMax, devMean, rmsd );
|
||||
}
|
||||
/// \ru Выдать поверхность. \en Get surface.
|
||||
SPtr<MbCurve> GetCurve() const { return _curve; }
|
||||
|
||||
OBVIOUS_PRIVATE_COPY( MbCurveFitResults )
|
||||
};
|
||||
|
||||
|
||||
//------------------------------------------------------------------------------
|
||||
/** \brief \ru Результат вписывания 3Д кривой.
|
||||
\en 2D curve fitting results. \~
|
||||
\ingroup Polygonal_Objects
|
||||
*/
|
||||
// ---
|
||||
class MATH_CLASS MbCurveFitResults3D : public MbFitResultsBase
|
||||
{
|
||||
private:
|
||||
SPtr<MbCurve3D> _curve; ///< \ru Кривая. \en A curve.
|
||||
|
||||
public:
|
||||
/// \ru Конструктор по умолчанию. \en Default constructor.
|
||||
explicit MbCurveFitResults3D()
|
||||
: MbFitResultsBase()
|
||||
, _curve( nullptr )
|
||||
{}
|
||||
/// \ru Инициализировать данные. \en Initialize data.
|
||||
void Init( MbCurve3D * pCurve, double devMax, double devMean, double rmsd )
|
||||
{
|
||||
_curve = pCurve;
|
||||
MbFitResultsBase::Init( devMax, devMean, rmsd );
|
||||
}
|
||||
/// \ru Выдать поверхность. \en Get surface.
|
||||
SPtr<MbCurve3D> GetCurve() const { return _curve; }
|
||||
|
||||
OBVIOUS_PRIVATE_COPY( MbCurveFitResults3D )
|
||||
};
|
||||
#endif // __OP_MESH_PARAMETERS_H
|
||||
|
||||
@@ -1604,15 +1604,19 @@ public:
|
||||
|
||||
/// \ru Перемещение при модификации. \en Moving when modifying.
|
||||
const MbVector3D & GetDirection() const { return direction; }
|
||||
/// \ru Перемещение при модификации. \en Moving when modifying.
|
||||
void SetDirection( const MbVector3D & d ) { direction = d; }
|
||||
/// \ru Точка опоры при модификации. \en Fulcrum when modifying.
|
||||
const MbCartPoint3D & GetOrigin() const { return origin; }
|
||||
/// \ru Точка опоры при модификации. \en Fulcrum when modifying.
|
||||
void SetOrigin( const MbCartPoint3D & p ) { origin = p; }
|
||||
/// \ru Величина смещения/изменение радиуса. \en Offset value/change of radius.
|
||||
double GetValue() const { return value; }
|
||||
/// \ru Величина смещения/изменение радиуса. \en Offset value/change of radius.
|
||||
void SetValue( double v ) { value = v; }
|
||||
/// \ru Точность построения. \en Operation tolerance.
|
||||
double GetTolerance() const { return tolerance; }
|
||||
/// \ru Точность построения. \en Operation tolerance.
|
||||
void SetTolerance( double t ) { tolerance = ::fabs( t ); }
|
||||
/// \ru Установить флаг удаления сопряжённых скруглений. \en Set the flag to remove ajacent fillets.
|
||||
void SetRemoveFillets( bool remove ) { removeWithFillets = remove; }
|
||||
|
||||
@@ -2023,11 +2023,6 @@ public:
|
||||
const MbCurve3D * GetSpine() const { return spine.get(); }
|
||||
MbCurve3D * SetSpine() { return spine.get(); }
|
||||
|
||||
DEPRECATE_DECLARE_REPLACE( GetSectionForm )
|
||||
MbeSectionShape GetForm() const { return form; }
|
||||
DEPRECATE_DECLARE_REPLACE( SetSectionForm )
|
||||
void SetForm( MbeSectionShape f ) { form = f; }
|
||||
|
||||
/// \ru Выдать форму сечения поверхности. \en Get cross-section shape.
|
||||
MbeSectionShape GetSectionForm() const { return form; }
|
||||
/// \ru Установить форму сечения поверхности. \en Set cross-section shape.
|
||||
@@ -2360,27 +2355,31 @@ public :
|
||||
// ---
|
||||
class MATH_CLASS MbSectionPhantom {
|
||||
public :
|
||||
MbSectionLayout begLayout; ///< Данные фантома для начального торца поверхности переменного сечения.
|
||||
MbSectionLayout endLayout; ///< Данные фантома для конечного торца поверхности переменного сечения.
|
||||
MbSectionLayout begLayout; ///< \ru Данные фантома для начального торца поверхности переменного сечения. \en Phantom data for the initial cross-section of the surface.
|
||||
MbSectionLayout endLayout; ///< \ru Данные фантома для конечного торца поверхности переменного сечения. \en Phantom data for the end cross-section of the surface.
|
||||
MbSectionLayout midLayout; ///< \ru Данные фантома для середины поверхности переменного сечения. \en Phantom data for the middle cross-section of the surface.
|
||||
|
||||
public :
|
||||
/// \ru Конструктор по умолчанию. \en Default constructor.
|
||||
MbSectionPhantom()
|
||||
: begLayout()
|
||||
, endLayout()
|
||||
, midLayout()
|
||||
{}
|
||||
/// \ru Конструктор по толщинам и замкнутости. \en Constructor by thicknesses and closedness.
|
||||
MbSectionPhantom( const MbPlacement3D & pl_1, const MbCartPoint3D & pnt1_1, const MbCartPoint3D & pnt2_1,
|
||||
const MbVector3D & vec1_1, const MbVector3D & vec2_1, const MbCartPoint3D & apx_1,
|
||||
const MbPlacement3D & pl_2, const MbCartPoint3D & pnt1_2, const MbCartPoint3D & pnt2_2,
|
||||
const MbVector3D & vec1_2, const MbVector3D & vec2_2, const MbCartPoint3D & apx_2 )
|
||||
: begLayout( pl_1, pnt1_1, pnt2_1, vec1_1, vec2_1, apx_1 )
|
||||
, endLayout( pl_2, pnt1_2, pnt2_2, vec1_2, vec2_2, apx_2 )
|
||||
{}
|
||||
/// \ru Конструктор по данным. \en Constructor by data.
|
||||
//MbSectionPhantom( const MbPlacement3D & pl_1, const MbCartPoint3D & pnt1_1, const MbCartPoint3D & pnt2_1,
|
||||
// const MbVector3D & vec1_1, const MbVector3D & vec2_1, const MbCartPoint3D & apx_1,
|
||||
// const MbPlacement3D & pl_2, const MbCartPoint3D & pnt1_2, const MbCartPoint3D & pnt2_2,
|
||||
// const MbVector3D & vec1_2, const MbVector3D & vec2_2, const MbCartPoint3D & apx_2 )
|
||||
// : begLayout( pl_1, pnt1_1, pnt2_1, vec1_1, vec2_1, apx_1 )
|
||||
// , endLayout( pl_2, pnt1_2, pnt2_2, vec1_2, vec2_2, apx_2 )
|
||||
// , midLayout()
|
||||
//{}
|
||||
/// \ru Конструктор копирования. \en Copy-constructor.
|
||||
MbSectionPhantom( const MbSectionPhantom & other )
|
||||
: begLayout( other.begLayout )
|
||||
, endLayout( other.endLayout )
|
||||
, midLayout( other.midLayout )
|
||||
{}
|
||||
/// \ru Деструктор. \en Destructor.
|
||||
~MbSectionPhantom() {}
|
||||
@@ -2390,30 +2389,37 @@ public :
|
||||
MbVector3D & vec1, MbVector3D & vec2, MbCartPoint3D & apx ) const {
|
||||
if ( i == 1 )
|
||||
begLayout.GetLayout( pl, pnt1, pnt2, vec1, vec2, apx );
|
||||
else
|
||||
else if ( i == 2 )
|
||||
endLayout.GetLayout( pl, pnt1, pnt2, vec1, vec2, apx );
|
||||
else
|
||||
midLayout.GetLayout( pl, pnt1, pnt2, vec1, vec2, apx );
|
||||
}
|
||||
/// \ru Выдать значения объектов для края по его индексу i. \en Get an object values for the side by its index i. \~
|
||||
void CentreLayout( size_t i, MbPlacement3D & pl, MbCartPoint3D & pnt1, MbCartPoint3D & pnt2,
|
||||
MbVector3D & vec1, MbVector3D & vec2, MbCartPoint3D & apx, MbCartPoint3D & centre ) const {
|
||||
if ( i == 1 )
|
||||
begLayout.CentreLayout( pl, pnt1, pnt2, vec1, vec2, apx, centre );
|
||||
else
|
||||
else if ( i == 2 )
|
||||
endLayout.CentreLayout( pl, pnt1, pnt2, vec1, vec2, apx, centre );
|
||||
else
|
||||
midLayout.CentreLayout( pl, pnt1, pnt2, vec1, vec2, apx, centre );
|
||||
}
|
||||
/// \ru Установить значения объектов для края по его индексу i. \en Set an object values for the side by its index i. \~
|
||||
void SetLayout( size_t i, const MbPlacement3D & pl, const MbCartPoint3D & pnt1, const MbCartPoint3D & pnt2,
|
||||
const MbVector3D & vec1, const MbVector3D & vec2, const MbCartPoint3D & apx ) {
|
||||
if ( i == 1 )
|
||||
begLayout.SetLayout( pl, pnt1, pnt2, vec1, vec2, apx );
|
||||
else
|
||||
else if ( i == 2 )
|
||||
endLayout.SetLayout( pl, pnt1, pnt2, vec1, vec2, apx );
|
||||
else
|
||||
midLayout.SetLayout( pl, pnt1, pnt2, vec1, vec2, apx );
|
||||
}
|
||||
|
||||
/// \ru Оператор присваивания. \en Assignment operator.
|
||||
void operator = ( const MbSectionPhantom & other ) {
|
||||
begLayout = other.begLayout;
|
||||
endLayout = other.endLayout;
|
||||
midLayout = other.midLayout;
|
||||
}
|
||||
|
||||
}; // MbSectionPhantom
|
||||
|
||||
@@ -1655,34 +1655,40 @@ public:
|
||||
// ---
|
||||
struct MATH_CLASS MbSimplifyFlatPatternValues {
|
||||
public:
|
||||
bool uniteFaces; ///< \ru Флаг слияния подобных граней. \en The merger faces flag.
|
||||
bool cornerTreatment; ///< \ru Флаг упрощения углов развёртки. \en The simplification corners flag.
|
||||
bool uniteFaces; ///< \ru Флаг слияния подобных граней. \en The merger faces flag.
|
||||
bool cornerTreatment; ///< \ru Флаг упрощения углов развёртки. \en The simplification corners flag.
|
||||
bool keepCircularReliefs; ///< \ru Флаг сохранения круговой обработки угла. \en The keep circular relief flag.
|
||||
/// \ru Конструктор по умолчанию. \en Default constructor.
|
||||
MbSimplifyFlatPatternValues() : uniteFaces( false ), cornerTreatment( true ) {}
|
||||
MbSimplifyFlatPatternValues() : uniteFaces( false ), cornerTreatment( true ), keepCircularReliefs( false ) {}
|
||||
/// \ru Конструктор по конкретным параметрам. \en Constructor by specific parameters.
|
||||
MbSimplifyFlatPatternValues( bool uFaces, bool cTreatment ) :
|
||||
uniteFaces ( uFaces ),
|
||||
cornerTreatment( cTreatment ) {
|
||||
MbSimplifyFlatPatternValues( bool uFaces, bool cTreatment, bool kCircularReliefs = false ) :
|
||||
uniteFaces ( uFaces ),
|
||||
cornerTreatment ( cTreatment ),
|
||||
keepCircularReliefs( kCircularReliefs ) {
|
||||
}
|
||||
/// \ru Конструктор копирования. \en Copy-constructor.
|
||||
MbSimplifyFlatPatternValues( const MbSimplifyFlatPatternValues & other ) :
|
||||
uniteFaces ( other.uniteFaces ),
|
||||
cornerTreatment( other.cornerTreatment ) {
|
||||
uniteFaces ( other.uniteFaces ),
|
||||
cornerTreatment ( other.cornerTreatment ),
|
||||
keepCircularReliefs( other.keepCircularReliefs ) {
|
||||
}
|
||||
/// \ru Инициализировать по конкретным параметрам. \en Initialize by specific parameters.
|
||||
void Init( bool uFaces, bool cTreatment ) {
|
||||
uniteFaces = uFaces;
|
||||
cornerTreatment = cTreatment;
|
||||
void Init( bool uFaces, bool cTreatment, bool kCircularReliefs = false ) {
|
||||
uniteFaces = uFaces;
|
||||
cornerTreatment = cTreatment;
|
||||
keepCircularReliefs = kCircularReliefs;
|
||||
}
|
||||
/// \ru Инициализировать по другой структуре. \en Initialize by another structure.
|
||||
void Init( const MbSimplifyFlatPatternValues & other ) {
|
||||
uniteFaces = other.uniteFaces;
|
||||
cornerTreatment = other.cornerTreatment;
|
||||
uniteFaces = other.uniteFaces;
|
||||
cornerTreatment = other.cornerTreatment;
|
||||
keepCircularReliefs = other.keepCircularReliefs;
|
||||
}
|
||||
/// \ru Оператор присваивания. \en Assignment operator.
|
||||
const MbSimplifyFlatPatternValues & operator = ( const MbSimplifyFlatPatternValues & other ) {
|
||||
uniteFaces = other.uniteFaces;
|
||||
cornerTreatment = other.cornerTreatment;
|
||||
uniteFaces = other.uniteFaces;
|
||||
cornerTreatment = other.cornerTreatment;
|
||||
keepCircularReliefs = other.keepCircularReliefs;
|
||||
|
||||
return *this;
|
||||
}
|
||||
@@ -1691,7 +1697,7 @@ public:
|
||||
bool IsSame( const MbSimplifyFlatPatternValues & other ) const {
|
||||
bool isSame = false;
|
||||
|
||||
if ( (!uniteFaces == !other.uniteFaces) && (!cornerTreatment == !other.cornerTreatment) )
|
||||
if ( (!uniteFaces == !other.uniteFaces) && (!cornerTreatment == !other.cornerTreatment) && (!keepCircularReliefs == !other.keepCircularReliefs) )
|
||||
isSame = true;
|
||||
|
||||
return isSame;
|
||||
|
||||
@@ -174,7 +174,7 @@ public:
|
||||
\en \name Common functions of surface
|
||||
\{ */
|
||||
MbSurface * Offset( double d, bool same ) const override; // \ru Создание эквидистантной поверхности. \en Creation of an offset surface.
|
||||
double GetFilletRadius( const MbCartPoint3D & p ) const override;
|
||||
double GetFilletRadius( const MbCartPoint3D & p, double accuracy = METRIC_REGION ) const override;
|
||||
double GetFilletRadius( double u ) const override;
|
||||
/** \} */
|
||||
/** \ru \name Функции поверхности сопряжения
|
||||
|
||||
@@ -295,8 +295,8 @@ public:
|
||||
bool IsSimilarToSurface( const MbSurface & surf, VERSION version, double precision = METRIC_PRECISION ) const override;
|
||||
// \ru Дать двумерную матрицу преобразования из своей параметрической области в параметрическую область surf. \en Get two-dimensional transformation matrix from own parametric region to parametric region of 'surf'.
|
||||
bool GetMatrixToSurface( const MbSurface & surf, MbMatrix & matr, VERSION version, double precision = METRIC_PRECISION ) const override;
|
||||
double GetFilletRadius( const MbCartPoint3D & p ) const override; // \ru Является ли поверхность скруглением. \en Whether the surface is fillet.
|
||||
MbeParamDir GetFilletDirection() const override; // \ru Направление поверхности скругления. \en Direction of fillet surface.
|
||||
double GetFilletRadius( const MbCartPoint3D & p, double accuracy = METRIC_REGION ) const override; // \ru Является ли поверхность скруглением. \en Whether the surface is fillet.
|
||||
MbeParamDir GetFilletDirection( double accuracy = METRIC_REGION ) const override; // \ru Направление поверхности скругления. \en Direction of fillet surface.
|
||||
ThreeStates Salient() const override; // \ru Выпуклая ли поверхность. \en Whether the surface is convex.
|
||||
|
||||
double GetUParamToUnit() const override; // \ru Дать приращение параметра u, соответствующее единичной длине в пространстве. \en Get increment of u-parameter, corresponding to the unit length in space.
|
||||
|
||||
@@ -288,7 +288,7 @@ public:
|
||||
|
||||
void ChangeCarrier( const MbSpaceItem & item, MbSpaceItem & init ) override; // \ru Изменение носителя \en Changing of carrier
|
||||
// \ru Существует ли полюс на границе параметрической области \en Whether there is pole on boundary of parametric region
|
||||
double GetFilletRadius( const MbCartPoint3D & p ) const override; // \ru Является ли поверхность скруглением. \en Whether a surface is fillet.
|
||||
double GetFilletRadius( const MbCartPoint3D & p, double accuracy = METRIC_REGION ) const override; // \ru Является ли поверхность скруглением. \en Whether a surface is fillet.
|
||||
|
||||
size_t GetUMeshCount() const override; // \ru Выдать количество полигонов по u \en Get the count of polygons by u
|
||||
size_t GetVMeshCount() const override; // \ru Выдать количество полигонов по v \en Get the count of polygons by v
|
||||
|
||||
@@ -271,8 +271,8 @@ public :
|
||||
bool IsSameBase( const MbSurface & ) const override; // \ru Является ли базовая поверхность копией базовой поверхности данного объекта. \en Whether the base surface is a duplicate of base surface of current object.
|
||||
bool IsPlanar( double accuracy = METRIC_EPSILON ) const override; // \ru Является ли поверхность плоской. \en Whether the surface is planar.
|
||||
double GetRadius() const override; // \ru Дать физический радиус объекта или ноль, если это невозможно. \en Get the physical radius of the object or null if it impossible.
|
||||
double GetFilletRadius( const MbCartPoint3D & ) const override; // \ru Является ли поверхность скруглением. \en Whether the surface is fillet.
|
||||
MbeParamDir GetFilletDirection() const override; // \ru Направление поверхности скругления. \en Direction of fillet surface.
|
||||
double GetFilletRadius( const MbCartPoint3D &, double accuracy = METRIC_REGION ) const override; // \ru Является ли поверхность скруглением. \en Whether the surface is fillet.
|
||||
MbeParamDir GetFilletDirection( double accuracy = METRIC_REGION ) const override; // \ru Направление поверхности скругления. \en Direction of fillet surface.
|
||||
bool GetCylinderAxis( MbAxis3D & ) const override; // \ru Дать ось вращения для поверхности. \en Get a rotation axis of a surface.
|
||||
bool GetCenterLines( std::vector<MbCurve3D *> & clCurves ) const override; // \ru Дать осевые (центральные) линии для поверхности. \en Get center lines of a surface.
|
||||
|
||||
|
||||
@@ -283,8 +283,8 @@ public:
|
||||
bool IsSpecialSimilarToSurface( const MbSurface & surf, VERSION version, double precision = METRIC_PRECISION ) const override; // \ru Специальный случай \en Special case
|
||||
// \ru Дать двумерную матрицу преобразования из своей параметрической области в параметрическую область surf. \en Get two-dimensional transformation matrix from own parametric region to parametric region of 'surf'.
|
||||
bool GetMatrixToSurface( const MbSurface & surf, MbMatrix & matr, VERSION version, double precision = METRIC_PRECISION ) const override;
|
||||
double GetFilletRadius( const MbCartPoint3D & p ) const override; // \ru Является ли поверхность скруглением. \en Whether the surface is fillet.
|
||||
MbeParamDir GetFilletDirection() const override; // \ru Направление поверхности скругления. \en Direction of fillet surface.
|
||||
double GetFilletRadius( const MbCartPoint3D & p, double accuracy = METRIC_REGION ) const override; // \ru Является ли поверхность скруглением. \en Whether the surface is fillet.
|
||||
MbeParamDir GetFilletDirection( double accuracy = METRIC_REGION ) const override; // \ru Направление поверхности скругления. \en Direction of fillet surface.
|
||||
ThreeStates Salient() const override; // \ru Выпуклая ли поверхность. \en Whether the surface is convex.
|
||||
|
||||
double GetUParamToUnit() const override; // \ru Дать приращение параметра u, соответствующее единичной длине в пространстве. \en Get increment of u-parameter, corresponding to the unit length in space.
|
||||
|
||||
@@ -185,8 +185,8 @@ public:
|
||||
bool IsSpecialSimilarToSurface( const MbSurface & surf, VERSION version, double precision = METRIC_PRECISION ) const override; // \ru Специальный случай \en Special case
|
||||
|
||||
double GetRadius() const override; // \ru Дать физический радиус объекта или ноль, если это невозможно. \en Get the physical radius of the object or null if it impossible.
|
||||
double GetFilletRadius( const MbCartPoint3D & p ) const override; // \ru Является ли поверхность скруглением. \en Whether the surface is fillet.
|
||||
MbeParamDir GetFilletDirection() const override; // \ru Направление поверхности скругления. \en Direction of fillet surface.
|
||||
double GetFilletRadius( const MbCartPoint3D & p, double accuracy = METRIC_REGION ) const override; // \ru Является ли поверхность скруглением. \en Whether the surface is fillet.
|
||||
MbeParamDir GetFilletDirection( double accuracy = METRIC_REGION ) const override; // \ru Направление поверхности скругления. \en Direction of fillet surface.
|
||||
|
||||
// \ru Определение разбивки параметрической области поверхности вертикалями и горизонталями. \en Determine splitting of parametric region of surface by vertical and horizontal lines.
|
||||
void GetTesselation( const MbStepData & stepData,
|
||||
|
||||
@@ -286,7 +286,7 @@ public:
|
||||
double & u, double & v, bool ext ) const override; // \ru Функция для нахождения проекции точки на поверхность. \en Function for searching the point projection onto the surface.
|
||||
bool NearPointProjection ( const MbCartPoint3D & p, double & u, double & v, bool ext, MbRect2D * uvRange = nullptr ) const override; // \ru Ближайшая проекция точки на поверхность. \en The nearest point projection onto the surface.
|
||||
|
||||
double GetFilletRadius( const MbCartPoint3D & p ) const override; // \ru Является ли поверхность скруглением. \en Whether the surface is fillet.
|
||||
double GetFilletRadius( const MbCartPoint3D & p, double accuracy = METRIC_REGION ) const override; // \ru Является ли поверхность скруглением. \en Whether the surface is fillet.
|
||||
virtual double GetFilletRadius( double u ) const; // \ru Дать радиус скругления по первому параметру. \en Get fillet radius if the surface is fillet.
|
||||
// \ru Построить касательные и нормальные плейсменты конструктивных плоскостей. \en Construct tangent and normal placements of constructive planes.
|
||||
bool CreateNormalPlacements ( const MbVector3D & axisZ, double angle, SArray<MbPlacement3D> & places, VERSION version = Math::DefaultMathVersion() ) const override;
|
||||
|
||||
@@ -258,8 +258,8 @@ public:
|
||||
bool CreateNormalPlacements ( const MbVector3D & axisZ, double angle, SArray<MbPlacement3D> & places, VERSION version = Math::DefaultMathVersion() ) const override;
|
||||
bool CreateTangentPlacements( const MbVector3D & axisZ, SArray<MbPlacement3D> & places ) const override;
|
||||
|
||||
double GetFilletRadius( const MbCartPoint3D & p ) const override; // \ru Является ли поверхность скруглением. \en Whether the surface is fillet.
|
||||
MbeParamDir GetFilletDirection() const override; // \ru Направление поверхности скругления. \en Direction of fillet surface.
|
||||
double GetFilletRadius( const MbCartPoint3D & p, double accuracy = METRIC_REGION ) const override; // \ru Является ли поверхность скруглением. \en Whether the surface is fillet.
|
||||
MbeParamDir GetFilletDirection( double accuracy = METRIC_REGION ) const override; // \ru Направление поверхности скругления. \en Direction of fillet surface.
|
||||
ThreeStates Salient() const override; // \ru Выпуклая ли поверхность. \en Whether a surface is convex.
|
||||
bool GetCylinderAxis( MbAxis3D & axis ) const override; // \ru Дать ось поверхности. \en Get the axis of a surface.
|
||||
bool GetCenterLines( std::vector<MbCurve3D *> & clCurves ) const override; // \ru Дать осевые (центральные) линии для поверхности. \en Get center lines of a surface.
|
||||
|
||||
@@ -386,8 +386,6 @@ public:
|
||||
const MbPolyCurve * GetPattern() const { return pattern; }
|
||||
/// \ru Дать форму сечения поверхности при фиксированном втором параметре. \en Get the surface cross-section shape with the second parameter fixed.
|
||||
MbeSectionShape GetSectionForm() const { return form; }
|
||||
DEPRECATE_DECLARE_REPLACE( GetSectionForm )
|
||||
MbeSectionShape GetForm() const { return form; }
|
||||
/// \ru Дать параметры опорной кривой, для которых направляющие терпят излом. \en Get parameters of the reference curve for which the guides have a break.
|
||||
void GetBreakVParams( std::vector<double> & vParams ) const;
|
||||
|
||||
|
||||
@@ -232,8 +232,8 @@ public:
|
||||
|
||||
// \ru Дать двумерную матрицу преобразования из своей параметрической области в параметрическую область surf. \en Get two-dimensional matrix of transformation from its parametric region to the parametric region of 'surf'.
|
||||
bool GetMatrixToSurface( const MbSurface & surf, MbMatrix & matr, VERSION version, double precision = METRIC_PRECISION ) const override;
|
||||
double GetFilletRadius( const MbCartPoint3D & p ) const override; // \ru Является ли поверхность скруглением. \en Whether a surface is fillet.
|
||||
MbeParamDir GetFilletDirection() const override; // \ru Направление поверхности скругления. \en Direction of fillet surface.
|
||||
double GetFilletRadius( const MbCartPoint3D & p, double accuracy = METRIC_REGION ) const override; // \ru Является ли поверхность скруглением. \en Whether a surface is fillet.
|
||||
MbeParamDir GetFilletDirection( double accuracy = METRIC_REGION ) const override; // \ru Направление поверхности скругления. \en Direction of fillet surface.
|
||||
ThreeStates Salient() const override; // \ru Выпуклая ли поверхность. \en Whether a surface is convex.
|
||||
// \ru Определение разбивки параметрической области поверхности вертикалями и горизонталями. \en Determine a splitting of parametric region of a surface by verticals and horizontals.
|
||||
void GetTesselation( const MbStepData & stepData,
|
||||
|
||||
@@ -785,9 +785,9 @@ public:
|
||||
/// \ru Дать физический радиус объекта или ноль, если это невозможно. \en Get the physical radius of the object or null if it impossible.
|
||||
double GetRadius() const override;
|
||||
/// \ru Дать радиус скругления, если поверхность является поверхностью скругления. \en Get fillet radius if the surface is a fillet surface.
|
||||
double GetFilletRadius( const MbCartPoint3D & p ) const override;
|
||||
double GetFilletRadius( const MbCartPoint3D & p, double accuracy = METRIC_REGION ) const override;
|
||||
/// \ru Направление поверхности скругления. \en Direction of fillet surface.
|
||||
MbeParamDir GetFilletDirection() const override;
|
||||
MbeParamDir GetFilletDirection( double accuracy = METRIC_REGION ) const override;
|
||||
/// \ru Дать ось вращения для поверхности. \en Get rotation axis of a surface.
|
||||
bool GetCylinderAxis( MbAxis3D & ) const override;
|
||||
|
||||
|
||||
@@ -86,6 +86,7 @@ public:
|
||||
double GetVMax() const override; // \ru Вернуть максимальное значение параметра v. \en Get the maximum value of v.
|
||||
bool IsUClosed() const override; // \ru Проверка замкнутости по параметру u. \en Check of surface closedness in u direction.
|
||||
bool IsVClosed() const override; // \ru Проверка замкнутости по параметру v. \en Check of surface closedness in v direction.
|
||||
bool IsUTouch() const override; // \ru Замкнута ли фактически поверхность по параметру u независимо от гладкости. \en Whether the surface is actually closed by parameter u regardless of the smoothness.
|
||||
double GetUPeriod() const override; // \ru Вернуть период . \en Return period.
|
||||
/** \} */
|
||||
/** \ru \name Функции для работы в области определения поверхности
|
||||
|
||||
@@ -252,7 +252,7 @@ public:
|
||||
bool IsSimilarToSurface( const MbSurface & surf, VERSION version, double precision = METRIC_PRECISION ) const override;
|
||||
// \ru Дать двумерную матрицу преобразования из своей параметрической области в параметрическую область surf. \en Get two-dimensional matrix of transformation from its parametric region to the parametric region of 'surf'.
|
||||
bool GetMatrixToSurface( const MbSurface & surf, MbMatrix & matr, VERSION version, double precision = METRIC_PRECISION ) const override;
|
||||
double GetFilletRadius( const MbCartPoint3D & p ) const override; // \ru Является ли поверхность скруглением. \en Whether a surface is fillet.
|
||||
double GetFilletRadius( const MbCartPoint3D & p, double accuracy = METRIC_REGION ) const override; // \ru Является ли поверхность скруглением. \en Whether a surface is fillet.
|
||||
ThreeStates Salient() const override; // \ru Выпуклая ли поверхность. \en Whether a surface is convex.
|
||||
// \ru Определение разбивки параметрической области поверхности вертикалями и горизонталями. \en Determine a splitting of parametric region of a surface by verticals and horizontals.
|
||||
void GetTesselation( const MbStepData & stepData,
|
||||
|
||||
+26
-4
@@ -814,10 +814,32 @@ public:
|
||||
\en Method returns maximum physical radius by one of the parametric direction if the corresponding parametric curve is the arc, method returns zero otherwise. \~
|
||||
*/
|
||||
virtual double GetRadius() const;
|
||||
/// \ru Дать радиус скругления, если поверхность является поверхностью скругления. \en Get fillet radius if the surface is a fillet surface.
|
||||
virtual double GetFilletRadius( const MbCartPoint3D & p ) const;
|
||||
/// \ru Направление поверхности скругления. \en Direction of fillet surface.
|
||||
virtual MbeParamDir GetFilletDirection() const;
|
||||
/** \brief \ru Дать радиус скругления, если поверхность является поверхностью скругления с заданной точностью.
|
||||
\en Get fillet radius if the surface is a fillet surface with the set accuracy. \~
|
||||
\details \ru Дать радиус скругления, если поверхность является поверхностью скругления с заданной точностью.
|
||||
Точность нужна для сравнения срезов поверхности с дугой окружности для поиска оси вращения.
|
||||
\en Get fillet radius if the surface is a fillet surface with the set accuracy.
|
||||
Accuracy is used to compare surface slices to an arc to find rotation axis. \~
|
||||
\param[in] p - \ru Точка, рядом с которой ищется радиус. Имеет смысл, если радиус скругления переменный.
|
||||
\en Point near which the radius is searched. Used when the radius is variable. \~
|
||||
\param[in] accuracy - \ru Точность.
|
||||
\en Accuracy. \~
|
||||
\return \ru Радиус скругления, если возможно, или 0.
|
||||
\en Fillet radius if possible or 0. \~
|
||||
*/
|
||||
virtual double GetFilletRadius( const MbCartPoint3D & p, double accuracy = METRIC_REGION ) const;
|
||||
/** \brief \ru Направление поверхности скругления с точностью.
|
||||
\en Direction of fillet surface with accuracy. \~
|
||||
\details \ru Направление поверхности скругления с точностью. Точность нужна для сравнения срезов поверхности с
|
||||
дугой окружности для поиска оси вращения.
|
||||
\en Direction of fillet surface with accuracy. Accuracy is used to compare surface slices to an arc to find
|
||||
rotation axis. \~
|
||||
\param[in] accuracy - \ru Точность.
|
||||
\en Accuracy. \~
|
||||
\return \ru Направление скругления вдоль параметра поверхности U или V.
|
||||
\en Whether the fillet is along U or V direction of the surface. \~
|
||||
*/
|
||||
virtual MbeParamDir GetFilletDirection( double accuracy = METRIC_REGION ) const;
|
||||
/// \ru Дать ось вращения для поверхности. \en Get rotation axis of a surface.
|
||||
virtual bool GetCylinderAxis( MbAxis3D & ) const;
|
||||
/// \ru Выдать центр сферической поверхности. \en Give the center of sphere surface.
|
||||
|
||||
@@ -146,7 +146,7 @@ public:
|
||||
|
||||
/// \ru Преобразовать к SPtr на другой класс. \en Cast to SPtr to another class.
|
||||
template<typename To>
|
||||
SPtr<To> static_cast_to() {
|
||||
SPtr<To> static_cast_to() const {
|
||||
return SPtr<To> { static_cast<To *>(get()) };
|
||||
}
|
||||
};
|
||||
|
||||
@@ -16,7 +16,6 @@
|
||||
#include <tool_string_util.h>
|
||||
#include <fstream>
|
||||
#include <math_define.h>
|
||||
#include <math_namespace.h>
|
||||
|
||||
#ifndef C3D_WINDOWS //_MSC_VER
|
||||
#include <stdio.h>
|
||||
|
||||
@@ -1121,13 +1121,9 @@ public :
|
||||
void SetProperties( const MbProperties & );
|
||||
|
||||
// \ru Дать информацию для конвертеров. \en Get information for converters.
|
||||
DEPRECATE_DECLARE_REPLACE( GetFinCurve with 'SPtr' argument )
|
||||
void GetFinCurve( const MbSurface &, MbCurve *&, bool & );
|
||||
void GetFinCurve( const MbSurface &, SPtr<MbCurve> &, bool & );
|
||||
|
||||
// \ru Дать информацию для конвертеров. \en Get information for converters.
|
||||
DEPRECATE_DECLARE_REPLACE( GetFin with 'SPtr' argument )
|
||||
void GetFin( const MbSurface &, bool, MbCurve *&, bool & ) const;
|
||||
void GetFin( const MbSurface &, bool, SPtr<MbCurve> &, bool & ) const;
|
||||
// \ru Нормализовать fin по ChooseCurve() и установить правило выбора для конвертеров. \en Normalize 'fin' by ChooseCurve() and set the rule for selection of convertors.
|
||||
void NormalizeFin();
|
||||
|
||||
@@ -64,10 +64,7 @@ public:
|
||||
grid = faceGrid.grid;
|
||||
return *this;
|
||||
}
|
||||
|
||||
DEPRECATE_DECLARE
|
||||
const MbFace & GetFace() const { return *face; } ///< \deprecated \ru Метод устарел. \en The method is deprecated.
|
||||
};
|
||||
};
|
||||
|
||||
|
||||
//------------------------------------------------------------------------------
|
||||
|
||||
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Reference in New Issue
Block a user