Extern :
- C3d aggiornamento delle librerie ( 117945).
This commit is contained in:
@@ -873,9 +873,9 @@ public:
|
||||
/// \ru Получить общий вектора поиска. \en Get general search direction.
|
||||
bool GetProjectionDirection( MbVector3D & dir, MbeSenseValue & orient ) const
|
||||
{
|
||||
orient = projOrient; // KOMPAS-60343, KOMPAS-60407.
|
||||
if ( projDirection.Length() > LENGTH_EPSILON ) {
|
||||
dir = projDirection;
|
||||
orient = projOrient;
|
||||
return true;
|
||||
}
|
||||
return false;
|
||||
|
||||
@@ -542,12 +542,19 @@ bool CheckInexactEdges( const EdgesVector & allEdges, double mAcc, EdgesVector *
|
||||
if ( &v1 == &v2 ) {
|
||||
double mTol = v1.GetTolerance();
|
||||
double mLen = allEdges[i]->GetLengthEvaluation();
|
||||
if ( mLen > METRIC_PRECISION && mLen > mTol + METRIC_PRECISION ) {
|
||||
isInexactEdge = true;
|
||||
if ( inexactEdges != nullptr )
|
||||
inexactEdges->push_back( allEdges[i] );
|
||||
else
|
||||
break;
|
||||
if ( mLen > METRIC_PRECISION && mLen > mTol + mAcc ) {
|
||||
MbCartPoint3D p1, p2;
|
||||
allEdges[i]->Point( 0.0, p1 );
|
||||
allEdges[i]->Point( 1.0, p2 );
|
||||
double mMinAcc = std_min( mAcc, mTol );
|
||||
|
||||
if ( !c3d::EqualPoints( p1, p2, mMinAcc ) ) { // SD#7353885
|
||||
isInexactEdge = true;
|
||||
if ( inexactEdges != nullptr )
|
||||
inexactEdges->push_back( allEdges[i] );
|
||||
else
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -430,6 +430,21 @@ public:
|
||||
virtual ~IConvertor3D() {}
|
||||
|
||||
public:
|
||||
/** \brief \ru Установить обработчик для выбора конфигураций.
|
||||
\en Set handler for selecting configurations. \~
|
||||
\details \ru Если обработчик установлен и в импортируемом файле
|
||||
есть более одной конфигурации (исполнения), то в
|
||||
процессе чтения будет вызван установленный обработчик
|
||||
для выбора необходимой конфигурации.
|
||||
\en If handler is set and imported file contains more than
|
||||
one configuration (embodiment), then the handler will
|
||||
be called for selection of needed configuration during
|
||||
reading. \~
|
||||
\param[in] configuration_selector - \ru Указатель на устанавливаемый обработчик.
|
||||
\en Pointer to handler to be set. \~
|
||||
*/
|
||||
virtual void SetConfgiurationSelector( SPtr<IConfigurationSelector> configuration_selector ) = 0;
|
||||
|
||||
/** \brief \ru Прочитать файл формата SAT.
|
||||
\en Read a file of SAT format. \~
|
||||
\details \ru Прочитать файл формата SAT или указанный поток.
|
||||
|
||||
@@ -28,6 +28,8 @@
|
||||
class IConfigurationSelector : public MbRefItem
|
||||
{
|
||||
public:
|
||||
IConfigurationSelector() = default;
|
||||
virtual ~IConfigurationSelector() = default;
|
||||
virtual void AddConfiguration ( const c3d::string_t& configurationName ) = 0;
|
||||
virtual void SetActiveConfiguration ( const size_t index ) = 0;
|
||||
virtual size_t GetConfiguration () const = 0;
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
/**
|
||||
\file
|
||||
\brief Преобразователь сетки к форме, сохраняющей связи граней и полигонов.
|
||||
@@ -17,6 +17,7 @@
|
||||
#include <list>
|
||||
|
||||
class MbGrid;
|
||||
class MbFloatGrid;
|
||||
class MbMesh;
|
||||
class MbTriangle;
|
||||
|
||||
@@ -113,5 +114,10 @@ namespace JTC {
|
||||
// ---
|
||||
CONV_FUNC( MbGrid* ) CreateGridByPolyonPoints( const std::vector<std::vector<MbCartPoint3D>>& polygonsAsPoints );
|
||||
|
||||
//------------------------------------------------------------------------------
|
||||
// Создать номали сетки по умолчанию
|
||||
// ---
|
||||
void CreateDefaultNormals( MbFloatGrid & grid );
|
||||
|
||||
|
||||
#endif // !__CONV_TOPO_MESH_H
|
||||
|
||||
@@ -41,6 +41,8 @@ class MATH_CLASS MbContourOnPlane : public MbContourOnSurface {
|
||||
public :
|
||||
/// \ru Конструктор по плоскости, контуру и флагу использования оригинала контура. \en Constructor by plane, contour and flag of using original contour.
|
||||
MbContourOnPlane( const MbPlane &, const MbContour &, bool same );
|
||||
/// \ru Конструктор по плейсменту, контуру и флагу использования оригинала контура. \en Constructor by plane, contour and flag of using original contour.
|
||||
MbContourOnPlane( const MbPlacement3D &, const MbContour &, bool same );
|
||||
/// \ru Конструктор по плоскости и направлению обхода поверхности. \en Constructor by plane and traverse direction of surface.
|
||||
MbContourOnPlane( const MbPlane &, int sense );
|
||||
/// \ru Конструктор по плоскости. \en Constructor by plane.
|
||||
|
||||
@@ -83,7 +83,7 @@ public :
|
||||
void CalculateLocalGabarit( const MbMatrix & into, MbRect & local ) const override; // \ru Рассчитать габарит в локальной системы координат. \en Calculate bounding rectangle into local coordinate system.
|
||||
|
||||
bool IsVisibleInRect( const MbRect &, bool exact = false ) const override; // \ru Виден ли объект в заданном прям-ке \en Whether the object is visible in the given rectangle
|
||||
using MbCurve::IsVisibleInRect;
|
||||
using MbCurve::IsVisibleInRect;
|
||||
double DistanceToPoint( const MbCartPoint & ) const override; // \ru Расстояние до точки \en Distance to a point
|
||||
bool DistanceToPointIfLess( const MbCartPoint & toP, double & d ) const override; // \ru Вычислить расстояние до точки, если оно меньше d. \en Calculate the distance to the point if it is less than d.
|
||||
/** \} */
|
||||
|
||||
+137
-2
@@ -279,6 +279,86 @@ GCE_FUNC(geom_item) GCE_AddBoundedCurve( GCE_system gSys, geom_item curve, geom_
|
||||
//---
|
||||
GCE_FUNC(geom_item) GCE_AddOffsetCurve( GCE_system gSys, geom_item curve, double offset );
|
||||
|
||||
//----------------------------------------------------------------------------------------
|
||||
/** \brief \ru Объявить паттерн с направлением вдоль прямой и заданным смещением или с центром в точке и заданным углом.
|
||||
\en Declare a pattern with a direction along a line and a given offset or with the center at a point and a given angle. \~
|
||||
\param[in] gSys - \ru Система ограничений.
|
||||
\en System of constraints. \~
|
||||
\param[in] geom - \ru Дескриптор точки или прямой.
|
||||
\en Descriptor of line. \~
|
||||
\param[in] step - \ru Величина смещения паттерн.
|
||||
\en Pattern offset. \~
|
||||
\return \ru Дескриптор зарегистрированного паттерна.
|
||||
\en Descriptor of registered pattern. \~
|
||||
|
||||
\details \ru Метод создает паттерн. Если объект прямая или отрезок, то создается линейный паттерн с направлением
|
||||
вдоль данной прямой или отрезком и шагом step. Если объект точка, окружность или эллипс,
|
||||
то создается угловой паттерн с центром в данной точке или центре окружности или эллипса и углом step.
|
||||
\en The method creates a pattern. If the object is a line or a segment, then a linear pattern
|
||||
is created with the direction along this line or segment and a step. If the object is a point,
|
||||
circle or ellipse, then an angular pattern is created with the center at the given point
|
||||
or center of the circle or ellipse and the step angle. \~
|
||||
*/
|
||||
//---
|
||||
GCE_FUNC(pattern_item) GCE_AddPattern( GCE_system gSys, geom_item geom, double step );
|
||||
|
||||
//----------------------------------------------------------------------------------------
|
||||
/** \brief \ru Объявить линейный паттерн с шагом смещения, заданным вектором трансляции.
|
||||
\en Declare a linear pattern with the step given by the translation vector. \~
|
||||
\param[in] gSys - \ru Система ограничений.
|
||||
\en System of constraints. \~
|
||||
\param[in] trans - \ru Вектор трансляции.
|
||||
\en Offset vector. \~
|
||||
\return \ru Дескриптор зарегистрированного паттерна.
|
||||
\en Descriptor of registered pattern. \~
|
||||
|
||||
\details \ru Метод создает линейный паттерн со смещением, заданным данным вектором трансляции.
|
||||
\en The method creates a linear pattern with the step given by this translation vector. \~
|
||||
*/
|
||||
//---
|
||||
GCE_FUNC(pattern_item) GCE_AddLinearPattern( GCE_system gSys, GCE_vec2d trans );
|
||||
|
||||
//----------------------------------------------------------------------------------------
|
||||
/** \brief \ru Объявить угловой паттерн c центром и углом.
|
||||
\en Declare an angular pattern with a center and an angle. \~
|
||||
\param[in] gSys - \ru Система ограничений.
|
||||
\en System of constraints. \~
|
||||
\param[in] point - \ru Точка - центр паттерна.
|
||||
\en The point is the center of the pattern. \~
|
||||
\param[in] angle - \ru Угол поворота.
|
||||
\en Angle of rotation. \~
|
||||
|
||||
\return \ru Дескриптор зарегистрированного паттерна.
|
||||
\en Descriptor of registered pattern. \~
|
||||
|
||||
\details \ru Метод создает угловой паттерн, заданный центром и углом.
|
||||
\en The method creates an angular pattern defined by a center and an angle. \~
|
||||
*/
|
||||
//---
|
||||
GCE_FUNC(pattern_item) GCE_AddAngularPattern( GCE_system gSys, GCE_point point, double angle );
|
||||
|
||||
//----------------------------------------------------------------------------------------
|
||||
/** \brief \ru Создать k-й экземпляр образца в данном паттерне.
|
||||
\en Create k-th instance of the sample in a given pattern. \~
|
||||
\param[in] gSys - \ru Система ограничений.
|
||||
\en System of constraints. \~
|
||||
\param[in] pItem - \ru Дескриптор паттерна.
|
||||
\en Descriptor of pattern. \~
|
||||
\param[in] sample - \ru Дескриптор образца.
|
||||
\en Descriptor of sample. \~
|
||||
\param[in] k - \ru Номер экземпляра.
|
||||
\en Copy number. \~
|
||||
\return \ru Дескриптор зарегистрированного экземпляра.
|
||||
\en Descriptor of registered instance. \~
|
||||
|
||||
\details \ru Метод создает k-й экземпляр образца в данном паттерне.
|
||||
При k = 0 возвращает идентификатор образца.
|
||||
\en The method creates the k-th instance of the sample in the given pattern.
|
||||
It returns the sample descriptor if k = 0. \~
|
||||
*/
|
||||
//---
|
||||
GCE_FUNC(geom_item) GCE_AddInstance( GCE_system gSys, pattern_item pItem, geom_item sample, int k );
|
||||
|
||||
//----------------------------------------------------------------------------------------
|
||||
/** \brief \ru Добавить в систему жёсткое множество геометрических объектов.
|
||||
\en Add a rigid set of geometric objects to the system. \~
|
||||
@@ -445,7 +525,7 @@ GCE_FUNC(bool) GCE_RemoveGeom( GCE_system gSys, geom_item g );
|
||||
\en Control geometry object's lifetime by solver. \~
|
||||
\param[in] gSys - \ru Система ограничений.
|
||||
\en System of constraints. \~
|
||||
\param[in] var - \ru Дескриптор геометрического.
|
||||
\param[in] g - \ru Дескриптор геометрического объекта.
|
||||
\en Descriptor of geometric object. \~
|
||||
*/
|
||||
//---
|
||||
@@ -748,6 +828,20 @@ GCE_FUNC(geom_item) GCE_FixOffset( GCE_system gSys, geom_item curve );
|
||||
//---
|
||||
GCE_FUNC(bool) GCE_IsConstrainedGeom( GCE_system gSys, geom_item g );
|
||||
|
||||
//----------------------------------------------------------------------------------------
|
||||
/** \brief \ru Функция отвечает на вопрос: Имеется ли хотя бы один экземпляр паттерна?
|
||||
\en The function answers the question: Is there an instance of the pattern? \~
|
||||
\param[in] gSys - \ru Система ограничений.
|
||||
\en System of constraints. \~
|
||||
\param[in] pattern - \ru Дескриптор паттерна.
|
||||
\en Descriptor of pattern. \~
|
||||
\return \ru true, если для паттерна p существуют экземпляры какого-либо объекта.
|
||||
\en true if there are instances of any object for pattern p. \~
|
||||
\sa GCE_RemovePattern, GCE_ReleasePattern
|
||||
*/
|
||||
//---
|
||||
GCE_FUNC(bool) GCE_HasInstance( GCE_system gSys, pattern_item p );
|
||||
|
||||
//----------------------------------------------------------------------------------------
|
||||
/** \brief \ru Выполнить проверку удовлетворенности ограничения.
|
||||
\en Perform a check that a constraint is satisfied. \~
|
||||
@@ -1361,6 +1455,28 @@ GCE_FUNC(constraint_item) GCE_AddDiameter( GCE_system gSys, geom_item cir, GCE_d
|
||||
//---
|
||||
GCE_FUNC(constraint_item) GCE_AddLength( GCE_system gSys, geom_item curve, GCE_dim_pars dPar );
|
||||
|
||||
//----------------------------------------------------------------------------------------
|
||||
/** \brief \ru Связать ограничением паттерна два геометрических объекта.
|
||||
\en Bind two geometric objects by a pattern constraint. \~
|
||||
\param[in] gSys - \ru Система ограничений.
|
||||
\en System of constraints. \~
|
||||
\param[in] pItem - \ru Дескриптор паттерна.
|
||||
\en Descriptor of pattern. \~
|
||||
\param[in] sample - \ru Дескриптор образца.
|
||||
\en Descriptor of sample. \~
|
||||
\param[in] instance - \ru Дескриптор экземпляра.
|
||||
\en Descriptor of instance. \~
|
||||
\param[in] k - \ru Номер экземпляра.
|
||||
\en Copy number. \~
|
||||
\return \ru Дескриптор зарегистрированного ограничения.
|
||||
\en Descriptor of registered constrained. \~
|
||||
|
||||
\details \ru Метод связывает два объекта ограничением паттерна.
|
||||
\en The method binds the two objects by a pattern constraint. \~
|
||||
*/
|
||||
//---
|
||||
GCE_FUNC(constraint_item) GCE_AddPatterned( GCE_system gSys, pattern_item pItem, geom_item sample, geom_item instance, int k );
|
||||
|
||||
//----------------------------------------------------------------------------------------
|
||||
/** \brief \ru Задать ограничение "Управляющий параметр" или "Фиксация переменной"
|
||||
\en Set the constraint "Driving parameter" or "Fixation of variable" \~
|
||||
@@ -1430,6 +1546,24 @@ GCE_FUNC(constraint_item) GCE_FixLength( GCE_system gSys, geom_item ls );
|
||||
// ---
|
||||
GCE_FUNC(constraint_item) GCE_FixRadius( GCE_system gSys, geom_item circ, coord_name cName = GCE_RADIUS );
|
||||
|
||||
//----------------------------------------------------------------------------------------
|
||||
/** \brief \ru Задать фиксацию координаты параметрического объекта.
|
||||
\en Specify fixation of a parametric object coordinate. \~
|
||||
\param[in] gSys - \ru Система ограничений.
|
||||
\en System of constraints. \~
|
||||
\param[in] g - \ru Дескриптор объекта.
|
||||
\en Descriptor of object. \~
|
||||
\param[in] cName - \ru Обозначение параметра объекта.
|
||||
\en Denotation of object parameter. \~
|
||||
\return \ru Дескриптор зарегистрированного ограничения.
|
||||
\en Descriptor of registered constrained. \~
|
||||
|
||||
\details \ru Задать фиксацию координаты параметрического объекта по типу координаты.
|
||||
\en Set the fixation of the parametric object coordinate by coordinate type. \~
|
||||
*/
|
||||
//---
|
||||
GCE_FUNC(constraint_item) GCE_FixCoordValue( GCE_system gSys, geom_item g, coord_name cName );
|
||||
|
||||
//----------------------------------------------------------------------------------------
|
||||
/**
|
||||
\brief
|
||||
@@ -2016,7 +2150,8 @@ inline geom_item GCE_AddPoint( GCE_system gSys, GCE_point pVal, int )
|
||||
\en An obsolete function. The call will be removed in one of the next versions. \~
|
||||
*/
|
||||
//---
|
||||
GCE_FUNC(GCE_system) GCE_CreateSystem( void * );
|
||||
DEPRECATE_DECLARE
|
||||
inline GCE_system GCE_CreateSystem(void*) { return nullptr; }
|
||||
|
||||
//----------------------------------------------------------------------------------------
|
||||
/**
|
||||
|
||||
+24
-10
@@ -56,6 +56,8 @@ typedef size_t geom_item;
|
||||
typedef size_t constraint_item;
|
||||
/// \ru Дескриптор переменной, зарегистрированной в решателе. \en Descriptor of a variable registered in the solver.
|
||||
typedef size_t var_item;
|
||||
/// \ru Дескриптор паттерна, зарегистрированного в контексте решателя. \en Descriptor of pattern registered in the solver context.
|
||||
typedef geom_item pattern_item;
|
||||
|
||||
//----------------------------------------------------------------------------------------
|
||||
// \ru Константы. \en Constants.
|
||||
@@ -67,7 +69,9 @@ const geom_item GCE_NULL_G = GCE_NULL;
|
||||
/// \ru Неопределенное значение дескриптора типа #var_item. \en Undefined value of #var_item type.
|
||||
const var_item GCE_NULL_V = GCE_NULL;
|
||||
/// \ru Неопределенное значение дескриптора типа #constraint_item. \en Undefined value of #constraint_item type.
|
||||
const constraint_item GCE_NULL_C = GCE_NULL;
|
||||
const constraint_item GCE_NULL_C = GCE_NULL;
|
||||
/// \ru Неопределенное значение дескриптора типа #pattern_item. \en Undefined value of #pattern_item type.
|
||||
const pattern_item GCE_NULL_P = GCE_NULL;
|
||||
/// \ru Не определенное значение числа double. \en An undefined value of double.
|
||||
const double GCE_UNDEFINED_DBL = UNDEFINED_DBL;
|
||||
|
||||
@@ -91,16 +95,22 @@ typedef enum
|
||||
// \ru Дополнительные типы. \en Additional types.
|
||||
GCE_LINE_SEGMENT, ///< \ru Отрезок прямой. \en Line segment.
|
||||
GCE_SET, ///< \ru Подмножество геометрических объектов. \en Subset of geometric objects.
|
||||
|
||||
// \ru Производные типы. \en Derived types.
|
||||
GCE_INSTANCE, ///< \ru Экземпляр базового объекта. \en An instance of the base object.
|
||||
GCE_PATTERN, ///< \ru Геометрический паттерн. \en A geometrical pattern.
|
||||
} geom_type;
|
||||
|
||||
|
||||
//----------------------------------------------------------------------------------------
|
||||
/** \brief \ru Варианты контрольных точек, запрашиваемых у геометрического объекта.
|
||||
\en Variants of control point requested from a geometric object.
|
||||
\details \ru Это перечисление применяется для запроса дескриптора характерных точке объекта,
|
||||
/** \brief \ru Идентификаторы означающие контрольные точки и другие элементы, составляющие
|
||||
запись (tuple) геометрического объекта.
|
||||
\en IDs denoting control points and other elements that form a record (tuple)
|
||||
of a geometric object. ~\
|
||||
\details \ru Это перечисление применяется для запроса дескриптора характерных точке объекта,
|
||||
таких как центр окружности, концевая точка кривой и т.д...
|
||||
\en This enum is used to request a descriptor of control point of an object,
|
||||
such as center of circle, bounding point of a curve etc...
|
||||
such as center of circle, bounding point of a curve etc... ~\
|
||||
\see #GCE_PointOf
|
||||
*/
|
||||
//---
|
||||
@@ -113,7 +123,7 @@ typedef enum
|
||||
, GCE_IMPROPER_POINT = 0 ///< \ru Точка, не принадлежащая объекту. \en Point not belonging to the object.
|
||||
, GCE_FIRST_END ///< \ru Первый конец ограниченной кривой. \en The first end of bounded curve.
|
||||
, GCE_SECOND_END ///< \ru Второй конец ограниченной кривой. \en The second end of bounded curve.
|
||||
, GCE_CENTRE ///< \ru Центр окружности (дуги) или эллипса. \en Center of circle (arc) or ellipse.
|
||||
, GCE_CENTRE ///< \ru Точка центра окружности, дуги или эллипса. \en Central point of circle, arc or ellipse.
|
||||
, GCE_PROPER_POINT ///< \ru Собственно точка. \en Proper point.
|
||||
, GCE_Q1 ///< \ru Квадрантная точка эллипса (3 часа). \en Quadrant point of ellipse (3 o'clock).
|
||||
, GCE_Q2 ///< \ru Квадрантная точка эллипса (12 часов). \en Quadrant point of ellipse (12 o'clock).
|
||||
@@ -124,7 +134,8 @@ typedef enum
|
||||
/*
|
||||
The values below are used only within the solver.
|
||||
*/
|
||||
, GCE_DIRECTION ///< \ru Направляющий вектор эллипса (направление "большой" полуоси ). \en Vector of ellipse direction (direction of "major" semiaxis).
|
||||
, GCE_DIRECTION ///< \ru Направляющий вектор эллипса (направление "большой" полуоси ) или паттерна. \en Vector of ellipse direction (direction of "major" semiaxis) or pattern.
|
||||
, GCE_L_NORMAL ///< \ru Вектор нормали линейного объекта. \en Normal vector of a linear geometry entity.
|
||||
/** \brief \ru Единичный вектор ориентации: Нормаль прямой, направление "большой" полуоси эллипса.
|
||||
\en Unit vector of orientation: Normal of a line, direction of "major" semiaxis of ellipse. \~
|
||||
*/
|
||||
@@ -154,6 +165,7 @@ typedef enum
|
||||
, GCE_MAJOR_RADIUS ///< \ru "Главная" полуось эллипса. \en "Major" semiaxis of ellipse.
|
||||
, GCE_MINOR_RADIUS ///< \ru "Малая" полуось эллипса. \en "Minor" semiaxis of ellipse.
|
||||
, GCE_OFFSET ///< \ru Смещение эквидистантной кривой. \en Offset of equidistant curve.
|
||||
, GCE_STEP ///< \ru Линейное или угловое смещение паттерна. \en Linear or angular pattern shift.
|
||||
, GCE_NULL_CRD ///< \ru Пустая (несуществующая) координата. \en Empty (nonexistent) coordinate.
|
||||
} coord_name;
|
||||
|
||||
@@ -170,10 +182,9 @@ typedef coord_name coord_type;
|
||||
typedef enum
|
||||
{
|
||||
// \ru Унарные геометрические ограничения: \en Unary geometric constraints:
|
||||
GCE_FIX_GEOM
|
||||
GCE_FIX_GEOM ///< \ru Фиксация геометрического объекта. \en Fixation of geometric object.
|
||||
, GCE_HORIZONTAL ///< \ru Горизонтальность прямой или отрезка. \en Horizontality of a linear object.
|
||||
, GCE_VERTICAL ///< \ru Вертикальность прямой или отрезка. \en Verticality of a linear object.
|
||||
, GCE_LENGTH ///< \ru Фиксация длины отрезка. \en Fixation of length of a line segment.
|
||||
, GCE_ANGLE_OX
|
||||
|
||||
// \ru Бинарные геометрические ограничения: "constr( geom1, geom2 )" \en Binary geometric constraints: "constr( geom1, geom2 )"
|
||||
@@ -195,10 +206,12 @@ typedef enum
|
||||
, GCE_SYMMETRIC ///< \ru Симметричность. \en Symmetry.
|
||||
, GCE_PERCENT_POINT ///< \ru \en
|
||||
, GCE_EQUATION ///< \ru Уравнение. \en Equation.
|
||||
, GCE_PATTERNED ///< \ru Связать паттерном пару кривых. \en Bind a pair of curves in a pattern.
|
||||
|
||||
// \ru Размерные геометрические ограничения. \en Dimensional geometric constraints.
|
||||
, GCE_DISTANCE
|
||||
, GCE_DIAMETER
|
||||
, GCE_LENGTH ///< \ru Фиксация длины отрезка или дуги. \en Fixation of length of a line segment or arc.
|
||||
, GCE_RADIUS_DIM
|
||||
, GCE_OFFSET_DIM
|
||||
, GCE_ANGLE
|
||||
@@ -233,6 +246,7 @@ typedef enum
|
||||
GCE_RESULT_IsNotDrivingDimension = 14, ///< \ru Данное ограничение должно быть управляющим размером. \en Given constraint should be a driving dimension.
|
||||
GCE_RESULT_UnsupportedConstraint = 15, ///< \ru На геометрические объекты было наложено невозможное ограничение. \en An impossible constraint was set on geometric objects.
|
||||
GCE_RESULT_AnisotropicScaling = 16, ///< \ru Анизотропное масштабирование. \en Anisotropic scaling.
|
||||
GCE_RESULT_OverconstrainedInstance = 17, ///< \ru Попытка подчинить экземпляр более, чем одному паттерну. \en An attempt to make an instance patterned on more than one pattern.
|
||||
} GCE_result;
|
||||
|
||||
//----------------------------------------------------------------------------------------
|
||||
@@ -287,7 +301,7 @@ typedef enum
|
||||
, GCE_STATUS_WellTreated = 1 // Ограничение принадлежит рабочей части системы ограничений без переопределений.
|
||||
, GCE_STATUS_WellConditioned = 2 // Ограничение принадлежит хорошо-обусловленной части уравнений.
|
||||
, GCE_STATUS_IllConditioned = 3 ///< /ru Ограничения из плохо-обусловленной части. /en A constraint of ill-condition
|
||||
, GCE_STATUS_Redundant = 4 ///< /ru Ограничение игнорируется решателем по причине избыточности. // en A constraint is ignored by the solving process beacause of the redundancy.
|
||||
, GCE_STATUS_Redundant = 4 ///< /ru Ограничение игнорируется решателем по причине избыточности. // en A constraint is ignored by the solving process because of the redundancy.
|
||||
|
||||
/*
|
||||
Statuses resulting the evaluation (call GCE_Evaluate).
|
||||
|
||||
+52
-35
@@ -299,7 +299,7 @@ private:
|
||||
CNodeIterator * m_cIter;
|
||||
const MtConstraintSystem * m_gcSystem;
|
||||
|
||||
public:
|
||||
public:
|
||||
ItConstraintIter();
|
||||
ItConstraintIter( const ItConstraintIter & );
|
||||
ItConstraintIter & operator = ( const ItConstraintIter & );
|
||||
@@ -337,7 +337,7 @@ class MtBlackboxManager; // Internal implementation of Blackbox manager.
|
||||
//----------------------------------------------------------------------------------------
|
||||
/** \brief \ru Геометрический решатель.
|
||||
\en Geometric constraint solver. \~
|
||||
\details \ru Интерфейс геометрического решателя. Клиентское приложение может
|
||||
\details \ru Интерфейс геометрического решателя. Клиентское приложение может с
|
||||
работать любым количеством систем ограничений, для каждой из них заводится по
|
||||
одному экземпляру решателя с помощью вызова #CreateSolver.
|
||||
\en Interface of geometric solver. Client application can
|
||||
@@ -402,10 +402,7 @@ public:
|
||||
\en Add constraint of three geometric objects. \~
|
||||
*/
|
||||
ItConstraintItem * AddConstraint ( MtMateType, MtArgument, MtArgument, MtArgument,
|
||||
MtParVariant p1 = MtParVariant::undef, MtParVariant p2 = MtParVariant::undef );
|
||||
|
||||
/// \ru Добавить ограничение. \en Add constraint.
|
||||
ItConstraintItem * AddConstraint( MtArgument, MtArgument, const GCM_c_params &, MtResultCode3D & );
|
||||
MtParVariant p1 = MtParVariant::undef, MtParVariant p2 = MtParVariant::undef );
|
||||
|
||||
/** \brief \ru Добавить черный ящик в систему ограничений.
|
||||
\en Add black box to the constraint system. \~
|
||||
@@ -649,10 +646,11 @@ public:
|
||||
GCM_system System() const;
|
||||
|
||||
// Not yet documented
|
||||
void WriteSystem( TCHAR * fileName );
|
||||
void WriteSystem( TCHAR * fileName );
|
||||
/// \ru Выдать ограничения. \en Get the constraints iterator.
|
||||
SPtr<ItConstraintsEnum> GetConstraintsEnum();
|
||||
|
||||
public:
|
||||
/**
|
||||
\}
|
||||
\ru \name Устаревшие функции, которые будут удалены в будущей версии.
|
||||
@@ -661,33 +659,38 @@ public:
|
||||
*/
|
||||
|
||||
/// \ru Функция будет удалена из API. Использовать ChangeDefinition(). \en The call is deprecated. Use ChangeDefinition() instead this.
|
||||
MtResultCode3D ChangeAlignCondition( ItConstraintItem & );
|
||||
MtResultCode3D FixGeom( ItGeom & );
|
||||
DEPRECATE_DECLARE MtResultCode3D ChangeAlignCondition( ItConstraintItem & );
|
||||
DEPRECATE_DECLARE MtResultCode3D FixGeom( ItGeom & );
|
||||
DEPRECATE_DECLARE ItConstraintItem * AddConstraint( MtArgument, MtArgument, const GCM_c_params &, MtResultCode3D & );
|
||||
/// \ru Функция будет удалена из API. Использовать Evalute(). \en The call is deprecated. Use Evaluate() instead this.
|
||||
DEPRECATE_DECLARE MtResultCode3D Solve( bool diagQuery );
|
||||
|
||||
/**
|
||||
\}
|
||||
*/
|
||||
|
||||
//protected:
|
||||
/// \ru Функция будет удалена из API. Использовать Evalute(). \en The call is deprecated. Use Evaluate() instead this.
|
||||
MtResultCode3D Solve( bool diagQuery );
|
||||
// Internal use only
|
||||
GCM_geom _QueryArgument( const MtArgument & gArg );
|
||||
GCM_geom _QueryArgument( const MtArgument & gArg );
|
||||
|
||||
protected:
|
||||
const ItGeom * _SetDependencyGeom( MtGeomId gId, const ItGeom * gItem );
|
||||
|
||||
protected:
|
||||
MtGeomSolver();
|
||||
~MtGeomSolver();
|
||||
public:
|
||||
// Constructor for internal use only. Use the call GCM_CreareSolver.
|
||||
MtGeomSolver( SPtr<ItPositionManager> );
|
||||
// Constructor for internal use only. Use the call GCM_GetSolver.
|
||||
MtGeomSolver( GCM_system );
|
||||
|
||||
private:
|
||||
MtConstraintManager * _Impl();
|
||||
const MtConstraintManager * _Impl() const;
|
||||
~MtGeomSolver();
|
||||
|
||||
MtConstraintManager * _Impl() { return myImpl; }
|
||||
const MtConstraintManager * _Impl() const { return myImpl; }
|
||||
MtBlackboxManager * _BBoxMan();
|
||||
const MtBlackboxManager * _BBoxMan() const;
|
||||
|
||||
MtBlackboxManager * myBBManager;
|
||||
MtConstraintManager * myImpl; ///< \ru Внутренняя реализация экземпляра геометрического солвера. \en Internal implementation of the solver instance.
|
||||
MtBlackboxManager * myBBManager; ///< \ru Менеджер черных ящиков. \en Manager of blackboxies.
|
||||
|
||||
private:
|
||||
MtGeomSolver( const MtGeomSolver & );
|
||||
@@ -695,26 +698,22 @@ private:
|
||||
};
|
||||
|
||||
//----------------------------------------------------------------------------------------
|
||||
/** \brief \ru Создать пустую систему ограничений.
|
||||
\en Create an empty constraint system. \~
|
||||
/** \brief \ru Создать объектно-ориентированный интерфейс 3D солвера.
|
||||
\en Create an object-oriented interface of 3D solver. \~
|
||||
\details \ru Вызов создает пустую систему ограничений. Кроме того, в памяти
|
||||
создаются внутренние структуры данных геометрического решателя, обслуживающего
|
||||
систему ограничений. Функция возвращает специальный дескриптор, по которому
|
||||
система ограничений доступна для различных манипуляций: добавление или удаление
|
||||
геометрических объектов, ограничений, варьирование размеров, драггинг
|
||||
недоопределенных объектов и т.д.
|
||||
систему ограничений. Функция возвращает экземпляр класса, представляющего
|
||||
объектно-ориентированный интерфейс солвера.
|
||||
\en The call creates an empty constraint system. Besides, there are created
|
||||
internal data structures of geometric solver maintaining the system of constraints.
|
||||
The function returns a special descriptor by which
|
||||
the constraint system is available for various manipulations: addition and deletion
|
||||
of geometric objects, constraints, variation of sizes, dragging
|
||||
underdetermined objects etc. \~
|
||||
The function returns an instance of class representing an object-oriented interface
|
||||
of the 3D solver. \~
|
||||
|
||||
\return \ru Дескриптор системы ограничений.
|
||||
\en Descriptor of constraint system. \~
|
||||
\return \ru Решатель геометрических ограничений.
|
||||
\en A geometric constraint solver. \~
|
||||
*/
|
||||
//---
|
||||
GCM_FUNC(GCM_system) GCM_CreateSystem( ItPositionManager * );
|
||||
GCM_FUNC(SPtr<MtGeomSolver>) GCM_CreateSolver( SPtr<ItPositionManager> );
|
||||
|
||||
//----------------------------------------------------------------------------------------
|
||||
/** \brief \ru Выдать решатель для данной системы геометрических ограничений.
|
||||
@@ -725,6 +724,24 @@ GCM_FUNC(SPtr<MtGeomSolver>) GCM_GetSolver( GCM_system gSys );
|
||||
|
||||
/** \} */
|
||||
|
||||
//----------------------------------------------------------------------------------------
|
||||
// The call is for internal use only.
|
||||
/*
|
||||
Use method SPtr<MtGeomSolver> GCM_CreateSolver(ItPositionManager *) to cteate object-oriented
|
||||
representation of the C3D Solver. Use call GCM_CreateSystem(void) to work with basic API
|
||||
of the geometric solver (gce_api.h).
|
||||
*/
|
||||
//---
|
||||
GCM_FUNC(GCM_system) GCM_CreateSystem( ItPositionManager * );
|
||||
|
||||
//----------------------------------------------------------------------------------------
|
||||
// Запрос на аргумент (создать впервые или найти имеющийся), основано на базовом API
|
||||
/*
|
||||
Internal use only.
|
||||
*/
|
||||
//---
|
||||
GCM_geom GCM_QueryArgument( GCM_system gSys, const MtArgument & gArg );
|
||||
|
||||
/*
|
||||
Deprecated typenames
|
||||
*/
|
||||
@@ -732,13 +749,13 @@ typedef MtGeomSolver IfGCManager;
|
||||
typedef MtRepositionMode MtTypeOfReposition;
|
||||
|
||||
/// \ru Полно-заданное или фиксированное тело (нулевая степень свободы). \en Fully-specified or fixed solid (zero degree of freedom).
|
||||
static const GCM_dof_result sof_Zero = GCM_DOF_RESULT_WellDefined;
|
||||
static const GCM_dof_result sof_Zero = GCM_DOF_RESULT_WellDefined;
|
||||
/// \ru Полно-заданное или фиксированное тело (нулевая степень свободы). \en Fully-specified or fixed solid (zero degree of freedom).
|
||||
static const GCM_dof_result sof_WellConstrained = GCM_DOF_RESULT_WellDefined;
|
||||
/// \ru Недоопределенное тело, т.е. имеющее степень свободы. \en Underconstrained solid, i.e. having a degree of freedom.
|
||||
static const GCM_dof_result sof_UnderConstrained = GCM_DOF_RESULT_UnderDefined;
|
||||
static const GCM_dof_result sof_UnderConstrained = GCM_DOF_RESULT_UnderDefined;
|
||||
/// \ru Нет сведений о степени свободы. \en No information about the degree of freedom.
|
||||
static const GCM_dof_result sof_Unknown = GCM_DOF_RESULT_Unknown;
|
||||
static const GCM_dof_result sof_Unknown = GCM_DOF_RESULT_Unknown;
|
||||
|
||||
|
||||
#endif // __GCM_MANAGER_H
|
||||
|
||||
+39
-15
@@ -304,7 +304,7 @@ GCM_FUNC(bool) IsCompatibleMatingGeometry( const ItConstraintItem & cItem );
|
||||
\return \ru true, если функция выполнена успешно.
|
||||
\en true if the function is performed successfully. \~
|
||||
|
||||
\par \ru Реализация
|
||||
\par \ru Реализация
|
||||
\en Implementation \~
|
||||
gPlaces[0] = gPlaces[2];\n
|
||||
gPlaces[0].Transform( gPlaces[3].GetMatrixInto() );\n
|
||||
@@ -429,7 +429,38 @@ GCM_FUNC(const ItGeom *) GCM_SetDependencyGeom( GCM_system gSys, MtGeomId, const
|
||||
GCM_FUNC(void) GCM_GetProperties( GCM_system gSys , MbProperties & props );
|
||||
|
||||
//----------------------------------------------------------------------------------------
|
||||
/** \brief \ru Импортировать систему геометрических ограничений в модель C3D
|
||||
/** \brief \ru Специфическая диагностика объекта, зависимого от истории построения.
|
||||
\en Specific diagnostics of a geometric object dependent on the construction history. \~
|
||||
\param[in] gSys - \ru Система геометрических ограничений, в которой вычисляется объект диагностики gPtr.
|
||||
\en The system of geometric constraints in which the diagnostic object 'gPtr' is evaluated. \~
|
||||
\param[in] gPtr - \ru Указатель на геометрический объект CAD-модели, текущее состояние
|
||||
которого вычислено в истории построения сборки САПР.
|
||||
\en A pointer to a CAD model object whose current state is
|
||||
computed in the build history of the CAD assembly. \~
|
||||
\result \ru Результирующий код ошибки в ситуации противоречия.
|
||||
\en Resulting error code in the contradiction case. \~
|
||||
|
||||
\details \ru Вызов API нацелен на диагностику геометрического объекта, который одновременно
|
||||
подчинен истории построения CAD-сборки и в то же время вычисляется в системе
|
||||
ограничений. Алгоритм выявляет ситуацию, когда текущее состояние объекта истории
|
||||
построения противоречит состоянию, вычисленному в системе ограничений.
|
||||
Результатом работы является код ошибки, который раздается всем смежным ограничениям,
|
||||
реализованным на стороне приложения в типе ItConstraintItem.
|
||||
\en The API-call is aimed at diagnosing a geometric object which at the same time
|
||||
subordinate to the CAD-assembly built history and at the same time evaluated in
|
||||
the constraint system. The algorithm detects the situation when the current
|
||||
state of the history-based object contradicts the state evaluated in the solver.
|
||||
The result of the call is an error code that is distributed to all adjacent constraints
|
||||
inherited from ItConstraintItem inside the application. \~
|
||||
\note \ru Корректный результат предполагается только после попытки решить систему
|
||||
ограничений (т.е. вызов GCM_Evaluate или MtGeomSolver::Evaluate).
|
||||
\en The correct result is assumed only after the evaluating call (ie GCM_Evaluate or MtGeomSolver::Evaluate). \~
|
||||
*/
|
||||
//---
|
||||
GCM_FUNC(GCM_result) GCM_DiagnoseHistoryDependent( GCM_system gSys, const ItGeom * gPtr );
|
||||
|
||||
//----------------------------------------------------------------------------------------
|
||||
/** \brief \ru Импортировать систему геометрических ограничений в модель C3D.
|
||||
\en Import the constraint system into C3D-model. \~
|
||||
\details \ru Алгоритм импорта распознает каркасные структуры в системе ограничений и
|
||||
записывает их в файл формата C3D. Обнаруженные структуры конвертируются
|
||||
@@ -452,38 +483,31 @@ GCM_FUNC(size_t) VolumeOfAlignOption( const ItConstraintItem & );
|
||||
|
||||
/** \} */ // GCM_3D_Routines
|
||||
|
||||
//----------------------------------------------------------------------------------------
|
||||
/*
|
||||
\ru Вызов устарел, будет удален в одной из последующих версий
|
||||
\en This call is out of date, it will be removed in a future version (V17 or later) \~
|
||||
*/
|
||||
//---
|
||||
GCM_FUNC(MtGeomSolver &) Construct_GCMImp( ItPositionManager & );
|
||||
|
||||
//----------------------------------------------------------------------------------------
|
||||
// for internal use only
|
||||
// \en This call is out of date, it will be removed in 2023. \~
|
||||
//---
|
||||
GCM_FUNC(MtResultCode3D) AdHocDiagnose( MtGeomSolver *, const ItGeom * );
|
||||
DEPRECATE_DECLARE GCM_FUNC(MtResultCode3D) AdHocDiagnose(GCM_system, const ItGeom*);
|
||||
|
||||
//----------------------------------------------------------------------------------------
|
||||
// for testing only
|
||||
//---
|
||||
GCM_FUNC(bool) CheckSatisfaction( MtGeomSolver * );
|
||||
GCT_FUNC(bool) CheckSatisfaction( GCM_system );
|
||||
|
||||
//----------------------------------------------------------------------------------------
|
||||
// for testing only
|
||||
//---
|
||||
GCM_FUNC(size_t) GetGeomsCount( MtGeomSolver * );
|
||||
GCT_FUNC(size_t) GetGeomsCount( GCM_system );
|
||||
|
||||
//----------------------------------------------------------------------------------------
|
||||
// for testing only
|
||||
//---
|
||||
GCM_FUNC(size_t) GetConstraintsCount( MtGeomSolver * );
|
||||
GCT_FUNC(size_t) GetConstraintsCount( GCM_system );
|
||||
|
||||
//----------------------------------------------------------------------------------------
|
||||
// Get a range to traverse constraints of the system
|
||||
//---
|
||||
GCM_FUNC(void) GCM_GetConstraints( GCM_system gSys, CNodeIterator & begIter, CNodeIterator & endIter );
|
||||
GCT_FUNC(void) GCM_GetConstraints( GCM_system gSys, CNodeIterator & begIter, CNodeIterator & endIter );
|
||||
|
||||
#endif // __GCM_ROUTINES_H
|
||||
|
||||
|
||||
+14
-5
@@ -12,10 +12,11 @@
|
||||
#include <system_types.h>
|
||||
#include <math_define.h>
|
||||
|
||||
class MtGeomSolver;
|
||||
class MbPlacement3D;
|
||||
class MbPlacement3D; // Local coordinate system that represents position and orientation of 3D object.
|
||||
struct MtSystemHolder {}; // An internal data object that provides the constraint system.
|
||||
|
||||
#define GCM_ID_TYPE 1 // 1 - MtObjectId is a struct, 0 - MtObjectId is simple integer.
|
||||
#define GCM_ID_TYPE 1 // 1 - MtObjectId is a pod struct, 0 - MtObjectId is simple integer.
|
||||
#define GCM_SYSTEM_TYPE 1 // 1 - GCM_system is ptr <MtRefItem *>, 0 - GCM_system is a <MtSystemHolder*> ptr.
|
||||
|
||||
#if ( GCM_ID_TYPE == 1 )
|
||||
|
||||
@@ -31,12 +32,20 @@ const MtObjectId _GCM_GROUND = 0;
|
||||
|
||||
#endif // GCM_ID_TYPE
|
||||
|
||||
|
||||
|
||||
/** \addtogroup GCM_3D_API
|
||||
\{
|
||||
*/
|
||||
|
||||
#if ( GCM_SYSTEM_TYPE == 1 )
|
||||
class MtRefItem;
|
||||
/// \ru Система геометрических ограничений. \en System of geometric constraints. \~
|
||||
typedef MtGeomSolver* GCM_system;
|
||||
typedef MtRefItem* GCM_system;
|
||||
#else // GCM_SYSTEM_TYPE
|
||||
/// \ru Система геометрических ограничений. \en System of geometric constraints. \~
|
||||
typedef struct MtSystemHolder* GCM_system;
|
||||
#endif // GCM_SYSTEM_TYPE
|
||||
|
||||
/// \ru Дескриптор геометрического объекта, зарегистрированного в контексте решателя. \en Descriptor of geometrical object registered in the constraint system.
|
||||
typedef MtObjectId GCM_object;
|
||||
/// \ru Дескриптор геометрического объекта, зарегистрированного в контексте решателя. \en Descriptor of geometrical object registered in the constraint system.
|
||||
|
||||
@@ -0,0 +1,43 @@
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
/**
|
||||
\file
|
||||
\brief \ru Постобработка импортированных тел.
|
||||
\en Pospprocessing of imported solids. \~
|
||||
\details \ru Установка характеристик и геометрии в соответствие с критериями C3D Modeler.
|
||||
\en Tuning characteristric and geometry of solids according to the C3D Modeler criteria. \~
|
||||
*/
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
#ifndef __HEAL_IMPORTED_H
|
||||
#define __HEAL_IMPORTED_H
|
||||
|
||||
#include <math_define.h>
|
||||
class MbSolid;
|
||||
|
||||
/** \brief \ru Скорректировать тип кривых пересечения в рёбрах.
|
||||
\en Set the right type of intersecion curves in edges. \~
|
||||
\param[out] solid - \ru Тело для обработки.
|
||||
\en Solid to be processed. \~
|
||||
\details \ru В кривых пересечения, построенных по точкам и объявленных cbt_Tolerant проводится
|
||||
проверка нормалей поверхностей на колинеарность. В случае, если нормали не колинеарны,
|
||||
тип меняется на cbt_Specific.
|
||||
\en In curves built by points and classified as cbt_Toleranc the check if the surfaces' normals are
|
||||
colinear is performed. In case the nornals are not colinear the type is switched to the cbt_Specific. \~
|
||||
\ingroup Data_Exchange
|
||||
*/
|
||||
CONV_FUNC( void ) AdjustIntersectionCurvesType( MbSolid& solid );
|
||||
|
||||
|
||||
/** \brief \ru Установить точки вершин по рёбрам.
|
||||
\en Set the verticis' poins by edges. \~
|
||||
\param[out] solid - \ru Тело для обработки.
|
||||
\en Solid to be processed. \~
|
||||
\details \ru В качестве точки вершины устанавливается средняя точка концов кривых в рёбрах
|
||||
примыкающих к врешине.
|
||||
\en The location of the vertes is set as the average value of end points of the curves of adjacent edges. \~
|
||||
\ingroup Data_Exchange
|
||||
*/
|
||||
CONV_FUNC( void ) AdjustVerticisGeometryByEdges( MbSolid& solid );
|
||||
|
||||
|
||||
#endif // __HEAL_IMPORTED_H
|
||||
+2
-21
@@ -1876,6 +1876,7 @@ ClassDescriptor TapeClassForNewObjects::GetPackedClassNameForWrite( long version
|
||||
// \ru Удаление пробелов, записей перед пробелами, символов "<" и ">".
|
||||
// \en Deleting of spaces, records before spaces, symbols "<" and ">". \~
|
||||
// \ingroup Base_Tools_IO
|
||||
DEPRECATE_DECLARE
|
||||
MATH_FUNC( const char * ) pureTemplateName( const char * name );
|
||||
|
||||
//----------------------------------------------------------------------------------------
|
||||
@@ -1908,27 +1909,7 @@ MATH_FUNC( const char * ) pureTemplateName( const char * name );
|
||||
// \ru Например, для имени "class ClassX<class ClassA,class ClassB>" функция возвращает "ClassXClassAClassB".
|
||||
// \ru For example, for the name "class ClassX<class ClassA,class ClassB>" the function returns "ClassXClassAClassB".
|
||||
// ---
|
||||
inline const char * pureName( const char * name )
|
||||
{
|
||||
if ( name && *name ) {
|
||||
if ( name[strlen(name) - 1] == '>' ) {
|
||||
return pureTemplateName( name );
|
||||
}
|
||||
|
||||
#ifdef _MSC_VER
|
||||
// \ru убираем ключевые слова "class", "struct" и т.д. в начале строки \en remove the keywords "class", "struct" and so on at the beginning of the string
|
||||
ptrdiff_t i = strlen( name ) - 1;
|
||||
for ( ; i >= 0 && name[i] != ' '; i-- );
|
||||
return ( (i >= 0) && (name[i] == ' ') ) ? &(name[i + 1]) : name;
|
||||
#else // _MSC_VER
|
||||
// \ru убираем длину имени в начале строки \en remove the name length at the beginning of the string
|
||||
for ( size_t i = 0, c = strlen(name); i < c; i++ )
|
||||
if ( !(name[i] >= '0' && name[i] <= '9') )
|
||||
return &( name[i] );
|
||||
#endif // _MSC_VER
|
||||
}
|
||||
return name;
|
||||
}
|
||||
MATH_FUNC( const char * ) pureName( const char * name );
|
||||
|
||||
//----------------------------------------------------------------------------------------
|
||||
/// \ru Упаковать строку(имя класса) в uint16. \en Pack the string (class name) into uint16. \~ \ingroup Base_Tools_IO
|
||||
|
||||
@@ -276,6 +276,7 @@ enum MbResultType {
|
||||
rt_CurveClosedAtStart, ///< \ru Кривая замкнулась в начале. \en The curve has been closed at start point.
|
||||
rt_CurveClosedAtEnd, ///< \ru Кривая замкнулась в конце. \en The curve has been closed at end point.
|
||||
rt_CurveClosedBothSides, ///< \ru Кривая замкнулась с двух сторон. \en The curve has been closed at both sides.
|
||||
rt_BeyondLimitsExtension, ///< \ru Продленная поверхностная кривая вышла за границы поверхности. \en Extended surface curve abandons surface boundary.
|
||||
|
||||
// \ru !!! СТРОКИ ВСТАВЛЯТЬ СТРОГО ПЕРЕД ЭТОЙ СТРОКОЙ !!!! \en !!! INSERT LINES STRICTLY BEFORE THIS LINE !!!!
|
||||
rt_ErrorTotal // \ru НИЖЕ НЕ ДОБАВЛЯТЬ! \en DON'T ADD BELOW!
|
||||
|
||||
@@ -31,7 +31,7 @@
|
||||
class MATH_CLASS MbOrientedBox
|
||||
{
|
||||
private:
|
||||
static constexpr size_t vertNb = 8; ///< \ru Количество вершин параллелепипеда. \en. Number of vertices of the box.\~
|
||||
static constexpr size_t vertNb = 8; ///< \ru Количество вершин параллелепипеда. \en. Number of vertices of the box.\~
|
||||
MbCartPoint3D m_center; ///< \ru Центр параллелепипеда. \en Center of the parallelepiped.\~
|
||||
MbVector3D m_xAxis, m_yAxis, m_zAxis; ///< \ru Ортогонормированная тройка векторов ориентации. \en The orthogonormal triplet of orientation vectors.\~
|
||||
|
||||
|
||||
@@ -1244,6 +1244,7 @@ enum MbePrompt
|
||||
IDS_PROP_1155, // "СК паттерн."
|
||||
IDS_PROP_1156, // "Координата СК паттерна."
|
||||
IDS_PROP_1157, // "Опция масштабируемости паттерна GCM_scale."
|
||||
IDS_PROP_1158, // "Паттерн для пары кривых"
|
||||
IDS_PROP_1199, // The last id for C3D Solver
|
||||
|
||||
// \ru Новые описания без группировки \en New unsorted descriptions
|
||||
|
||||
@@ -148,7 +148,7 @@ public:
|
||||
|
||||
private:
|
||||
MbEmbodimentNode();
|
||||
MbEmbodimentNode( const MbEmbodimentNode * emb );
|
||||
MbEmbodimentNode( const MbEmbodimentNode & emb );
|
||||
};
|
||||
|
||||
//----------------------------------------------------------------------------------------
|
||||
|
||||
@@ -991,8 +991,6 @@ public:
|
||||
MbCurveMate( const MbEdge &, const MbMatrix3D & );
|
||||
/// \ru Конструктор копирования. \en Copy constructor.
|
||||
MbCurveMate( const MbCurveMate & other, MbRegDuplicate * ireg );
|
||||
/// \ru Конструктор копирования. \en Copy cConstructor.
|
||||
MbCurveMate( const MbCurveMate & );
|
||||
|
||||
/// \ru Деструктор. \en Destructor.
|
||||
virtual ~MbCurveMate();
|
||||
@@ -1040,6 +1038,7 @@ private:
|
||||
// \ru Инициализация сопряжения. \en Mating initialization.
|
||||
void InitMating( const MbPatchMating & other );
|
||||
|
||||
OBVIOUS_PRIVATE_COPY( MbCurveMate )
|
||||
DECLARE_PERSISTENT_CLASS( MbCurveMate )
|
||||
};
|
||||
|
||||
|
||||
+24
-14
@@ -46,24 +46,34 @@ struct MbNurbsParameters;
|
||||
class MATH_CLASS MbSurface;
|
||||
namespace c3d // namespace C3D
|
||||
{
|
||||
typedef SPtr<MbSurface> SurfaceSPtr;
|
||||
typedef SPtr<const MbSurface> ConstSurfaceSPtr;
|
||||
typedef SPtr<MbSurface> SurfaceSPtr;
|
||||
typedef SPtr<const MbSurface> ConstSurfaceSPtr;
|
||||
|
||||
typedef std::vector<MbSurface *> SurfacesVector;
|
||||
typedef std::vector<const MbSurface *> ConstSurfacesVector;
|
||||
typedef std::vector<MbSurface *> SurfacesVector;
|
||||
typedef std::vector<const MbSurface *> ConstSurfacesVector;
|
||||
typedef std::set<MbSurface *> SurfacesSet;
|
||||
typedef std::set<const MbSurface *> ConstSurfacesSet;
|
||||
|
||||
typedef std::vector<SurfaceSPtr> SurfacesSPtrVector;
|
||||
typedef std::vector<ConstSurfaceSPtr> ConstSurfacesSPtrVector;
|
||||
typedef std::vector<SurfaceSPtr> SurfacesSPtrVector;
|
||||
typedef std::vector<ConstSurfaceSPtr> ConstSurfacesSPtrVector;
|
||||
typedef std::set<SurfaceSPtr> SurfacesSPtrSet;
|
||||
typedef std::set<ConstSurfaceSPtr> ConstSurfacesSPtrSet;
|
||||
|
||||
typedef std::set<MbSurface *> SurfacesSet;
|
||||
typedef SurfacesSet::iterator SurfacesSetIt;
|
||||
typedef SurfacesSet::const_iterator SurfacesSetConstIt;
|
||||
typedef std::pair<SurfacesSetConstIt, bool> SurfacesSetRet;
|
||||
typedef SurfacesSet::iterator SurfacesSetIt;
|
||||
typedef SurfacesSet::const_iterator SurfacesSetConstIt;
|
||||
typedef std::pair<SurfacesSetConstIt, bool> SurfacesSetRet;
|
||||
|
||||
typedef std::set<const MbSurface *> ConstSurfacesSet;
|
||||
typedef ConstSurfacesSet::iterator ConstSurfacesSetIt;
|
||||
typedef ConstSurfacesSet::const_iterator ConstSurfacesSetConstIt;
|
||||
typedef std::pair<ConstSurfacesSetConstIt, bool> ConstSurfacesSetRet;
|
||||
typedef ConstSurfacesSet::iterator ConstSurfacesSetIt;
|
||||
typedef ConstSurfacesSet::const_iterator ConstSurfacesSetConstIt;
|
||||
typedef std::pair<ConstSurfacesSetConstIt, bool> ConstSurfacesSetRet;
|
||||
|
||||
typedef SurfacesSPtrSet::iterator SurfacesSPtrSetIt;
|
||||
typedef SurfacesSPtrSet::const_iterator SurfacesSPtrSetConstIt;
|
||||
typedef std::pair<SurfacesSPtrSetConstIt, bool> SurfacesSPtrSetRet;
|
||||
|
||||
typedef ConstSurfacesSPtrSet::iterator ConstSurfacesSPtrSetIt;
|
||||
typedef ConstSurfacesSPtrSet::const_iterator ConstSurfacesSPtrSetConstIt;
|
||||
typedef std::pair<ConstSurfacesSPtrSetConstIt, bool> ConstSurfacesSPtrSetRet;
|
||||
}
|
||||
|
||||
|
||||
|
||||
@@ -70,8 +70,16 @@ public:
|
||||
using SPArray<Type>::SetSize;
|
||||
using SPArray<Type>::GetLast;
|
||||
|
||||
using SPArray<Type>::empty;
|
||||
using SPArray<Type>::size;
|
||||
using SPArray<Type>::reserve;
|
||||
using SPArray<Type>::capacity;
|
||||
using SPArray<Type>::begin;
|
||||
|
||||
using SPArray<Type>::end;
|
||||
using SPArray<Type>::front;
|
||||
using SPArray<Type>::back;
|
||||
using SPArray<Type>::clear;
|
||||
using SPArray<Type>::shrink_to_fit;
|
||||
/// \ru Задать метод выбора удаляемого элемента из двух одинаковых. \en Set the selection method of the item to remove from the two identical.
|
||||
void SetLessFunc( LessFuncPtr func ) { m_lessFunc = func; }
|
||||
/// \ru Добавить массив без сортировки. \en Add array without sorting.
|
||||
|
||||
@@ -92,9 +92,13 @@ public:
|
||||
using SSArray<Type>::empty;
|
||||
using SSArray<Type>::size;
|
||||
using SSArray<Type>::reserve;
|
||||
using SSArray<Type>::capacity;
|
||||
using SSArray<Type>::front;
|
||||
using SSArray<Type>::back;
|
||||
using SSArray<Type>::clear;
|
||||
|
||||
using SSArray<Type>::begin;
|
||||
using SSArray<Type>::end;
|
||||
|
||||
void AddNoSort( const Type & ent ) { SSArray<Type>::AddSimple( ent ); m_sort = false; } ///< \ru Добавить элемент без сортировки. \en Add element without sorting.
|
||||
Type * Add ( const Type & ); ///< \ru Добавить элемент с упорядочиванием по массиву. \en Add element with sorting.
|
||||
|
||||
@@ -133,6 +133,8 @@ public: // \ru Стандартные функции контейнерного
|
||||
using RPArray<Type>::begin; //const stored_type * begin() const { return RPArray<Type>::begin(); }
|
||||
///< \ru Получить указатель на участок памяти после массива. \en Get the pointer to the piece of memory after the array.
|
||||
using RPArray<Type>::end; //const stored_type * end() const { return RPArray<Type>::end(); }
|
||||
using RPArray<Type>::front;
|
||||
using RPArray<Type>::back;
|
||||
|
||||
public: // \ru Функции для упрощения перехода на std::vector<SPtr<Type>>. \en Functions to replace this class to std::vector<SPtr<T>>.
|
||||
void push_back( const SPtr<Type> & elem ) { Add(elem.get()); }
|
||||
|
||||
@@ -59,6 +59,16 @@ public:
|
||||
using SArray<size_t>::Reserve;
|
||||
using SArray<size_t>::SetSize;
|
||||
|
||||
using SArray<size_t>::empty;
|
||||
using SArray<size_t>::size;
|
||||
using SArray<size_t>::reserve;
|
||||
using SArray<size_t>::capacity;
|
||||
using SArray<size_t>::begin;
|
||||
using SArray<size_t>::end;
|
||||
using SArray<size_t>::front;
|
||||
using SArray<size_t>::back;
|
||||
using SArray<size_t>::clear;
|
||||
|
||||
Type * Add( size_t ind, size_t * ); // \ru добавить элемент с упорядочиванием по массиву \en add element with sorting
|
||||
size_t Add( Type * ent, size_t * ); // \ru добавить элемент с упорядочиванием по массиву \en add element with sorting
|
||||
|
||||
|
||||
@@ -64,6 +64,8 @@ using FDPArray<Type>::clear;
|
||||
|
||||
using RPArray<Type>::empty;
|
||||
using RPArray<Type>::size;
|
||||
using RPArray<Type>::reserve;
|
||||
using RPArray<Type>::capacity;
|
||||
using RPArray<Type>::begin;
|
||||
using RPArray<Type>::end;
|
||||
using RPArray<Type>::cbegin;
|
||||
|
||||
@@ -75,6 +75,16 @@ public :
|
||||
using PArray<Type>::SetSize;
|
||||
using PArray<Type>::GetLast;
|
||||
|
||||
using PArray<Type>::empty;
|
||||
using PArray<Type>::size;
|
||||
using PArray<Type>::reserve;
|
||||
using PArray<Type>::capacity;
|
||||
using PArray<Type>::begin;
|
||||
using PArray<Type>::end;
|
||||
using PArray<Type>::front;
|
||||
using PArray<Type>::back;
|
||||
using PArray<Type>::clear;
|
||||
|
||||
Type * Add( Type * ); // \ru добавить элемент с упорядочиванием по массиву \en add element with sorting
|
||||
Type * Add( Type *, size_t & indexEnt );// \ru добавить элемент с упорядочиванием по массиву, возвращает индекс \en add element with sorting, returns index of the element.
|
||||
void AddSimple( Type * ent ) { m_sort = false; PArray<Type>::Add( ent ); } // \ru Доступ к функции базового класса - добавить элемент в конец массива \en An access to the function of the base class - add an element to the end of the array
|
||||
|
||||
@@ -50,6 +50,16 @@ public :
|
||||
using PArray<Type>::GetLast;
|
||||
using PArray<Type>::FindIt;
|
||||
|
||||
using PArray<Type>::empty;
|
||||
using PArray<Type>::size;
|
||||
using PArray<Type>::reserve;
|
||||
using PArray<Type>::capacity;
|
||||
using PArray<Type>::begin;
|
||||
using PArray<Type>::end;
|
||||
using PArray<Type>::front;
|
||||
using PArray<Type>::back;
|
||||
using PArray<Type>::clear;
|
||||
|
||||
Type * Add( Type * ); // \ru добавить элемент с упорядочиванием по массиву \en add element with sorting
|
||||
Type * Add( Type *, size_t & indexEnt );// \ru добавить элемент с упорядочиванием по массиву, возвращает индекс \en add element with sorting, returns index of the element
|
||||
|
||||
|
||||
@@ -143,6 +143,12 @@ public:
|
||||
src.m_pI = tmp;
|
||||
return *this;
|
||||
}
|
||||
|
||||
/// \ru Преобразовать к SPtr на другой класс. \en Cast to SPtr to another class.
|
||||
template<typename To>
|
||||
SPtr<To> static_cast_to() {
|
||||
return SPtr<To> { static_cast<To *>(get()) };
|
||||
}
|
||||
};
|
||||
|
||||
|
||||
|
||||
@@ -56,14 +56,19 @@ public:
|
||||
using SArray<Type>::SetSize;
|
||||
using SArray<Type>::SetMaxDelta;
|
||||
|
||||
using SArray<Type>::empty;
|
||||
using SArray<Type>::size;
|
||||
using SArray<Type>::reserve;
|
||||
using SArray<Type>::front;
|
||||
using SArray<Type>::back;
|
||||
using SArray<Type>::capacity;
|
||||
using SArray<Type>::begin;
|
||||
using SArray<Type>::end;
|
||||
using SArray<Type>::erase;
|
||||
using SArray<Type>::cbegin;
|
||||
using SArray<Type>::cend;
|
||||
using SArray<Type>::front;
|
||||
using SArray<Type>::back;
|
||||
using SArray<Type>::clear;
|
||||
using SArray<Type>::erase;
|
||||
using SArray<Type>::shrink_to_fit;
|
||||
|
||||
Type * Add ( const Type & ); // \ru добавить элемент с упорядочиванием по массиву \en add element with sorting
|
||||
Type * Add ( const Type &, size_t & indexEnt ); // \ru добавить элемент с упорядочиванием по массиву, возвращает индекс \en add element with sorting, returns index of the element
|
||||
|
||||
@@ -582,7 +582,9 @@ public:
|
||||
\en Get a pointer to the mutex object.
|
||||
*/
|
||||
CommonRecursiveMutex * GetLock() const;
|
||||
|
||||
protected:
|
||||
MbPersistentNestSyncItem( const MbPersistentNestSyncItem & );
|
||||
MbPersistentNestSyncItem & operator = ( const MbPersistentNestSyncItem & );
|
||||
};
|
||||
|
||||
|
||||
|
||||
@@ -10,6 +10,7 @@
|
||||
#ifndef __TOOL_PROGRESS_INDICATOR_H
|
||||
#define __TOOL_PROGRESS_INDICATOR_H
|
||||
|
||||
#include <tool_cstring.h>
|
||||
|
||||
//------------------------------------------------------------------------------
|
||||
/** \brief \ru Индикатор прогресса выполнения.
|
||||
|
||||
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Reference in New Issue
Block a user