- C3d aggiornamento delle librerie ( 117978).
This commit is contained in:
SaraP
2024-03-11 15:03:33 +01:00
parent 60ce2e9a94
commit 79f60faa19
157 changed files with 602 additions and 462 deletions
+8 -8
View File
@@ -25,9 +25,9 @@
*/
enum MbeExtremsSearchingMethod
{
esm_GradientDescent = 1, ///< \ru Mетод градиентного спуска. \en Gradient Descent Method.
esm_LineSegregation = 2, ///< \ru Mетод выделения линий смены убывания / возрастания функции по u и по v. \en The method of segregation of lines of change of decrease / increase of the function in u and v directions.
esm_AdaptiveCells = 3, ///< \ru Mетод адаптивного дробления ячеек. \en Adaptive cell splitting method.
esm_GradientDescent = 1, ///< \ru Метод градиентного спуска. \en Gradient Descent Method.
esm_LineSegregation = 2, ///< \ru Метод выделения линий смены убывания / возрастания функции по u и по v. \en The method of segregation of lines of change of decrease / increase of the function in u and v directions.
esm_AdaptiveCells = 3, ///< \ru Метод адаптивного дробления ячеек. \en Adaptive cell splitting method.
};
@@ -493,13 +493,13 @@ MATH_FUNC( double ) CurveOrientedCurvature( const MbCurve3D & curve,
\en The smallest value of curvature. \~
\param[out] minParam - \ru Точка, в которой кривизна принимает наименьшее значение.
\en The point at which the curvature takes the smallest value. \~
\param[out] bendPoints - \ru Mассив параметров точек перегиба.
\param[out] bendPoints - \ru Массив параметров точек перегиба.
\en Array of parameters of bend points. \~
\param[out] maxPoints - \ru Mассив параметров, в которых достигается локальный максимум кривизны по модулю.
\param[out] maxPoints - \ru Массив параметров, в которых достигается локальный максимум кривизны по модулю.
\en An array of parameters in which the local maximum curvature modulo is reached. \~
\param[out] minPoints - \ru Mассив параметров, в которых достигается локальный минимум кривизны по модулю.
\param[out] minPoints - \ru Массив параметров, в которых достигается локальный минимум кривизны по модулю.
\en An array of parameters in which the local minimum curvature modulo is reached. \~
\param[out] rapPoints - \ru Mассив параметров, в которых кривизна терпит разрыв.
\param[out] rapPoints - \ru Массив параметров, в которых кривизна терпит разрыв.
Для каждого разрыва вставляются две точки, до и после.
\en Array of parameters in which curvature breaks.
For each break two points are inserted, before and after. \~
@@ -637,7 +637,7 @@ public:
\en Edge 1. \~
\param[in] edge2 - \ru Ребро 2.
\en Edge 2. \~
\param[in] аccuracy - \ru Заявленная точность совпадения ребер.
\param[in] accuracy - \ru Заявленная точность совпадения ребер.
\en Claimed edges matching accuracy. \~
\param[in] nm - \ru Именователь с версией операции.
\en Names maker with operation version. \~
+2 -2
View File
@@ -538,7 +538,7 @@ public:
- начальный азимутальный угол phi: угол между проекцией оси объекта в начальной позиции на плоскость OXY и осью OX заданной СК,
должен принадлежать промежутку [0; 2П),
- расстояние dist от оси OZ заданной СК до оси объекта.
Для cферы должно быть зафиксировано расстояние dist от ее центра до оси OZ заданной СК.
Для сферы должно быть зафиксировано расстояние dist от ее центра до оси OZ заданной СК.
При необходимости можно зафиксировать размерные параметры объекта.
Функция сбрасывает выставленные ранее ограничения (например, добавленные с помощью методов "Add*Constraint").
\en Set the ZW-constraint.
@@ -633,7 +633,7 @@ public:
double GetTolerance() const { return _devMax; }
/// \ru Выдать среднее отклонение. \en Get mean deviation.
double GetMeanDeviation() const { return _devMean; }
/// \ru Выдать cреднее квадратическое отклонение. \en Get root-mean-square deviation.
/// \ru Выдать среднее квадратическое отклонение. \en Get root-mean-square deviation.
double GetRmsd() const { return _rmsd; }
OBVIOUS_PRIVATE_COPY( MbSurfaceFitToGridResults )
+2 -2
View File
@@ -151,7 +151,7 @@ MATH_FUNC (MbResultType) Segment( const MbCartPoint & point1,
\param[in] createWay - \ru Способ создания. Определяет как интерпретировать входные параметры.
\en Create way. Defines how to interpret the input parameters.\~
\param[in] center - \ru Центр
\en Сenter. \~
\en Center. \~
\param[in] points - \ru Конечные точки или точки через которые проходит кривая.
\en Endpoints or points through which the curve passes. \~
\param[in,out] a - \ru Интерпретация параметра зависит от способа создания дуги, см. enum #ArcCreateWay
@@ -515,7 +515,7 @@ MATH_FUNC (MbContour *) OffsetContour( const MbContour & cntr,
/** \brief \ru Создать эквидистантный контур, начинающийся и оканчивающийся на оси вращения.
\en Create an offset contour with start and end points on the rotation axis. \~
\details \ru Создать незамкнутый эквидистантный контур, начинающийся и оканчивающийся на оси вращения. \n
Cчитается, что, если контур замкнуть, то он будет ориентирован против движения часовой стрелки. \n
Считается, что, если контур замкнуть, то он будет ориентирован против движения часовой стрелки. \n
\en Create an open offset contour with start and end points on the rotation axis. \n
It is considered that if one closes the contour, it will be oriented counterclockwise. \n \~
\param[in] cntr - \ru Исходный контур.
+3 -3
View File
@@ -445,7 +445,7 @@ MATH_FUNC (MbResultType) AddCurveToContour( MbCurve3D & curve,
//------------------------------------------------------------------------------
/** \brief \ru Построить кривую в пространстве по двумерной кривой.
\en Create a space curve from a two-dimensional curve. \~
\details \ru Построить кривую в пространстве по двумерной кривой сurve на плоскости place. \n
\details \ru Построить кривую в пространстве по двумерной кривой curve на плоскости place. \n
Построение выполняется на оригинале кривой.
\en Create a space curve from a two-dimensional curve 'curve' lying on plane 'place'. \n
The construction is performed on the source curve. \~
@@ -467,7 +467,7 @@ MATH_FUNC (MbResultType) PlaneCurve( const MbPlacement3D & place,
//------------------------------------------------------------------------------
/** \brief \ru Построить кривую на поверхности по двумерной кривой.
\en Create a curve on a surface given a two-dimensional curve. \~
\details \ru Построить кривую на поверхности surface по двумерной кривой сurve. \n
\details \ru Построить кривую на поверхности surface по двумерной кривой curve. \n
Построение выполняется на оригиналах кривой и поверхности.
\en Create a curve on a surface 'surface' given a two-dimensional curve 'curve'. \n
The construction is performed on the original curve and surface. \~
@@ -1462,7 +1462,7 @@ MATH_FUNC(MbResultType) ConicNurbs( MbNurbs3D * curve,
/** \brief \ru Построение сплайна заданной длины, соединяющего заданные точки.
\en Connecting the specified points by a curve of a specified length. \~
\details \ru Построенная кривая должна выходить из заданной точки в заданном направлении и заканчиваться в заданной точке в заданном направлении.
Kривизна кривой не должна превосходить заданного максимального значения. \n
Кривизна кривой не должна превосходить заданного максимального значения. \n
\en The resulting curve must start at a given point in a given direction and end at a given point in a given direction.
The curvature of the curve must not exceed the specified maximum value. \~ \n
\param[in] begPoint - \ru Начальная точка.
+7 -7
View File
@@ -239,7 +239,7 @@ MATH_FUNC (bool) UnifyOwnComplanarFaces( MbFaceShell & shell,
\en Capture the faces in one of proposed methods. \~
\details \ru Захватить грани одним из способов распространения по связной оболочке. \n
\en Capture the faces in one of methods of propagation in connected shell. \n \~
\param[in] fp - \ru Cпособ захвата граней.
\param[in] fp - \ru Способ захвата граней.
\en A method of capturing the faces. \~
\param[in,out] face_set - \ru Набор граней.
\en A set of faces. \~
@@ -630,7 +630,7 @@ MATH_FUNC (void) GetRangeToCubeOrSurface( const MbCurve3D & curve,
/** \brief \ru Найти ближайшие тела при выдавливании с опцией "до ближайшего объекта".
\en Find the nearest solids while extruding with option 'up to the nearest object'. \~
\details \ru Найти ближайшие тела при выдавливании с опцией "до ближайшего объекта". \n
возвращает номерa ближайших тел ближайших тел в прямом и обратном направлении.
возвращает номера ближайших тел ближайших тел в прямом и обратном направлении.
\en Find the nearest solids while extruding with option 'up to the nearest object'. \n
returns numbers of the nearest solids in the forward and the backward direction. \~
\param[in] params - \ru Параметры операции.
@@ -650,7 +650,7 @@ MATH_FUNC (bool) GetNearestSolid( const MbNearestSolidParams & params,
/** \brief \ru Найти ближайшие тела при выдавливании с опцией "до ближайшего объекта".
\en Find the nearest solids while extruding with option 'up to the nearest object'. \~
\details \ru Найти ближайшие тела при выдавливании с опцией "до ближайшего объекта". \n
Возвращает номерa (nPlus и nMinus) ближайших тел с положительной и отрицательной стороны эскиза.
Возвращает номера (nPlus и nMinus) ближайших тел с положительной и отрицательной стороны эскиза.
\en Find the nearest solids while extruding with option 'up to the nearest object'. \n
Returns the numbers (nPlus and nMinus) of nearest solids on the positive and the negative sides of the sketch. \~
\param[in] pl - \ru Локальная система координат.
@@ -683,7 +683,7 @@ MATH_FUNC (bool) GetNearestSolid( const MbPlacement3D & pl,
/** \brief \ru Найти ближайшие тела при выдавливании с опцией "до ближайшего объекта".
\en Find the nearest solids while extruding with option 'up to the nearest object'. \~
\details \ru Найти ближайшие тела при выдавливании с опцией "до ближайшего объекта". \n
возвращает номерa (nPlus и nMinus) ближайших тел ближайших тел в прямом и обратном направлении.
возвращает номера (nPlus и nMinus) ближайших тел ближайших тел в прямом и обратном направлении.
\en Find the nearest solids while extruding with option 'up to the nearest object'. \n
returns numbers (nPlus and nMinus) of the nearest solids in the forward and the backward direction. \~
\param[in] curves - \ru Набор кривых.
@@ -1127,7 +1127,7 @@ MATH_FUNC (MbItem *) ReplaceByInstance( MbItem * item, double ratioThreashhold =
//------------------------------------------------------------------------------
/** \brief \ru Построениe «залитого» объема, расположенного между внутренней поверхностью сосуда и ограничивающей поверхностью или телом. \~
/** \brief \ru Построение «залитого» объема, расположенного между внутренней поверхностью сосуда и ограничивающей поверхностью или телом. \~
\en The construction of a "flood fill" volume located between the inner surface of the vessel and the bounding surface or body. \~
\details \ru На вход подаётся тело, дополнительная поверхность или дополнительное тело и координаты источника.
На выходе получаем объём, построенный от источника и ограниченный со всех сторон оболочкой тела и дополнительными объектами. \~
@@ -1189,9 +1189,9 @@ MATH_FUNC (MbResultType) CreateFastener ( const RPArray<MbSolid> & solids,
//------------------------------------------------------------------------------
/** \brief \ru Cоздать набор крепежных элементов по трехмерной кривой. НЕ ИСПОЛЬЗОВАТЬ ВНЕ ТЕСТОВОГО ПРИЛОЖЕНИЯ!!! ФУНКЦИЯ НАХОДИТСЯ В РАЗРАБОТКЕ!!!
/** \brief \ru Создать набор крепежных элементов по трехмерной кривой. НЕ ИСПОЛЬЗОВАТЬ ВНЕ ТЕСТОВОГО ПРИЛОЖЕНИЯ!!! ФУНКЦИЯ НАХОДИТСЯ В РАЗРАБОТКЕ!!!
\en Create an array of fastener elements using 3d curve. \~
\details \ru Cоздать набор крепежных элементов по трехмерной кривой.
\details \ru Создать набор крепежных элементов по трехмерной кривой.
\en Create an array of fastener elements using 3d curve. \~
\param[in] solids - \ru Множество тел для скрепления.
\en Array of bodies with a hole and fastener body. \~
+2 -1
View File
@@ -707,7 +707,8 @@ MATH_FUNC( bool ) InspectMeshClosure( const MbMesh & mesh, MeshInfo & info );
\en Vector of simplified triangulations. \~
\ingroup Polygonal_Objects
*/ // ---
MATH_FUNC( MbResultType ) SimplifyTriangularMesh( const MbMesh & mesh, const MbMeshSimplificationParams & params, c3d::MeshesSPtrVector & simplifiedMeshes );
MATH_FUNC( MbResultType ) SimplifyTriangularMesh( const MbMesh & mesh, const MbMeshSimplificationParams & params,
c3d::MeshesSPtrVector & simplifiedMeshes );
//------------------------------------------------------------------------------
+2 -2
View File
@@ -401,8 +401,8 @@ MATH_FUNC (MbFunction *) CreateFunction( const MbCurve3D & curve,
\en A function creation for behavior of Y-curve coordinate with X-curve parameter. \n
\param[in] curve - \ru Кривая.
\en The curve. \~
\param[in] params - \ru Параметры скалярной функции.
\en The parameters of the scalar function. \~
\param[in] params - \ru Параметры создания скалярной функции.
\en The parameters of creating a scalar function. \~
\return \ru Возвращает построенную функцию.
\en Returns the created function. \~
\ingroup Algorithms_3D
+1 -1
View File
@@ -2206,7 +2206,7 @@ MATH_FUNC (MbResultType) ThinSolid( const MbSurface & surface,
//------------------------------------------------------------------------------
/** \brief \ru Создать отверстие, карман, фигурный паз в теле.
\en Create a hole, a pocket, a groove in the solid. \~
\details \ru Cоздать отверстие, карман, фигурный паз в теле или создать cверло, бобышку, если solid==nullptr. \n
\details \ru Создать отверстие, карман, фигурный паз в теле или создать сверло, бобышку, если solid==nullptr. \n
\en Create a hole, a pocket, a groove in the solid or create a drill, a boss if 'solid' == nullptr. \n \~
\param[in] solid - \ru Исходное тело.
\en The source solid. \~
+2 -2
View File
@@ -89,7 +89,7 @@ MATH_FUNC (MbResultType) ElementarySurface( const MbCartPoint3D & point0,
\en Splines degree by U. \~
\param[in] vDegree - \ru Порядок сплайнов по V.
\en Splines degree by V. \~
\param[out] result - \ru Cплайновая поверхность.
\param[out] result - \ru Сплайновая поверхность.
\en The spline surface. \~
\result \ru Возвращает код результата операции.
\en Returns operation result code. \~
@@ -138,7 +138,7 @@ MATH_FUNC (MbResultType) SplineSurface( const MbCartPoint3D & pUMinVMin,
\en A knot vector by V. \~
\param[in] vClosed - \ru Замкнутость по V.
\en Closedness by V. \~
\param[out] result - \ru Cплайновая поверхность.
\param[out] result - \ru Сплайновая поверхность.
\en The spline surface. \~
\result \ru Возвращает код результата операции.
\en Returns operation result code. \~
+1 -1
View File
@@ -99,7 +99,7 @@ public:
/** \brief \ru Построить контур из отрезков по заданным точкам.
\en Construct a contour from segments by given points. \~
\details \ru Вершины сочленения скругляются. Каждой вершине соответствует радиус скругления. \n
Eсли две вершины совпадают, то одна из них и соответствующий ей радиус удаляются.
Если две вершины совпадают, то одна из них и соответствующий ей радиус удаляются.
\en Vertices of joint are rounded. Some fillet radius corresponds to every vertex. \n
If two vertices are coincident then one of them and the corresponding radius are deleted. \~
\param[out] contour - \ru Контур.
+43 -16
View File
@@ -120,6 +120,8 @@ public:
\en Color. \~
\details \ru Цвет. \n
\en Color. \n \~
\deprecated \ru Класс устарел и не рекомендуется к использованию. Взамен использовать класс #MbVisual.
\en The class is deprecated and not recommended for use. Instead use the class #MbVisual. \~
\ingroup Model_Attributes
*/
// ---
@@ -261,8 +263,22 @@ IMPL_PERSISTENT_OPS( MbStyle )
//------------------------------------------------------------------------------
/** \brief \ru Свойства материала.
\en Material properties. \~
\details \ru Свойства материала (свойства для OpenGL). \n
\en Material properties (properties for OpenGL). \n \~
\details \ru Свойства материала (свойства для OpenGL). Содержит цвет и коэффициенты. \n
Компонент _ambient хранит цвет RED, GREEN, BLUE и коэффициент общего фона в диапазоне 0.0 - 1.0 (0 - 255 в uint8). \n
Компонент _diffuse хранит цвет RED, GREEN, BLUE и коэффициент диффузного отражения в диапазоне 0.0 - 1.0 (0 - 255 в uint8). \n
Компонент _specular хранит цвет RED, GREEN, BLUE и коэффициент зеркального отражения света в диапазоне 0.0 - 1.0 (0 - 255 в uint8). \n
Компонент _emission хранит цвет RED, GREEN, BLUE и коэффициент излучения в диапазоне 0.0 - 1.0 (0 - 255 в uint8). \n
Компонент _shininess хранит блеск (показатель степени в законе зеркального отражения) в диапазоне 0 - 128 (uint8). \n
Компонент _opacity хранит коэффициент непрозрачности (коэффициент суммарного отражения) в диапазоне 0.0 - 1.0 (0 - 255 в uint8). \n
Компонент _chrom хранит коэффициент зеркального отражения объектов в диапазоне 0.0 - 1.0 (0 - 255 в uint8).
\en Material properties (properties for OpenGL). Contains color and coefficients. \n
Component _ambient contains RED, GREEN, BLUE of a color and background coefficient in range 0.0 - 1.0 (0 - 255 in uint8). \n
Component _diffuse contains RED, GREEN, BLUE of a color and coefficient of diffuse reflection in range 0.0 - 1.0 (0 - 255 in uint8). \n
Component _specular contains RED, GREEN, BLUE of a color and coefficient of specular reflection in range 0.0 - 1.0 (0 - 255 in uint8). \n
Component _emission contains RED, GREEN, BLUE of a color and emissivity coefficient in range 0.0 - 1.0 (0 - 255 in uint8). \n
Component _shininess contains shininess coefficient (index according to the law of specular reflection) in range 0 - 128 (in uint8). \n
Component _opacity contains opacity coefficient (coefficient of total reflection) in range 0.0 (transparent) - 1.0 (opaque) (range 0 - 255 in uint8). \n
Component _chrom contains coefficient of specular reflection in range 0.0 - 1.0 (0 - 255 in uint8). \~
\ingroup Model_Attributes
*/
// ---
@@ -270,10 +286,10 @@ class MATH_CLASS MbVisual : public MbElementaryAttribute {
private :
MbRGBA _ambient; ///< \ru Коэффициенты общего фона для трех цветов: RED, GREEN, BLUE. \en Coefficients of ambient background for colors: RED, GREEN, BLUE, range 0.0 - 1.0.
MbRGBA _diffuse; ///< \ru Коэффициенты диффузного отражения для трех цветов: RED, GREEN, BLUE. \en Coefficients of diffuse reflection for colors: RED, GREEN, BLUE, range 0.0 - 1.0.
MbRGBA _specularity; ///< \ru Коэффициенты зеркального отражения света трех цветов: RED, GREEN, BLUE. \en Coefficients of specular reflection for light colors: RED, GREEN, BLUE, range 0.0 - 1.0.
MbRGBA _specular; ///< \ru Коэффициенты зеркального отражения света трех цветов: RED, GREEN, BLUE. \en Coefficients of specular reflection for light colors: RED, GREEN, BLUE, range 0.0 - 1.0.
MbRGBA _emission; ///< \ru Коэффициент излучения. \en Emissivity coefficient, range 0.0 - 1.0.
uint8 _shininess; ///< \ru Блеск (показатель степени в законе зеркального отражения). \en Shininess (index according to the law of specular reflection), range 0 - 128.
uint8 _opacity; ///< \ru Коэффициент непрозрачности (коэффициент суммарного отражения). \en Opacity coefficient (coefficient of total reflection), range 0.0 (transparent) - 1.0(opaque).
uint8 _opacity; ///< \ru Коэффициент непрозрачности (коэффициент суммарного отражения). \en Opacity coefficient (coefficient of total reflection), range 0.0 (transparent) - 1. (opaque).
uint8 _chrom; ///< \ru Коэффициент зеркального отражения объектов. \en Coefficient of specular reflection for objects, range 0.0 - 1.0.
MbUuid _uuid; ///< \ru Идентификатор. \en Identifier.
@@ -283,7 +299,7 @@ protected :
public :
/// \ru Конструктор. \en Constructor.
MbVisual( float a = MB_AMBIENT, float d = MB_DIFFUSE, float s = MB_SPECULARITY,
float h = MB_SHININESS, float t = MB_OPACITY, float e = MB_EMISSION );
float h = MB_SHININESS, float t = MB_OPACITY, float e = MB_EMISSION );
/// \ru Конструктор. \en Constructor.
MbVisual( uint8 a, uint8 d, uint8 s, uint8 h, uint8 t, uint8 e );
/// \ru Деструктор. \en Destructor.
@@ -292,6 +308,12 @@ public :
/// \ru Создать по составляющей цвета. \en Create an object by a color component.
static SPtr<MbVisual> Create( uint32 c );
/// \ru Создать по составляющей цвета. \en Create an object by a color component.
static SPtr<MbVisual> Create( int iR, int iG, int iB );
/// \ru Создать по составляющей цвета. \en Create an object by a color component.
static SPtr<MbVisual> Create( const MbRGBA & c );
// \ru Общие функции объекта \en Common functions of object.
MbeAttributeType AttributeType() const override; // \ru Дать подтип атрибута. \en Get subtype of an attribute.
@@ -323,7 +345,7 @@ public :
/// \ru Дать отдельные свойства для OpenGL. \en Get some properties for OpenGL.
const MbRGBA & GetAmbient() const { return _ambient; } // \ru Дать коэффициент общего фона. \en Get a coefficient of ambient background.
const MbRGBA & GetDiffuse() const { return _diffuse; } // \ru Дать коэффициент диффузного отражения. \en Get a coefficient of diffuse reflection.
const MbRGBA & GetSpecularity() const { return _specularity; }// \ru Дать коэффициент зеркального отражения света. \en Get a coefficient of specular reflection for light.
const MbRGBA & GetSpecularity() const { return _specular; }// \ru Дать коэффициент зеркального отражения света. \en Get a coefficient of specular reflection for light.
const MbRGBA & GetEmission() const { return _emission; } // \ru Дать коэффициент излучения. \en Get a coefficient of emissivity.
const MbUuid & GetIdentifier() const { return _uuid; } // \ru Дать идентификатор. \en Get identifier.
uint8 GetShininess() const { return _shininess; } // \ru Дать блеск (показатель степени в законе зеркального отражения). \en Get shininess (index according to the law of specular reflection).
@@ -340,22 +362,27 @@ public :
void SetChrom ( float v ); // \ru Установить коэффициент зеркального отражения объектов. \en Set a coefficient of specular reflection for objects.
/// \ru Установить отдельные свойства для OpenGL. \en Set some properties for OpenGL.
void SetAmbient ( const MbRGBA & v ) { _ambient = v; } // \ru Установить коэффициент общего фона. \en Set a coefficient of ambient background.
void SetDiffuse ( const MbRGBA & v ) { _diffuse = v; } // \ru Установить коэффициент диффузного отражения. \en Set a coefficient of diffuse reflection.
void SetSpecularity ( const MbRGBA & v ) { _specularity = v; } // \ru Установить коэффициент зеркального отражения света. \en Set a coefficient of specular reflection for light.
void SetEmission ( const MbRGBA & v ) { _emission = v; } // \ru Установить коэффициент излучения. \en Set a coefficient of emissivity.
void SetIdentifier ( const MbUuid & v ) { _uuid = v; } // \ru Установить идентификатор. \en Set identifier.
void SetAmbient ( const MbRGBA & v ) { _ambient = v; } // \ru Установить коэффициент общего фона. \en Set a coefficient of ambient background.
void SetDiffuse ( const MbRGBA & v ) { _diffuse = v; } // \ru Установить коэффициент диффузного отражения. \en Set a coefficient of diffuse reflection.
void SetSpecularity ( const MbRGBA & v ) { _specular = v; } // \ru Установить коэффициент зеркального отражения света. \en Set a coefficient of specular reflection for light.
void SetEmission ( const MbRGBA & v ) { _emission = v; } // \ru Установить коэффициент излучения. \en Set a coefficient of emissivity.
void SetIdentifier ( const MbUuid & v ) { _uuid = v; } // \ru Установить идентификатор. \en Set identifier.
void SetShininessInt ( uint8 v ) { _shininess = v; } // \ru Установить блеск (показатель степени в законе зеркального отражения). \en Set shininess (index according to the law of specular reflection).
void SetOpacityInt ( uint8 v ) { _opacity = v; } // \ru Установить коэффициент непрозрачности. \en Set an opacity coefficient.
void SetChromInt ( uint8 v ) { _chrom = v; } // \ru Установить коэффициент зеркального отражения объектов. \en Set a coefficient of specular reflection for objects.
uint32 GetColor() const { return _diffuse.Get(); } // \ru Выдать составляющую цвета. \en Get a color component.
void SetColor( uint32 c ) { _diffuse.Init( c ); } // \ru Установить составляющую цвета. \en Set a color component.
/// \ru Методы работы с составляющей цвета (использовать в случае, если используется только цвет). \en Methods working with a color component (use in case only the color is used).
uint32 GetColor() const { return _diffuse.Get(); } // \ru Выдать составляющую цвета. \en Get a color component.
void SetColor( uint32 c ); // \ru Установить составляющую цвета. \en Set a color component.
void SetColor( const MbRGBA & c ); // \ru Установить составляющую цвета. \en Set a color component.
void SetColor( int iR, int iG, int iB ); // \ru Установить составляющую цвета. \en Set a color component.
void GetProperties( MbProperties & ) override; // \ru Выдать свойства объекта. \en Get properties of the object.
size_t SetProperties( const MbProperties & ) override; // \ru Установить свойства объекта. \en Set properties of object.
MbePrompt GetPropertyName() override; // \ru Выдать заголовок свойства объекта. \en Get a name of object property.
void GetProperties( MbProperties & ) override; // \ru Выдать свойства объекта. \en Get properties of the object.
size_t SetProperties( const MbProperties & ) override; // \ru Установить свойства объекта. \en Set properties of object.
MbePrompt GetPropertyName() override; // \ru Выдать заголовок свойства объекта. \en Get a name of object property.
/// \ru Преобразование в текущий формат. \en Conversion into a current format.
void ConvertColors();
private:
void operator = ( const MbVisual & ); // \ru Не реализовано \en Not implemented
+2 -2
View File
@@ -123,7 +123,7 @@ protected:
MbCartPoint3D _hotPoint; ///< \ru Хот-точка. \en Hot-point.
public:
/** \brief \ru Конструктор атрибута хот-точки.
\en Constructor of аttribute of hot-point. \~
\en Constructor of attribute of hot-point. \~
\details \ru Создается атрибут хот-точки содержащий трехмерную точку и трехмерную локальную систему координат.
\en Created attribute of hot-point contains three-dimensional point and three-dimensional coordinate system. \~
\param[in] place - \ru Локальная система координат хот-точки.
@@ -212,7 +212,7 @@ private:
public:
/** \brief \ru Конструктор атрибута хот-точки.
\en Constructor of аttribute of hot-point. \~
\en Constructor of attribute of hot-point. \~
\details \ru Создается атрибут хот-точки содержащий трехмерную точку и трехмерную локальную систему координат.
\en Created attribute of hot-point contains three-dimensional point and three-dimensional coordinate system. \~
\param[in] place - \ru Локальная система координат хот-точки.
+1 -1
View File
@@ -205,7 +205,7 @@ protected :
public :
MbProductInfo( c3d::StringTCRef initId, c3d::StringTCRef initName, c3d::StringTCRef initDesc, bool isAssm );
MbProductInfo( const TCHAR* initId, const TCHAR* initName, TCHAR* initDesc, bool isAssm );
MbProductInfo( const TCHAR* initId, const TCHAR* initName, const TCHAR* initDesc, bool isAssm );
MbProductInfo( bool isAssm, const std::string & initId, const std::string & initName, const std::string & initDesc );
// Деструктор.
+11 -3
View File
@@ -26,6 +26,7 @@ class MATH_CLASS MbMatrix3D;
class MATH_CLASS MbAttribute;
class MATH_CLASS MbUserAttribute;
class MATH_CLASS MbExternalAttribute;
class MATH_CLASS MbRGBA;
class MATH_CLASS MbProperties;
class MbRegDuplicate;
class MbRegTransform;
@@ -40,7 +41,7 @@ class MbRegTransform;
Наследники данного класса содержат атрибуты.\n
Методами данного класса выполняются действия над атрибутами объектов геометрического ядра.\n
Атрибут может влиять на состояние атрибута через его владельца,
тo есть геометрическое ядро предусматривает возможность передачи атрибутам информации об изменениях
то есть геометрическое ядро предусматривает возможность передачи атрибутам информации об изменениях
их владельцев посредством вызовов предопределенных функций у самого атрибута.\n
Кроме передачи самой информации об изменениях происходящих с владельцем,
предусмотрена возможность определять поведение атрибута при этих изменениях путем выбора
@@ -112,7 +113,7 @@ public:
/** \ru \name Общие функции над атрибутами
\en \name Common functions of attributes
\{ */
/// \ru Cдублировать атрибуты присланного объекта, свои отпустить. \en Duplicate attributes of a given object, release existing attributes.
/// \ru Сдублировать атрибуты присланного объекта, свои отпустить. \en Duplicate attributes of a given object, release existing attributes.
void AttributesAssign( const MbAttributeContainer & );
/// \ru Выдать количество объектов. \en Get the number of objects.
size_t AttributesCount() const { return attributes.Count(); }
@@ -263,6 +264,9 @@ public:
/// \ru Установить визуальные свойства объекта. \en Set visual properties of the object.
void SetVisual( float a, float d, float sp, float sh, float t, float e, uint rgb = 0 );
/// \ru Установить визуальные свойства объекта. \en Set visual properties of the object.
void SetVisual( const MbRGBA & ambient, const MbRGBA & diffuse, const MbRGBA & specular,
const MbRGBA & emission, uint8 shininess, uint8 opacity, uint8 chrom );
/** \brief \ru Выдать визуальные свойства объекта.
\en Get visual properties of the object. \~
\details \ru Выдать визуальные свойства объекта.
@@ -293,7 +297,7 @@ public:
\return \ru true если есть такой атрибут \n false в противном случае
\en True if there is the attribute MbColor \n otherwise false. \~
*/
bool IsColored() const { return (GetSimpleAttribute( at_Color ) != nullptr); }
bool IsColored() const { return (GetSimpleAttribute( at_Visual ) != nullptr); }
/// \ru Изменить цвет объекта. \en Change color of the object.
void SetColor( uint32 );
/// \ru Изменить цвет объекта (0-255). \en Change color of the object (0-255).
@@ -340,6 +344,10 @@ public:
/// \ru Установить свойства атрибутов. \en Set properties of attributes.
void SetProperties( const MbProperties & );
private:
MbAttribute * SetColorAttribute( MbAttribute * );
MbAttribute * SetColorAttribute( const MbAttribute & );
OBVIOUS_PRIVATE_COPY( MbAttributeContainer )
};
+9 -6
View File
@@ -76,12 +76,15 @@ struct MATH_CLASS cdet_query
enum message ///< Code of notification
{
CDET_QUERY_STARTED // The collision query is started for the all solids
, CDET_STARTED // The collision query is started for the given pair
, CDET_FINISHED // Collision detector complete searching a collisions for the given pair of lumps.
, CDET_INTERSECTED // The collided pair of objects founded.
, CDET_TOUCHED // Touched faces has been founded with no penetration of the solids.
, CDET_INCLUDED // The included pair of objects founded.
CDET_NONE // No messages.
, CDET_QUERY_STARTED // The collision query is started for the all solids
, CDET_STARTED // The collision query is started for the given pair
, CDET_FINISHED // Collision detector complete searching a collisions for the given pair of lumps.
// The codes below indicates the intersection state for a pair.
, CDET_NO_INTERSECTION // Definitely the pair has no intersection (this enum value for internal use only).
, CDET_TOUCHED // Touched faces has been founded with no penetration of the solids.
, CDET_INTERSECTED // The collided pair of objects founded.
, CDET_INCLUDED // The included pair of objects founded.
};
struct geom_element ///< Structure representing a collision detection geometry.
+1 -1
View File
@@ -244,7 +244,7 @@ public:
/// \ru Выдать полигон с номером i. \en Get i-th polygon.
//const MbExactGrid & GetGrid ( size_t i ) const { return *grids[i]; }
/// \ru Удалить все xтреугольники. \en Delete all triangles.
/// \ru Удалить все треугольники. \en Delete all triangles.
void TrianglesDelete() { triangles.clear(); }
/// \ru Удалить все четырехугольники. \en Delete all quadrangles.
void QuadranglesDelete() { quadrangles.clear(); }
+2 -1
View File
@@ -564,6 +564,7 @@ public:
double appUnitsFactor; ///< \ru Единицы длины модели пользовательского приложения. \en Length units of the model used in user application.
bool attatchIdAttributes; ///< \ru Следует ли формировать атрибут на основе идентификатора элемнта в файле. \en Whether to attatch the element's id in file as attribute.
bool auditEnabled;
SPtr<IProductIdMaker> pruductIdMaker; ///< \ru Генератор однострочного идентификатора по данным об изделии. \en Generator of a single-line id based on product information attribute.
C3DConverterDebugSettings debugSettings;
/// \ru Сведения о сообщениях конвертера. \en Converter message data.
@@ -663,7 +664,7 @@ public:
/// \ru Добавлять ли удаленные грани в качестве оболочек. \en Whether to add removed faces as shells.
bool AddRemovedFacesAsShells() const override { return addRemovedFacesAsShells; }
/// \ru Получить генератор однострочного идентификтора изделия. \en Get generator of one-line product identifier.
SPtr<IProductIdMaker> ProductIdentifierGenerator() const override { return SPtr<IProductIdMaker>( new NameProductIdMaker() ); }
SPtr<IProductIdMaker> ProductIdentifierGenerator() const override { return pruductIdMaker; }
/// \ru Получить пользовательский преобразователь строк. \en Get user string transformer.
SPtr<IC3DCharEncodingTransformer> GetUserCharEncodingTransformer() const override;
+3
View File
@@ -233,6 +233,9 @@ public:
/// \ru Зарегистрировать элемент аннотации. \en Register annotation object.
void RegisterAnnotation( c3d::ItemSPtr component, const AnnotationSptrVector& annotation, const AnnotationSptrVector& requirements );
/// \ru Сбросить итераторы вставок. \en Reset instances itrerators.
void ResetInstanceIterators();
};
+1 -1
View File
@@ -864,7 +864,7 @@ public:
/** \brief \ru Задать параметры для сохранения данных на этапе предварительного импорта.
\en Set parameters to save datа at the stage of preliminary import. \~
\en Set parameters to save data at the stage of preliminary import. \~
\param[in] attrCollector - \ru Реализация интерфейса для сохранения имен атрибутов модели.
\en Implementation of the interface for collecting model attribute names. . \~
\param[in] configSelector - \ru Реализация интерфейса выбора конфигурации файла.
+1 -1
View File
@@ -65,7 +65,7 @@ IMPL_PERSISTENT_OPS( MbChamferSolid )
//------------------------------------------------------------------------------
/** \brief \ru Создать оболочку с фасками ребeр.
/** \brief \ru Создать оболочку с фасками ребер.
\en Create a shell with edges' chamfers. \~
\details \ru Для указанной оболочки построить оболочку, в которой выполнены фаски указанных рёбер.\n
\en For the given shell create a shell with chamfers of the specified edges.\n \~
+1 -1
View File
@@ -43,7 +43,7 @@ protected :
ThreeStates part; ///< \ru Оставляемая часть (если part больше 0, то оставляем часть тела со стороны нормали поверхности). \en A part to be kept (if part is bigger than 0, then keep a part of solid from the side of surface normal).
CuttingProlongState prolongState; ///< \ru Тип продления режущей поверхности. \en Prolongation type of cutter surface.
bool closed; ///< \ru Замкнутоcть оболочки разрезаемого объекта. \en Closedness of the shell of the object being cut.
bool closed; ///< \ru Замкнутость оболочки разрезаемого объекта. \en Closedness of the shell of the object being cut.
bool mergeFaces; ///< \ru Сливать подобные грани (true). \en Whether to merge similar faces (true).
bool mergeEdges; ///< \ru Сливать подобные ребра (true). \en Whether to merge similar edges (true).
double buildSag; ///< \ru Угловое отклонение при движении по кривым и поверхностям. \en Angular deviation while moving along curves and surfaces.
+1 -1
View File
@@ -49,7 +49,7 @@ class MATH_CLASS MbElementarySolid : public MbCreator {
protected :
SArray<MbCartPoint3D> points; ///< \ru Опорные точки оболочки тела. \en Support points of a solid shell.
ElementaryShellType type; ///< \ru Тип тела. \en Type of a solid.
MbPlacement3D position; ///< \ru Локальная система координат тела. \en Local coordinate system оf a solid.
MbPlacement3D position; ///< \ru Локальная система координат тела. \en Local coordinate system of a solid.
double radius; ///< \ru Радиус основания тела. \en Radius of the base of the solid.
double minorRadius; ///< \ru Малый радиус основания тела. \en Small radius of the base of the solid.
double height; ///< \ru Высота тела. \en Height of a solid.
+1 -1
View File
@@ -73,7 +73,7 @@ public :
\en \name Common functions of the mathematical object.
\{ */
MbeCreatorType IsA() const override; // \ru Тип элемента. \en A type of element.
MbCreator & Duplicate( MbRegDuplicate * = nullptr ) const override; // \ru Cделать копию. \en Make a copy.
MbCreator & Duplicate( MbRegDuplicate * = nullptr ) const override; // \ru Сделать копию. \en Make a copy.
void Transform( const MbMatrix3D &, MbRegTransform * = nullptr ) override; // \ru Преобразовать элемент согласно матрице. \en Transform element according to the matrix.
void Move( const MbVector3D &, MbRegTransform * = nullptr ) override; // \ru Сдвиг. \en Move.
void Rotate( const MbAxis3D &, double angle, MbRegTransform * = nullptr ) override; // \ru Повернуть вокруг оси. \en Rotate around an axis.
+5 -5
View File
@@ -1,7 +1,7 @@
////////////////////////////////////////////////////////////////////////////////
/**
\file
\brief \ru Строитель cкругления ребeр.
\brief \ru Строитель скругления ребер.
\en Edges fillet constructor.
*/
////////////////////////////////////////////////////////////////////////////////
@@ -18,9 +18,9 @@ struct MATH_CLASS MbEdgeFunction;
//------------------------------------------------------------------------------
/** \brief \ru Строитель cкругления ребeр.
/** \brief \ru Строитель скругления ребер.
\en Edges fillet constructor. \~
\details \ru Строитель cкругления ребeр содержит параметры для выполнения операции, функции изменения радиуса,
\details \ru Строитель скругления ребер содержит параметры для выполнения операции, функции изменения радиуса,
идентификаторы граней остановки скруглений, идентификаторы скругляемых вершин. \n
Скругление ребра заключается в его замене на грань, гладко сопрягающую соединяемые ребром грани.
Построенная грань в сечении может иметь форму дуги окружности, эллипса, параболы и гиперболу.
@@ -90,9 +90,9 @@ IMPL_PERSISTENT_OPS( MbFilletSolid )
//------------------------------------------------------------------------------
/** \brief \ru Создать оболочку со cкруглением ребeр.
/** \brief \ru Создать оболочку со скруглением ребер.
\en Create a shell with edges fillet. \~
\details \ru Для указанной оболочки построить оболочку, в которой выполнено cкругление рёбер.\n
\details \ru Для указанной оболочки построить оболочку, в которой выполнено скругление рёбер.\n
Одновременно с построением оболочки функция создаёт её строитель.
Способ построения скругления определяется набором параметров в filletParams: \n
- Скруглить указанные рёбра тела постоянным радиусом. \n
+1 -1
View File
@@ -34,7 +34,7 @@ class MATH_CLASS MbPatchCreator : public MbCreator {
protected:
std::vector<SPtr<MbCurveMate>> initCurves; ///< \ru Кривые, определяющие края заплатки. \en Curves determining the boundaries of a patch.
PatchValues parameters; ///< \ru Параметры построения заплатки. \en Parameters of patch construction.
/// \ru Cледующие данные имеются только, если обрабатываются ребра. \en The following data are defined only when edges are being processed.
/// \ru Следующие данные имеются только, если обрабатываются ребра. \en The following data are defined only when edges are being processed.
SArray<bool> orientations; ///< \ru Ориентация кривых для замыкания в цепь. \en Orientation of curves for enclosing into a chain.
SArray<double> tolerances; ///< \ru Толерантности стыков кривых для замыкания в цепь. \en Tolerances of joints of curves for enclosing into a chain.
SArray<MbePairObjectsSelection> surfInds; ///< \ru Номер поверхности кривой пересечения, отвечающей существующей грани. \en Number of surface of the intersection curve corresponding to the existent face.
+1 -1
View File
@@ -82,7 +82,7 @@ IMPL_PERSISTENT_OPS( MbNormalizeHolesSolid )
\en Whether to delete the shell of the source solid. \~
\param[in] nameMaker - \ru Именователь.
\en An object for naming the new objects. \~
\param[in] cutOnly - \ru Hормализуется только вырез.
\param[in] cutOnly - \ru Нормализуется только вырез.
\en Normalize only cut. \~
\param[out] res - \ru Код результата операции.
\en Operation result code. \~
+3 -3
View File
@@ -1,7 +1,7 @@
////////////////////////////////////////////////////////////////////////////////
/**
\file
\brief \ru Строитель фаски или скругления ребeр тела.
\brief \ru Строитель фаски или скругления ребер тела.
\en Constructor of chamfer or fillet of solid's edges.
*/
////////////////////////////////////////////////////////////////////////////////
@@ -15,9 +15,9 @@
//------------------------------------------------------------------------------
/** \brief \ru Строитель фаски или скругления ребeр тела.
/** \brief \ru Строитель фаски или скругления ребер тела.
\en Constructor of chamfer or fillet of solid's edges. \~
\details \ru Строитель фаски или скругления ребeр тела содержит идентификаторы обрабатываемых рёбер и параметры для выполнения операции. \n
\details \ru Строитель фаски или скругления ребер тела содержит идентификаторы обрабатываемых рёбер и параметры для выполнения операции. \n
\en Constructor of solid's edges chamfer or fillet contains identifiers of edges being processed and parameters for performing operation. \n \~
\ingroup Model_Creators
*/ // ---
+1 -1
View File
@@ -22,7 +22,7 @@
// ---
class MATH_CLASS MbWrapCurveCreator : public MbCreator {
private:
MbCurvesWrappingParams _params; ///< \ru Параметры cворачивания. \en Parameters of the wrapping.
MbCurvesWrappingParams _params; ///< \ru Параметры сворачивания. \en Parameters of the wrapping.
protected:
/// \ru Конструктор копирования. \en Copy-constructor.
+1 -1
View File
@@ -22,7 +22,7 @@
// ---
class MATH_CLASS MbWrapPointCreator : public MbCreator {
private:
MbCurvesWrappingParams _params; ///< \ru Параметры cворачивания. \en Parameters of the wrapping.
MbCurvesWrappingParams _params; ///< \ru Параметры сворачивания. \en Parameters of the wrapping.
protected:
/// \ru Конструктор копирования. \en Copy-constructor.
+2 -2
View File
@@ -92,7 +92,7 @@ enum MbeCreatorType {
ct_FairClothoidCreator = 212, ///< \ru Строитель изменения плавной кривой по ломаной. \en Constructor of changing a fair curve by a polyline. \n
ct_FairChangeCreator = 213, ///< \ru Строитель изменения плавной кривой по ломаной. \en Constructor of changing a fair curve by a polyline. \n
ct_UnwrapCurveCreator = 214, ///< \ru Строитель развёрнутой кривой. \en Constructor of the unwrapped curve. \n
ct_WrapCurveCreator = 215, ///< \ru Строитель cвёрнутой кривой. \en Constructor of the wrapped curve. \n
ct_WrapCurveCreator = 215, ///< \ru Строитель свёрнутой кривой. \en Constructor of the wrapped curve. \n
ct_BeamCurveCreator = 216, ///< \ru Строитель балочной кривой. \en Constructor of the beam curve. \n
ct_FilletWireCreator = 217, ///< \ru Строитель скругленного каркаса. \en Constructor of the filleted wireframe. \n
@@ -100,7 +100,7 @@ enum MbeCreatorType {
ct_TrimmedWireFrameCreator = 219, ///< \ru Строитель усечения каркаса. \en Constructor of the trimmed wireframe. \n
ct_UnwrapPointCreator = 220, ///< \ru Строитель развёрнутой точки. \en Constructor of the unwrapped point. \n
ct_WrapPointCreator = 221, ///< \ru Строитель cвёрнутой точки. \en Constructor of the wrapped point. \n
ct_WrapPointCreator = 221, ///< \ru Строитель свёрнутой точки. \en Constructor of the wrapped point. \n
// \ru Строители полигональных объектов. \en Creators of polygonal objects.
ct_SimpleMeshCreator = 400, ///< \ru Строитель полигонального объекта без истории. \en Constructor of a polygonal object without history.
+1 -1
View File
@@ -1435,7 +1435,7 @@ public:
double PointProjectionOnBaseEllipse( const MbCartPoint & pnt ) const; // \ru Проекция на базовом эллипсе \en Projection onto the base ellipse
void MakeAsBaseEllipse(); ///< \ru Инициализировать как полный эллипс. \en Initialize as complete ellipse.
void CopyBaseEllipse( const MbArc & init ); ///< \ru Cкопировать базовый эллипс. \en Copy the base ellipse.
void CopyBaseEllipse( const MbArc & init ); ///< \ru Скопировать базовый эллипс. \en Copy the base ellipse.
/** \brief \ru Определить, самопересекается ли эквидистанта от эллипса.
\en Determine whether the ellipse offset has self-intersections. \~
+6 -6
View File
@@ -76,7 +76,7 @@ public://protected:
\en Constructor of an ellipse, a circle or an elliptical or circular arc. \~
\details \ru Создается дуга с центром в точке pc. \n
Первая полуось определяется как расстояние между точками pc и p1.
Вторая полуось определяется как длина проекции вектора из pс в p2 на перпендикуляр к (p1 - pc).
Вторая полуось определяется как длина проекции вектора из pc в p2 на перпендикуляр к (p1 - pc).
Начальная точка дуги лежит на луче, выходящем из центра окружности и проходящем через точку p1.
Конечная точка - на луче из центра, проходящем через точку p2. \n
Параметр initSense определяет цельность и направление дуги.
@@ -155,8 +155,8 @@ public://protected:
\param[in] aZ - \ru Направление оси Z локальной системы координат дуги окружности.
\en A direction of axis Z local coordinate system of the arc. \~
\param[in] initSense - \ru Направление дуги.
Если initSense > 0, то направление движения дуги против часовой стрелки, если cмотреть навстречу вектору aZ.
Если initSense < 0, то направление движения дуги по часовой стрелке, если cмотреть навстречу вектору aZ.
Если initSense > 0, то направление движения дуги против часовой стрелки, если смотреть навстречу вектору aZ.
Если initSense < 0, то направление движения дуги по часовой стрелке, если смотреть навстречу вектору aZ.
Если initSense == 0, то будет построена полная окружность.
\en Arc direction.
If initSense > 0, then the orientation is counterclockwise if you look towards the vector aZ.
@@ -315,7 +315,7 @@ public:
\en Create ellipse, a circle or an elliptical or circular arc. \~
\details \ru Создается дуга с центром в точке pc. \n
Первая полуось определяется как расстояние между точками pc и p1.
Вторая полуось определяется как длина проекции вектора из pс в p2 на перпендикуляр к (p1 - pc).
Вторая полуось определяется как длина проекции вектора из pc в p2 на перпендикуляр к (p1 - pc).
Начальная точка дуги лежит на луче, выходящем из центра окружности и проходящем через точку p1.
Конечная точка - на луче из центра, проходящем через точку p2. \n
Параметр initSense определяет цельность и направление дуги.
@@ -393,8 +393,8 @@ public:
\param[in] aZ - \ru Направление оси Z локальной системы координат дуги окружности.
\en A direction of axis Z local coordinate system of the arc. \~
\param[in] initSense - \ru Направление дуги.
Если initSense > 0, то направление движения дуги против часовой стрелки, если cмотреть навстречу вектору aZ.
Если initSense < 0, то направление движения дуги по часовой стрелке, если cмотреть навстречу вектору aZ.
Если initSense > 0, то направление движения дуги против часовой стрелки, если смотреть навстречу вектору aZ.
Если initSense < 0, то направление движения дуги по часовой стрелке, если смотреть навстречу вектору aZ.
Если initSense == 0, то будет построена полная окружность.
\en Arc direction.
If initSense > 0, then the orientation is counterclockwise if you look towards the vector aZ.
+1 -1
View File
@@ -92,7 +92,7 @@ public:
void Inverse( MbRegTransform * iReg = nullptr ) override; // \ru Изменить направление \en Change direction
void CalculateOnePolygon( size_t i, const MbStepData & stepData, MbPolygon3D * polygon ) const; // \ru Pассчитать полигон по параметру T \en Calculate polygon of the parameter T
void CalculateOnePolygon( size_t i, const MbStepData & stepData, MbPolygon3D * polygon ) const; // \ru Рассчитать полигон по параметру T \en Calculate polygon of the parameter T
// \ru Расчет весовых функций и их первых, вторых и третьих производных \en Calculation of the weight functions and their first, second and third derivatives
ptrdiff_t CalculateFunctions( double x, double * m,
double * mm0, double * mm1, double * mm2, double * mm3 ) const;
+1 -1
View File
@@ -367,7 +367,7 @@ public :
\param[in] leftPnt - \ru Точка слева от характерной точки.
\en Point to the left of the characteristic point. \~
\param[in] basePnt - \ru Характерная точка.
\en Сharacteristic point \~
\en Characteristic point \~
\param[in] rightPnt- \ru Точка справа от характерной точки.
\en Point to the right of the characteristic point. \~
*/
+5 -4
View File
@@ -150,10 +150,11 @@ public:
size_t GetCount() const override;
MbNurbs3D * NurbsCurve( const MbCurveIntoNurbsInfo & ) const override;
// \ru Дать физический радиус кривой или ноль, если это невозможно. \en Get the physical radius of the curve or zero if it impossible.
double GetRadius( double accuracy = METRIC_REGION ) const override;
// \ru Дать ось окружности, геометрически совпадающей с данной кривой. \en Get an axis of a circle which is geometrically coincident to the given curve.
bool GetCircleAxis( MbAxis3D & axis ) const override;
// \ru Дать радиус окружности, геометрически совпадающей с данной кривой, или ноль, если это невозможно. \en Get a radius of a circle which is geometrically coincident to the given curve, or zero if it impossible.
double GetPseudoRadius( double accuracy = METRIC_REGION ) const;
// \ru Дать ось окружности, геометрически совпадающей с данной кривой, если это возможно. \en Get an axis of a circle which is geometrically coincident to the given curve, if it's impossible.
bool GetPseudoAxis( MbAxis3D & axis ) const;
void Refresh() override; // \ru Сбросить все временные данные. \en Reset all temporary data.
void CheckParam ( double & t ) const;
+2 -2
View File
@@ -276,7 +276,7 @@ DEPRECATE_DECLARE_REPLACE( CheckClosed )
// \ru Сдвинуть параметр t на расстояние len \en Move parameter t on the distance len
bool DistanceAlong( double & t, double len, int curveDir, double eps = Math::LengthEps,
VERSION version = Math::DefaultMathVersion() ) const override;
/// \ru Cбросить переменные кэширования. \en Reset variables caching.
/// \ru Сбросить переменные кэширования. \en Reset variables caching.
void Clear( bool calculateParamLength = true )
{
if ( calculateParamLength )
@@ -465,7 +465,7 @@ DEPRECATE_DECLARE_REPLACE( CheckClosed )
0 - on the left by direction,\n
1 - on the right by direction,\n
2 - on the both sides. \~
\param[in] mode - \ru Cпособ обхода углов:\n
\param[in] mode - \ru Способ обхода углов:\n
true - дугой,
false - срезом.
\en The way of traverse of angles:\n
+1 -1
View File
@@ -414,7 +414,7 @@ public:
void SegmentsAdd( MbCurve3D & newSegment, bool calculateParamLength = true ); ///< \ru Добавить сегмент в контур без проверки. \en Add a segment to the contour without checking.
bool GetCornerAngle( size_t index, MbCartPoint3D & origin, MbVector3D & axis, MbVector3D & tau, double & angle,
double angleEps ) const;
/// \ru Cбросить переменные кэширования. \en Reset variables caching.
/// \ru Сбросить переменные кэширования. \en Reset variables caching.
void Clear() {
CalculateParamLengthAndClosed(); // \ru Параметрическая длина контура. \en Parametric length of a contour.
}
+5 -5
View File
@@ -1,7 +1,7 @@
////////////////////////////////////////////////////////////////////////////////
/**
\file
\brief \ru Cоставной кубический сплайн Эрмитa в двумерном пространстве.
\brief \ru Составной кубический сплайн Эрмита в двумерном пространстве.
\en Composite Hermite cubic spline in two-dimensional space. \~
*/
@@ -21,16 +21,16 @@ class MbRegTransform;
//------------------------------------------------------------------------------
/** \brief \ru Составной кубический сплайн Эрмитa в двумерном пространстве.
/** \brief \ru Составной кубический сплайн Эрмита в двумерном пространстве.
\en Composite Hermite cubic spline in two-dimensional space. \~
\details \ru Составной кубический сплайн Эрмитa определяется контрольными точками pointList, первыми производными
\details \ru Составной кубический сплайн Эрмита определяется контрольными точками pointList, первыми производными
сплайна vectorList в контрольных точках и значениями параметра сплайна tList в контрольных точках.
Для не замкнутой кривой множества pointList, vectorList и tList должны содержать одинаковое количество элементов.
Для замкнутой кривой количество элементов tList должно быть на единицу больше, чем количество элементов pointList и vectorList.
Сплайн Эрмитa является составной кубический кривой.
Сплайн Эрмита является составной кубический кривой.
На каждом участке между двумя соседними контрольными точками сплайн описывается кубическим полиномом
с заданными точками и производными на краях.
Сплайн Эрмитa проходит через свои контрольные точки при значениях параметра из множества tList и имеет в них заданные производные.
Сплайн Эрмита проходит через свои контрольные точки при значениях параметра из множества tList и имеет в них заданные производные.
Кубические полиномы гладко стыкуются в контрольных точках и имеют в них непрерывные первые производные.
Если производные в контрольных точках не заданы, то они рассчитываются по данной контрольной точке и двух её соседним точкам.
Для этого то трём точкам и значениям параметров в них строится парабола и вычисляется производная параболы в средней точке.
+5 -5
View File
@@ -1,7 +1,7 @@
////////////////////////////////////////////////////////////////////////////////
/**
\file
\brief \ru Cоставной кубический сплайн Эрмитa.
\brief \ru Составной кубический сплайн Эрмита.
\en Composite Hermite cubic spline. \~
*/
@@ -18,16 +18,16 @@ class MATH_CLASS MbHermit;
//------------------------------------------------------------------------------
/** \brief \ru Cоставной кубический сплайн Эрмитa в трёхмерном пространстве.
/** \brief \ru Составной кубический сплайн Эрмита в трёхмерном пространстве.
\en Composite Hermite cubic spline in three-dimensional space. \~
\details \ru Cоставной кубический сплайн Эрмитa определяется контрольными точками pointList, первыми производными
\details \ru Составной кубический сплайн Эрмита определяется контрольными точками pointList, первыми производными
сплайна vectorList в контрольных точках и значениями параметра сплайна tList в контрольных точках.
Для не замкнутой кривой множества pointList, vectorList и tList должны содержать одинаковое количество элементов.
Для замкнутой кривой количество элементов tList должно быть на единицу больше, чем количество элементов pointList и vectorList.
Сплайн Эрмитa является оставной кубический кривой.
Сплайн Эрмита является оставной кубический кривой.
На каждом участке между двумя соседними контрольными точками сплайн описывается кубическим полиномом
с заданными точками и производными на краях.
Сплайн Эрмитa проходит через свои контрольные точки при значениях параметра из множества tList и имеет в них заданные производные.
Сплайн Эрмита проходит через свои контрольные точки при значениях параметра из множества tList и имеет в них заданные производные.
Кубические полиномы гладко стыкуются в контрольных точках и имеют в них непрерывные первые производные.
Если производные в контрольных точках не заданы, то они рассчитываются по данной контрольной точке и двух её соседним точкам.
Для этого то трём точкам и значениям параметров в них строится парабола и вычисляется производная параболы в средней точке.
+1 -1
View File
@@ -131,7 +131,7 @@ public :
VERSION version = Math::DefaultMathVersion(), bool * coincParams = nullptr ) const override;
MbCurve * GetMapPsp( const MbMatrix3D &, double zNear,
MbRect1D * pRgn = nullptr ) const override;
void CalculatePolygon( const MbStepData & stepData, MbPolygon3D & ) const override; // \ru pассчитать полигон \en Calculate a polygon
void CalculatePolygon( const MbStepData & stepData, MbPolygon3D & ) const override; // \ru рассчитать полигон \en Calculate a polygon
bool IsSimilarToCurve( const MbCurve3D & curve, double precision = METRIC_PRECISION ) const override; // \ru Подобные ли кривые для объединения (слива) \en Whether the curves for union (joining) are similar
const MbCartPoint3D & GetOrigin() const { return origin; }
+1 -1
View File
@@ -61,7 +61,7 @@ class MATH_CLASS MbContour;
class MATH_CLASS MbNurbs : public MbPolyCurve {
private:
size_t degree; ///< \ru Порядок В-сплайна (порядок = степень + 1). \en Order of B-spline (order = degree + 1).
size_t degree; ///< \ru Порядок В-сплайна. \en Order of B-spline.
ptrdiff_t uppKnotsIndex; ///< \ru Последний индекс узлового вектора. \en Last index of knot vector.
SArray<double> knots; ///< \ru Узловой вектор. \en Knot vector.
SArray<double> weights; ///< \ru Множество весов контрольных точек. \en Set of weights of the control points.
+1 -1
View File
@@ -218,7 +218,7 @@ public:
\en Search of break points of the offset curve. \~
\details \ru Для нахождения точек точек излома используется характеристическая функция Ratio(),
представляющая собой разность аналитически и численно посчитанной производной деленную
на модуль аналитической производной и величину шага, использованного для численного рассчета производной.
на модуль аналитической производной и величину шага, использованного для численного расчета производной.
Увеличение этой функции на порядок по сравнению с ее значением в гладкой области означает точку излома. \n
\en To find the break points using the characteristic function Ratio(),
which represents a difference between the analytical and numerical calculated derivative divided
+1 -1
View File
@@ -187,7 +187,7 @@ IMPL_PERSISTENT_OPS( MbPlaneCurve )
//------------------------------------------------------------------------------
/** \brief \ru Cоздать пространственную кривую.
/** \brief \ru Создать пространственную кривую.
\en Create a spatial curve. \~
\details \ru Создать пространственную кривую как точное представление двумерной кривой на плоскости.
\en Create a spatial curve as an accurate representation of the two-dimensional uv-curve on the plane. \~
+1
View File
@@ -40,6 +40,7 @@ class MbFunction;
*/
// ---
class MATH_CLASS MbReparamCurve : public MbCurve {
public:
enum MbeReparamType {
rt_Linear, ///< \ru Линейная репараметризация. \en Linear reparametrization.
rt_Quadratic, ///< \ru Квадратичная репараметризация. \en Quadratic reparametrization.
+2 -1
View File
@@ -40,6 +40,7 @@ class MbFunction;
*/
// ---
class MATH_CLASS MbReparamCurve3D : public MbCurve3D {
public:
enum MbeReparamType {
rt_Linear, ///< \ru Линейная репараметризация. \en Linear reparametrization.
rt_Quadratic, ///< \ru Квадратичная репараметризация. \en Quadratic reparametrization.
@@ -156,7 +157,7 @@ public :
double DeviationStep( double t, double angle ) const override; // \ru Вычисление шага по углу отклонения нормали. \en Calculation of parameter step by the deviation angle.
double MetricStep ( double t, double length ) const override; // \ru Вычисление шага параметра по длине. \en Calculation of parameter step by the given length.
void CalculatePolygon( const MbStepData & stepData, MbPolygon3D &polygon ) const override; // \ru pассчитать полигон \en Calculate a polygon
void CalculatePolygon( const MbStepData & stepData, MbPolygon3D &polygon ) const override; // \ru рассчитать полигон \en Calculate a polygon
void CalculateGabarit( MbCube & ) const override; // \ru Вычислить габарит кривой \en Calculate the bounding box of a curve
void GetCentre( MbCartPoint3D & ) const override; // \ru Посчитать центр кривой \en Calculate the center of a curve
void GetWeightCentre( MbCartPoint3D & ) const override; // \ru Посчитать центр тяжести кривой \en Calculate the gravity center of the curve
+1 -1
View File
@@ -1,7 +1,7 @@
////////////////////////////////////////////////////////////////////////////////
/**
\file
\brief \ru Линия очерка или cилуэтная кривая поверхности.
\brief \ru Линия очерка или силуэтная кривая поверхности.
\en Isocline curve or silhouette curve of surface. \~
*/
+1 -1
View File
@@ -358,7 +358,7 @@ public :
/** \brief \ru Вычислить точку на кривой и её продолжении.
\en Calculate point at curve and its extension. \~
\details \ru Вычислить точку на кривой в том числе и за пределами области определения параметрa.
\details \ru Вычислить точку на кривой в том числе и за пределами области определения параметра.
\en Calculate a point on the curve including the outside area determination parameter. \~
\param[in] t - \ru Параметр curve.
\en Curve parameter. \~
+2 -2
View File
@@ -296,7 +296,7 @@ public :
/** \brief \ru Вычислить точку на кривой и её продолжении.
\en Calculate point at curve and its extension. \~
\details \ru Вычислить точку на кривой в том числе и за пределами области определения параметрa.
\details \ru Вычислить точку на кривой в том числе и за пределами области определения параметра.
\en Calculate a point on the curve including the outside area determination parameter. \~
\param[in] t - \ru Параметр curve.
\en Curve parameter. \~
@@ -1272,7 +1272,7 @@ MATH_FUNC (MbeNewtonResult) NearestPoints( const MbCurve3D & curve1, bool ext1,
//------------------------------------------------------------------------------
/** \brief \ru Oпределение параметров ближайших точек кривых.
/** \brief \ru Определение параметров ближайших точек кривых.
\en Definition of parameters of the nearest points of curves. \~
\details \ru Итерационное определение параметров ближайших точек кривых
путём решения уравнений методом Ньютона при заданных начальных приближениях.
+3 -3
View File
@@ -209,7 +209,7 @@ public:
const MbMatrix3D & GetTranslateRotate() const { return m_TranslateRotate; }
const MbMatrix3D & GetSumTransform () const { return m_sumTransform; }
/// \ru Cравнение с другими данными. \en Comparison with other data.
/// \ru Сравнение с другими данными. \en Comparison with other data.
bool operator == ( const DXFCompositeData & ) const ;
DXFCompositeData & operator=( const DXFCompositeData & ) { C3D_ASSERT_UNCONDITIONAL( false ); return *this; }
@@ -217,7 +217,7 @@ public:
//------------------------------------------------------------------------------
/// \ru Cравнение с другими данными по thisId. \en Comparison with other data by thisId.
/// \ru Сравнение с другими данными по thisId. \en Comparison with other data by thisId.
//----
inline
bool DXFCompositeData::operator == ( const DXFCompositeData & comp ) const {
@@ -435,7 +435,7 @@ public:
void RemoveData ( const DXFCompositeData & data );
private:
/**\brief \ru Cоздать модельные грани по свойствам старых модельных тел.
/**\brief \ru Создать модельные грани по свойствам старых модельных тел.
\en Create model faces from properties of old model solids. \~
\param[in] solids - \ru Положение тела в ЛСК.
\en Position of the solid in LCS. \~
+3 -3
View File
@@ -20,7 +20,7 @@
//------------------------------------------------------------------------------
/** \brief \ru Составная функция.
\en Composite function. \~
\details \ru Скалярная cоставная функция скалярного параметра состоит из набора функций (сегментов). \n
\details \ru Скалярная составная функция скалярного параметра состоит из набора функций (сегментов). \n
В составной функции начало каждого последующего сегмента стыкуется с концом предыдущего.
Составная функция является замкнутой, если конец последнего сегмента стыкуется с началом первого сегмента.\n
Начальное значение параметра составной функции равно нулю.
@@ -42,7 +42,7 @@
// ---
class MATH_CLASS MbCompositeFunction : public MbFunction {
protected :
RPArray<MbFunction> segments; ///< \ru Множество сегментов cоставной функции. \en A set of composite function segments.
RPArray<MbFunction> segments; ///< \ru Множество сегментов составной функции. \en A set of composite function segments.
bool closed; ///< \ru Признак замкнутости функции. \en An attribute of function closedness.
double paramLength; ///< \ru Параметрическая длина функции. \en Parametric length of a composite function.
@@ -193,7 +193,7 @@ public:
MbFunction * AddSegment( MbFunction & pBasis, double t1, double t2, int sense );
void SegmentsAdd( MbFunction & newSegment, bool calculateParamLength = true ); ///< \ru Добавить сегмент в контур без проверки. \en Add a segment to the contour without checking.
/// \ru Cбросить переменные кэширования. \en Reset variables caching.
/// \ru Сбросить переменные кэширования. \en Reset variables caching.
void Clear() {
CalculateParamLengthAndClosed(); // \ru Параметрическая длина контура. \en Parametric length of a contour.
}
+4 -4
View File
@@ -207,7 +207,7 @@ inline bool MbCubicFunction::LocalCoordinate( double & t, ptrdiff_t & j1, ptrdif
//------------------------------------------------------------------------------
// \ru Определение массива степеней параметрa точки \en Definition of array of degrees of point parameter
// \ru Определение массива степеней параметра точки \en Definition of array of degrees of point parameter
// ---
inline void MbCubicFunction::ParamPoint( double y1, double y2, double t1, double t2, double * tLoft ) const {
tLoft[0] = 3*y1*y1 - 2*y1*y1*y1;
@@ -218,7 +218,7 @@ inline void MbCubicFunction::ParamPoint( double y1, double y2, double t1, double
//------------------------------------------------------------------------------
// \ru Определение массива степеней параметрa производной \en Definition of array of degrees of derivative parameter
// \ru Определение массива степеней параметра производной \en Definition of array of degrees of derivative parameter
// ---
inline void MbCubicFunction::ParamFirst( double y1, double y2, double t1, double t2, double * tLoft ) const {
tLoft[0] = (6*y1 - 6*y1*y1) / (t1-t2);
@@ -229,7 +229,7 @@ inline void MbCubicFunction::ParamFirst( double y1, double y2, double t1, double
//------------------------------------------------------------------------------
// \ru Определение массива степеней параметрa второй производной \en Definition of array of degrees of second derivative parameter
// \ru Определение массива степеней параметра второй производной \en Definition of array of degrees of second derivative parameter
// ---
inline void MbCubicFunction::ParamSecond( double y1, double y2, double t1, double t2, double * tLoft ) const {
double d1 = 1 / (t1-t2);
@@ -242,7 +242,7 @@ inline void MbCubicFunction::ParamSecond( double y1, double y2, double t1, doubl
//------------------------------------------------------------------------------
// \ru Определение массива степеней параметрa третьей производной \en Definition of array of degrees of third derivative parameter
// \ru Определение массива степеней параметра третьей производной \en Definition of array of degrees of third derivative parameter
// ---
inline void MbCubicFunction::ParamThird( double t1, double t2, double * tLoft ) const {
double d1 = 1 / (t1-t2);
+1 -1
View File
@@ -29,7 +29,7 @@
class MATH_CLASS MbNurbsFunction : public MbFunction {
protected:
size_t degree; ///< \ru Порядок В-сплайна (порядок = степень + 1). \en Order of B-spline (order = degree + 1).
size_t degree; ///< \ru Порядок В-сплайна. \en Order of B-spline.
SArray<double> pointList; ///< \ru Множество контрольных точек. \en Set of control points.
SArray<double> weights; ///< \ru Множество весов контрольных точек. \en Set of weights of the control points.
SArray<double> knots; ///< \ru Узловой вектор. \en Knot vector.
+2 -2
View File
@@ -93,8 +93,8 @@ public:
void SetOrigin( double p ) { origin = p; } ///< \ru Изменить начальное значение. \en Set start value.
double GetScale() const { return scale; } ///< \ru Выдать коэффициент усиления. \en Get scale gain.
void SetScale( double a ) { scale = a; } ///< \ru Изменить коэффициент усиления. \en Set scale gain.
double GetShift() const { return shift; } ///< \ru Выдать cдвиг параметра. \en Get parameter shift.
void SetShift( double p ) { shift = p; } ///< \ru Изменить cдвиг параметра. \en Set parameter shift.
double GetShift() const { return shift; } ///< \ru Выдать сдвиг параметра. \en Get parameter shift.
void SetShift( double p ) { shift = p; } ///< \ru Изменить сдвиг параметра. \en Set parameter shift.
private:
void operator = ( const MbPowerFunction & ); // \ru Не реализовано \en Not implemented
+1 -1
View File
@@ -162,7 +162,7 @@ public:
*/
virtual void Explore( double & t, bool ext,
double & val, double & fir, double * sec, double * thr ) const;
// Hахождениe аргумента t по значению функции value. \en Calculate the argument t by the function value.
// Нахождение аргумента t по значению функции value. \en Calculate the argument t by the function value.
MbeNewtonResult ArgumentNewton( double value, bool ext, double funcEpsilon,
size_t iterLimit, double & t ) const;
// \ru Вычислить аргумент t по значению функции. \en Calculate the argument t by the function value.
+4 -2
View File
@@ -30,6 +30,7 @@ typedef void ( *GCE_geom_registered )( GCE_app_geom ag ); ///< Application geo
typedef void ( *GCE_geom_unregistered )( GCE_app_geom ag );
typedef bool ( *GCE_allow_zero_radius )( GCE_app_geom ag ); ///<
typedef bool ( *GCE_allow_zero_length )( GCE_app_geom ag ); ///<
typedef GCE_vec2d ( *GCE_get_lseg_direction )( GCE_app_geom ag ); ///<
typedef bool ( *GCE_abort )(); ///< Query to interrupt calculations
//----------------------------------------------------------------------------------------
@@ -52,8 +53,9 @@ typedef struct GCE_CLASS
/*
Geometry properties
*/
GCE_allow_zero_radius allowZeroRadius; ///< Permit circle to have zero radius.
GCE_allow_zero_length allowZeroLength; ///< Permit curve to have zero length.
GCE_allow_zero_radius allowZeroRadius; ///< Permit circle to have zero radius.
GCE_allow_zero_length allowZeroLength; ///< Permit curve to have zero length.
GCE_get_lseg_direction getLSegDirection; ///< Get direction of line segment
} GCE_callback_table;
//----------------------------------------------------------------------------------------
+2 -2
View File
@@ -268,7 +268,7 @@ typedef enum
\details
\ru Статус ограничения подразумевает деление системы ограничения на подмножества,
которые маркируются следующим образом:\n
Ограничения, помеченые GCE_STATUS_WellTreated и GCE_STATUS_WellConditioned образуют
Ограничения, помеченные GCE_STATUS_WellTreated и GCE_STATUS_WellConditioned образуют
хорошо-обрабатываемую решателем часть системы ограничений, не содержащую переопределений
и обычно вычисляемую без противоречий.\n
Ограничения, помеченные статусами GCE_STATUS_WellConditioned и GCE_STATUS_IllConditioned
@@ -369,7 +369,7 @@ typedef enum
struct GCE_CLASS GCE_vec2d
{
double x, y;
GCE_vec2d() { x = y = 0; }
GCE_vec2d() { x = y = 0.; }
};
//----------------------------------------------------------------------------------------
+2 -2
View File
@@ -705,7 +705,7 @@ GCM_FUNC(GCM_pattern) GCM_AddLinearPattern( GCM_system gSys, GCM_geom g1, GCM_ge
GCM_FUNC(GCM_pattern) GCM_AddAngularPattern( GCM_system gSys, GCM_geom smp, GCM_geom axial, GCM_alignment align=GCM_NO_ALIGNMENT );
//----------------------------------------------------------------------------------------
/** brief \ru Задать паттерн - Cистема Координат.
/** brief \ru Задать паттерн - Система Координат.
\en Create the constraint the coordinate system pattern. \~
\brief \ru Задать координату паттерна - Системы Координат.
\en Create an coordinate of the coordiёnate system pattern constraint. \~
@@ -867,7 +867,7 @@ GCM_FUNC(GCM_constraint) GCM_FixGeom_( GCM_system gSys, GCM_geom g );
объект является суб-объектом тела (кластера), то объект замораживается только в рамках кластера,
однако в глобальной системе координат объект имеет такую же свободу как и кластер,
которому он принадлежит.
\en Thе function makes the object fixed depriving it of all degrees of freedom. If the geometric object
\en The function makes the object fixed depriving it of all degrees of freedom. If the geometric object
is a sub geom of a solid (cluster), the object is frozen only in the framework of the cluster,
but in the global coordinate system the object has the same freedom as the cluster
to which it belongs.
+2 -2
View File
@@ -84,9 +84,9 @@ struct GCM_CLASS ItGCBlackbox
\en Formulate constraints for the dependent geometric object. \~
\details \ru Функция позволяет задать положение зависимого объекта относительно управляющих в явном виде с помощью
интерфейса #MtGeomSolver (#MtGeomSolver::AddConstraint, #MtGeomSolver::AddConstraintItem,
#MtGeomSolver::AddPattren). Данный механизм является альтернативой вызову #ItGCBlackbox::Calculatе.
#MtGeomSolver::AddPattren). Данный механизм является альтернативой вызову #ItGCBlackbox::Calculate.
Его использование сообщает решателю не только о наличии зависимости (как в случае с
#ItGCBlackbox::Calculatе), но и о ее характере. Данное знание позволяет расширить класс разрешимых
#ItGCBlackbox::Calculate), но и о ее характере. Данное знание позволяет расширить класс разрешимых
задач, но в некоторых случаях может привести к ухудшению производительности.
\en The function allows to set the position of the dependent object relative to it's governing objects
explicitly using the interface #MtGeomSolver (#MtGeomSolver::AddConstraint,
+1 -1
View File
@@ -452,7 +452,7 @@ typedef enum
, GCM_G_STATUS_UnderDefined ///< \ru Геометрический объект имеет переносную или поворотную подвижность (DOF>0).
, GCM_G_STATUS_NotConsistent ///<
, GCM_G_STATUS_NotSolved ///<
, GCM_G_STATUS_Unknown ///< \ru Статус геометрического объекта не определен. \en The geomeric statгы is undefined.
, GCM_G_STATUS_Unknown ///< \ru Статус геометрического объекта не определен. \en The geomeric status is undefined.
} GCM_g_status;
//----------------------------------------------------------------------------------------
+2 -2
View File
@@ -797,7 +797,7 @@ private: // \ru вспомогательные объекты \en assisting obj
assigner & operator = ( const assigner & );
};
// \ru Посетитель для вызова деcтруктора типа, которым занят union-контейнер \en The visitor to call the type destructor which is occupied by union-container
// \ru Посетитель для вызова деструктора типа, которым занят union-контейнер \en The visitor to call the type destructor which is occupied by union-container
struct destroyer
{
template<class _Type>
@@ -1150,7 +1150,7 @@ struct range : public std::pair<Iterator, Iterator>
range & drop_back() { --_Pair::second; return *this; }
const reference front() const { return *_Pair::first; }
const reference back() const { return *(_Pair::second - 1); }
const reference back() const { auto last = _Pair::second; return *(--last); }
};
//----------------------------------------------------------------------------------------
+56 -70
View File
@@ -12,14 +12,16 @@
#include <generic_utility.h>
#include <vector>
/**
\addtogroup Base_GraphLib
\{
*/
//----------------------------------------------------------------------------------------
//
/// Пустой посетитель алгоритма обхода графа в глубину
/// Пустой посетитель алгоритма обхода графа в глубину.
/**
\ingroup MathGC_Algo
\attention Класс не предназначен для того, что бы применять статический
или динамический полиморфизм, т.е. не обязывает своих наследников
перегружать методы.
\attention Класс не предназначен для того, что бы применять статический или динамический
полиморфизм, т.е. не обязывает своих наследников перегружать методы.
*/
//---
template<class Graph>
@@ -58,7 +60,7 @@ struct DefaultDFSVisitor
//////////////////////////////////////////////////////////////////////////////////////////
//
/// Посетитель алгоритма поиска блоков и точек сочленения в неориентированном графе
/// Посетитель алгоритма поиска блоков и точек сочленения в неориентированном графе.
/**
Позволяет настроить алгоритм поиска блоков и точек сочленения под конкретные реализации.
*/
@@ -104,7 +106,7 @@ template< class Graph, class BicompVisitor = DefaultBicompVisitor<Graph> >
class BicompDFSVisitor: public DefaultDFSVisitor<Graph>
{
public:
typedef typename Graph::adj_iterator adj_iterator;
typedef typename Graph::adjacency_iterator adjacency_iterator;
typedef typename Graph::edge edge;
public:
@@ -123,8 +125,8 @@ public:
/// Встретили поперечное или прямое ребро
void ForwardOrCrossEdge( typename Graph::vertex_index v, typename Graph::vertex_index u, const Graph & )
{
DEBUG_UNUSED_PARAMETER( u );
DEBUG_UNUSED_PARAMETER( v );
C3D_UNUSED_PARAMETER( u );
C3D_UNUSED_PARAMETER( v );
PRECONDITION( num[v] < num[u] );
}
@@ -134,7 +136,7 @@ public:
*/
void BackEdge( typename Graph::vertex_index v, typename Graph::vertex_index u, const Graph & g )
{
DEBUG_UNUSED_PARAMETER( g );
C3D_UNUSED_PARAMETER( g );
PRECONDITION( m_graph == &g );
PRECONDITION( num[u] < num[v] );
PRECONDITION( father[v] != NO_VERTEX );
@@ -149,7 +151,7 @@ public:
/// Посещение вершины: Вызывается один раз для каждой вершины, когда она впервые начинает просматриваться
void DiscoverNode( typename Graph::vertex_index v, const Graph & g )
{
DEBUG_UNUSED_PARAMETER( g );
C3D_UNUSED_PARAMETER( g );
C3D_ASSERT( m_graph == &g );
PRECONDITION( num[v] == 0 );
PRECONDITION( lval[v] == 0 );
@@ -237,7 +239,7 @@ public:
/// Означает, что начато рассмотрение корневой вершины будущего дерева обхода
void StartNode( typename Graph::vertex_index v, const Graph & g )
{
DEBUG_UNUSED_PARAMETER( v );
C3D_UNUSED_PARAMETER( v );
_Init( g );
PRECONDITION( father[v] == NO_VERTEX );
PRECONDITION( num[v] == 0 && lval[v] == 0 );
@@ -246,7 +248,7 @@ public:
/// Заход в ребро dfs-дерева, вызывается перед переходом от посещенной вершины v к еще не посещенной вершине u
void TreeEdge( typename Graph::vertex_index v, typename Graph::vertex_index u, const Graph & g )
{
DEBUG_UNUSED_PARAMETER( g );
C3D_UNUSED_PARAMETER( g );
PRECONDITION( m_graph == &g );
PRECONDITION( father[u] == NO_VERTEX );
m_stackEdges.push_back( edge(v,u) ); // Вставить ребро vu;
@@ -260,7 +262,7 @@ private:
PRECONDITION( m_graph == &g );
// Оценить является ли u - точкой сочленения
size_t fatherNb = 0; // Сколько раз вершина u стала папой
std::pair<adj_iterator,adj_iterator> adjIterPair = g.AdjacentVertices( u );
std::pair<adjacency_iterator,adjacency_iterator> adjIterPair = g.AdjacentVertices( u );
for ( ; adjIterPair.first != adjIterPair.second; ++adjIterPair.first )
{
if ( father[*adjIterPair.first] == u )
@@ -285,11 +287,11 @@ private:
private:
const Graph * m_graph; ///< Рассматриваемый граф, для которого ищутся точки сочленения
BicompVisitor & m_bicompVis; ///< Посетитель алгоритмов этого класса
ptrdiff_t m_dfsCounter; ///< Cчетчик вершин dfs-дерева
ptrdiff_t m_dfsCounter; ///< Счетчик вершин dfs-дерева
std::vector<size_t> num; ///< Нумерация порядка обхода вершин d-дерева
std::vector<size_t> lval; ///< Массив значений функции L[v] на каждую вершину - см.теорию стр.166, [Asan], Лемма 6;
std::vector<typename Graph::vertex_index> father;///< Отец вершины в dfs-дереве
std::vector<edge> m_stackEdges; ///< Cтек ребер для обслуживания нахождения блоков
std::vector<edge> m_stackEdges; ///< Стек ребер для обслуживания нахождения блоков
private:
BicompDFSVisitor & operator = ( const BicompDFSVisitor & );
@@ -302,15 +304,15 @@ template<class Graph>
struct DFSVertexInfo
{
private:
typedef typename Graph::vertex_index vertex_index;
typedef typename Graph::adj_iterator adj_iterator;
using vertex_index = typename Graph::vertex_index;
using adjacency_iterator = typename Graph::adjacency_iterator;
public:
vertex_index m_node;
adj_iterator m_iter;
adj_iterator m_last;
vertex_index m_node;
adjacency_iterator m_iter;
adjacency_iterator m_last;
DFSVertexInfo( vertex_index v, adj_iterator iter, adj_iterator last )
DFSVertexInfo( vertex_index v, adjacency_iterator iter, adjacency_iterator last )
: m_node( v )
, m_iter( iter )
, m_last( last )
@@ -353,8 +355,8 @@ template<class Graph, class Visitor>
void DepthFirstSearch( const Graph & graph, Visitor & vis )
{
typedef typename Graph::vertices_size_t vertices_size_t;
typedef typename Graph::vertex_index vertex_index;
typedef typename Graph::adj_iterator adj_iterator;
typedef typename Graph::vertex_index vertex_index;
typedef typename Graph::adjacency_iterator adjacency_iterator;
const vertices_size_t vCount = graph.NumVertices();
@@ -370,7 +372,7 @@ void DepthFirstSearch( const Graph & graph, Visitor & vis )
}
}
adj_iterator vIter, vLast;
adjacency_iterator vIter, vLast;
vertex_index srcNode;
for ( vertex_index startNode = 0; startNode < vCount; ++startNode )
@@ -585,7 +587,7 @@ class MtBicompSearch
// Ассоциативные типы
typedef typename Graph::vertex_index vertex_index;
typedef typename Graph::vertex_size_t vertex_size_t;
typedef typename Graph::adj_iterator adj_iterator;
typedef typename Graph::adjacency_iterator adjacency_iterator;
private:
const Graph & m_graph;
@@ -668,7 +670,7 @@ void MtBicompSearch<Graph>::Perform()
// Оценить является ли startIdx - точкой сочленения
size_t fatherNb = 0; // Сколько раз стартовая вершина стала папой
std::pair<adj_iterator,adj_iterator> adjIterPair = m_graph.AdjacentVertices( startIdx );
std::pair<adjacency_iterator,adjacency_iterator> adjIterPair = m_graph.AdjacentVertices( startIdx );
for ( ; adjIterPair.first!=adjIterPair.second; ++adjIterPair.first )
{
if ( father[*adjIterPair.first] == startIdx )
@@ -711,7 +713,7 @@ void MtBicompSearch<Graph>::BiComp( const vertex_index vIdx )
++m_dfsCounter;
// Цикл по всем смежным вершинам vert;
std::pair<adj_iterator,adj_iterator> adjIterPair = m_graph.AdjacentVertices( vIdx );
std::pair<adjacency_iterator,adjacency_iterator> adjIterPair = m_graph.AdjacentVertices( vIdx );
for ( ; adjIterPair.first!=adjIterPair.second; ++adjIterPair.first )
{
const vertex_index uIdx = *adjIterPair.first; // Вершина - сын в d-дереве;
@@ -740,22 +742,6 @@ void MtBicompSearch<Graph>::BiComp( const vertex_index vIdx )
m_cutnodeProp[vIdx] = true;
}
}
/*
PRECONDITION( !stackE.empty() )
blocks.NewComp();
#pragma message ( __TODO__ "(**) Собирать ребра возможно не понадобится! Достаточно cutnodes;" )
while( !stackE.empty() )
{
edge_descriptor edge = stackE.back();
blocks.AddEdge( edge );
stackE.pop_back(); // вытолкнуть ребро из стека;
if ( edge == vuEdg )
{
break;
}
}
*/
}
}
else if ( num[uIdx] < num[vIdx] && uIdx != father[vIdx] )
@@ -780,7 +766,7 @@ struct DefaultSCVisitor
inline void Start( const Graph & ) {}
// Вызывается, когда найден очередной компонент сильной связности в орграфе
/*
Аргументы: граф и пара вершинных итераторов, пробегающих подмножество компонента
Аргументы: граф и пара вершинных итераторов, пробегающих подмножество компонента.
*/
template<class Graph, class VertexIter>
inline void Component( const Graph &, VertexIter, VertexIter ) {}
@@ -791,25 +777,25 @@ struct DefaultSCVisitor
//////////////////////////////////////////////////////////////////////////////////////////
//
/// Алгоритм поиска компонент сильной связности в орграфе
/**
Напомним, что две вершины орграфа считаются сильно связанными, если
\brief \ru Алгоритм поиска компонент сильной связности в орграфе.
\en Algorithm for searching strongly connected components in a digraph.
\details
\ru Напомним, что две вершины орграфа считаются сильно связанными, если
существует маршрут из первой вершины ко второй и обратный маршрут из второй
к первой. Подграф называется <b>сильно связным</b>, если любая пары его
вершин сильно связаны. <b>Компонент сильной связности</b> графа - это один из
его сильно сзязный подграфов G', для которого не существует сильно связной пары
вершин u и v, таких, что u-принадлежит G', а v не принадлежит G'. Другими словами,
вершины компонента сильной связости принадлежат классу взаимной достижимости вершин;
\note Алгоритм #MtStrongComponents имеет линейную сложность вычислений
\ingroup GCBase
вершины компонента сильной связости принадлежат классу взаимной достижимости вершин. \~
\note \ru Алгоритм #MtStrongComponents имеет линейную сложность вычислений.
*/
//////////////////////////////////////////////////////////////////////////////////////////
template <class Graph, class SCVisitor, class VertexPropertyMap>
class MtStrongComponents
{
public: // Ассоциативные типы
public: // Ассоциативные типы.
typedef typename graph_traits<Graph>::vertex vertex;
typedef typename graph_traits<Graph>::edge edge;
typedef typename graph_traits<Graph>::edge_iterator edge_iterator;
@@ -817,18 +803,18 @@ public: // Ассоциативные типы
public:
MtStrongComponents( const Graph &, SCVisitor & );
void operator() (); ///< Исполнить алгоритм поиска сильных компонентов
void operator() (); ///< Исполнить алгоритм поиска сильных компонентов.
private:
// DFS-алгоритм для поиска компонент сильной связности в графе ограничений
// DFS-алгоритм для поиска компонент сильной связности в графе ограничений.
void StrongSearch( vertex, std::vector<vertex> & );
private:
const Graph & m_diGraph; ///< Ориентированный граф
SCVisitor & m_vis; ///< Посетитель алгоритма поиска компонент сильной связности
size_t m_counter; ///< Порядок DFS-обхода
VertexPropertyMap num; ///< Вспомогательный массив порядковых номеров обхода в глубину
VertexPropertyMap lval; ///< Массив для промежуточных целочисленных вычислений
const Graph & m_diGraph; ///< Ориентированный граф.
SCVisitor & m_vis; ///< Посетитель алгоритма поиска компонент сильной связности.
size_t m_counter; ///< Порядок DFS-обхода.
VertexPropertyMap num; ///< Вспомогательный массив порядковых номеров обхода в глубину.
VertexPropertyMap lval; ///< Массив для промежуточных целочисленных вычислений.
private:
MtStrongComponents( const MtStrongComponents & );
@@ -950,9 +936,8 @@ void MtStrongComponents<Graph,Vis,VPropMap>::StrongSearch( vertex vx, std::vecto
#else // _RECURSIVE_STRONG_SEARCH
//----------------------------------------------------------------------------------------
/// Стековый элемент для алгоритма обхода в глубину
/// Стековый элемент для алгоритма обхода в глубину.
//---
template<class Graph>
struct DFS_element
@@ -962,7 +947,7 @@ struct DFS_element
typedef typename Graph::edge_iterator edge_iterator;
vertex node;
edge_iterator iter;
edge_iterator iter; // Current incident edge.
edge_iterator last;
DFS_element( vertex v, const std::pair<edge_iterator,edge_iterator> & pair )
@@ -995,21 +980,20 @@ struct DFS_element
};
//----------------------------------------------------------------------------------------
/// Алгоритм поиска компонент сильной связности в орграфе
/// Алгоритм поиска компонент сильной связности в орграфе.
/**
Алгоритм применяется для разбиения графа ограничений на независимо-решаемые
Алгоритм применяется для разбиения графа ограничений на независимо-решаемые
подсистемы (сегменты). Описание алгоритма приведено в книжке Асанова по
теории графов, стр.171.\n
MA2013-02-22: Алгоритм переделан под нерекурсивный вариант;
теории графов, стр.171.
MA 2013-02-22: Алгоритм переделан под нерекурсивный вариант.
\param rootVert - корневая вершина поддерева DFS
\param comStack - стек рассмотренных вершин, для которых не установлена компонентная принадлежность
*/
//---
template <class Graph, class Vis, class VPropMap>
void MtStrongComponents<Graph,Vis,VPropMap>::StrongSearch( vertex rootVert
, std::vector<vertex> & comStack )
void MtStrongComponents<Graph,Vis,VPropMap>::StrongSearch( vertex rootVert, std::vector<vertex> & comStack )
{
typedef DFS_element<Graph> DfsStackElem;
using DfsStackElem = DFS_element<Graph>;
PRECONDITION( !m_vis.IsFiltered(m_diGraph,rootVert) );
std::vector<DfsStackElem> dfsStack;
@@ -1102,4 +1086,6 @@ void MtStrongComponents<Graph,Vis,VPropMap>::StrongSearch( vertex rootVert
#endif // __GRAPH_ALGORITHMS_H
/** \} */ // Base_GraphLib
// eof
+9 -9
View File
@@ -78,12 +78,12 @@ public:
SimpleName & operator = ( size_t other ) { body = other; return *this; }
// \ru операторы сравнения \en compare operators
bool operator == ( const SimpleName & other ) const { return Сompare( other.body ) == 0; }
bool operator != ( const SimpleName & other ) const { return Сompare( other.body ) != 0; }
bool operator > ( const SimpleName & other ) const { return Сompare( other.body ) > 0; }
bool operator >= ( const SimpleName & other ) const { return Сompare( other.body ) >= 0; }
bool operator < ( const SimpleName & other ) const { return Сompare( other.body ) < 0; }
bool operator <= ( const SimpleName & other ) const { return Сompare( other.body ) <= 0; }
bool operator == ( const SimpleName & other ) const { return Compare( other.body ) == 0; }
bool operator != ( const SimpleName & other ) const { return Compare( other.body ) != 0; }
bool operator > ( const SimpleName & other ) const { return Compare( other.body ) > 0; }
bool operator >= ( const SimpleName & other ) const { return Compare( other.body ) >= 0; }
bool operator < ( const SimpleName & other ) const { return Compare( other.body ) < 0; }
bool operator <= ( const SimpleName & other ) const { return Compare( other.body ) <= 0; }
SimpleName operator + ( size_t other ) const { return SimpleName( body + (size_t)other ); }
SimpleName operator - ( size_t other ) const
@@ -104,15 +104,15 @@ public:
operator size_t() const { return (size_t)body; }
operator ptrdiff_t() const { return (ptrdiff_t)body; }
// service
int Сompare( const SimpleName & other ) const { return Сompare( other.body ); } // return value [-1; 0; +1]
int Compare( const SimpleName & other ) const { return Compare( other.body ); } // return value [-1; 0; +1]
protected:
int Сompare( size_t other ) const { return ((body > other) ? 1 : ( (body < other) ? -1 : 0 )); }
int Compare( size_t other ) const { return ((body > other) ? 1 : ( (body < other) ? -1 : 0 )); }
protected:
friend void WriteSimpleName( writer &, const SimpleName & s );
friend SimpleName ReadSimpleName ( reader & );
};
inline int SimpleNameCompare( const SimpleName & h1, const SimpleName & h2 ) { return h1.Сompare( h2 ); }
inline int SimpleNameCompare( const SimpleName & h1, const SimpleName & h2 ) { return h1.Compare( h2 ); }
inline bool IsGoodSimpleName( const SimpleName & s ) { return (bool)s; }
inline void SwapIT( SimpleName & a, SimpleName & b ) { SimpleName tmp = a; a = b; b = a; }
+1 -1
View File
@@ -324,7 +324,7 @@ struct ClusterReference
Классы iobuf_Seq, tape и их наследников следует рассматривать в совокупности. \n
Терминология: \n
- Xранилище - файл на диске или область памяти. \n
- Хранилище - файл на диске или область памяти. \n
- Файл - файл внутри хранилища. \n
Класс iobuf_Seq содержит массив кластеров. \n
+1 -1
View File
@@ -128,7 +128,7 @@ public:
protected:
virtual int setup(); ///< \ru Установить буфер для следующего кластера. \en Set the buffer for the next cluster.
virtual int flush(); ///< \ru Cбросить буфер. \en Flush the buffer.
virtual int flush(); ///< \ru Сбросить буфер. \en Flush the buffer.
void PrepareToRead( const VersionContainer & vers ); ///< \ru Инициировать все поля перед чтением. \en Initialize all the fields before reading.
/// \ru Установить новый FileSpace для записи объекта уровня level. \en Set new FileSpace for writing an object of given level.
+3 -3
View File
@@ -102,9 +102,9 @@ OBVIOUS_PRIVATE_COPY( TapeRegistrator )
//----------------------------------------------------------------------------------------
/** \brief \ru Массив для регистрации объектов с сохранениeм информации о позиции чтения/записи.
/** \brief \ru Массив для регистрации объектов с сохранением информации о позиции чтения/записи.
\en Array for registration of objects with information about reading/writing position. \~
\details \ru Массив для регистрации объектов с сохранени информации о позиции чтения/записи. \n
\details \ru Массив для регистрации объектов с сохранением информации о позиции чтения/записи. \n
\en Array for registration of objects with information about reading/writing position. \n \~
\ingroup Base_Tools_IO
*/ //---
@@ -251,7 +251,7 @@ public:
/** \brief \ru "Обертка" для одного потокового класса.
\en "Wrapper" for one stream class. \~
\details \ru "Обертка" для одного потокового класса ( не экземпляра! ).
Xранит упакованное имя класса и адреса функций, необходимых при чтении/записи. \n
Хранит упакованное имя класса и адреса функций, необходимых при чтении/записи. \n
\en "Wrapper" for one stream class ( not instance! ).
Stores packed class name and addresses of functions necessary while reading/writing. \n \~
\ingroup Base_Tools_IO
+7 -3
View File
@@ -280,9 +280,9 @@ private:
//----------------------------------------------------------------------------------------
/** \brief \ru Cпособы записи указателей.
/** \brief \ru Способы записи указателей.
\en Methods of writing pointers. \~
\details \ru Cпособы записи указателей. \n
\details \ru Способы записи указателей. \n
\en Methods of writing pointers. \n \~
\ingroup Base_Tools_IO
*/ //---
@@ -425,6 +425,7 @@ OBVIOUS_PRIVATE_COPY( tape )
\ingroup Base_Tools_IO
*/ // ---
class MATH_CLASS reader : public virtual tape {
std::set<TapeBase *> m_registeredDelete;
public:
typedef std::unique_ptr<reader> reader_ptr;
protected:
@@ -437,7 +438,7 @@ protected:
reader( iobuf_Seq & buf, uint16 om );
public:
virtual ~reader() {}
virtual ~reader();
public:
/// \ru Создать читатель для последовательного буфера. \en Create reader for iobuf_Seq.
@@ -476,6 +477,9 @@ public:
virtual bool IsFullRead() { return true; } // not supported
virtual void SetFullRead( bool ) {} // not supported
/// \ru Временно сохранить зарегистрированный объект, который будет удален после завершения чтения. \en Temporarily preserve registered object to be deleted after reading complete.
virtual void PreserveRegisteredObj( TapeBase * );
/// \ru Получить ошибки чтения. \en Get reading errors.
virtual uint32 GetLastError();
+1 -1
View File
@@ -288,7 +288,7 @@ MATH_FUNC (MbResultType) GetVestiges ( const MbPlacement3D & place,
\en Parameters for the construction of one view projection.\n \~
\ingroup Mapping
*/
struct MbMapSettings {
struct MATH_CLASS MbMapSettings {
typedef std::vector<MbLumpCube> LumpCubes;
public:
/// \ru Проекционная плоскость. \en A projection plane.
+2 -2
View File
@@ -55,8 +55,8 @@ class MATH_CLASS MbMapBodiesPArray {
private:
RPArray<MbMapBody> mapBodies; ///< \ru Множество проекций тел \en A set of solids projections
SArray<size_t> originIndices; ///< \ru Индексы оригинальных тел в mapBodies. \en indices of original body in mapBodies.
///< \ru Все тела в mapBodies сгруппированы так ОsssОssОООssОsО, O - оригинальное тело, s - тело полученное сдвигом.
///< \en All bodies in mapBodies was grouped like ОsssОssОООssОsО? O- original body, s - body was shifted.
///< \ru Все тела в mapBodies сгруппированы так OsssOssOOOssOsO, O - оригинальное тело, s - тело полученное сдвигом.
///< \en All bodies in mapBodies was grouped like OsssOssOOOssOsO? O- original body, s - body was shifted.
public:
/// \ru Конструктор объекта с пустым набором тел. \en Constructor of an object with an empty set of solids.
MbMapBodiesPArray() : mapBodies( 0, 1 ), originIndices( 0, 1 ) {}
+1 -1
View File
@@ -33,7 +33,7 @@
\ingroup Mapping
*/
// ---
struct MbMapVisibilityMode {
struct MATH_CLASS MbMapVisibilityMode {
protected:
bool invisible; ///< \ru Добавлять проекции невидимых линий и точек. \en Add vestiges of invisible curves and points.
bool skipVertices; ///< \ru Не добавлять проекции вершин тела. \en Skip vestiges of vertices.
+1 -1
View File
@@ -1,7 +1,7 @@
////////////////////////////////////////////////////////////////////////////////
/**
\file
\brief \ru Cледы трехмерных объектов.
\brief \ru Следы трехмерных объектов.
\en Vestiges of three-dimensional objects. \~
*/
+2 -2
View File
@@ -110,9 +110,9 @@ bool IsNullPointer( const ItemPtr * itemPtr ) {
}
//------------------------------------------------------------------------------
/** \brief \ru Cортировка массива с удалением дубликатов.
/** \brief \ru Сортировка массива с удалением дубликатов.
\en Sorting an array with removing duplicates. \~
\details \ru Cортировка массива с удалением дубликатов. \n
\details \ru Сортировка массива с удалением дубликатов. \n
\en Sorting an array with removing duplicates. \n \~
\ingroup Base_Tools
*/
+15 -13
View File
@@ -205,7 +205,7 @@
\~ \ingroup Build_Parameters
*/
/**
\ru \defgroup Сurve_Building_Parameters Параметры построения кривых
\ru \defgroup Curve_Building_Parameters Параметры построения кривых
\en \defgroup Curve_Building_Parameters Curve Building Parameters
\~ \ingroup Build_Parameters
*/
@@ -330,21 +330,23 @@
\en \defgroup Base_Tools_IO Work with Streams
\~ \ingroup Base_Tools
*/
/**
\ru \defgroup Base_GraphLib Библиотека графов
\en \defgroup Base_GraphLib Graph Library
\~ \ingroup Base_Tools
*/
//-----------------------------------------------------------------------------
//
// \ru Подгруппа Geometric_Constraints - Модуль геометрических ограничений \en The Geometric Constraints Module \~
//
// \ru Подгруппа Geometric_Constraints - Модуль геометрических ограничений. \en The Geometric Constraints Module. \~
//-----------------------------------------------------------------------------
/**
\ru \defgroup Mating Геометрические ограничения трёхмерных объектов
\en \defgroup Mating Geometric Constraint Solver in Three-Dimensional Space
\ru \defgroup Solver_3D Геометрические ограничения трёхмерных объектов
\en \defgroup Solver_3D Geometric Constraint Solver in Three-Dimensional Space
\~ \ingroup Geometric_Constraints
*/
/**
\ru \defgroup MathGC Геометрические ограничения двумерных объектов
\en \defgroup MathGC Geometric Constraint Solver in Two-Dimensional Space
\ru \defgroup Solver_2D Геометрические ограничения двумерных объектов
\en \defgroup Solver_2D Geometric Constraint Solver in Two-Dimensional Space
\~ \ingroup Geometric_Constraints
*/
@@ -354,17 +356,17 @@
/**
\ru \defgroup GCM_3D_API Базовые функции и типы данных
\en \defgroup GCM_3D_API Basic functions and data types
\~ \ingroup Mating
\~ \ingroup Solver_3D
*/
/**
\ru \defgroup GCM_3D_ObjectAPI Объектный интерфейс
\en \defgroup GCM_3D_ObjectAPI Object-oriented interface
\~ \ingroup Mating
\~ \ingroup Solver_3D
*/
/**
\ru \defgroup GCM_3D_Routines Вспомогательные процедуры
\en \defgroup GCM_3D_Routines Auxiliary routines
\~ \ingroup Mating
\~ \ingroup Solver_3D
*/
//-----------------------------------------------------------------------------
@@ -373,7 +375,7 @@
/**
\ru \defgroup Constraints2D_API Интерфейс
\en \defgroup Constraints2D_API Solver Interface
\~ \ingroup MathGC
\~ \ingroup Solver_2D
*/
//-----------------------------------------------------------------------------------
+5 -5
View File
@@ -264,11 +264,11 @@ public :
/// \ru Проверить на больше. \en Check for "greater".
bool operator > ( const MbCartPoint & ) const;
/// \ru Cложить две точки. \en Sum two points.
/// \ru Сложить две точки. \en Sum two points.
MbVector operator + ( const MbCartPoint & pnt ) const;
/// \ru Вычесть из точки точку. \en Subtract a point from the point.
MbVector operator - ( const MbCartPoint & pnt ) const;
/// \ru Cложить точку с вектором. \en Add a point to a vector.
/// \ru Сложить точку с вектором. \en Add a point to a vector.
MbCartPoint operator + ( const MbDirection & d ) const;
/// \ru Вычесть вектор из точки. \en Subtract a vector from a point.
MbCartPoint operator - ( const MbDirection & d ) const;
@@ -282,7 +282,7 @@ public :
/// \ru Вычислить точку как копию данной точки, преобразованную матрицей. \en Calculate the point as this copy transformed by the matrix.
MbCartPoint operator * ( const MbMatrix & ) const;
/// \ru Cложить две точки. \en Sum two points.
/// \ru Сложить две точки. \en Sum two points.
void operator += ( const MbCartPoint & pnt );
/// \ru Вычесть из точки точку. \en Subtract a point from the point.
void operator -= ( const MbCartPoint & pnt );
@@ -292,12 +292,12 @@ public :
void operator /= ( double factor );
// \ru Тела функций находится в файле "vector.h" \en Implementations of functions are located in the "vector.h" file
/// \ru Cложить точку с вектором. \en Add a point to a vector.
/// \ru Сложить точку с вектором. \en Add a point to a vector.
void operator += ( MbVector & v );
/// \ru Вычесть вектор из точки. \en Subtract a vector from a point.
void operator -= ( MbVector & v );
/// \ru Cложить точку с вектором. \en Add a point to a vector.
/// \ru Сложить точку с вектором. \en Add a point to a vector.
MbCartPoint operator + ( const MbVector & vector ) const;
/// \ru Вычесть вектор из точки. \en Subtract a vector from a point.
MbCartPoint operator - ( const MbVector & vector ) const;
+60 -2
View File
@@ -37,6 +37,9 @@ public:
/// \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;
/// \ru Вернуть флаг объекта из габаритного куба. \en Return the flag of a tree object from bounding box.
virtual bool IsAllowed( size_t /*iElem*/ ) const { return true; }
};
@@ -44,7 +47,7 @@ public:
/** \brief \ru Дерево объектов с габаритными кубами.
\en Tree of objects with bounding boxes. \~
\details \ru Дерево объектов с габаритными кубами.\n
Oбъекты дерева должны иметь функции "const Cube & Type::GetCube() const", "double Type::DistanceToCube( const Cube & cube, double eps )".
Объекты дерева должны иметь функции "const Cube & Type::GetCube() const", "double Type::DistanceToCube( const Cube & cube, double eps )".
\en Tree of objects with bounding boxes.\n
Tree objects must have functions : "const Cube & Type::GetCube() const", "double Type::DistanceToCube( const Cube & cube, double eps )". \~
\ingroup Base_Items
@@ -277,6 +280,8 @@ public:
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;
/// \ru Выдать набор индексов объектов дерева, которые хотя бы частично лежат внутри заданной сферы. \en Get an array of tree object indices at least partially lying inside a given sphere.
void FindObjectsInsideSphere( const Point & pnt, double radius, const MbTreeDistanceToElementBase<Point> & calc, c3d::IndicesVector & indices ) const;
private:
// функции инициализация и заполнение ветвей дерева / internal functions for initialization, filling branches
@@ -1775,7 +1780,7 @@ double MbCubeTree<Type, Cube, Point, Vector>::FindNearestObject( const Point &
index = SYS_MAX_T;
std::priority_queue< NodeElem<TypeTree> > queue;
queue.push( NodeElem<TypeTree>(this, 0.) );
queue.push( NodeElem<TypeTree>( this, 0. ) );
while ( !queue.empty() ) {
const NodeElem<TypeTree> node = queue.top(); // Первым рассматриваем узлы, наиболее близкие к точке.
queue.pop();
@@ -1821,4 +1826,57 @@ double MbCubeTree<Type, Cube, Point, Vector>::FindNearestObject( const Point &
return dist2;
}
//-------------------------------------------------------------------------------
// \ru Выдать набор индексов объектов дерева, которые хотя бы частично лежат внутри заданной сферы. \en Get an array of tree object indices at least partially lying inside a given sphere.
// ---
template <class Type, class Cube, class Point, class Vector>
void MbCubeTree<Type, Cube, Point, Vector>::FindObjectsInsideSphere( const Point & pnt, double radius, const MbTreeDistanceToElementBase<Point> & calc, c3d::IndicesVector & indices ) const
{
const double dist2( radius * radius );
indices.clear();
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.DistanceToPoint2( pnt );
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.DistanceToPoint2( pnt );
if ( d2 < dist2 )
queue.push( NodeElem<TypeTree>( node._ptr->lowerBranch, d2 ) );
}
if ( node._ptr->upperBranch != nullptr ) {
d2 = node._ptr->upperBranch->branchCube.DistanceToPoint2( pnt );
if ( d2 < dist2 )
queue.push( NodeElem<TypeTree>( node._ptr->upperBranch, d2 ) );
}
if ( node._ptr->midstBranch != nullptr ) {
d2 = node._ptr->midstBranch->branchCube.DistanceToPoint2( pnt );
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 = obj.first->DistanceToPoint2( pnt );
if ( d2 < dist2 ) {
d2 = calc.DistanceToElement2( pnt, obj.second );
if ( d2 < dist2 )
indices.push_back( obj.second );
}
}
}
}
}
#endif
+3 -3
View File
@@ -237,11 +237,11 @@ public:
void SetExact( bool e ) { exact = e; }
/// \ru Установить флаг построения изолиний поверхностей. \en Set flag construction isolines of surfaces. \~
void SetWire( bool w ) { wire = w; }
/// \ru Установить флаг cтроить триангуляцию поверхностей. \en Set flag constructing triangulations of surfaces. \~
/// \ru Установить флаг строить триангуляцию поверхностей. \en Set flag constructing triangulations of surfaces. \~
void SetGrid( bool g ) { grid = g; }
/// \ru Установить флаг шовных ребер. \en Set flag for seam edges. \~
void SetSeam( bool s ) { seam = s; }
/// \ru Установить флаг cтроить четырёхугольники при триангуляции поверхностей (по возможности).. \en Set flag for build quadrangles in triangulations of surfaces (if possible). \~
/// \ru Установить флаг строить четырёхугольники при триангуляции поверхностей (по возможности).. \en Set flag for build quadrangles in triangulations of surfaces (if possible). \~
void SetQuad( bool q ) { quad = q; }
/// \ru Установить флаг удаления вырожденных треугольников. \en Set flag degenerate triangles removing. \~
void SetFair( bool f ) { fair = f; }
@@ -252,7 +252,7 @@ public:
bool DoExact() const { return exact; }
/// \ru Дать флаг построения изолиний поверхностей. \en Whether to construct isolines of surfaces? \~
bool Wire() const { return wire;}
/// \ru Cтроить триангуляцию поверхностей? \en Whether to construct triangulations of surfaces? \~
/// \ru Строить триангуляцию поверхностей? \en Whether to construct triangulations of surfaces? \~
bool Grid() const { return grid; }
/// \ru Дублировать точки триангуляции на швах? \en Get flag for seam edges. \~
bool Seam() const { return seam; }
+4 -4
View File
@@ -21,7 +21,7 @@
Наиболее востребованы двумерная и трехмерная точности.
Компоненты точности в этих случаях соответствуют точностям вдоль осей x, y и z.
Двумерная точность может использоваться, например, при выполнении операций над
двумерными кривыми MbCurve. В этом случае компоненты точности будут расcчитываться
двумерными кривыми MbCurve. В этом случае компоненты точности будут рассчитываться
с использованием методов GetUEpsilon() и GetVEpsilon(), вызванных для
поверхности (MbSurface) на которой лежит данная кривая.
\en N-dimensional accuracy is specified by N positive numbers.
@@ -52,7 +52,7 @@ public :
public :
/** \brief \ru Конструктор для двумерной точности по двум значениям.
\en Сonstructor for two-dimensional accuracy on the three values. \~
\en Constructor for two-dimensional accuracy on the three values. \~
\details \ru Конструктор для двумерной точности по двум значениям.
Если передаваемые компоненты точности меньше, чем 'DOUBLE_EPSILON',
то этим значениям присваивается 'DOUBLE_EPSILON'.
@@ -67,7 +67,7 @@ public :
MbDimAccuracy( double xEps, double yEps );
/** \brief \ru Конструктор для трехмерной точности по трем значениям.
\en Сonstructor for two-dimensional accuracy on the three values. \~
\en Constructor for two-dimensional accuracy on the three values. \~
\details \ru Конструктор для трехмерной точности по трем значениям.
Если передаваемые компоненты точности меньше, чем 'DOUBLE_EPSILON',
то этим значениям присваивается 'DOUBLE_EPSILON'.
@@ -116,7 +116,7 @@ public: // Общие методы
/// \ru Длина вектора, построенного на компонентах точности. \en Length of the vector built on accuracy components.
double GetLength() const;
/// \ru Доступ к компонентe точности по индексу. \en Access to accuracy component by index.
/// \ru Доступ к компоненте точности по индексу. \en Access to accuracy component by index.
double & operator [] ( size_t i );
/// \ru Значение компоненты точности по индексу. \en The value of accuracy component by index.
double operator [] ( size_t i ) const;
+1 -1
View File
@@ -251,7 +251,7 @@ public:
MbCartPoint3D GetCirclePoint() const { return circle; }
void SetCirclePoint( const MbCartPoint3D & val ) { circle = val; }
/// \ru Получить vестная система координат размера. \en Get local coordinate system of the dimension.
/// \ru Получить местная система координат размера. \en Get local coordinate system of the dimension.
MbPlacement3D GetPlacement() const { return placement; }
void SetPlacement( const MbPlacement3D & val ) { placement = val; }
+13
View File
@@ -661,6 +661,19 @@ enum MbeProgBarId_PointsSurface
};
//------------------------------------------------------------------------------
/** \brief \ru Идентификаторы сообщений индикатора прогресса выполнения различных алгоритмов для сеток.
\en Identifiers of the execution progress indicator messages different algorithms for meshes. \~
\ingroup Data_Structures
*/
//---
enum MbeProgBarId_Mesh
{
pBar_SimplifyMesh_byTrianglesCount = pbarId_PointsSurface_End + 1, ///< \ru Упрощение триангуляции по числу треугольников. \en Simplifying triangulation by number of triangles.
pBar_SimplifyMesh_byTolerance ///< \ru Упрощение триангуляции по точности. \en Simplifying triangulation by tolerance.
};
//------------------------------------------------------------------------------
/** \brief \ru Управление построением гладких кривых на базе трехмерной ломаной. Коэффициент уплотнения кривой.
\en Construction of smooth curves based on a three-dimensional polyline. Curve subdivision coefficient. \~
+2 -2
View File
@@ -40,7 +40,7 @@ enum MbResultType {
rt_AxisIntersection, ///< \ru Пересечение с осью. \en Intersection with axis.
rt_DegenerateAxis, ///< \ru Вырожденная ось. \en Degenerate axis.
// \ru Tипы ошибок тела \en Solid error types
// \ru Типы ошибок тела \en Solid error types
rt_MultiSolid, ///< \ru Тело состоит из отдельных частей. \en Solid consists of separate parts.
rt_CurveError, ///< \ru Ошибочная кривая. \en Wrong curve.
rt_ContourError, ///< \ru Ошибочный контур. \en Wrong contour.
@@ -207,7 +207,7 @@ enum MbResultType {
rt_ClosedSpline, ///< 27 \ru Замкнутый сплайн во внешнем файле. \en Closed spline in an external file.
rt_ObjectNotSelected, ///< 28 \ru Не выбран нужный объект. \en Object is not selected.
rt_SharpChangeCurvature, ///< 29 \ru Резкое изменение кривизны на участке перегиба \en A sharp change in curvature at the inflection site.
rt_CloseToStraightness, ///< 30 \ru Близость к прямолинейности. \en Сlose to straightness.
rt_CloseToStraightness, ///< 30 \ru Близость к прямолинейности. \en Close to straightness.
rt_TooFewStartPoints, ///< 31 \ru Слишком мало точек на выпуклом участке начального участка. \en Too few points on convex start site of curve.
rt_BanClosedConfiguration, ///< 32 \ru Запрет на замкнутую конфигурацию при количестве точек < 5. \en A ban on a closed configuration when the number of points < 5.
rt_IncorrectDeterminant, ///< 33 \ru Некорректная структура исходного геометрического определителя. \en Incorrect structure of the initial geometric determinant.
+2 -2
View File
@@ -85,7 +85,7 @@ public:
bool IsSame( const MbPntMatingData<Vector> &, double accuracy ) const;
/// \ru Сделать первичную проверку корректности параметров. \en Initial check of parameters correctness.
bool IsValid() const;
/// \ru Уcтановить параметры сопряжения. \en Set conjugation parameters.
/// \ru Установить параметры сопряжения. \en Set conjugation parameters.
void SetVector( ptrdiff_t i, const Vector & vect );
/// \ru Нормализовать касательную в случае стыковки. \en Normalize tangent in case of connection.
void NormalizeAttachTangent();
@@ -333,7 +333,7 @@ size_t MbPntMatingData<Vector>::GetSmoothDegree() const
//------------------------------------------------------------------------------
// \ru Уcтановка параметров сопряжения. \en set conjugation parameters
// \ru Установка параметров сопряжения. \en set conjugation parameters
//---
template <class Vector>
void MbPntMatingData<Vector>::SetVector( ptrdiff_t i, const Vector & vect )
+1 -1
View File
@@ -1011,7 +1011,7 @@ public:
//------------------------------------------------------------------------------
/** \brief \ru Cвойство объекта без изменения состояния (read only).
/** \brief \ru Свойство объекта без изменения состояния (read only).
\en Read-only reference item property without setter. \~
\details \ru Обертка, реализующая свойство объекта со счетчиком ссылок.\n
\en Wrapper that implements read-only property of a ref count object.\n \~
+5 -5
View File
@@ -96,10 +96,10 @@ enum MbePrompt
// \ru Типы функций \en Types of functions
IDS_ITEM_0111, ///< \ru Kонстантная функция. \en Constant Function.
IDS_ITEM_0111, ///< \ru Константная функция. \en Constant Function.
IDS_ITEM_0112, ///< \ru Линейная функция. \en Linear Function.
IDS_ITEM_0113, ///< \ru Kубическая функция. \en Cubic Function.
IDS_ITEM_0114, ///< \ru Kубическай сплайн-функция. \en Cubic spline Function.
IDS_ITEM_0113, ///< \ru Кубическая функция. \en Cubic Function.
IDS_ITEM_0114, ///< \ru Кубическай сплайн-функция. \en Cubic spline Function.
IDS_ITEM_0115, ///< \ru Символьная функция. \en Symbolic Function.
IDS_ITEM_0116, ///< \ru Степенная функция. \en Power Function.
IDS_ITEM_0117, ///< \ru Синус функция. \en Sinus Function.
@@ -122,7 +122,7 @@ enum MbePrompt
IDS_ITEM_0217, ///< \ru Усеченная кривая. \en Truncated Curve.
IDS_ITEM_0218, ///< \ru Эквидистантная кривая. \en Offset Curve.
IDS_ITEM_0219, ///< \ru Коническая спираль. \en Conical Spiral.
IDS_ITEM_0220, ///< \ru Oкружность. \en Circle.
IDS_ITEM_0220, ///< \ru Окружность. \en Circle.
IDS_ITEM_0221, ///< \ru Эллипс. \en Ellipse.
IDS_ITEM_0222, ///< \ru Парабола. \en Parabola.
IDS_ITEM_0223, ///< \ru Гипербола. \en Hyperbola.
@@ -272,7 +272,7 @@ enum MbePrompt
IDS_ITEM_0530, ///< \ru Оболочка переменного сечения. \en The Swept Mutable Section Shell.
IDS_ITEM_0531, ///< \ru Булево объединение тел. \en Boolean Union of Solids.
IDS_ITEM_0532, ///< \ru Булево пересечение тел. \en Boolean Intersection of Solids.
IDS_ITEM_0533, ///< \ru Булевa разность тел. \en Boolean Subtraction of Solids.
IDS_ITEM_0533, ///< \ru Булева разность тел. \en Boolean Subtraction of Solids.
IDS_ITEM_0534, ///< \ru Разрезанное тело. \en Cut Solid.
IDS_ITEM_0535, ///< \ru Фаски ребер. \en Edges Chamfers.
IDS_ITEM_0536, ///< \ru Скругление ребер. \en Edges Fillets.
+2 -2
View File
@@ -274,9 +274,9 @@ public:
/// \ru Включить в себя интервал от Y - dy до Y + dy. \en Enclose a range from Y - dy to Y + dy.
void IncludeYInterval( double y, double dy );
// \ru Сдвинуть прямоугольник \en Move rectangle
/// \ru Cдвинуть прямоугольник. \en Move rectangle.
/// \ru Сдвинуть прямоугольник. \en Move rectangle.
void Move( const MbVector & to );
/// \ru Cдвинуть прямоугольник. \en Move rectangle.
/// \ru Сдвинуть прямоугольник. \en Move rectangle.
void Move( double dx, double dy );
/// \ru Масштабировать относительно 0. \en Scale relative to 0.
void Scale( double scale );
+1 -1
View File
@@ -97,7 +97,7 @@ public:
/// \ru Проверить принадлежность границе первого параметра с точностью, заданной вторым. \en Check if first parameter belongs to bound with tolerance given by second parameter.
bool IsBound ( double, double ) const;
/// \ru Cдвинуть куб. \en Move box.
/// \ru Сдвинуть куб. \en Move box.
void Move ( double );
/// \ru Проверить два куба на равенство с заданной точностью. \en Check equality of two boxes with given tolerance.
bool IsEqual ( const MbRect1D &, double eps ) const;
+1 -1
View File
@@ -190,7 +190,7 @@ public:
bool IsBound ( const MbCartPoint3D &, double ) const;
/// \ru Принадлежит ли границе первый параметр с точностью заданной вторым. \en Check if value given by the first parameter belongs to bound with tolerance given by the second parameter.
bool IsBound ( const MbVector3D &, double ) const;
/// \ru Cдвинуть куб. \en Move box.
/// \ru Сдвинуть куб. \en Move box.
void Move ( const MbVector & );
/// \ru Выдать вершину габаритного прямоугольника по индексу от 0 до 3. \en Get vertex of bounding rectangle by index in range from 0 to 3.
void GetVertex( size_t index, MbCartPoint & p ) const;
+8 -3
View File
@@ -177,16 +177,18 @@ private:
c3d::DoubleVector _approxParams; ///< \ru Параметры точек полилинии. \en Points parameters.
std::vector<MbApproxWeightConstraint<Vector>> _approxWeights; ///< \ru Веса точек полилинии. \en Points weights.
const Nurbs * _pReference; ///< \ru Кривая для сравнения с результатом аппроксимации. \en Curve for result comparing.
VERSION _version; ///< \ru Версия операции. \en The operation version.
public:
/// \ru Конструктор по умолчанию. \en Default constructor.
MbApproxNurbsParameters()
MbApproxNurbsParameters( VERSION version = Math::DefaultMathVersion() )
: _order ( c3d::NURBS_DEGREE )
, _methodSmoothing( sm_CurvatureVariance )
, _coefSmoothing ( -1. )
, _tolerance ( c3d::DELTA_MIN )
, _bClosed ( false )
, _pReference ( nullptr )
, _version ( version )
{}
/// \ru Конструктор копирования. \en The copy constructor.
@@ -208,6 +210,7 @@ public:
_approxParams = other._approxParams;
_approxWeights = other._approxWeights;
_pReference = other._pReference;
_version = other._version;
}
/** \brief \ru Инициализировать по точкам, создать равномерный узловой вектор.
@@ -381,7 +384,7 @@ public:
\en Initialize by points with end constraints. \~
\details \ru Инициализировать по точкам.
Узловой вектор и коэффициент сглаживания должны быть подобраны в алгоритме аппроксимации.
Констрейны для внутренних точек и производных отсутствуют. Порядок кривой задаeтся пользователем.
Констрейны для внутренних точек и производных отсутствуют. Порядок кривой задается пользователем.
Кривая будет незамкнута.
\en Initialize by points. Knot vector and smoothing coefficient should be defined in the approximation algorithm.
There are no constraints for inner points and derivatives. The curve will be unclosed. \~
@@ -533,6 +536,8 @@ public:
void SetReferenceCurve( const Nurbs * pCurve ) { _pReference = pCurve; }
/// \ru Установить коэффициент сглаживания. \en Set smoothing coefficient.
void SetSmoothCoefficient( double smooth ) { _coefSmoothing = smooth; }
///< \ru Получить версию математики. \en Get math version.
VERSION GetVersion() const { return _version; }
private:
/** \brief \ru Создать равномерный узловой вектор.
@@ -680,7 +685,7 @@ public:
_ptMaxProj = MbCartPoint3D();
}
/// \ru Получить максимальную ошибку. \en Get мaximal error.
/// \ru Получить максимальную ошибку. \en Get maximal error.
double GetMaxError() const { return _errMax; }
/// \ru Получить среднюю ошибку. \en Get mean error.
double GetMeanError() const { return _errMean; }
+1 -1
View File
@@ -269,7 +269,7 @@ public:
void GetPointsSymbols ( RPArray<MbSymbol> & ) const override;
/** \} */
/** \ru \name Cобственные функции обозначения на базовых точках.
/** \ru \name Собственные функции обозначения на базовых точках.
\en \name Own functions of conventional notation on base points.
\{ */
+4 -4
View File
@@ -521,7 +521,7 @@ float MbFloatPoint3D::DistanceToPoint2( const MbFloatPoint3D & to ) const
//------------------------------------------------------------------------------
// \ru Добавить коoрдинаты точки \en Add coordinates of point
// \ru Добавить координаты точки \en Add coordinates of point
// ---
inline
void MbFloatPoint3D::operator += ( const MbFloatPoint3D & with )
@@ -533,7 +533,7 @@ void MbFloatPoint3D::operator += ( const MbFloatPoint3D & with )
//------------------------------------------------------------------------------
// \ru Вычесть коoрдинаты точки \en Subtract coordinates of point
// \ru Вычесть координаты точки \en Subtract coordinates of point
// ---
inline
void MbFloatPoint3D::operator -= ( const MbFloatPoint3D & with )
@@ -545,7 +545,7 @@ void MbFloatPoint3D::operator -= ( const MbFloatPoint3D & with )
//------------------------------------------------------------------------------
// \ru Добавить коoрдинаты \en Add coordinates
// \ru Добавить координаты \en Add coordinates
// ---
inline
void MbFloatPoint3D::operator += ( const MbFloatVector3D & with )
@@ -557,7 +557,7 @@ void MbFloatPoint3D::operator += ( const MbFloatVector3D & with )
//------------------------------------------------------------------------------
// \ru Вычесть коoрдинаты \en Subtract coordinates
// \ru Вычесть координаты \en Subtract coordinates
// ---
inline
void MbFloatPoint3D::operator -= ( const MbFloatVector3D & with )
+1 -1
View File
@@ -1,7 +1,7 @@
////////////////////////////////////////////////////////////////////////////////
/**
\file
\brief \ru Tриангуляция.
\brief \ru Триангуляция.
\en Triangulation. \~
*/
+5 -5
View File
@@ -1,7 +1,7 @@
////////////////////////////////////////////////////////////////////////////////
/**
\file
\brief \ru Tриангуляция двумерной области.
\brief \ru Триангуляция двумерной области.
\en Triangulation of two-dimensional region. \~
*/
@@ -38,9 +38,9 @@ class MATH_CLASS ProgressBarWrapper;
//------------------------------------------------------------------------------
/** \brief \ru Tреугольник.
/** \brief \ru Треугольник.
\en Triangle. \~
\details \ru Tреугольник определен, как тройка точек, заданных индексами
\details \ru Треугольник определен, как тройка точек, заданных индексами
вершин триангуляции MbPlanarGrid. \n
\en Triangle is defined as triple of points defined by indices
of vertices of MbPlanarGrid triangulation. \n \~
@@ -101,9 +101,9 @@ public :
//------------------------------------------------------------------------------
/** \brief \ru Tриангуляция двумерной области.
/** \brief \ru Триангуляция двумерной области.
\en Triangulation of a two-dimensional region. \~
\details \ru Tриангуляция двумерной области. \n
\details \ru Триангуляция двумерной области. \n
\en Triangulation of a two-dimensional region. \n \~
\ingroup Algorithms_2D
*/
+3 -3
View File
@@ -292,8 +292,8 @@ class MATH_CLASS MbPolygon : public MbRefItem {
private:
SArray<MbFloatPoint> points; ///< \ru Множество точек полигона. \en Array of points of a polygon.
double sag; ///< \ru Стрелка прогиба, с которой рассчитан полигон. \en Sag used for calculation of a polygon.
mutable MbRect rect; ///< \ru Габарит полигона (не записывается в поток и не читаeтся). \en Bounding box of polygon (not read from stream and not written to stream).
mutable double length; ///< \ru Длина полигона (не записывается в поток и не читаeтся). \en Length of a polygon (not read from stream and not written to stream).
mutable MbRect rect; ///< \ru Габарит полигона (не записывается в поток и не читается). \en Bounding box of polygon (not read from stream and not written to stream).
mutable double length; ///< \ru Длина полигона (не записывается в поток и не читается). \en Length of a polygon (not read from stream and not written to stream).
public :
/// \ru Конструктор без параметров. \en Constructor without parameters.
@@ -344,7 +344,7 @@ public:
/// \ru Выдать точку. \en Get point.
const MbFloatPoint & GetPoint( size_t i ) const { return points[i]; }
/// \ru Сдвинyть полигон. \en Move the polygon.
/// \ru Сдвинуть полигон. \en Move the polygon.
void Move ( const MbVector & );
/// \ru Повернуть полигон вокруг точки. \en Rotate a polygon about a point.
void Rotate( const MbCartPoint &, const MbDirection & );
+2 -2
View File
@@ -38,9 +38,9 @@ enum MbeMoveType {
////////////////////////////////////////////////////////////////////////////////
/** \brief \ru Tреугольник.
/** \brief \ru Треугольник.
\en Triangle. \~
\details \ru Tреугольник определен, как тройка точек, заданных индексами
\details \ru Треугольник определен, как тройка точек, заданных индексами
вершин триангуляции MbGrid. \n
\en Triangle is defined as a triple of points defined by indices
of vertices of MbGrid triangulation. \n \~
+4 -4
View File
@@ -147,9 +147,9 @@ MATH_FUNC (void) MassInertiaProperties( const RPArray<const MbCurve> & curves,
//------------------------------------------------------------------------------
/** \brief \ru Oбъемные массо-центровочные характеристки.
/** \brief \ru Объемные массо-центровочные характеристки.
\en Volume mass-inertial properties. \~
\details \ru Oбъемные массо-центровочные характеристки. \n
\details \ru Объемные массо-центровочные характеристки. \n
\en Volume mass-inertial properties. \n \~
\ingroup Inertia_Computation
*/
@@ -223,9 +223,9 @@ inline void MI3DProperties::Init() {
//------------------------------------------------------------------------------
/** \brief \ru Oписание формы контура.
/** \brief \ru Описание формы контура.
\en Contour shape description. \~
\details \ru Oписание формы контура. \n
\details \ru Описание формы контура. \n
\en Contour shape description. \n \~
\ingroup Inertia_Computation
*/
+1 -1
View File
@@ -274,7 +274,7 @@ public:
\return \ru true в случае корректных данных.
\en True if data is correct. \~
*/
bool CalculateCenter();
bool CalculateCenter( bool isCheckData = true );
/** \brief \ru Рассчитать главные центральные моменты инерции.
\en Calculate principal central moments of inertia. \~
+1 -1
View File
@@ -309,7 +309,7 @@ public :
\param[out] items - \ru Множество найденных объектов.
\en Found objects. \~
\param[out] matrs - \ru Матрицы преобразования найденных объектов в глобальную систему координат.
\en Transformation matriсes of found objects to the global coordinate system. \~
\en Transformation matrices of found objects to the global coordinate system. \~
\return \ru Добавлен ли данный объект.
\en Whether to add this object. \~
\ingroup Model_Items
+3 -3
View File
@@ -8,7 +8,7 @@
////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////
// \ru Заголовочный файл мультилинии cодержит следующие разделы. \en Header file of multiline contains the following sections.
// \ru Заголовочный файл мультилинии содержит следующие разделы. \en Header file of multiline contains the following sections.
// \ru _1_ EnMLVertexTracingType - тип обхода углов в вершине мультилинии \en _1_ EnMLVertexTracingType - type of traverse of corners at a vertex of multiline
// \ru _2_ EnMLInnerTipType - тип внутренней законцовки мультилинии \en _2_ EnMLInnerTipType - type of inner tip of multiline
// \ru _3_ EnMLTipType - тип законцовки мультилинии \en _3_ EnMLTipType - type of tip of multiline
@@ -88,9 +88,9 @@ enum EnMLTipType {
//------------------------------------------------------------------------------
// _4_
/** \brief \ru Cтруктура параметров законцовки.
/** \brief \ru Структура параметров законцовки.
\en Tip parameters structure. \~
\details \ru Cтруктура параметров законцовки мультилинии.\n
\details \ru Структура параметров законцовки мультилинии.\n
Изменять данные объекта можно только из MbMultiline.
\en Multiline tip parameters structure.\n
Object data can be changed only from MbMultiline. \~
+10 -1
View File
@@ -596,12 +596,21 @@ struct MATH_CLASS MbIntCurveResults {
public:
SPtr<MbCurve> _curve1; ///< \ru Кривая на первой поверхности. \en The curve on the first surface.
SPtr<MbCurve> _curve2; ///< \ru Кривая на второй поверхности. \en The curve on the second surface.
MbeCurveBuildType _label; ///< \ru Тип полученной кривой пересечения. \en The type of the resulting intersection curve.
SPtr<MbWireFrame> _wireFrame; ///< \ru Каркас с построенными кривыми. \en The frame with the constructed curves.
MbeCurveBuildType _label; ///< \ru Тип полученной кривой пересечения. \en The type of the resulting intersection curve.
/// \ru Конструктор. \en Constructor.
MbIntCurveResults() : _label( cbt_Ordinary ) {}
/** \brief \ru Выдать 2д-кривую из ребра каркаса с заданным номером на заданной поверхности.
\en Get the 2d-curve from the wire frame's edge with the specified number on the given surface.\~
\param[in] surf - \ru Указатель на поверхность, на которой должна лежать кривая.
\en Pointer to the surface on which the curve is located \~
\param[in] edgeIndex - \ru Номер ребра в каркасе, из которого берётся кривая.
\en The number of the edge inside wire frame from which the curve is taken. \~
*/
MbCurve * SetCurve( const MbSurface & surf, size_t edgeIndex = 0 );
/// \ru Обнулить данные. \en Reset the data.
void Reset()
{
+8 -4
View File
@@ -42,18 +42,22 @@ class MATH_CLASS MbMeshSimplificationParams
private:
c3d::DoubleVector _toleranceLevels; ///< \ru Уровни точностей для упрощения. \en Tolerance levels for simplification. \~
c3d::IndicesVector _triangleCountLevels; ///< \ru Уровни количества треугольников для упрощения. \en Triangle count levels for simplification. \~
public:
mutable IProgressIndicator * _progress; ///< \ru Индикатор прогресса выполнения операции. \en A progress indicator of the operation.
public:
/// \ru Конструктор для задания целевй точности. \en Constructor for tolerance target. \~
MbMeshSimplificationParams( const c3d::DoubleVector & toleranceLevels )
MbMeshSimplificationParams( const c3d::DoubleVector & toleranceLevels, IProgressIndicator * prog = nullptr )
: _toleranceLevels( toleranceLevels )
, _triangleCountLevels()
, _progress ( prog )
{}
/// \ru Конструктор для задания целевого количества треугольников. \en Constructor for triangles count target. \~
MbMeshSimplificationParams( const c3d::IndicesVector & triangleCountLevels )
MbMeshSimplificationParams( const c3d::IndicesVector & triangleCountLevels, IProgressIndicator * prog = nullptr )
: _toleranceLevels()
, _triangleCountLevels( triangleCountLevels )
, _progress( prog )
{}
/// \ru Деструктор. \en Destructor. \~
@@ -523,7 +527,7 @@ public:
double GetTolerance() const { return _devMax; }
/// \ru Выдать среднее отклонение. \en Get mean deviation.
double GetMeanDeviation() const { return _devMean; }
/// \ru Выдать cреднее квадратическое отклонение. \en Get root-mean-square deviation.
/// \ru Выдать среднее квадратическое отклонение. \en Get root-mean-square deviation.
double GetRmsd() const { return _rmsd; }
OBVIOUS_PRIVATE_COPY( MbFitResultsBase )
@@ -1216,7 +1220,7 @@ public:
- начальный азимутальный угол phi: угол между проекцией оси объекта в начальной позиции на плоскость OXY и осью OX заданной СК,
должен принадлежать промежутку [0; 2П),
- расстояние dist от оси OZ заданной СК до оси объекта.
Для cферы должно быть зафиксировано расстояние dist от ее центра до оси OZ заданной СК.
Для сферы должно быть зафиксировано расстояние dist от ее центра до оси OZ заданной СК.
При необходимости можно зафиксировать размерные параметры объекта.
Функция сбрасывает выставленные ранее ограничения (например, добавленные с помощью методов "Add*Constraint").
\en Initialize the ZW-constraint.
+26 -26
View File
@@ -1936,7 +1936,7 @@ private:
bool _isPhantom; ///< \ru Создается ли фантомное тело. \en Is phantom shell created.
public:
/// \ru Конструктор по параметрам. \en Сonstructor by parameters.
/// \ru Конструктор по параметрам. \en Constructor by parameters.
MbNurbsSurfacesShellParams( NurbsSurfaceValues & values, const MbSNameMaker & operNames, bool isPhantom )
: MbPrecision( )
, _params ( values )
@@ -3480,8 +3480,8 @@ public:
\en Constructor. \~
\details \ru Конструктор. \n
\en Constructor. \n \~
\param[in] part - \ru Сохраняемая часть исходной оболочки (+1, -1).
\en A part of the source shell to be kept (+1, -1). \~
\param[in] part - \ru Сохраняемая часть исходной оболочки (+1, 0, -1), 0 - оставить обе части.
\en A part of the source shell to be kept (+1, 0, -1), if 0 retain both parts. \~
\param[in] mergingFlags - \ru Флаги слияния элементов оболочки.
\en Control flags of shell items merging. \~
\param[in] cutAsClosed - \ru Построить замкнутую оболочку.
@@ -3514,8 +3514,8 @@ public:
\en Use the source contour (true) or its copy (false). \~
\param[in] dir - \ru Направление выдавливания контура.
\en Extrusion direction of the contour. \~
\param[in] part - \ru Сохраняемая часть исходной оболочки (+1, -1).
\en A part of the source shell to be kept (+1, -1). \~
\param[in] part - \ru Сохраняемая часть исходной оболочки (+1, 0, -1), 0 - оставить обе части.
\en A part of the source shell to be kept (+1, 0, -1), if 0 retain both parts. \~
\param[in] mergingFlags - \ru Флаги слияния элементов оболочки.
\en Control flags of shell items merging. \~
\param[in] cutAsClosed - \ru Построить замкнутую оболочку.
@@ -3549,8 +3549,8 @@ public:
\en Use the source contour (true) or its copy (false). \~
\param[in] dir - \ru Направление выдавливания контура.
\en Extrusion direction of the contour. \~
\param[in] part - \ru Сохраняемая часть исходной оболочки (+1, -1).
\en A part of the source shell to be kept (+1, -1). \~
\param[in] part - \ru Сохраняемая часть исходной оболочки (+1, 0, -1), 0 - оставить обе части.
\en A part of the source shell to be kept (+1, 0, -1), if 0 retain both parts. \~
\param[in] mergingFlags - \ru Флаги слияния элементов оболочки.
\en Control flags of shell items merging. \~
\param[in] cutAsClosed - \ru Построить замкнутую оболочку.
@@ -3579,8 +3579,8 @@ public:
\en Cutting plane. \~
\param[in] sameSurface - \ru Использовать исходную поверхность (true) или её копию (false).
\en Use the source surface (true) or its copy (false). \~
\param[in] part - \ru Сохраняемая часть исходной оболочки (+1, -1).
\en A part of the source shell to be kept (+1, -1). \~
\param[in] part - \ru Сохраняемая часть исходной оболочки (+1, 0, -1), 0 - оставить обе части.
\en A part of the source shell to be kept (+1, 0, -1), if 0 retain both parts. \~
\param[in] mergingFlags - \ru Флаги слияния элементов оболочки.
\en Control flags of shell items merging. \~
\param[in] cutAsClosed - \ru Построить замкнутую оболочку.
@@ -3610,8 +3610,8 @@ public:
\en Cutting plane. \~
\param[in] sameSurface - \ru Использовать исходную поверхность (true) или её копию (false).
\en Use the source surface (true) or its copy (false). \~
\param[in] part - \ru Сохраняемая часть исходной оболочки (+1, -1).
\en A part of the source shell to be kept (+1, -1). \~
\param[in] part - \ru Сохраняемая часть исходной оболочки (+1, 0, -1), 0 - оставить обе части.
\en A part of the source shell to be kept (+1, 0, -1), if 0 retain both parts. \~
\param[in] mergingFlags - \ru Флаги слияния элементов оболочки.
\en Control flags of shell items merging. \~
\param[in] cutAsClosed - \ru Построить замкнутую оболочку.
@@ -3640,8 +3640,8 @@ public:
\en Cutting shell. \~
\param[in] sameSolid - \ru Использовать исходную поверхность (true) или её копию (false).
\en Use the source surface (true) or its copy (false). \~
\param[in] part - \ru Сохраняемая часть исходной оболочки (+1, -1).
\en A part of the source shell to be kept (+1, -1). \~
\param[in] part - \ru Сохраняемая часть исходной оболочки (+1, 0, -1), 0 - оставить обе части.
\en A part of the source shell to be kept (+1, 0, -1), if 0 retain both parts. \~
\param[in] mergingFlags - \ru Флаги слияния элементов оболочки.
\en Control flags of shell items merging. \~
\param[in] cutAsClosed - \ru Построить замкнутую оболочку.
@@ -3688,8 +3688,8 @@ public:
\en Use the source contour (true) or its copy (false). \~
\param[in] dir - \ru Направление выдавливания контура.
\en Extrusion direction of the contour. \~
\param[in] part - \ru Сохраняемая часть исходной оболочки (+1, -1).
\en A part of the source shell to be kept (+1, -1). \~
\param[in] part - \ru Сохраняемая часть исходной оболочки (+1, 0, -1), 0 - оставить обе части.
\en A part of the source shell to be kept (+1, 0, -1), if 0 retain both parts. \~
\param[in] mergingFlags - \ru Флаги слияния элементов оболочки.
\en Control flags of shell items merging. \~
\param[in] cutAsClosed - \ru Построить замкнутую оболочку.
@@ -3742,8 +3742,8 @@ public:
\en Cutting plane. \~
\param[in] sameSurface - \ru Использовать исходную поверхность (true) или её копию (false).
\en Use the source surface (true) or its copy (false). \~
\param[in] part - \ru Сохраняемая часть исходной оболочки (+1, -1).
\en A part of the source shell to be kept (+1, -1). \~
\param[in] part - \ru Сохраняемая часть исходной оболочки (+1, 0, -1), 0 - оставить обе части.
\en A part of the source shell to be kept (+1, 0, -1), if 0 retain both parts. \~
\param[in] mergingFlags - \ru Флаги слияния элементов оболочки.
\en Control flags of shell items merging. \~
\param[in] cutAsClosed - \ru Построить замкнутую оболочку.
@@ -3794,8 +3794,8 @@ public:
\en Cutting shell. \~
\param[in] sameSolid - \ru Использовать исходную поверхность (true) или её копию (false).
\en Use the source surface (true) or its copy (false). \~
\param[in] part - \ru Сохраняемая часть исходной оболочки (+1, -1).
\en A part of the source shell to be kept (+1, -1). \~
\param[in] part - \ru Сохраняемая часть исходной оболочки (+1, 0, -1), 0 - оставить обе части.
\en A part of the source shell to be kept (+1, 0, -1), if 0 retain both parts. \~
\param[in] mergingFlags - \ru Флаги слияния элементов оболочки.
\en Control flags of shell items merging. \~
\param[in] cutAsClosed - \ru Построить замкнутую оболочку.
@@ -4799,7 +4799,7 @@ private:
std::set<const MbFunction *> _constrFuncs; ///< \ru Функции ограничений, наложенных на образующие контуры. \en Functions of constraints imposed on generating contours. \~
std::map<size_t, std::set<const MbSpaceItem *>> _constrObjs; ///< \ru Ассоциативный контейнер: ключ - индекс образующего контура, значение - множество пространственных объектов, используемых в ограничениях, наложенных на соответствующий образующий контур. \en Associative container: key - index of generating contour, value - set of space items used in constraints imposed on the corresponding generating contour. \~
c3d::DoubleVector _spineTValsForReqSections; ///< \ru Значения параметра направляющей кривой, в которых обязательно должны быть построены сечения. \en Spine curve's parameter values in which sections must be constructed. \~
bool _splitAtG1Corners; ///< \ru Разбивать элемент на грани вдоль траектории в местах стыковки сегментов траектории и внешних объектов ограничений (кривых), которые стыкуются с гладкостью G1 и выше. \en Split into faces along spine at points where segments of spine or curves used in constraints join smoothly (G1 and up). \~
bool _splitAtG1Corners; ///< \ru Разбивать элемент на грани вдоль образующей кривой и вдоль траектории в местах стыковки сегментов образующей кривой, траектории и внешних объектов ограничений (кривых), которые стыкуются с гладкостью G1 и выше. \en Split into faces along generating curve and along spine at points where segments of generating curve, spine or curves used in constraints join smoothly (G1 and up). \~
public:
/** \brief \ru Конструктор по параметрам.
@@ -4838,7 +4838,7 @@ public:
/// \ru Добавить значение параметра направляющей кривой, при котором обязательно должно быть построено сечение. \en Add spine curve's parameter value at which section must be constructed. \~
void AddSpineTValForReqSection( const double t );
/// \ru Установить флаг разбиения элемента на грани вдоль траектории в местах стыковки сегментов траектории и внешних объектов ограничений (кривых), которые стыкуются с гладкостью G1 и выше. \en Set the flag of splitting into faces along spine at points where segments of spine or curves used in constraints join smoothly (G1 and up). \~
/// \ru Установить флаг разбиения элемента на грани вдоль образующей кривой и вдоль траектории в местах стыковки сегментов образующей кривой, траектории и внешних объектов ограничений (кривых), которые стыкуются с гладкостью G1 и выше. \en Set the flag of splitting into faces along generating curve and along spine at points where segments of generating curve, spine or curves used in constraints join smoothly (G1 and up). \~
void SetSplittingAtSmoothCorners( const bool split );
/// \ru Получить интерфейс для получения сечений в кинематической операции с динамической параметризацией сечения. \en Get an interface for obtaining sections for sweeping operation with variable section. \~
@@ -4853,7 +4853,7 @@ public:
/// \ru Получить значения параметра направляющей кривой, в которых обязательно должны быть построены сечения. \en Get spine curve's parameter values at which sections must be constructed. \~
const c3d::DoubleVector & GetSpineTValsForReqSections() const;
/// \ru Получить флаг разбиения элемента на грани вдоль траектории в местах стыковки сегментов траектории и внешних объектов ограничений (кривых), которые стыкуются с гладкостью G1 и выше. \en Get the flag of splitting into faces along spine at points where segments of spine or curves used in constraints join smoothly (G1 and up). \~
/// \ru Получить флаг разбиения элемента на грани вдоль образующей кривой и вдоль траектории в местах стыковки сегментов образующей кривой, траектории и внешних объектов ограничений (кривых), которые стыкуются с гладкостью G1 и выше. \en Set the flag of splitting into faces along generating curve and along spine at points where segments of generating curve, spine or curves used in constraints join smoothly (G1 and up). \~
bool GetSplittingAtSmoothCorners() const;
OBVIOUS_PRIVATE_COPY( VariableSectionValues )
@@ -5884,7 +5884,7 @@ public:
/// \ru Получить исходную поверхность. \en Get the initial surface.
const SPtr<const MbElementarySurface> & GetInitSurface() const { return _initSurface; }
/// \ru Получить смeщение. \en Get offset.
/// \ru Получить смещение. \en Get offset.
const double GetOffsetValue() const { return _offset; }
/// \ru Получить признак инвертировонности тела. \en Get sign of an inverted body.
@@ -6311,9 +6311,9 @@ public:
/// \ru Установить функцию радиуса скругления для набора граней. \en Set the function of fillet radius for the face set.
void SetFunction2( MbFunction & f ) { _faceSet2.SetFunction( f ); }
/// \ru Получить cпособы передачи данных при копировании оболочек. \en Get methods of transferring data while copying shells. \~
/// \ru Получить способы передачи данных при копировании оболочек. \en Get methods of transferring data while copying shells. \~
MbeCopyMode GetCopyMode() const { return _copyMode; }
/// \ru Установить cпособы передачи данных при копировании оболочек. \en Set methods of transferring data while copying shells. \~
/// \ru Установить способы передачи данных при копировании оболочек. \en Set methods of transferring data while copying shells. \~
void SetCopyMode( MbeCopyMode m ) { _copyMode = m; }
/// \ru Выдать форму поверхности сопряжения (скругления или фаски). \en Get a blend surface cross-section form (fillet or chamfer). \~
MbeSmoothForm GetSubForm() const { return _sform; }
@@ -6919,7 +6919,7 @@ public:
const MbSNameMaker & GetNameMaker() const { return _operNames; }
/// \ru Получить систему координат плоскости симметрии. \en Get the symmetry plane coordinate system. \~
const MbPlacement3D & GetPlace() const { return _place; }
/// \ru Получить cохраняемую часть исходной оболочки (+1, 0, -1). \en Get a part of the source shell to be kept (+1, 0, -1). \~
/// \ru Получить сохраняемую часть исходной оболочки (+1, 0, -1). \en Get a part of the source shell to be kept (+1, 0, -1). \~
ThreeStates GetSide() const { return _side; }
/// \ru Оператор копирования. \en Copy operator. \~
void operator = ( const MbSymmetrySolidParams & other );
+4 -4
View File
@@ -454,9 +454,9 @@ KNOWN_OBJECTS_RW_REF_OPERATORS( MbSweptData ) // \ru Для работы со с
//------------------------------------------------------------------------------
/** \brief \ru Cпособ выдавливания/вращения.
/** \brief \ru Способ выдавливания/вращения.
\en Method of extrusion/rotation. \~
\details \ru Cпособ построения выдавливания/вращения. \n
\details \ru Способ построения выдавливания/вращения. \n
\en Method of extrusion/rotation constructing. \n \~
\ingroup Shell_Building_Parameters
*/
@@ -2224,9 +2224,9 @@ public:
MbCurve3D * SetApexCurve() { return apexCurve.get(); }
/// \ru Выдать кривую вершин. \en Get apex curve.
const MbCurve3D * GetApexCurve() const { return apexCurve.get(); }
/// \ru Получить cпособы передачи данных при копировании оболочек. \en Get methods of transferring data while copying shells. \~
/// \ru Получить способы передачи данных при копировании оболочек. \en Get methods of transferring data while copying shells. \~
MbeCopyMode GetCopyMode() const { return copyMode; }
/// \ru Установить cпособы передачи данных при копировании оболочек. \en Set methods of transferring data while copying shells. \~
/// \ru Установить способы передачи данных при копировании оболочек. \en Set methods of transferring data while copying shells. \~
void SetCopyMode( MbeCopyMode m ) { copyMode = m; }
/// \ru Выдать данные управления сечением. \en Get section control data.

Some files were not shown because too many files have changed in this diff Show More