Extern :
- C3d aggiornamento librerie ( 118006).
This commit is contained in:
@@ -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,
|
||||
|
||||
@@ -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;
|
||||
};
|
||||
|
||||
|
||||
|
||||
@@ -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
|
||||
@@ -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 & );
|
||||
|
||||
@@ -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 ();
|
||||
|
||||
@@ -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
|
||||
|
||||
|
||||
@@ -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.
|
||||
|
||||
@@ -158,7 +158,7 @@ public:
|
||||
, _hotPoint ( other._hotPoint )
|
||||
{}
|
||||
/// \ru Деструктор. \en Destructor.
|
||||
~MbOperationResults() {}
|
||||
virtual ~MbOperationResults() {}
|
||||
|
||||
public:
|
||||
/// \ru Функция инициализации. \en Initialization function.
|
||||
|
||||
@@ -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 Хот-точка.
|
||||
|
||||
@@ -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() {}
|
||||
|
||||
@@ -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) );
|
||||
|
||||
@@ -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.
Reference in New Issue
Block a user