- C3d aggiornamento librerie ( 118006).
This commit is contained in:
SaraP
2024-08-07 14:57:35 +02:00
parent acc582883a
commit 05ac02d9d3
16 changed files with 175 additions and 23 deletions
+1
View File
@@ -710,6 +710,7 @@ MATH_FUNC (MbResultType) OctaLattice( const MbOctaLatticeParams & params,
\ingroup Shell_Modeling
*/
// ---
//DEPRECATE_DECLARE_REPLACE ( class MbFaceFilletMaker )
MATH_FUNC( MbResultType ) SectionShell( const c3d::SolidSPtr & solid,
MbeCopyMode sameShell,
const MbSectionData & data,
+3
View File
@@ -17,6 +17,7 @@
#include <conv_predefined.h>
#include <reference_item.h>
#include <conv_requestor.h>
#include <attribute_item.h>
#include <tool_cstring.h>
#include <map>
@@ -360,6 +361,7 @@ struct C3DConverterDebugSettings {
struct CONV_CLASS IProductIdMaker : public MbRefItem
{
virtual c3d::string_t operator()( const MbProductInfo& ) const = 0;
virtual c3d::string_t operator()( const c3d::AttrSPtrVector& ) const = 0;
};
//------------------------------------------------------------------------------
@@ -535,6 +537,7 @@ public:
struct NameProductIdMaker : public IProductIdMaker
{
virtual c3d::string_t operator()( const MbProductInfo& ) const;
virtual c3d::string_t operator()( const c3d::AttrSPtrVector& ) const;
};
+65
View File
@@ -0,0 +1,65 @@
////////////////////////////////////////////////////////////////////////////////
/**
\file
\brief \ru Генератор скруглений граней. \en Maker of faces fillets. \~
*/
////////////////////////////////////////////////////////////////////////////////
#ifndef __CR_FACE_FILLET_MAKER_H
#define __CR_FACE_FILLET_MAKER_H
#include <solid.h>
#include <op_shell_parameter.h>
class MbFilletInternalMaker;
//------------------------------------------------------------------------------
/** \brief \ru Генератор скруглений граней. \en Maker of faces fillets. \~
\details \ru Класс для создания скруглений граней тела.
\en Class for creating fillets of faces. \~
\ingroup Shell_Modeling
\warning \ru В разработке. \en Under development. \~
*/
// ---
class MATH_CLASS MbFaceFilletMaker
{
c3d::SolidSPtr _initSolid; ///< \ru Исходная оболочка. \en Initial shell.
MbFilletInternalMaker * _impl; ///< \ru Реализация алгоритма. \en The algorithm implementation.
public:
/// \ru Способ подрезки базовых объектов скруглением. \en The method for cutting the base objects with the fillet.
enum class MbeModifySolidOption {
noCut, ///< \ru Не модифицировать базовые объекты. \en Do not modify the base objects.
cutFirstFaces, ///< \ru Подрезать только первый набор граней. \en Cut only the first set of faces.
cutSecondFaces, ///< \ru Подрезать только второй набор граней. \en Cut only the second set of faces.
sewAll ///< \ru Подрезать и сшить. \en Cut and sew.
};
public:
/// \ru Конструктор по телу. \en Constructor by a solid.
explicit MbFaceFilletMaker( const c3d::SolidSPtr & solid, MbeCopyMode sameShell, const MbSectionData & data );
/// \ru Конструктор по оболочке. \en Constructor by a shell.
explicit MbFaceFilletMaker( const c3d::ShellSPtr & solid, MbeCopyMode sameShell, const MbSectionData & data );
/// \ru Деструктор. \en Destructor.
~MbFaceFilletMaker();
/// \ru Построить скругления и выдать количество частей (несвязанных оболочек) в результате. \en Create fillets and return a number of non-connected shells in a result.
MbResultType CreateFillets( size_t & partsCount, MbSectionResults & result );
/// \ru Модифицировать базовые объекты указанными частями скругления. Если массив индексов пустой, то выполняется подрезка всеми частями скругления.
/// \en Modify base objects by the defines parts of the fillet. If indices array is empty then performed cutting with the all parts of the fillet.
///
MbResultType ModifyBaseObjects( const c3d::IndicesVector & partsIndicies, MbeModifySolidOption option, MbSectionResults & result );
/// \ru Построить скругления вместе с подрезкой базовых объектов за одну операцию. \en Create fillets together with cutting of base objects in a single operation.
MbResultType CreateFillets( MbeModifySolidOption option, const c3d::IndicesVector & partsIndicies, MbSectionResults & result );
/// \ru Получить параметры построения. \en Get the constructing parameters.
const MbSectionData & GetSectionData() const;
};
#endif // __CR_FACE_FILLET_MAKER_H
+33 -4
View File
@@ -15,9 +15,11 @@
#include <curve3d.h>
#include <name_item.h>
#include <op_swept_parameter.h>
#include <cr_face_fillet_maker.h>
class MATH_CLASS MbFaceShell;
class MATH_CLASS MbFaceFilletMaker;
//------------------------------------------------------------------------------
@@ -30,7 +32,9 @@ class MATH_CLASS MbFaceShell;
// ---
class MATH_CLASS MbSectionShell : public MbCreator {
protected :
MbSectionData sectionData; ///< \ru Данные о поверхности переменного сечения. \en Data about mutable section surface.
MbSectionData sectionData; ///< \ru Данные о поверхности переменного сечения. \en Data about mutable section surface.
MbFaceFilletMaker::MbeModifySolidOption cutOption; ///< \ru Способ подрезки базовых объектов скруглением. \en The method for cutting the base objects with the fillet.
c3d::IndicesVector partsIndicies;///< \ru Индексы частей скругления, которыми подрезать базовые объекты. \en Indices of the fillet parts by which to cut the base objects.
/** \brief \ru Конструктор.
\en Constructor. \~
@@ -39,7 +43,7 @@ protected :
\param[in] names - \ru Именователь грани оболочки.
\en Generating face names. \~
*/
MbSectionShell( const MbSectionData & data );
MbSectionShell( const MbSectionData & data, MbFaceFilletMaker::MbeModifySolidOption option, const c3d::IndicesVector & indices = c3d::IndicesVector() );
private :
MbSectionShell( const MbSectionShell & init, MbRegDuplicate * ireg );
// \ru Объявление конструктора копирования без реализации, чтобы не было копирования по умолчанию. \en Declaration without implementation of the copy-constructor to prevent copying by default.
@@ -80,10 +84,14 @@ public :
/** \ru \name Функции строителя оболочки на поверхности переменного сечения.
\en \name Functions of creator of evolution solid shell.
\{ */
/// \ru Дать параметры. \en Get the parameters.
/// \ru Дать параметры. \en Get the parameters.
const MbSectionData & GetSectionData() { return sectionData; }
MbFaceFilletMaker::MbeModifySolidOption & GetCutOption() { return cutOption; }
const c3d::IndicesVector & GetIndices() { return partsIndicies; }
/// \ru Установить параметры. \en Set the parameters.
void SetSectionData( const MbSectionData & data ) { sectionData = data; }
void SetSectionData( const MbSectionData & data ) { sectionData = data; }
void SetCutOption( MbFaceFilletMaker::MbeModifySolidOption option ) { cutOption = option; }
void SetIndices( const c3d::IndicesVector & indices ) { partsIndicies = indices; }
/** \} */
/** \brief \ru Создать оболочку на поверхности переменного сечения.
@@ -111,6 +119,7 @@ public :
\result \ru Возвращает строитель.
\en Returns the constructor of operation. \~
*/
DEPRECATE_DECLARE_REPLACE( Create with MbFaceFilletMaker )
static
c3d::CreatorSPtr Create( c3d::ShellSPtr & solid,
MbeCopyMode sameShell,
@@ -119,6 +128,26 @@ public :
c3d::ShellSPtr & shell,
MbOperationResults & opResult );
/** \brief \ru Создать оболочку на поверхности переменного сечения.
\en Create a shell on mutable section surface. \~
\details \ru Построить оболочку путём движения образующей кривой по направляющей кривой
и выполнить булеву операцию с оболочкой, если последняя задана. \n
Одновременно с построением оболочки функция создаёт её строитель.\n
\en Create a shell by moving the generating curve along the spine curve
and perform the Boolean operation with the shell if it is specified. \n
The function simultaneously creates the shell and its constructor.\n \~
\param[in] fMaker - \ru Генератор скруглений граней.
\en Maker of faces fillets. \~
\param[in] option - \ru Способ подрезки базовых объектов скруглением.
\en The method for cutting the base objects with the fillet. \~
\param[in] indices - \ru Индексы частей скругления, которыми подрезать базовые объекты. Если массив индексов пустой, то выполняется подрезка всеми частями скругления.
\en Indices of the fillet parts by which to cut the base objects. If indices array is empty then performed cutting with the all parts of the fillet. \~
\result \ru Возвращает строитель.
\en Returns the constructor of operation. \~
*/
static
c3d::CreatorSPtr Create( const MbFaceFilletMaker & fMaker, MbFaceFilletMaker::MbeModifySolidOption option, const c3d::IndicesVector & indices = c3d::IndicesVector() );
private :
// \ru Объявление оператора присваивания без реализации, чтобы не было присваивания по умолчанию. \en The declaration of the assignment operator without implementation to prevent an assignment by default.
void operator = ( const MbSectionShell & );
+33 -2
View File
@@ -235,6 +235,20 @@ enum TapeInit {
};
//----------------------------------------------------------------------------------------
/** \brief \ru \ru Способы обработки атрибутов цвета.
\en The methods of color attributes processing. \~
\details \ru Способы обработки атрибутов цвета в потоке чтения. \n
\en The methods of color attributes processing in a read stream. \n \~
\ingroup Base_Tools_IO
*/ //---
enum class ColorProcessing : uint16 {
cr_Color, ///< \ru Использовать только данные MbColor. \en Use MbColor data only.
cr_Visual, ///< \ru Использовать только данные MbVisual. \en Use MbVisual data only.
cr_Both, ///< \ru Смешивать данные MbVisual и MbColor. \en Mix MbVisual and MbColor data.
};
//------------------------------------------------------------------------------
/** \brief \ru Базовый класс для потоковых классов.
\en Base class for stream classes. \~
@@ -307,12 +321,22 @@ enum TapePointerType {
\ingroup Base_Tools_IO
*/ // ---
class MATH_CLASS tape {
public:
/// \ru Конфигурация потока чтения и записи. \en Configuration of reading and writing stream.
struct Config {
ColorProcessing colorFlag; ///< \ru Способ обработки атрибутов цвета. \en The method of processing color attributes.
Config() : colorFlag( ColorProcessing::cr_Both ) {}
};
protected:
iobuf_Seq & buf; ///< \ru Буфер для данных. \en Buffer for data.
TapeManager & manager; ///< \ru Менеджер потоков. \en Stream manager.
uint8 level; ///< \ru Уровень вложенности при чтении/записи. \en Nesting level while reading/writing.
TapeRegistrator & registrator; ///< \ru Структура для регистрации записанных/прочитанных адресов. \en Structure for registration of written/read addresses.
mutable ProgressBarWrapper * progress; ///< \ru Индикатор прогресса. \en Progress indicator.
Config config; ///< \ru Конфигурация потока. \en The stream configuration.
private:
uint8 ownBuf; ///< \ru Владеет ли буфером. \en Whether it owns the buffer.
bool ownReg; ///< \ru Признак владения регистратором. \en Whether it owns of the registrar.
@@ -401,6 +425,10 @@ public:
/// \ru Завершить индикатор прогресса. \en End the progress indicator.
void FinishProgress();
/// \ru Получить конфигурацию. \en Get configuration.
const Config & GetConfig() const { return config; }
Config & SetConfig() { return config; }
protected:
/// \ru Конструктор. \en Constructor.
tape( membuf &, bool openSys, uint8 om, TapeRegistrator * , bool ownReg = false);
@@ -483,11 +511,14 @@ public:
/// \ru Получить ошибки чтения. \en Get reading errors.
virtual uint32 GetLastError();
// \ru Работа с индикатором прогресса.
// \en Work with progress indicator.
// \ru Работа с индикатором прогресса. \en Work with progress indicator.
void InitProgress( IProgressIndicator * pr );
void InitProgress( ProgressBarWrapper & pr );
// \ru Работа с конфигурацией. \en Work with configuration.
void SetColorFlag( ColorProcessing flag ) { config.colorFlag = flag; }
ColorProcessing GetColorFlag() const { return config.colorFlag; }
protected:
/// \ru Читаем объект по заданной позиции. \en Read object on defined position.
virtual TapeBase * ReadDetachedObject ();
+3 -2
View File
@@ -670,7 +670,8 @@ enum MbeProgBarId_PointsSurface
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.
pBar_SimplifyMesh_byTolerance, ///< \ru Упрощение триангуляции по точности. \en Simplifying triangulation by tolerance.
pBar_AlignObjects ///< \ru Совмещение объектов. \en Object alignment.
};
@@ -880,7 +881,7 @@ enum MbeSideShape {
side_Non = 0, ///< \ru Прямоугольная продлённая без обрезки. \en Rectangular extending without cropping. \~
side_Min = 1, ///< \ru Прямоугольная обрезка по ближнему краю. \en Rectangular cropping on the near edge. \~
side_Max = 2, ///< \ru Прямоугольная обрезка по дальнему краю. \en Rectangular cropping on the far edge. \~
side_Cut = 3, ///< \ru Обрезка по кротчайшей линии. \en Cropping along the shortest line. \~
side_Cut = 3, ///< \ru Обрезка по кратчайшей линии. \en Cropping along the shortest line. \~
side_Tau = 4, ///< \ru Обрезка по кубической линии с ортогональными краями. \en Cropping along a cubic curve with orthogonal edges. \~
}; // MbeSideShape
+1
View File
@@ -696,6 +696,7 @@ enum MbePrompt
IDS_PROP_0297, ///< \ru Установка радиуса для цепочки скруглений. \en Set radius for fillets chain.
IDS_PROP_0298, ///< \ru Удаление цепочек скруглений. \en Fillets chain removal.
IDS_PROP_0299, ///< \ru Поворот выбранных граней без адаптации скруглений. \en Face rotation without fillet adaptation.
IDS_PROP_0300, ///< \ru Перемещение выбранных граней без адаптации скруглений. \en Move selected faces without fillet adaptation.
IDS_PROP_0301, ///< \ru Начальный параметр U. \en Start parameter U.
IDS_PROP_0302, ///< \ru Начальный параметр V. \en Start parameter V.
+1 -1
View File
@@ -158,7 +158,7 @@ public:
, _hotPoint ( other._hotPoint )
{}
/// \ru Деструктор. \en Destructor.
~MbOperationResults() {}
virtual ~MbOperationResults() {}
public:
/// \ru Функция инициализации. \en Initialization function.
+16 -5
View File
@@ -56,6 +56,7 @@ enum MbeModifyingMode {
dmm_Create = 30, ///< \ru Создание тела из выбранных граней с окружением. \en Creation of a solid from the specified faces with the neighborhood.
dmm_MoveFacesByVector = 40, ///< \ru Перемещение выбранных граней с окружением относительно оставшихся граней тела. \en Translation of the specified faces with neighborhood relative to the other faces of the solid.
dmm_MoveFacesByVectorNoAdaptation = 41, ///< \ru Перемещение выбранных граней без адаптации прилегающих скруглений. \en Translation of the specified faces without the adjacent fillets adaptation.
dmm_OffsetFaces = 50, ///< \ru Замена выбранных граней тела эквидистантными гранями (перемещение по нормали, изменение радиуса). \en Replacement of the specified faces of a solid with the offset faces (translation along the normal, change of the radius).
@@ -394,7 +395,8 @@ public:
Удаление замкнутых цилиндрических, сферических граней, граней вращения и выдавливания радиуса меньше заданного
вместе с прилегающими скруглениями dmm_RemoveBelowRadiusWithAdjacentFillets. \n
2. Создание тела из выбранных граней с окружением dmm_Create. \n
3. Перемещение выбранных граней с окружением относительно оставшихся граней тела dmm_MoveFacesByVector.
3. Перемещение выбранных граней с окружением относительно оставшихся граней тела dmm_MoveFacesByVector
или dmm_MoveFacesByVectorNoAdaptation без адаптации скруглений.
Направление и величину перемещения определяет вектор direction. \n
4. Замена выбранных граней тела эквидистантными гранями (перемещение по нормали, изменение радиуса)
dmm_OffsetFaces. Расстояние смещения определяется параметром value.\n
@@ -420,7 +422,8 @@ public:
Remove the close cylindric, spherical faces, extrusion and rotation faces below specified radius
without the adjacent fillets dmm_RemoveBelowRadius.\n
2. Creation of a solid from the specified faces with the neighborhood dmm_Create. \n
3. Translation of the specified faces with neighborhood relative to the other faces of the solid dmm_MoveFacesByVector.
3. Translation of the specified faces with neighborhood relative to the other faces of the solid dmm_MoveFacesByVector or
dmm_MoveFacesByVectorNoAdaptation without fillet adaptation.
The translation direction is defined by the 'direction' vector.\n
4. Replacement of the specified faces by offset faces dmm_OffsetFaces.
The distance of the offset (or radius change) is defined by 'value'. \n
@@ -444,6 +447,7 @@ class MATH_CLASS MbModifiedSolidParams : public MbCollectFacesParams
{
protected:
MbSNameMaker _names; ///< \ru Именователь. \en Name maker.
bool _hotPointsOn; ///< \ru Флаг расчета хот точек. \en Hot points calculation flag.
private:
MbModifiedSolidParams();
@@ -490,8 +494,8 @@ private:
\en Constructor. \~
\details \ru Конструктор по параметрам.
\en Constructor by parameters. \~
\param[in] type - \ru Тип модификации. Для данного конструктора доступны: dmm_MoveFacesByVector.
\en Modification type. Available types for this constructor are: dmm_MoveFacesByVector. \~
\param[in] type - \ru Тип модификации. Для данного конструктора доступны: dmm_MoveFacesByVector, dmm_MoveFacesByVectorNoAdaptation.
\en Modification type. Available types for this constructor are: dmm_MoveFacesByVector, dmm_MoveFacesByVectorNoAdaptation. \~
\param[in] direction - \ru Направление перемещения.
\en Direction for the move. \~
\param[in] names - \ru Именователь операции.
@@ -822,7 +826,13 @@ public:
void SetProperties( const MbProperties & properties ); ///< \ru Записать свойства объекта \en Set properties of the object
/// \ru Являются ли объекты равными? \en Determine whether an object is equal?
bool IsSame( const MbModifiedSolidParams & other, double accuracy ) const { return _names.IsSame( other._names ) && MbCollectFacesParams::IsSame( other, accuracy ); };
bool IsSame( const MbModifiedSolidParams & other, double accuracy ) const;
/// \ru Включен ли расчет хот-точек? \en Is hot points calculation enabled?
bool AreHotPointsOn() const { return _hotPointsOn; };
/// \ru Включить или выключить расчет хот-точек. \en Enable or disable hot points calculation.
void SetHotPointsOn( bool isOn ) { _hotPointsOn = isOn; };
KNOWN_OBJECTS_RW_REF_OPERATORS( MbModifiedSolidParams ); // \ru Для работы со ссылками и объектами класса. \en For working with references and objects of the class.
friend class MATH_CLASS MbFaceModifiedSolid;
@@ -876,6 +886,7 @@ public:
, _surfaces()
, _replacementOptionsNumbers()
{}
~MbModifiedSolidResults() {}
/** \brief \ru Получить нормаль и хот-точку на первой грани для операции по установке радиусов граням скругления.
\en Get normal and hot point on first face for operation of setting radius of fillet faces . \~
\param[in] pnt - \ru Хот-точка.
+7 -2
View File
@@ -785,21 +785,26 @@ private:
size_t _iterationMax; ///< \ru Максимальное количество итераций. \en Maximum iteration count.
std::vector<MbMatrix3D> _hintArray; ///< \ru Набор подсказок от пользователя. \en Hint array given by a user.
public:
mutable IProgressIndicator * _progress; ///< \ru Индикатор прогресса выполнения операции. \en A progress indicator of the operation.
public:
/// \ru Конструктор. \en Constructor.
MbObjectAlignmentParams( MbeIcpHintUsageMode hintUsageMode )
MbObjectAlignmentParams( MbeIcpHintUsageMode hintUsageMode, IProgressIndicator * prog = nullptr )
: _hintUsageMode ( hintUsageMode )
, _pointRejectionMode( MbeIcpPointRejectionMode::automatic )
, _pointPairsMax ( 10000 )
, _iterationMax ( 10000 )
, _progress ( prog )
{}
/// \ru Конструктор. \en Constructor.
MbObjectAlignmentParams( std::vector<MbMatrix3D> hintArray )
MbObjectAlignmentParams( const std::vector<MbMatrix3D> & hintArray, IProgressIndicator * prog = nullptr )
: _hintUsageMode ( MbeIcpHintUsageMode::givenHint )
, _pointRejectionMode( MbeIcpPointRejectionMode::automatic )
, _pointPairsMax ( 10000 )
, _iterationMax ( 10000 )
, _hintArray ( hintArray )
, _progress ( prog )
{}
/// \ru Деструктор. \en Destructor.
~MbObjectAlignmentParams() {}
+5
View File
@@ -2822,6 +2822,8 @@ public:
\en Returns true, if initialization was successful or false otherwise. \~
*/
bool SetShell( const MbFace * f, const MbSolid * s );
/// \ru Задать представление результирующего тела. \en Set representing the resulting body.
void SetOutput( ExtensionOutput out ){ output = out; }
/// \ru Оператор присваивания. \en Assignment operator.
void operator = ( const ExtensionValues & other );
@@ -5999,6 +6001,7 @@ public:
: MbOperationResults( other )
, _solid ( other._solid )
{}
~MbElementarySolidResults() {}
/// \ru Оператор присваивания. \en Assignment operator.
MbElementarySolidResults & operator = ( const MbElementarySolidResults & other ) {
MbOperationResults::operator =( static_cast<const MbOperationResults &>(other) );
@@ -7329,6 +7332,7 @@ public:
: MbOperationResults()
, _resultSolid ()
{}
~MbDraftSolidResults() {}
/// \ru Функция инициализации. \en Initialization function.
void Init( const c3d::SolidSPtr & resultSolid ) {
_resultSolid = resultSolid;
@@ -7372,6 +7376,7 @@ public:
: MbOperationResults( other )
, _solid ( other._solid )
{}
~MbSectionResults() {}
/// \ru Оператор присваивания. \en Assignment operator.
MbSectionResults & operator = ( const MbSectionResults & other ) {
MbOperationResults::operator =( static_cast<const MbOperationResults &>(other) );
+7 -7
View File
@@ -1990,7 +1990,7 @@ public:
Сечение поверхности плоскостью, перпендикулярной опорной кривой, может иметь одну из пяти форм и некоторые из них могут меняться по заданному закону.
Сечение может иметь форму окружности (или её дуги), отрезка прямой, кривой второго порядка, кривой третьего порядка или заданной сплайновой кривой. \n
В качестве примера рассмотрим сечение в форме участка кривой второго порядка.
В этом случае должны быть заданы две напраляющие в виде рёбер MbSectionRail::edges или в виде кривых MbSectionRail::curves.
В этом случае должны быть заданы две направляющие в виде рёбер MbSectionRail::edges или в виде кривых MbSectionRail::curves.
Кривая второго порядка начинается в точке пересечения первой направляющей с плоскостью сечения и
оканчивается в точке пересечения второй направляющей с плоскостью сечения.
Направление кривой второго порядка на краю может быть задано одним из способов:
@@ -2013,7 +2013,7 @@ public:
In this case, you must specify two edges as MbSectionRail::edges or as MbSectionRail::curves.
The second-order curve starts at the intersection of the first guide with the cross-section plane and
ends at the intersection of the second guide with the cross-section plane.
The direction of the second-order curve on the begining or on the end can be set in one of the following ways:
The direction of the second-order curve on the beginning or on the end can be set in one of the following ways:
- the face surface of the edge (s) MbSectionRail::edges, where MbSectionRail::edgeSide specifies the face on the left or on the right;
- surface of the curve (s) MbSectionRail::curves, if the curve has a surface in its data;
- function of the tangent angle MbSectionRail:: angle, the parameter MbSectionRail::state specifies from what the angle is calculated;
@@ -2022,7 +2022,7 @@ public:
The second-order curve discriminant can be set in one of the following ways:
- the function for changing the discriminant MbSectionRule:: discr;
- an additional control curve MbSectionRule::track, the second-order curve should pass through the point of intersection of the control curve with the cross-section plane;
- an additional surface MbSsectionRule::touch that the second-order curve of the section should touch;
- an additional surface MbSectionRule::touch that the second-order curve of the section should touch;
If there are guide curves and their bearing surfaces, the constructed sweep surface is smoothly joined to the bearing surfaces. \n \~
\ingroup Surface_Building_Parameters
*/
@@ -2032,7 +2032,7 @@ class MATH_CLASS MbSectionData : public MbPrecision {
private:
c3d::SpaceCurveSPtr spine; ///< \ru Опорная кривая. \en The reference curve. \~
MbeSectionShape form; ///< \ru Форма сечения поверхности. \en The surface cross-section shape. \~
MbSectionRail rail1; ///< \ru Данные начального края сечения. \en The data of the begining of section. \~
MbSectionRail rail1; ///< \ru Данные начального края сечения. \en The data of the beginning of section. \~
MbSectionRail rail2; ///< \ru Данные конечного края сечения. \en The data of the end of section. \~
c3d::SpaceCurveSPtr apexCurve; ///< \ru Кривая вершин (может отсутствовать). \en The apex curve (may be nullptr). \~
MbeCopyMode copyMode; ///< \ru Способы передачи данных при копировании оболочек. \en Methods of transferring data while copying shells. \~
@@ -2062,7 +2062,7 @@ public:
\param[in] f - \ru Форма сечения поверхности.
\en The surface cross-section shape. \~
\param[in] r1 - \ru Данные начального края сечения.
\en The data of the begining of section. \~
\en The data of the beginning of section. \~
\param[in] r2 - \ru Данные конечного края сечения.
\en The data of the end of section. \~
\param[in] ap - \ru Кривая вершин (может быть nullptr).
@@ -2104,7 +2104,7 @@ public:
/// \ru Установить форму сечения поверхности. \en Set cross-section shape.
void SetSectionForm( MbeSectionShape f ) { form = f; }
///< \ru Данные начального края сечения. \en The data of the begining of section.
///< \ru Данные начального края сечения. \en The data of the beginning of section.
MbSectionRail & GetRrail1() { return rail1; }
///< \ru Данные конечного края сечения. \en The data of the end of section.
MbSectionRail & GetRrail2() { return rail2; }
@@ -2332,7 +2332,7 @@ public:
bool SetEqual ( const MbSectionData & other );
// \ru Найти номера рёбер и граней в оболочке. \en Find the numbers of edges and faces in the shell. \~
bool FindIndex( const MbFaceShell & shell );
// \ru Выдать версию апостьроения. \en Get the build version. \~
// \ru Выдать версию построения. \en Get the build version. \~
VERSION GetVersion() const { return nameMaker.GetMathVersion(); }
/// \ru Оператор присваивания без копирования данных. \en Assignment operator without copying.
void operator = ( const MbSectionData & other );
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.