Extern :
- C3d aggiornamento delle librerie ( 117956).
This commit is contained in:
+44
-22
@@ -108,30 +108,52 @@ MATH_FUNC (MbResultType) CollectFacesForModification( MbFaceShell * shell,
|
||||
/** \brief \ru Модифицировать или построить тело методами прямого моделирования.
|
||||
\en Modify a solid by the methods of direct modeling. \~
|
||||
\details \ru В зависимости от параметров модификации #MbModifiedSolidParams метод выполняет одно из следующих действий: \n
|
||||
1. Удаление из тела выбранных граней с окружением (dmt_Remove). \n
|
||||
2. Создание тела из выбранных граней с окружением (dmt_Create). \n
|
||||
3. Перемещение выбранных граней с окружением относительно оставшихся граней тела (dmt_Action). \n
|
||||
4. Замена выбранных граней тела эквидистантными гранями (перемещение по нормали, изменение радиуса) (dmt_Offset). \n
|
||||
5. Изменение радиуса выбранных граней скругления (dmt_FilletChange). \n
|
||||
6. Замена выбранных граней тела деформируемыми гранями (превращение в NURBS) для редактирования (dmt_Supple). \n
|
||||
7. Удаление выбранных граней скругления тела (dmt_Purify). \n
|
||||
8. Слияние вершин ребёр и удаление рёбер (dmt_Merger). \n
|
||||
9. Замена гладко стыкующихся граней одной гранью (dmt_United). \n
|
||||
10. Поворот выбранных граней (dmt_Rotate). \n
|
||||
11. Удаление из тела скруглений определённого радиуса (dmt_PurifyRange).\n
|
||||
1. Удаление из тела выбранных граней без прилегающих скруглений (dmm_RemoveFaces).\n
|
||||
Удаление грани вместе с прилегающими скруглениями (dmm_RemoveFacesWithAdjacentFillets).\n
|
||||
Удаление замкнутых цилиндрических, сферических граней, граней вращения и выдавливания радиуса меньше заданного
|
||||
без прилегающих скруглений (dmm_RemoveBelowRadius).\n
|
||||
Удаление замкнутых цилиндрических, сферических граней, граней вращения и выдавливания радиуса меньше заданного
|
||||
вместе с прилегающими скруглениями (dmm_RemoveBelowRadiusWithAdjacentFillets). \n
|
||||
2. Создание тела из выбранных граней с окружением (dmm_Create). \n
|
||||
3. Перемещение выбранных граней с окружением относительно оставшихся граней тела (dmm_MoveFacesByVector).
|
||||
Направление и величину перемещения определяет вектор direction. \n
|
||||
4. Замена выбранных граней тела эквидистантными гранями (перемещение по нормали, изменение радиуса)
|
||||
(dmm_OffsetFaces). Расстояние смещения определяется параметром value.\n
|
||||
5. Изменение радиуса выбранных граней скругления на заданную величину (dmm_FilletsRadiusChange).
|
||||
Величина изменения радиуса определяется параметром value.\n
|
||||
6. Замена выбранных граней тела деформируемыми гранями (превращение в NURBS) для редактирования (dmm_ConvertFacesToNurbs). \n
|
||||
7. Удаление выбранных граней скругления тела (dmm_PurifyFillets).
|
||||
Удаление также всех гладко прилегающих скруглений (dmm_PurifyFilletsChains).
|
||||
Удаления всех скруглений тела, меньших определённого радиуса (dmm_PurifyFilletsBelowRadius).\n
|
||||
8. Слияние вершин ребёр и удаление рёбер (dmm_DeleteEdges). \n
|
||||
9. Замена гладко стыкующихся граней одной гранью (dmm_UniteFaces). \n
|
||||
10. Поворот выбранных граней (dmm_RotateFaces). Угол поворота определяется параметром angle,
|
||||
ось поворота определяется осью axis.\n
|
||||
11. Замена выбранных граней тела (dmm_ReplaceFaces).\n
|
||||
Одновременно с построением оболочки функция создаёт её строитель.\n
|
||||
\en The method performs one of the following actions depending on the parameter #MbModifiedSolidParams: \n
|
||||
1. Removal of the specified faces with the neighborhood from a solid (dmt_Remove). \n
|
||||
2. Creation of a solid from the specified faces with the neighborhood (dmt_Create). \n
|
||||
3. Translation of the specified faces with neighborhood relative to the other faces of the solid (dmt_Action). \n
|
||||
4. Replacement of the specified faces by offset faces (dmt_Offset). \n
|
||||
5. Radius change of the specified fillet faces (dmt_FilletChange). \n
|
||||
6. Replacement of the specified faces of a solid with a deformable NURBS faces for editing (dmt_Supple). \n
|
||||
7. Removal of the specified fillet faces from a solid (dmt_Purify). \n
|
||||
8. Edge vertices merging and edges removal (dmt_Merger). \n
|
||||
9. Replacement of the smoothly joined faces with a single face (dmt_United). \n
|
||||
10. Rotation of the chosen faces (dmt_Rotate). \n
|
||||
11. Remove the fillets with specific radius from a solid (dmt_PurifyRange).\n
|
||||
1. Removal of the specified faces without the adjacent fillets (dmm_RemoveFaces).\n
|
||||
Removal of the specified faces with the adjacent fillets (dmm_RemoveFacesWithAdjacentFillets).
|
||||
Removal of the close cylindric, spherical faces, extrusion and rotation faces below specified radius
|
||||
with the adjacent fillets (dmm_RemoveBelowRadiusWithAdjacentFillets).\n
|
||||
Removal of 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).
|
||||
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
|
||||
5. Radius change of the specified fillet faces (dmm_FilletChange).
|
||||
The value of radius change is defined by 'value'.\n
|
||||
6. Replacement of the specified faces of a solid with a deformable NURBS faces for editing (dmm_ConvertFacesToNurbs). \n
|
||||
7. Remove of the specified fillet faces from a solid (dmm_PurifyFillets).
|
||||
Remove of the specified fillet faces with all smoothly connected fillets (dmm_PurifyFilletsChains).
|
||||
Remove of all fillets below specified radius from a solid (dmm_PurifyFilletsBelowRadius).\n
|
||||
8. Edge vertices merging and edges removal (dmm_DeleteEdges). \n
|
||||
9. Replacement of the smoothly joined faces with a single face (dmm_UniteFaces). \n
|
||||
10. Rotation of the chosen faces (dmm_RotateFaces). The parameters are the rotation angle
|
||||
and the rotation axis.\n
|
||||
11. Replacement of the specified faces of a solid (dmm_ReplaceFaces).\n
|
||||
The function simultaneously creates the shell and its constructor.\n \~
|
||||
\param[in] solid - \ru Исходное тело.
|
||||
\en The initial solid. \~
|
||||
|
||||
@@ -1386,6 +1386,24 @@ MATH_FUNC (void) FindFilletFaces( const RPArray<MbFace> & faces,
|
||||
RPArray<MbFace> & filletFaces );
|
||||
|
||||
|
||||
//------------------------------------------------------------------------------
|
||||
/** \brief \ru Распознать грань скругления. \~
|
||||
\en Recognize fillet face. \~
|
||||
\details \ru Если грань является скруглением, то распознать грань скругления. \~
|
||||
\en If face is fillet, then recognize face. \~
|
||||
\param[in] face - \ru Грань для распознавания.
|
||||
\en Face for recognize. \~
|
||||
\param[in] accuracy - \ru Точность для распознавания.
|
||||
\en The accuracy for recognize. \~
|
||||
\return \ru Возвращает true, если грань распознана как скругление, иначе возвращает false.
|
||||
\en Returns true, if face is recognized as a fillet, else returns false. \~
|
||||
\ingroup Solid_Modeling
|
||||
*/
|
||||
// ---
|
||||
MATH_FUNC(bool) IsFilletFace( const MbFace & face,
|
||||
double accuracy );
|
||||
|
||||
|
||||
//------------------------------------------------------------------------------
|
||||
/** \brief \ru Получить трансформированную копию тела. \~
|
||||
\en Get transformed copy of a solid. \~
|
||||
|
||||
@@ -37,6 +37,7 @@ class MATH_CLASS MbMeshToInstanceResults;
|
||||
class MATH_CLASS MbOrientedBox;
|
||||
class MATH_CLASS MbMeshUnwrapParams;
|
||||
class MATH_CLASS MbMeshUnwrapResult;
|
||||
class MATH_CLASS MbObjectAlignmentParams;
|
||||
|
||||
//------------------------------------------------------------------------------
|
||||
/** \brief \ru Данные диагностики полигонального объекта.
|
||||
@@ -742,4 +743,29 @@ MATH_FUNC( MbResultType ) SimplifyTriangularMesh( const MbMeshSimplificationPara
|
||||
*/
|
||||
// ---
|
||||
MATH_FUNC( MbResultType ) UnwrapMesh( const MbMeshUnwrapParams & params, MbMeshUnwrapResult & results );
|
||||
|
||||
|
||||
//------------------------------------------------------------------------------
|
||||
/** \brief \ru Совместить объекты.
|
||||
\en Align objects. \~
|
||||
\detail \ru Совместить два объекта: moving к fixed.
|
||||
\en Align two objects: moving to fixed. \~
|
||||
\param[in] fixed - \ru Объект, к которому выполняем совмещение.
|
||||
\en Object to which another object is aligned. \~
|
||||
\param[in] moving - \ru Объект, для которого находим трансформацию.
|
||||
\en Object which is being aligned. \~
|
||||
\param[in] params - \ru Параметры алгоритма.
|
||||
\en Parameters. \~
|
||||
\param[out] matrix - \ru Трансформация, необходимая для выравнивания.
|
||||
\en Transformation needed for alignment. \~
|
||||
\return \ru Код результата операции.
|
||||
\en Returns the operation result code. \~
|
||||
\warning \ru В разработке.
|
||||
\en Under development. \~
|
||||
*/ // ---
|
||||
MATH_FUNC( MbResultType ) AlignObjects( const MbItem & fixed,
|
||||
const MbItem & moving,
|
||||
const MbObjectAlignmentParams & params,
|
||||
MbMatrix3D & matrix );
|
||||
|
||||
#endif // __ACTION_MESH_H
|
||||
|
||||
@@ -135,7 +135,7 @@ MATH_FUNC (MbResultType) SmoothPhantom( const MbSmoothPhantomParams & params,
|
||||
*/
|
||||
|
||||
// ---
|
||||
// DEPRECATE_DECLARE_REPLACE( SmoothSequence with MbSmoothSequenceParams )
|
||||
DEPRECATE_DECLARE_REPLACE( SmoothSequence with MbSmoothSequenceParams )
|
||||
MATH_FUNC (MbResultType) SmoothSequence( const MbSolid & solid,
|
||||
RPArray<MbCurveEdge> & edges,
|
||||
const SmoothValues & params,
|
||||
@@ -170,7 +170,7 @@ MATH_FUNC (MbResultType) SmoothSequence( const MbSolid & solid,
|
||||
\ingroup Algorithms_3D
|
||||
*/
|
||||
// ---
|
||||
// DEPRECATE_DECLARE_REPLACE( SmoothSequence with MbSmoothSequenceParams )
|
||||
DEPRECATE_DECLARE_REPLACE( SmoothSequence with MbSmoothSequenceParams )
|
||||
MATH_FUNC (MbResultType) SmoothSequence( const MbSolid & solid,
|
||||
SArray<MbEdgeFunction> & edges,
|
||||
const SmoothValues & params,
|
||||
@@ -341,7 +341,7 @@ MATH_FUNC (MbResultType) SmoothPositionData( const MbSolid & sol
|
||||
\ingroup Algorithms_3D
|
||||
*/
|
||||
// ---
|
||||
// DEPRECATE_DECLARE_REPLACE( SmoothPositionData with MbSmoothPositionDataParams )
|
||||
DEPRECATE_DECLARE_REPLACE( SmoothPositionData with MbSmoothPositionDataParams )
|
||||
MATH_FUNC (MbResultType) SmoothPositionData( const MbSolid & solid,
|
||||
SArray<MbEdgeFunction> & edges,
|
||||
const SmoothValues & params,
|
||||
|
||||
@@ -1051,12 +1051,40 @@ MATH_FUNC (MbResultType) OctaLattice( const MbOctaLatticeParams & params,
|
||||
\ingroup Shell_Modeling
|
||||
*/
|
||||
// ---
|
||||
//DEPRECATE_DECLARE_REPLACE( SectionShell with 'MbSectionResults' argument )
|
||||
MATH_FUNC( MbResultType ) SectionShell( const c3d::SolidSPtr & solid,
|
||||
MbeCopyMode sameShell,
|
||||
const MbSectionData & data,
|
||||
c3d::SolidSPtr & result );
|
||||
|
||||
|
||||
//------------------------------------------------------------------------------
|
||||
/** \brief \ru Построить оболочку на поверхности переменного сечения.
|
||||
\en Create a shell on swept mutable section surface. \~
|
||||
\details \ru Построить грань тела путём движения образующей кривой по направляющей кривой
|
||||
и выполнить булеву операцию с оболочкой, если последняя задана. \n
|
||||
Одновременно с построением оболочки функция создаёт её строитель.\n
|
||||
\en Create a face of 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] solid - \ru Оболочка, к которой дополняется построение.
|
||||
\en The shell the construction is complemented with respect to. \~
|
||||
\param[in] sameShell - \ru Способ копирования граней оболочки.
|
||||
\en The method of copying faces of shell. \~
|
||||
\param[in] data - \ru Данные о поверхности переменного сечения.
|
||||
\en Data about swept mutable section surface. \~
|
||||
\param[out] opResult - \ru Результаты построения.
|
||||
\en Operation results. \~
|
||||
\result \ru Возвращает код результата операции.
|
||||
\en Returns operation result code. \~
|
||||
\ingroup Shell_Modeling
|
||||
*/
|
||||
// ---
|
||||
MATH_FUNC( MbResultType ) SectionShell( const c3d::SolidSPtr & solid,
|
||||
MbeCopyMode sameShell,
|
||||
const MbSectionData & data,
|
||||
MbSectionResults & opResult );
|
||||
|
||||
//------------------------------------------------------------------------------
|
||||
/** \brief \ru Построить оболочку на поверхности переменного сечения.
|
||||
\en Create a shell on swept mutable section surface. \~
|
||||
@@ -1081,7 +1109,7 @@ MATH_FUNC( MbResultType ) SectionShell( const c3d::SolidSPtr & solid,
|
||||
\ingroup Shell_Modeling
|
||||
*/
|
||||
// ---
|
||||
DEPRECATE_DECLARE_REPLACE( SectionShell with 'MbSectionData' argument )
|
||||
DEPRECATE_DECLARE_REPLACE( SectionShell with 'MbSectionResults' argument )
|
||||
MATH_FUNC( MbResultType ) SectionShell( MbSolid * solid,
|
||||
MbeCopyMode sameShell,
|
||||
const MbSectionData & data,
|
||||
|
||||
@@ -505,7 +505,7 @@ MATH_FUNC (MbResultType) RevolutionSolid( const MbSweptData & sweptDat
|
||||
\ingroup Solid_Modeling
|
||||
*/
|
||||
// ---
|
||||
//DEPRECATE_DECLARE_REPLACE( EvolutionShell with 'MbEvolutionShellParams' argument )
|
||||
DEPRECATE_DECLARE_REPLACE( EvolutionShell with 'MbEvolutionShellParams' argument )
|
||||
MATH_FUNC (MbResultType) EvolutionSolid( const MbSweptData & sweptData,
|
||||
const MbCurve3D & spine,
|
||||
const EvolutionValues & params,
|
||||
@@ -539,7 +539,7 @@ MATH_FUNC (MbResultType) EvolutionSolid( const MbSweptData & sweptData
|
||||
\ingroup Solid_Modeling
|
||||
*/
|
||||
// ---
|
||||
//DEPRECATE_DECLARE_REPLACE( EvolutionShell with 'MbEvolutionShellParams' argument )
|
||||
DEPRECATE_DECLARE_REPLACE( EvolutionShell with 'MbEvolutionShellParams' argument )
|
||||
MATH_FUNC (MbResultType) EvolutionSolid( const MbSweptData & sweptData,
|
||||
const MbSpine & spine,
|
||||
const EvolutionValues & params,
|
||||
@@ -901,7 +901,7 @@ MATH_FUNC (MbCurve3D *) TrimClosedSpine( const MbCurve3D & curve,
|
||||
\ingroup Solid_Modeling
|
||||
*/
|
||||
// ---
|
||||
//DEPRECATE_DECLARE_REPLACE( EvolutionResult with 'MbEvolutionShellParams' argument )
|
||||
DEPRECATE_DECLARE_REPLACE( EvolutionResult with 'MbEvolutionShellParams' argument )
|
||||
MATH_FUNC(MbResultType) EvolutionResult( MbSolid & solid,
|
||||
MbeCopyMode sameShell,
|
||||
const MbSweptData & sweptData,
|
||||
|
||||
+252
-84
@@ -651,11 +651,20 @@ typedef MbMinMaxItemItemDistances<MbCartPoint, MbCartPoint> MbMinMaxSurfSurfDist
|
||||
\ingroup Algorithms_3D
|
||||
*/ // ---
|
||||
class MATH_CLASS MbMinMaxGridDistancesParams {
|
||||
public:
|
||||
/// \ru Режим проецирования сетки базового объекта на целевой объект. \en Projection mode of the base object grid onto the target object.
|
||||
enum class ProjectionMode
|
||||
{
|
||||
om_Radiance = 0, /// \ru Поиск экстремальных расстояний по нормали к базовому объекту. \en Search for extreme distances along the normal to the base object. \~
|
||||
om_NearestDistance = 1, /// \ru Поиск экстремальных расстояний по нормали к целевому объекту. \en Search for extreme distances along the normal to the target object. \~
|
||||
om_SpecifiedDirection = 2 /// \ru Поиск экстремальных расстояний в заданном направлении. \en Search for extreme distances in a given direction. \~
|
||||
};
|
||||
|
||||
public:
|
||||
c3d::ConstSpaceItemSPtr srcItem; ///< \ru Базовый объект (кривая или поверхность). \en Base object (curve or surface). \~
|
||||
c3d::IndicesPair srcSplitsCount; ///< \ru Количество разбиений (точек). \en Number of partitions (points). \~
|
||||
c3d::ConstSpaceItemSPtr dstItem; ///< \ru Целевой объект (кривая или поверхность). \en Target object (curve or surface). \~
|
||||
MbVector3D projDirection; ///< \ru Вектор заданного направления (если нет, то по нормали). \en he vector of direction (if not set then by the normal). \~
|
||||
MbVector3D projDirection; ///< \ru Вектор заданного направления (если нет, то по нормали). \en The vector of direction (if not set then by the normal). \~
|
||||
MbeSenseValue projOrient; ///< \ru Относительное направление поиска. \en Relative search direction. \~
|
||||
bool useEqualDistances; ///< \ru Оставлять равные расстояния. \en Whether to use the equal distances. \~
|
||||
size_t desiredMinimaNumber; ///< \ru Желаемое число выдаваемых минимумов. \en Desired minima number.
|
||||
@@ -663,68 +672,187 @@ public:
|
||||
VERSION version; ///< \ru Версия. \en Version.
|
||||
private:
|
||||
mutable IProgressIndicator * progress; ///< \ru Индикатор прогресса выполнения операции. \en A progress indicator of the operation.
|
||||
ProjectionMode projectionMode; ///< \ru Режим проецирования сетки базового объекта на целевой объект. \en Projection mode of the base object grid onto the target object.
|
||||
private:
|
||||
MbMinMaxGridDistancesParams(); // \ru Не реализовано. \en Not implemented.
|
||||
|
||||
public:
|
||||
/// \ru Конструктор по параметрам. \en Constructor by parameters.
|
||||
MbMinMaxGridDistancesParams( const MbSurface & srcSurface,
|
||||
size_t srcUCnt,
|
||||
size_t srcVCnt,
|
||||
const MbSurface & dstSurface,
|
||||
VERSION ver = Math::DefaultMathVersion() )
|
||||
: srcItem ( &srcSurface )
|
||||
, srcSplitsCount ( srcUCnt, srcVCnt )
|
||||
, dstItem ( &dstSurface )
|
||||
, projDirection ( )
|
||||
, projOrient ( orient_BOTH )
|
||||
, useEqualDistances ( false )
|
||||
, desiredMinimaNumber( 1 )
|
||||
, desiredMaximaNumber( 1 )
|
||||
, version ( ver )
|
||||
, progress ( nullptr )
|
||||
/** \brief \ru Конструктор по параметрам.
|
||||
\en Constructor by parameters. \~
|
||||
\details \ru Конструктор параметров операции для измерения экстремальных расстояний между поверхностями. Режим проецирования - по нормали к базовой поверхности.
|
||||
\en Constructor of operation parameters for measuring extreme distances between surfaces. The projection mode is along the normal to the base surface. \~
|
||||
\param[in] srcSurface - \ru Базовая поверхность.
|
||||
\en Base surface. \~
|
||||
\param[in] srcUCnt - \ru Количество разбиений базовой поверхности по U.
|
||||
\en Number of partitions of the base surface in U. \~
|
||||
\param[in] srcVCnt - \ru Количество разбиений базовой поверхности по V.
|
||||
\en Number of partitions of the base surface in V. \~
|
||||
\param[in] dstSurface - \ru Целевая поверхность.
|
||||
\en Target surface. \~
|
||||
\param[in] ver - \ru Версия операции.
|
||||
\en Operation version. \~
|
||||
*/
|
||||
MbMinMaxGridDistancesParams( const MbSurface & srcSurface,
|
||||
size_t srcUCnt,
|
||||
size_t srcVCnt,
|
||||
const MbSurface & dstSurface,
|
||||
VERSION ver = Math::DefaultMathVersion() )
|
||||
: srcItem ( &srcSurface )
|
||||
, srcSplitsCount ( srcUCnt, srcVCnt )
|
||||
, dstItem ( &dstSurface )
|
||||
, projDirection ( )
|
||||
, projOrient ( orient_BOTH )
|
||||
, useEqualDistances ( false )
|
||||
, desiredMinimaNumber( 1 )
|
||||
, desiredMaximaNumber( 1 )
|
||||
, version ( ver )
|
||||
, progress ( nullptr )
|
||||
, projectionMode ( ProjectionMode::om_Radiance )
|
||||
{}
|
||||
/// \ru Конструктор по параметрам. \en Constructor by parameters.
|
||||
MbMinMaxGridDistancesParams( const MbSurface & srcSurface,
|
||||
size_t srcUCnt,
|
||||
size_t srcVCnt,
|
||||
const MbVector3D * dir,
|
||||
const MbeSenseValue & orient,
|
||||
bool useEqualDists,
|
||||
const MbSurface & dstSurface,
|
||||
size_t nMin,
|
||||
size_t nMax,
|
||||
VERSION ver = Math::DefaultMathVersion() )
|
||||
: srcItem ( &srcSurface )
|
||||
, srcSplitsCount ( srcUCnt, srcVCnt )
|
||||
, dstItem ( &dstSurface )
|
||||
, projDirection ( )
|
||||
, projOrient ( orient )
|
||||
, useEqualDistances ( useEqualDists )
|
||||
, desiredMinimaNumber( nMin )
|
||||
, desiredMaximaNumber( nMax )
|
||||
, version ( ver )
|
||||
, progress ( nullptr )
|
||||
/** \brief \ru Конструктор по параметрам.
|
||||
\en Constructor by parameters. \~
|
||||
\details \ru Конструктор параметров операции для измерения экстремальных расстояний между поверхностями. Если не задан вектор направления, то режим проецирования - по нормали к базовой поверхности.
|
||||
\en Constructor of operation parameters for measuring extreme distances between surfaces. If the direction vector is not specified, then the projection mode is normal to the base surface. \~
|
||||
\param[in] srcSurface - \ru Базовая поверхность.
|
||||
\en Base surface. \~
|
||||
\param[in] srcUCnt - \ru Количество разбиений базовой поверхности по U.
|
||||
\en Number of partitions of the base surface in U. \~
|
||||
\param[in] srcVCnt - \ru Количество разбиений базовой поверхности по V.
|
||||
\en Number of partitions of the base surface in V. \~
|
||||
\param[in] dir - \ru Вектор заданного направления (если нет, то по нормали).
|
||||
\en The vector of direction (if not set then by the normal). \~
|
||||
\param[in] orient - \ru Относительное направление поиска.
|
||||
\en Relative search direction. \~
|
||||
\param[in] useEqualDists - \ru Оставлять равные расстояния.
|
||||
\en Whether to use the equal distances. \~
|
||||
\param[in] dstSurface - \ru Целевая поверхность.
|
||||
\en Target surface. \~
|
||||
\param[in] nMin - \ru Желаемое число выдаваемых минимумов.
|
||||
\en Desired minima number. \~
|
||||
\param[in] nMax - \ru Желаемое число выдаваемых максимумов.
|
||||
\en Desired maxima number. \~
|
||||
\param[in] ver - \ru Версия операции.
|
||||
\en Operation version. \~
|
||||
*/
|
||||
MbMinMaxGridDistancesParams( const MbSurface & srcSurface,
|
||||
size_t srcUCnt,
|
||||
size_t srcVCnt,
|
||||
const MbVector3D * dir,
|
||||
const MbeSenseValue & orient,
|
||||
bool useEqualDists,
|
||||
const MbSurface & dstSurface,
|
||||
size_t nMin,
|
||||
size_t nMax,
|
||||
VERSION ver = Math::DefaultMathVersion() )
|
||||
: srcItem ( &srcSurface )
|
||||
, srcSplitsCount ( srcUCnt, srcVCnt )
|
||||
, dstItem ( &dstSurface )
|
||||
, projDirection ( )
|
||||
, projOrient ( orient )
|
||||
, useEqualDistances ( useEqualDists )
|
||||
, desiredMinimaNumber( nMin )
|
||||
, desiredMaximaNumber( nMax )
|
||||
, version ( ver )
|
||||
, progress ( nullptr )
|
||||
, projectionMode ( ProjectionMode::om_Radiance )
|
||||
{
|
||||
SetProjectionDirection( dir, orient );
|
||||
if ( dir != nullptr )
|
||||
projectionMode = ProjectionMode::om_SpecifiedDirection;
|
||||
}
|
||||
/// \ru Конструктор по параметрам. \en Constructor by parameters.
|
||||
/** \brief \ru Конструктор по параметрам.
|
||||
\en Constructor by parameters. \~
|
||||
\details \ru Конструктор параметров операции для измерения экстремальных расстояний между поверхностями. Режим проецирования - по нормали к целевой поверхности.
|
||||
\en Constructor of operation parameters for measuring extreme distances between surfaces. Projection mode is along the normal to the target surface. \~
|
||||
\param[in] srcSurface - \ru Базовая поверхность.
|
||||
\en Base surface. \~
|
||||
\param[in] srcUCnt - \ru Количество разбиений базовой поверхности по U.
|
||||
\en Number of partitions of the base surface in U. \~
|
||||
\param[in] srcVCnt - \ru Количество разбиений базовой поверхности по V.
|
||||
\en Number of partitions of the base surface in V. \~
|
||||
\param[in] useEqualDists - \ru Оставлять равные расстояния.
|
||||
\en Whether to use the equal distances. \~
|
||||
\param[in] dstSurface - \ru Целевая поверхность.
|
||||
\en Target surface. \~
|
||||
\param[in] nMin - \ru Желаемое число выдаваемых минимумов.
|
||||
\en Desired minima number. \~
|
||||
\param[in] nMax - \ru Желаемое число выдаваемых максимумов.
|
||||
\en Desired maxima number. \~
|
||||
\param[in] ver - \ru Версия операции.
|
||||
\en Operation version. \~
|
||||
*/
|
||||
MbMinMaxGridDistancesParams( const MbSurface & srcSurface,
|
||||
size_t srcUCnt,
|
||||
size_t srcVCnt,
|
||||
bool useEqualDists,
|
||||
const MbSurface & dstSurface,
|
||||
size_t nMin,
|
||||
size_t nMax,
|
||||
VERSION ver = Math::DefaultMathVersion() )
|
||||
: srcItem ( &srcSurface )
|
||||
, srcSplitsCount ( srcUCnt, srcVCnt )
|
||||
, dstItem ( &dstSurface )
|
||||
, projDirection ( )
|
||||
, projOrient ( )
|
||||
, useEqualDistances ( useEqualDists )
|
||||
, desiredMinimaNumber( nMin )
|
||||
, desiredMaximaNumber( nMax )
|
||||
, version ( ver )
|
||||
, progress ( nullptr )
|
||||
, projectionMode ( ProjectionMode::om_NearestDistance )
|
||||
{}
|
||||
/** \brief \ru Конструктор по параметрам.
|
||||
\en Constructor by parameters. \~
|
||||
\details \ru Конструктор параметров операции для измерения экстремальных расстояний между кривой и поверхностью. Режим проецирования - по нормали к целевой поверхности.
|
||||
\en Constructor of operation parameters for measuring extreme distances between the curve and the surface. The projection mode is along the normal to the target surface. \~
|
||||
\param[in] srcCurve - \ru Базовая кривая.
|
||||
\en Base curve. \~
|
||||
\param[in] srcTCnt - \ru Количество разбиений базовой кривой.
|
||||
\en Number of partitions of the base curve. \~
|
||||
\param[in] dstSurface - \ru Целевая поверхность.
|
||||
\en Target surface. \~
|
||||
\param[in] ver - \ru Версия операции.
|
||||
\en Operation version. \~
|
||||
*/
|
||||
MbMinMaxGridDistancesParams( const MbCurve3D & srcCurve,
|
||||
size_t srcTCnt,
|
||||
const MbSurface & dstSurface,
|
||||
VERSION ver = Math::DefaultMathVersion() )
|
||||
: srcItem ( &srcCurve )
|
||||
, srcSplitsCount ( srcTCnt, 0 )
|
||||
, dstItem ( &dstSurface )
|
||||
, projDirection ( )
|
||||
, projOrient ( orient_BOTH )
|
||||
, useEqualDistances ( false )
|
||||
, desiredMinimaNumber( 1 )
|
||||
, desiredMaximaNumber( 1 )
|
||||
, version ( ver )
|
||||
, progress ( nullptr )
|
||||
: srcItem ( &srcCurve )
|
||||
, srcSplitsCount ( srcTCnt, 0 )
|
||||
, dstItem ( &dstSurface )
|
||||
, projDirection ( )
|
||||
, projOrient ( orient_BOTH )
|
||||
, useEqualDistances ( false )
|
||||
, desiredMinimaNumber( 1 )
|
||||
, desiredMaximaNumber( 1 )
|
||||
, version ( ver )
|
||||
, progress ( nullptr )
|
||||
, projectionMode ( ProjectionMode::om_NearestDistance )
|
||||
{}
|
||||
/// \ru Конструктор по параметрам. \en Constructor by parameters.
|
||||
/** \brief \ru Конструктор по параметрам.
|
||||
\en Constructor by parameters. \~
|
||||
\details \ru Конструктор параметров операции для измерения экстремальных расстояний между кривой и поверхностью. Если не задан вектор направления, то режим проецирования - по нормали к целевой поверхности.
|
||||
\en Constructor of operation parameters for measuring extreme distances between the curve and the surface. If the direction vector is not specified, then the projection mode is normal to the target surface. \~
|
||||
\param[in] srcCurve - \ru Базовая кривая.
|
||||
\en Base curve. \~
|
||||
\param[in] srcTCnt - \ru Количество разбиений базовой кривой.
|
||||
\en Number of partitions of the base curve. \~
|
||||
\param[in] dir - \ru Вектор заданного направления (если нет, то по нормали).
|
||||
\en The vector of direction (if not set then by the normal). \~
|
||||
\param[in] orient - \ru Относительное направление поиска.
|
||||
\en Relative search direction. \~
|
||||
\param[in] useEqualDists - \ru Оставлять равные расстояния.
|
||||
\en Whether to use the equal distances. \~
|
||||
\param[in] dstSurface - \ru Целевая поверхность.
|
||||
\en Target surface. \~
|
||||
\param[in] nMin - \ru Желаемое число выдаваемых минимумов.
|
||||
\en Desired minima number. \~
|
||||
\param[in] nMax - \ru Желаемое число выдаваемых максимумов.
|
||||
\en Desired maxima number. \~
|
||||
\param[in] ver - \ru Версия операции.
|
||||
\en Operation version. \~
|
||||
*/
|
||||
MbMinMaxGridDistancesParams( const MbCurve3D & srcCurve,
|
||||
size_t srcTCnt,
|
||||
const MbVector3D * dir,
|
||||
@@ -734,36 +862,72 @@ public:
|
||||
size_t nMin,
|
||||
size_t nMax,
|
||||
VERSION ver = Math::DefaultMathVersion() )
|
||||
: srcItem ( &srcCurve )
|
||||
, srcSplitsCount ( srcTCnt, 0 )
|
||||
, dstItem ( &dstSurface )
|
||||
, projDirection ( )
|
||||
, projOrient ( orient )
|
||||
, useEqualDistances ( useEqualDists )
|
||||
, desiredMinimaNumber( nMin )
|
||||
, desiredMaximaNumber( nMax )
|
||||
, version ( ver )
|
||||
, progress ( nullptr )
|
||||
: srcItem ( &srcCurve )
|
||||
, srcSplitsCount ( srcTCnt, 0 )
|
||||
, dstItem ( &dstSurface )
|
||||
, projDirection ( )
|
||||
, projOrient ( orient )
|
||||
, useEqualDistances ( useEqualDists )
|
||||
, desiredMinimaNumber( nMin )
|
||||
, desiredMaximaNumber( nMax )
|
||||
, version ( ver )
|
||||
, progress ( nullptr )
|
||||
, projectionMode ( ProjectionMode::om_NearestDistance )
|
||||
{
|
||||
SetProjectionDirection( dir, orient );
|
||||
if ( dir != nullptr )
|
||||
projectionMode = ProjectionMode::om_SpecifiedDirection;
|
||||
}
|
||||
/// \ru Конструктор по параметрам. \en Constructor by parameters.
|
||||
/** \brief \ru Конструктор по параметрам.
|
||||
\en Constructor by parameters. \~
|
||||
\details \ru Конструктор параметров операции для измерения экстремальных расстояний между кривыми. Режим проецирования - по нормали к целевой кривой.
|
||||
\en Constructor of operation parameters for measuring extreme distances between curves. The projection mode is along the normal to the target curve. \~
|
||||
\param[in] srcCurve - \ru Базовая кривая.
|
||||
\en Base curve. \~
|
||||
\param[in] srcTCnt - \ru Количество разбиений базовой кривой.
|
||||
\en Number of partitions of the base curve. \~
|
||||
\param[in] dstCurve - \ru Целевая кривая.
|
||||
\en Target curve. \~
|
||||
\param[in] ver - \ru Версия операции.
|
||||
\en Operation version. \~
|
||||
*/
|
||||
MbMinMaxGridDistancesParams( const MbCurve3D & srcCurve,
|
||||
size_t srcTCnt,
|
||||
const MbCurve3D & dstCurve,
|
||||
size_t srcTCnt,
|
||||
const MbCurve3D & dstCurve,
|
||||
VERSION ver = Math::DefaultMathVersion() )
|
||||
: srcItem ( &srcCurve )
|
||||
, srcSplitsCount ( srcTCnt, 0 )
|
||||
, dstItem ( &dstCurve )
|
||||
, projDirection ( )
|
||||
, projOrient ( orient_BOTH )
|
||||
, useEqualDistances ( false )
|
||||
, desiredMinimaNumber( 1 )
|
||||
, desiredMaximaNumber( 1 )
|
||||
, version ( ver )
|
||||
, progress ( nullptr )
|
||||
: srcItem ( &srcCurve )
|
||||
, srcSplitsCount ( srcTCnt, 0 )
|
||||
, dstItem ( &dstCurve )
|
||||
, projDirection ( )
|
||||
, projOrient ( orient_BOTH )
|
||||
, useEqualDistances ( false )
|
||||
, desiredMinimaNumber( 1 )
|
||||
, desiredMaximaNumber( 1 )
|
||||
, version ( ver )
|
||||
, progress ( nullptr )
|
||||
, projectionMode ( ProjectionMode::om_NearestDistance )
|
||||
{}
|
||||
/// \ru Конструктор по параметрам. \en Constructor by parameters.
|
||||
/** \brief \ru Конструктор по параметрам.
|
||||
\en Constructor by parameters. \~
|
||||
\details \ru Конструктор параметров операции для измерения экстремальных расстояний между кривыми. Режим проецирования - либо по нормали к целевой кривой, либо в плоскости, перпендикулярной касательной базовой кривой.
|
||||
\en Constructor of operation parameters for measuring extreme distances between curves. Projection mode - either normal to the target curve, or in a plane perpendicular to the tangent of the base curve. \~
|
||||
\param[in] srcSurface - \ru Базовая кривая.
|
||||
\en Base curve. \~
|
||||
\param[in] srcTCnt - \ru Количество разбиений базовой кривой.
|
||||
\en Number of partitions of the base curve. \~
|
||||
\param[in] useEqualDists - \ru Оставлять равные расстояния.
|
||||
\en Whether to use the equal distances. \~
|
||||
\param[in] byNormal - \ru byNormal = true задает режим проецирования по нормали к целевой кривой.
|
||||
\en byNormal = true sets the projection mode normal to the target curve. \~
|
||||
\param[in] dstCurve - \ru Целевая кривая.
|
||||
\en Target curve. \~
|
||||
\param[in] nMin - \ru Желаемое число выдаваемых минимумов.
|
||||
\en Desired minima number. \~
|
||||
\param[in] nMax - \ru Желаемое число выдаваемых максимумов.
|
||||
\en Desired maxima number. \~
|
||||
\param[in] ver - \ru Версия операции.
|
||||
\en Operation version. \~
|
||||
*/
|
||||
MbMinMaxGridDistancesParams( const MbCurve3D & srcCurve,
|
||||
size_t srcTCnt,
|
||||
bool useEqualDists,
|
||||
@@ -772,20 +936,22 @@ public:
|
||||
size_t nMin,
|
||||
size_t nMax,
|
||||
VERSION ver = Math::DefaultMathVersion() )
|
||||
: srcItem ( &srcCurve )
|
||||
, srcSplitsCount ( srcTCnt, 0 )
|
||||
, dstItem ( &dstCurve )
|
||||
, projDirection ( )
|
||||
, projOrient ( orient_FORWARD )
|
||||
, useEqualDistances ( useEqualDists )
|
||||
, desiredMinimaNumber( nMin )
|
||||
, desiredMaximaNumber( nMax )
|
||||
, version ( ver )
|
||||
, progress ( nullptr )
|
||||
: srcItem ( &srcCurve )
|
||||
, srcSplitsCount ( srcTCnt, 0 )
|
||||
, dstItem ( &dstCurve )
|
||||
, projDirection ( )
|
||||
, projOrient ( orient_FORWARD )
|
||||
, useEqualDistances ( useEqualDists )
|
||||
, desiredMinimaNumber( nMin )
|
||||
, desiredMaximaNumber( nMax )
|
||||
, version ( ver )
|
||||
, progress ( nullptr )
|
||||
, projectionMode ( ProjectionMode::om_NearestDistance )
|
||||
{
|
||||
if ( !byNormal ) {
|
||||
MbVector3D vect( 1.0, 1.0, 1.0 );
|
||||
SetProjectionDirection( &vect, orient_FORWARD );
|
||||
projectionMode = ProjectionMode::om_Radiance;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -794,6 +960,8 @@ public:
|
||||
const MbSpaceItem & GetBaseItem () const { return *srcItem; }
|
||||
/// \ru Получить целевой объект. \en Get target object.
|
||||
const MbSpaceItem & GetTargetItem() const { return *dstItem; }
|
||||
/// \ru Получить режим проецирования. \en Get projection mode.
|
||||
const ProjectionMode & GetProjectionMode() const { return projectionMode; }
|
||||
/// \ru Получить количество разбиений базового объекта. \en Get base object splits count.
|
||||
const c3d::IndicesPair & GetBaseSplitsCount() const { return srcSplitsCount; }
|
||||
/// \ru Получить общий вектора поиска. \en Get general search direction.
|
||||
|
||||
+148
-111
@@ -12,6 +12,7 @@
|
||||
|
||||
|
||||
#include <attribute_item.h>
|
||||
#include <mb_rect1d.h>
|
||||
|
||||
|
||||
//------------------------------------------------------------------------------
|
||||
@@ -104,17 +105,17 @@ public:
|
||||
virtual ~MbBoolAttribute();
|
||||
|
||||
public:
|
||||
MbeAttributeType AttributeType() const override; // \ru Выдать подтип атрибута. \en Get subtype of an attribute.
|
||||
void GetCharValue( TCHAR * v ) const override; // \ru Выдать строковое значение свойства. \en Get a string value of the property.
|
||||
MbAttribute & Duplicate( MbRegDuplicate * = nullptr ) const override; // \ru Сделать копию элемента. \en Create a copy of the element.
|
||||
bool IsSame( const MbAttribute &, double accuracy ) const override; // \ru Определить, являются ли объекты равными. \en Determine whether objects are equal.
|
||||
bool Init( const MbAttribute & ) override; // \ru Инициализировать данные по присланным. \en Initialize data.
|
||||
void GetProperties( MbProperties & ) override; // \ru Выдать свойства объекта. \en Get properties of the object.
|
||||
size_t SetProperties( const MbProperties & ) override; // \ru Установить свойства объекта. \en Set properties of object.
|
||||
MbePrompt GetPropertyName() override; // \ru Выдать заголовок свойства объекта. \en Get a name of object property.
|
||||
|
||||
bool GetValue() const; // \ru Выдать значение свойства. \en Get a value of the property.
|
||||
bool SetValue( bool val ); // \ru Установить новое значение свойства. \en Set new value of the property.
|
||||
MbeAttributeType AttributeType() const override; // \ru Выдать подтип атрибута. \en Get subtype of an attribute.
|
||||
void GetCharValue( TCHAR * v ) const override; // \ru Выдать строковое значение свойства. \en Get a string value of the property.
|
||||
MbAttribute & Duplicate( MbRegDuplicate * = nullptr ) const override; // \ru Сделать копию элемента. \en Create a copy of the element.
|
||||
bool IsSame( const MbAttribute &, double accuracy ) const override; // \ru Определить, являются ли объекты равными. \en Determine whether objects are equal.
|
||||
bool Init( const MbAttribute & ) override; // \ru Инициализировать данные по присланным. \en Initialize data.
|
||||
void GetProperties( MbProperties & ) override; // \ru Выдать свойства объекта. \en Get properties of the object.
|
||||
size_t SetProperties( const MbProperties & ) override; // \ru Установить свойства объекта. \en Set properties of object.
|
||||
MbePrompt GetPropertyName() override; // \ru Выдать заголовок свойства объекта. \en Get a name of object property.
|
||||
public:
|
||||
bool GetValue() const; ///< \ru Выдать значение. \en Get a value.
|
||||
bool SetValue( bool ); ///< \ru Установить новое значение. \en Set new value.
|
||||
|
||||
DECLARE_PERSISTENT_CLASS_NEW_DEL( MbBoolAttribute )
|
||||
OBVIOUS_PRIVATE_COPY( MbBoolAttribute )
|
||||
@@ -141,17 +142,17 @@ public:
|
||||
virtual ~MbIntAttribute();
|
||||
|
||||
public:
|
||||
MbeAttributeType AttributeType() const override; // \ru Выдать подтип атрибута. \en Get subtype of an attribute.
|
||||
void GetCharValue( TCHAR * v ) const override; // \ru Выдать строковое значение свойства. \en Get a string value of the property.
|
||||
MbAttribute & Duplicate( MbRegDuplicate * = nullptr ) const override; // \ru Сделать копию элемента. \en Create a copy of the element.
|
||||
bool IsSame( const MbAttribute &, double accuracy ) const override; // \ru Определить, являются ли объекты равными. \en Determine whether objects are equal.
|
||||
bool Init( const MbAttribute & ) override; // \ru Инициализировать данные по присланным. \en Initialize data.
|
||||
void GetProperties( MbProperties & ) override; // \ru Выдать свойства объекта. \en Get properties of the object.
|
||||
size_t SetProperties( const MbProperties & ) override; // \ru Установить свойства объекта. \en Set properties of object.
|
||||
MbePrompt GetPropertyName() override; // \ru Выдать заголовок свойства объекта. \en Get a name of object property.
|
||||
|
||||
int GetValue() const; // \ru Выдать значение свойства. \en Get a value of the property.
|
||||
bool SetValue( int val ); // \ru Установить новое значение свойства. \en Set new value of the property.
|
||||
MbeAttributeType AttributeType() const override; // \ru Выдать подтип атрибута. \en Get subtype of an attribute.
|
||||
void GetCharValue( TCHAR * v ) const override; // \ru Выдать строковое значение свойства. \en Get a string value of the property.
|
||||
MbAttribute & Duplicate( MbRegDuplicate * = nullptr ) const override; // \ru Сделать копию элемента. \en Create a copy of the element.
|
||||
bool IsSame( const MbAttribute &, double accuracy ) const override; // \ru Определить, являются ли объекты равными. \en Determine whether objects are equal.
|
||||
bool Init( const MbAttribute & ) override; // \ru Инициализировать данные по присланным. \en Initialize data.
|
||||
void GetProperties( MbProperties & ) override; // \ru Выдать свойства объекта. \en Get properties of the object.
|
||||
size_t SetProperties( const MbProperties & ) override; // \ru Установить свойства объекта. \en Set properties of object.
|
||||
MbePrompt GetPropertyName() override; // \ru Выдать заголовок свойства объекта. \en Get a name of object property.
|
||||
public:
|
||||
int GetValue() const; ///< \ru Выдать значение. \en Get a value.
|
||||
bool SetValue( int ); ///< \ru Установить новое значение. \en Set new value.
|
||||
|
||||
DECLARE_PERSISTENT_CLASS_NEW_DEL( MbIntAttribute )
|
||||
OBVIOUS_PRIVATE_COPY( MbIntAttribute )
|
||||
@@ -178,17 +179,17 @@ public:
|
||||
virtual ~MbInt64Attribute();
|
||||
|
||||
public:
|
||||
MbeAttributeType AttributeType() const override; // \ru Выдать подтип атрибута. \en Get subtype of an attribute.
|
||||
void GetCharValue( TCHAR * v ) const override; // \ru Выдать строковое значение свойства. \en Get a string value of the property.
|
||||
MbAttribute & Duplicate( MbRegDuplicate * = nullptr ) const override; // \ru Сделать копию элемента. \en Create a copy of the element.
|
||||
bool IsSame( const MbAttribute &, double accuracy ) const override; // \ru Определить, являются ли объекты равными. \en Determine whether objects are equal.
|
||||
bool Init( const MbAttribute & ) override; // \ru Инициализировать данные по присланным. \en Initialize data.
|
||||
void GetProperties( MbProperties & ) override; // \ru Выдать свойства объекта. \en Get properties of the object.
|
||||
size_t SetProperties( const MbProperties & ) override; // \ru Установить свойства объекта. \en Set properties of object.
|
||||
MbePrompt GetPropertyName() override; // \ru Выдать заголовок свойства объекта. \en Get a name of object property.
|
||||
|
||||
int64 GetValue() const; // \ru Выдать значение свойства. \en Get a value of the property.
|
||||
bool SetValue( int64 val ); // \ru Установить новое значение свойства. \en Set new value of the property.
|
||||
MbeAttributeType AttributeType() const override; // \ru Выдать подтип атрибута. \en Get subtype of an attribute.
|
||||
void GetCharValue( TCHAR * v ) const override; // \ru Выдать строковое значение свойства. \en Get a string value of the property.
|
||||
MbAttribute & Duplicate( MbRegDuplicate * = nullptr ) const override; // \ru Сделать копию элемента. \en Create a copy of the element.
|
||||
bool IsSame( const MbAttribute &, double accuracy ) const override; // \ru Определить, являются ли объекты равными. \en Determine whether objects are equal.
|
||||
bool Init( const MbAttribute & ) override; // \ru Инициализировать данные по присланным. \en Initialize data.
|
||||
void GetProperties( MbProperties & ) override; // \ru Выдать свойства объекта. \en Get properties of the object.
|
||||
size_t SetProperties( const MbProperties & ) override; // \ru Установить свойства объекта. \en Set properties of object.
|
||||
MbePrompt GetPropertyName() override; // \ru Выдать заголовок свойства объекта. \en Get a name of object property.
|
||||
public:
|
||||
int64 GetValue() const; ///< \ru Выдать значение. \en Get a value.
|
||||
bool SetValue( int64 ); ///< \ru Установить новое значение. \en Set new value.
|
||||
|
||||
DECLARE_PERSISTENT_CLASS_NEW_DEL( MbInt64Attribute )
|
||||
OBVIOUS_PRIVATE_COPY( MbInt64Attribute )
|
||||
@@ -215,17 +216,17 @@ public:
|
||||
virtual ~MbDoubleAttribute();
|
||||
|
||||
public:
|
||||
MbeAttributeType AttributeType() const override; // \ru Выдать подтип атрибута. \en Get subtype of an attribute.
|
||||
void GetCharValue( TCHAR * v ) const override; // \ru Выдать строковое значение свойства. \en Get a string value of the property.
|
||||
MbAttribute & Duplicate( MbRegDuplicate * = nullptr ) const override; // \ru Сделать копию элемента. \en Create a copy of the element.
|
||||
bool IsSame( const MbAttribute &, double accuracy ) const override; // \ru Определить, являются ли объекты равными. \en Determine whether objects are equal.
|
||||
bool Init( const MbAttribute & ) override; // \ru Инициализировать данные по присланным. \en Initialize data.
|
||||
void GetProperties( MbProperties & ) override; // \ru Выдать свойства объекта. \en Get properties of the object.
|
||||
size_t SetProperties( const MbProperties & ) override; // \ru Установить свойства объекта. \en Set properties of object.
|
||||
MbePrompt GetPropertyName() override; // \ru Выдать заголовок свойства объекта. \en Get a name of object property.
|
||||
|
||||
double GetValue() const; // \ru Выдать значение свойства. \en Get a value of the property.
|
||||
bool SetValue( double val ); // \ru Установить новое значение свойства. \en Set new value of the property.
|
||||
MbeAttributeType AttributeType() const override; // \ru Выдать подтип атрибута. \en Get subtype of an attribute.
|
||||
void GetCharValue( TCHAR * v ) const override; // \ru Выдать строковое значение свойства. \en Get a string value of the property.
|
||||
MbAttribute & Duplicate( MbRegDuplicate * = nullptr ) const override; // \ru Сделать копию элемента. \en Create a copy of the element.
|
||||
bool IsSame( const MbAttribute &, double accuracy ) const override; // \ru Определить, являются ли объекты равными. \en Determine whether objects are equal.
|
||||
bool Init( const MbAttribute & ) override; // \ru Инициализировать данные по присланным. \en Initialize data.
|
||||
void GetProperties( MbProperties & ) override; // \ru Выдать свойства объекта. \en Get properties of the object.
|
||||
size_t SetProperties( const MbProperties & ) override; // \ru Установить свойства объекта. \en Set properties of object.
|
||||
MbePrompt GetPropertyName() override; // \ru Выдать заголовок свойства объекта. \en Get a name of object property.
|
||||
public:
|
||||
double GetValue() const; ///< \ru Выдать значение. \en Get a value.
|
||||
bool SetValue( double val ); ///< \ru Установить новое значение. \en Set new value.
|
||||
|
||||
DECLARE_PERSISTENT_CLASS_NEW_DEL( MbDoubleAttribute )
|
||||
OBVIOUS_PRIVATE_COPY( MbDoubleAttribute )
|
||||
@@ -250,17 +251,17 @@ public:
|
||||
explicit MbStringAttribute( const c3d::string_t & prompt, bool change, const c3d::string_t & string );
|
||||
|
||||
public:
|
||||
MbeAttributeType AttributeType() const override; // \ru Выдать подтип атрибута. \en Get subtype of an attribute.
|
||||
void GetCharValue( TCHAR * v ) const override; // \ru Выдать строковое значение свойства. \en Get a string value of the property.
|
||||
MbAttribute & Duplicate( MbRegDuplicate * = nullptr ) const override; // \ru Сделать копию элемента. \en Create a copy of the element.
|
||||
bool IsSame( const MbAttribute &, double accuracy ) const override; // \ru Определить, являются ли объекты равными. \en Determine whether objects are equal.
|
||||
bool Init( const MbAttribute & ) override; // \ru Инициализировать данные по присланным. \en Initialize data.
|
||||
void GetProperties( MbProperties & ) override; // \ru Выдать свойства объекта. \en Get properties of the object.
|
||||
size_t SetProperties( const MbProperties & ) override; // \ru Установить свойства объекта. \en Set properties of object.
|
||||
MbePrompt GetPropertyName() override; // \ru Выдать заголовок свойства объекта. \en Get a name of object property.
|
||||
|
||||
c3d::string_t GetValue() const; // \ru Выдать значение свойства. \en Get a value of the property.
|
||||
bool SetValue( c3d::string_t & val ); // \ru Установить новое значение свойства. \en Set new value of the property.
|
||||
MbeAttributeType AttributeType() const override; // \ru Выдать подтип атрибута. \en Get subtype of an attribute.
|
||||
void GetCharValue( TCHAR * v ) const override; // \ru Выдать строковое значение свойства. \en Get a string value of the property.
|
||||
MbAttribute & Duplicate( MbRegDuplicate * = nullptr ) const override; // \ru Сделать копию элемента. \en Create a copy of the element.
|
||||
bool IsSame( const MbAttribute &, double accuracy ) const override; // \ru Определить, являются ли объекты равными. \en Determine whether objects are equal.
|
||||
bool Init( const MbAttribute & ) override; // \ru Инициализировать данные по присланным. \en Initialize data.
|
||||
void GetProperties( MbProperties & ) override; // \ru Выдать свойства объекта. \en Get properties of the object.
|
||||
size_t SetProperties( const MbProperties & ) override; // \ru Установить свойства объекта. \en Set properties of object.
|
||||
MbePrompt GetPropertyName() override; // \ru Выдать заголовок свойства объекта. \en Get a name of object property.
|
||||
public:
|
||||
const c3d::string_t & GetValue() const { return value_; } ///< \ru Выдать значение. \en Get a value.
|
||||
bool SetValue( c3d::string_t & ); ///< \ru Установить новое значение. \en Set new value.
|
||||
|
||||
protected:
|
||||
virtual ~MbStringAttribute(); // Use AddRef/Release or smart pointer SPtr<MbAttribute> to destruct it correctly.
|
||||
@@ -288,17 +289,19 @@ public:
|
||||
explicit MbBinaryAttribute( const c3d::string_t & prompt, bool change, const std::vector<unsigned char> & value );
|
||||
|
||||
public:
|
||||
MbeAttributeType AttributeType() const override; // \ru Выдать подтип атрибута. \en Get subtype of an attribute.
|
||||
void GetCharValue( TCHAR * v ) const override; // \ru Выдать строковое значение свойства. \en Get a string value of the property.
|
||||
MbAttribute & Duplicate( MbRegDuplicate * = nullptr ) const override; // \ru Сделать копию элемента. \en Create a copy of the element.
|
||||
bool IsSame( const MbAttribute &, double accuracy ) const override; // \ru Определить, являются ли объекты равными. \en Determine whether objects are equal.
|
||||
bool Init( const MbAttribute & ) override; // \ru Инициализировать данные по присланным. \en Initialize data.
|
||||
void GetProperties( MbProperties & ) override; // \ru Выдать свойства объекта. \en Get properties of the object.
|
||||
size_t SetProperties( const MbProperties & ) override; // \ru Установить свойства объекта. \en Set properties of object.
|
||||
MbePrompt GetPropertyName() override; // \ru Выдать заголовок свойства объекта. \en Get a name of object property.
|
||||
|
||||
std::vector<unsigned char> GetValue() const; // \ru Выдать значение свойства. \en Get a value of the property.
|
||||
bool SetValue( std::vector<unsigned char> & val ); // \ru Установить новое значение свойства. \en Set new value of the property.
|
||||
MbeAttributeType AttributeType() const override; // \ru Выдать подтип атрибута. \en Get subtype of an attribute.
|
||||
void GetCharValue( TCHAR * v ) const override; // \ru Выдать строковое значение свойства. \en Get a string value of the property.
|
||||
MbAttribute & Duplicate( MbRegDuplicate * = nullptr ) const override; // \ru Сделать копию элемента. \en Create a copy of the element.
|
||||
bool IsSame( const MbAttribute &, double accuracy ) const override; // \ru Определить, являются ли объекты равными. \en Determine whether objects are equal.
|
||||
bool Init( const MbAttribute & ) override; // \ru Инициализировать данные по присланным. \en Initialize data.
|
||||
void GetProperties( MbProperties & ) override; // \ru Выдать свойства объекта. \en Get properties of the object.
|
||||
size_t SetProperties( const MbProperties & ) override; // \ru Установить свойства объекта. \en Set properties of object.
|
||||
MbePrompt GetPropertyName() override; // \ru Выдать заголовок свойства объекта. \en Get a name of object property.
|
||||
public:
|
||||
const std::vector<unsigned char> & GetValue() const { return value_; } ///< \ru Выдать значение. \en Get a value.
|
||||
bool SetValue( std::vector<unsigned char> & ); ///< \ru Установить новое значение. \en Set new value.
|
||||
size_t Count() const { return value_.size(); } ///< \ru Выдать число элементов в массиве. \en Get a number of elements in the array.
|
||||
unsigned char operator [] ( size_t k ) const { return value_[k]; } ///< \ru Доступ к элементу массива по индексу (без проверки на выход за границы). \en Access to array element by index (without bounds checking).
|
||||
|
||||
protected:
|
||||
virtual ~MbBinaryAttribute(); // Use AddRef/Release or smart pointer SPtr<MbAttribute> to destruct it correctly.
|
||||
@@ -328,21 +331,19 @@ public:
|
||||
virtual ~MbInt32VectorAttribute();
|
||||
|
||||
public:
|
||||
MbeAttributeType AttributeType() const override; // \ru Выдать подтип атрибута. \en Get subtype of an attribute.
|
||||
void GetCharValue( TCHAR * v ) const override; // \ru Выдать строковое значение свойства. \en Get a string value of the property.
|
||||
MbAttribute & Duplicate( MbRegDuplicate * = nullptr ) const override; // \ru Сделать копию элемента. \en Create a copy of the element.
|
||||
bool IsSame( const MbAttribute &, double accuracy ) const override; // \ru Определить, являются ли объекты равными. \en Determine whether objects are equal.
|
||||
bool Init( const MbAttribute & ) override; // \ru Инициализировать данные по присланным. \en Initialize data.
|
||||
void GetProperties( MbProperties & ) override; // \ru Выдать свойства объекта. \en Get properties of the object.
|
||||
size_t SetProperties( const MbProperties & ) override; // \ru Установить свойства объекта. \en Set properties of object.
|
||||
MbePrompt GetPropertyName() override; // \ru Выдать заголовок свойства объекта. \en Get a name of object property.
|
||||
|
||||
const std::vector<int32> & GetValue() const; // \ru Выдать значение свойства. \en Get a value of the property.
|
||||
bool SetValue( const std::vector<int32> & val ); // \ru Установить новое значение свойства. \en Set new value of the property.
|
||||
|
||||
size_t Count() const; // \ru Выдать число элементов в массиве. \en Get a number of elements in the array.
|
||||
|
||||
int32 operator [] ( size_t ind ) const; /// \ru Доступ к элементу массива по индексу (без проверки на выход за границы). \en Access to array element by index (without bounds checking).
|
||||
MbeAttributeType AttributeType() const override; // \ru Выдать подтип атрибута. \en Get subtype of an attribute.
|
||||
void GetCharValue( TCHAR * v ) const override; // \ru Выдать строковое значение свойства. \en Get a string value of the property.
|
||||
MbAttribute & Duplicate( MbRegDuplicate * = nullptr ) const override; // \ru Сделать копию элемента. \en Create a copy of the element.
|
||||
bool IsSame( const MbAttribute &, double accuracy ) const override; // \ru Определить, являются ли объекты равными. \en Determine whether objects are equal.
|
||||
bool Init( const MbAttribute & ) override; // \ru Инициализировать данные по присланным. \en Initialize data.
|
||||
void GetProperties( MbProperties & ) override; // \ru Выдать свойства объекта. \en Get properties of the object.
|
||||
size_t SetProperties( const MbProperties & ) override; // \ru Установить свойства объекта. \en Set properties of object.
|
||||
MbePrompt GetPropertyName() override; // \ru Выдать заголовок свойства объекта. \en Get a name of object property.
|
||||
public:
|
||||
const std::vector<int32> & GetValue() const; ///< \ru Выдать значение. \en Get a value.
|
||||
bool SetValue( const std::vector<int32> & ); ///< \ru Установить новое значение. \en Set new value.
|
||||
size_t Count() const { return value_.size(); } ///< \ru Выдать число элементов в массиве. \en Get a number of elements in the array.
|
||||
int32 operator [] ( size_t k ) const { return value_[k]; } ///< \ru Доступ к элементу массива по индексу (без проверки на выход за границы). \en Access to array element by index (without bounds checking).
|
||||
|
||||
DECLARE_PERSISTENT_CLASS_NEW_DEL( MbInt32VectorAttribute )
|
||||
OBVIOUS_PRIVATE_COPY( MbInt32VectorAttribute )
|
||||
@@ -369,21 +370,19 @@ public:
|
||||
virtual ~MbInt64VectorAttribute();
|
||||
|
||||
public:
|
||||
MbeAttributeType AttributeType() const override; // \ru Выдать подтип атрибута. \en Get subtype of an attribute.
|
||||
void GetCharValue( TCHAR * v ) const override; // \ru Выдать строковое значение свойства. \en Get a string value of the property.
|
||||
MbAttribute & Duplicate( MbRegDuplicate * = nullptr ) const override; // \ru Сделать копию элемента. \en Create a copy of the element.
|
||||
bool IsSame( const MbAttribute &, double accuracy ) const override; // \ru Определить, являются ли объекты равными. \en Determine whether objects are equal.
|
||||
bool Init( const MbAttribute & ) override; // \ru Инициализировать данные по присланным. \en Initialize data.
|
||||
void GetProperties( MbProperties & ) override; // \ru Выдать свойства объекта. \en Get properties of the object.
|
||||
size_t SetProperties( const MbProperties & ) override; // \ru Установить свойства объекта. \en Set properties of object.
|
||||
MbePrompt GetPropertyName() override; // \ru Выдать заголовок свойства объекта. \en Get a name of object property.
|
||||
|
||||
const std::vector<int64> & GetValue() const; // \ru Выдать значение свойства. \en Get a value of the property.
|
||||
bool SetValue( const std::vector<int64> & val ); // \ru Установить новое значение свойства. \en Set new value of the property.
|
||||
|
||||
size_t Count() const; // \ru Выдать число элементов в массиве. \en Get a number of elements in the array.
|
||||
|
||||
int64 operator [] ( size_t ind ) const; /// \ru Доступ к элементу массива по индексу (без проверки на выход за границы). \en Access to array element by index (without bounds checking).
|
||||
MbeAttributeType AttributeType() const override; // \ru Выдать подтип атрибута. \en Get subtype of an attribute.
|
||||
void GetCharValue( TCHAR * v ) const override; // \ru Выдать строковое значение свойства. \en Get a string value of the property.
|
||||
MbAttribute & Duplicate( MbRegDuplicate * = nullptr ) const override; // \ru Сделать копию элемента. \en Create a copy of the element.
|
||||
bool IsSame( const MbAttribute &, double accuracy ) const override; // \ru Определить, являются ли объекты равными. \en Determine whether objects are equal.
|
||||
bool Init( const MbAttribute & ) override; // \ru Инициализировать данные по присланным. \en Initialize data.
|
||||
void GetProperties( MbProperties & ) override; // \ru Выдать свойства объекта. \en Get properties of the object.
|
||||
size_t SetProperties( const MbProperties & ) override; // \ru Установить свойства объекта. \en Set properties of object.
|
||||
MbePrompt GetPropertyName() override; // \ru Выдать заголовок свойства объекта. \en Get a name of object property.
|
||||
public:
|
||||
const std::vector<int64> & GetValue() const; ///< \ru Выдать значение. \en Get a value.
|
||||
bool SetValue( const std::vector<int64> & ); ///< \ru Установить новое значение. \en Set new value.
|
||||
size_t Count() const { return value_.size(); } ///< \ru Выдать число элементов в массиве. \en Get a number of elements in the array.
|
||||
int64 operator [] ( size_t k ) const { return value_[k]; } ///< \ru Доступ к элементу массива по индексу (без проверки на выход за границы). \en Access to array element by index (without bounds checking).
|
||||
|
||||
DECLARE_PERSISTENT_CLASS_NEW_DEL( MbInt64VectorAttribute )
|
||||
OBVIOUS_PRIVATE_COPY( MbInt64VectorAttribute )
|
||||
@@ -410,21 +409,19 @@ public:
|
||||
virtual ~MbDoubleVectorAttribute();
|
||||
|
||||
public:
|
||||
MbeAttributeType AttributeType() const override; // \ru Выдать подтип атрибута. \en Get subtype of an attribute.
|
||||
void GetCharValue( TCHAR * v ) const override; // \ru Выдать строковое значение свойства. \en Get a string value of the property.
|
||||
MbAttribute & Duplicate( MbRegDuplicate * = nullptr ) const override; // \ru Сделать копию элемента. \en Create a copy of the element.
|
||||
bool IsSame( const MbAttribute &, double accuracy ) const override; // \ru Определить, являются ли объекты равными. \en Determine whether objects are equal.
|
||||
bool Init( const MbAttribute & ) override; // \ru Инициализировать данные по присланным. \en Initialize data.
|
||||
void GetProperties( MbProperties & ) override; // \ru Выдать свойства объекта. \en Get properties of the object.
|
||||
size_t SetProperties( const MbProperties & ) override; // \ru Установить свойства объекта. \en Set properties of object.
|
||||
MbePrompt GetPropertyName() override; // \ru Выдать заголовок свойства объекта. \en Get a name of object property.
|
||||
|
||||
const std::vector<double> & GetValue() const; // \ru Выдать значение свойства. \en Get a value of the property.
|
||||
bool SetValue( const std::vector<double> & val ); // \ru Установить новое значение свойства. \en Set new value of the property.
|
||||
|
||||
size_t Count() const; // \ru Выдать число элементов в массиве. \en Get a number of elements in the array.
|
||||
|
||||
double operator [] ( size_t ind ) const; /// \ru Доступ к элементу массива по индексу (без проверки на выход за границы). \en Access to array element by index (without bounds checking).
|
||||
MbeAttributeType AttributeType() const override; // \ru Выдать подтип атрибута. \en Get subtype of an attribute.
|
||||
void GetCharValue( TCHAR * v ) const override; // \ru Выдать строковое значение свойства. \en Get a string value of the property.
|
||||
MbAttribute & Duplicate( MbRegDuplicate * = nullptr ) const override; // \ru Сделать копию элемента. \en Create a copy of the element.
|
||||
bool IsSame( const MbAttribute &, double accuracy ) const override; // \ru Определить, являются ли объекты равными. \en Determine whether objects are equal.
|
||||
bool Init( const MbAttribute & ) override; // \ru Инициализировать данные по присланным. \en Initialize data.
|
||||
void GetProperties( MbProperties & ) override; // \ru Выдать свойства объекта. \en Get properties of the object.
|
||||
size_t SetProperties( const MbProperties & ) override; // \ru Установить свойства объекта. \en Set properties of object.
|
||||
MbePrompt GetPropertyName() override; // \ru Выдать заголовок свойства объекта. \en Get a name of object property.
|
||||
public:
|
||||
const std::vector<double> & GetValue() const; ///< \ru Выдать значение. \en Get a value.
|
||||
bool SetValue( const std::vector<double> & val ); ///< \ru Установить новое значение. \en Set new value.
|
||||
size_t Count() const { return value_.size(); } ///< \ru Выдать число элементов в массиве. \en Get a number of elements in the array.
|
||||
double operator [] ( size_t k ) const { return value_[k]; } ///< \ru Доступ к элементу массива по индексу (без проверки на выход за границы). \en Access to array element by index (without bounds checking).
|
||||
|
||||
DECLARE_PERSISTENT_CLASS_NEW_DEL( MbDoubleVectorAttribute )
|
||||
OBVIOUS_PRIVATE_COPY( MbDoubleVectorAttribute )
|
||||
@@ -433,4 +430,44 @@ OBVIOUS_PRIVATE_COPY( MbDoubleVectorAttribute )
|
||||
IMPL_PERSISTENT_OPS( MbDoubleVectorAttribute )
|
||||
|
||||
|
||||
//------------------------------------------------------------------------------
|
||||
/** \brief \ru Атрибут диапазона действительных чисел типа double.
|
||||
\en Double precision range attribute. \~
|
||||
\details \ru Атрибут диапазона действительных чисел типа double. \n
|
||||
\en Double precision range attribute. \n \~
|
||||
\ingroup Model_Attributes
|
||||
*/
|
||||
class MATH_CLASS MbDoubleRangeAttribute : public MbCommonAttribute {
|
||||
private:
|
||||
MbRect1D range_; ///< \ru Диапазон значений. \en Values range.
|
||||
|
||||
public:
|
||||
/// \ru Конструктор. \en Constructor.
|
||||
explicit MbDoubleRangeAttribute( const c3d::string_t & prompt, bool change, double begValue, double endValue );
|
||||
/// \ru Конструктор. \en Constructor.
|
||||
explicit MbDoubleRangeAttribute( const c3d::string_t & prompt, bool change, const MbRect1D & range );
|
||||
/// \ru Деструктор. \en Destructor.
|
||||
virtual ~MbDoubleRangeAttribute();
|
||||
|
||||
public:
|
||||
MbeAttributeType AttributeType() const override; // \ru Выдать подтип атрибута. \en Get subtype of an attribute.
|
||||
void GetCharValue( TCHAR * v ) const override; // \ru Выдать строковое значение свойства. \en Get a string value of the property.
|
||||
MbAttribute & Duplicate( MbRegDuplicate * = nullptr ) const override; // \ru Сделать копию элемента. \en Create a copy of the element.
|
||||
bool IsSame( const MbAttribute &, double accuracy ) const override; // \ru Определить, являются ли объекты равными. \en Determine whether objects are equal.
|
||||
bool Init( const MbAttribute & ) override; // \ru Инициализировать данные по присланным. \en Initialize data.
|
||||
void GetProperties( MbProperties & ) override; // \ru Выдать свойства объекта. \en Get properties of the object.
|
||||
size_t SetProperties( const MbProperties & ) override; // \ru Установить свойства объекта. \en Set properties of object.
|
||||
MbePrompt GetPropertyName() override; // \ru Выдать заголовок свойства объекта. \en Get a name of object property.
|
||||
public:
|
||||
const MbRect1D & GetRange() const { return range_; } ///< \ru Выдать диапазон значений. \en Get values range.
|
||||
bool SetRange( const MbRect1D & ); ///< \ru Установить диапазон значений. \en Set values range.
|
||||
bool SetRange( double begVal, double endVal ); ///< \ru Установить диапазон значений. \en Set values range.
|
||||
|
||||
DECLARE_PERSISTENT_CLASS_NEW_DEL( MbDoubleRangeAttribute )
|
||||
OBVIOUS_PRIVATE_COPY( MbDoubleRangeAttribute )
|
||||
};
|
||||
|
||||
IMPL_PERSISTENT_OPS( MbDoubleRangeAttribute )
|
||||
|
||||
|
||||
#endif // __ATTR_COMMON_ATTRIBUE_H
|
||||
|
||||
@@ -14,92 +14,268 @@
|
||||
#include <attr_common_attribute.h>
|
||||
#include <mb_placement3d.h>
|
||||
|
||||
class MATH_CLASS MbBaseHotPointAttribute;
|
||||
|
||||
|
||||
namespace c3d // namespace C3D
|
||||
{
|
||||
typedef SPtr<MbBaseHotPointAttribute> BaseHotPointAttrSPtr;
|
||||
}
|
||||
|
||||
|
||||
//------------------------------------------------------------------------------
|
||||
/** \brief \ru Атрибут хот-точки.
|
||||
\en Attribute of hot-point. \~
|
||||
\details \ru Атрибут параметров хот-точки содержит трехмерную точку
|
||||
/** \brief \ru Базовый класс атрибутов хот-точки.
|
||||
\en Base class of hot-point attributes. \~
|
||||
\details \ru Базовый класс атрибутов хот-точки.
|
||||
\en Base class of hot-point attributes. \n \~
|
||||
\ingroup Model_Attributes
|
||||
\warning \ru В разработке.
|
||||
\en Under development. \~
|
||||
*/
|
||||
class MATH_CLASS MbBaseHotPointAttribute : public MbCommonAttribute
|
||||
{
|
||||
public:
|
||||
//------------------------------------------------------------------------------
|
||||
/** \brief \ru Тип хот-точки.
|
||||
\en The hot point type. \~
|
||||
\details \ru Тип хот-точки по принадлежности операции.
|
||||
\en The hot point type by operation. \~
|
||||
\ingroup Data_Structures
|
||||
*/
|
||||
//---
|
||||
enum class MbeHotPointType : uint16 {
|
||||
undefinedHP = 0, ///< \ru Неопределенный тип. \en Undefined type.
|
||||
draftHP, ///< \ru Хот-точка операции уклона. \en The draft operation hot point.
|
||||
conicSectionHP, ///< \ru Хот-точка операции построения переменного конического сечения. \en The conic section operation hot point.
|
||||
|
||||
// \ru Вставлять новые типы перед этим типом. \en Insert new types before this type.
|
||||
endHP = SYS_MAX_INT16
|
||||
};
|
||||
|
||||
private:
|
||||
MbeHotPointType _type; ///< \ru Тип хот-точки. \en The type of hot point.
|
||||
|
||||
protected:
|
||||
/// \ru Конструктор. \en Constructor.
|
||||
MbBaseHotPointAttribute( const MbBaseHotPointAttribute & );
|
||||
/// \ru Конструктор. \en Constructor.
|
||||
MbBaseHotPointAttribute( MbeHotPointType type, const c3d::string_t & prompt, const bool change );
|
||||
public:
|
||||
/// \ru Деструктор. \en Destructor.
|
||||
virtual ~MbBaseHotPointAttribute();
|
||||
|
||||
public:
|
||||
MbeAttributeType AttributeFamily() const override; // \ru Выдать тип атрибута. \en Get attribute type.
|
||||
MbeHotPointType GetHotPointType() const { return _type; } // \ru Выдать тип хот-точки. \en Get hot point type.
|
||||
bool IsSame( const MbAttribute &, double accuracy ) const override; // \ru Определить, являются ли объекты равными. \en Determine whether objects are equal.
|
||||
// \ru Выполнить действия при трансформировании владельца. \en Perform actions when transforming the owner.
|
||||
void OnTransformOwner( const MbAttributeContainer & owner,
|
||||
const MbMatrix3D &,
|
||||
MbRegTransform * = nullptr ) override;
|
||||
// \ru Выполнить действия при перемещении владельца. \en Perform actions when moving the owner.
|
||||
void OnMoveOwner( const MbAttributeContainer & owner,
|
||||
const MbVector3D &,
|
||||
MbRegTransform * = nullptr ) override;
|
||||
// \ru Выполнить действия при вращении владельца. \en Perform actions when rotating the owner.
|
||||
void OnRotateOwner( const MbAttributeContainer & owner,
|
||||
const MbAxis3D &,
|
||||
double angle,
|
||||
MbRegTransform * = nullptr ) override;
|
||||
// \ru Выполнить действия при копировании владельца. \en Perform actions when copying the owner.
|
||||
void OnCopyOwner( const MbAttributeContainer & owner,
|
||||
MbAttributeContainer & other,
|
||||
MbRegDuplicate * = nullptr ) override;
|
||||
// \ru Выполнить действия при объединении владельца. \en Perform actions when merging the owner.
|
||||
void OnMergeOwner( const MbAttributeContainer & owner,
|
||||
MbAttributeContainer & other ) override;
|
||||
void GetProperties( MbProperties & ) override; // \ru Выдать свойства объекта. \en Get properties of the object.
|
||||
size_t SetProperties( const MbProperties & ) override; // \ru Установить свойства объекта. \en Set properties of object.
|
||||
MbePrompt GetPropertyName() override; // \ru Выдать заголовок свойства объекта. \en Get a name of object property.
|
||||
|
||||
private:
|
||||
/// \ru Оператор присваивания (не реализован). \en Assignment operator (not implemented).
|
||||
MbBaseHotPointAttribute & operator = ( const MbBaseHotPointAttribute & );
|
||||
|
||||
DECLARE_PERSISTENT_CLASS( MbBaseHotPointAttribute )
|
||||
};
|
||||
|
||||
IMPL_PERSISTENT_OPS( MbBaseHotPointAttribute )
|
||||
|
||||
|
||||
//------------------------------------------------------------------------------
|
||||
/** \brief \ru Атрибут простой хот-точки.
|
||||
\en Attribute of a simple hot-point. \~
|
||||
\details \ru Атрибут параметров простой хот-точки содержит трехмерную точку
|
||||
и трехмерную локальную систему координат.
|
||||
\en Attribute of parameters of hot-point contains three-dimensional point and
|
||||
\en Attribute of parameters of a simple hot-point contains three-dimensional point and
|
||||
three-dimensional coordinate system. \n \~
|
||||
\ingroup Model_Attributes
|
||||
\warning \ru В разработке.
|
||||
\en Under development. \~
|
||||
*/
|
||||
class MATH_CLASS MbHotPointAttribute : public MbCommonAttribute
|
||||
class MATH_CLASS MbHotPointAttribute : public MbBaseHotPointAttribute
|
||||
{
|
||||
protected:
|
||||
MbPlacement3D _place; ///< \ru Трехмерная локальная система координат. \en Three-dimensional coordinate system.
|
||||
MbCartPoint3D _hotPoint; ///< \ru Хот-точка. \en Hot-point.
|
||||
public:
|
||||
/** \brief \ru Конструктор атрибута хот-точки.
|
||||
\en Constructor of аttribute of hot-point. \~
|
||||
\details \ru Создается атрибут хот-точки содержащий трехмерную точку и трехмерную локальную систему координат.
|
||||
\en Created attribute of hot-point contains three-dimensional point and three-dimensional coordinate system. \~
|
||||
\param[in] place - \ru Локальная система координат хот-точки.
|
||||
\en The local coordinate system of hot-point. \~
|
||||
\param[in] hotPoint - \ru Хот-точка.
|
||||
\en The hot-point. \~
|
||||
*/
|
||||
MbHotPointAttribute( const MbPlacement3D & place,
|
||||
const MbCartPoint3D & hotPoint,
|
||||
const c3d::string_t & itemPrompt,
|
||||
bool changeable );
|
||||
// \ru Выдать подтип атрибута. \en Get subtype of an attribute.
|
||||
MbeAttributeType AttributeType() const override;
|
||||
// \ru Сделать копию элемента. \en Create a copy of the element.
|
||||
MbAttribute & Duplicate( MbRegDuplicate * = nullptr ) const override;
|
||||
// \ru Инициализировать данные по присланным. \en Initialize data.
|
||||
bool Init( const MbAttribute & ) override;
|
||||
// \ru Выполнить действия при трансформировании владельца. \en Perform actions when transforming the owner.
|
||||
void OnTransformOwner( const MbAttributeContainer & owner,
|
||||
const MbMatrix3D &,
|
||||
MbRegTransform * = nullptr ) override;
|
||||
// \ru Выполнить действия при перемещении владельца. \en Perform actions when moving the owner.
|
||||
void OnMoveOwner( const MbAttributeContainer & owner,
|
||||
const MbVector3D &,
|
||||
MbRegTransform * = nullptr) override;
|
||||
// \ru Выполнить действия при вращении владельца. \en Perform actions when rotating the owner.
|
||||
void OnRotateOwner( const MbAttributeContainer & owner,
|
||||
const MbAxis3D &,
|
||||
double angle,
|
||||
MbRegTransform * = nullptr) override;
|
||||
// \ru Выполнить действия при копировании владельца. \en Perform actions when copying the owner.
|
||||
void OnCopyOwner( const MbAttributeContainer & owner,
|
||||
MbAttributeContainer & other,
|
||||
MbRegDuplicate * = nullptr ) override;
|
||||
// \ru Выполнить действия при объединении владельца. \en Perform actions when merging the owner.
|
||||
void OnMergeOwner( const MbAttributeContainer & owner,
|
||||
MbAttributeContainer & other ) override;
|
||||
// \ru Определить, являются ли объекты равными. \en Determine whether objects are equal.
|
||||
bool IsSame( const MbAttribute &,
|
||||
double accuracy ) const override;
|
||||
// \ru Выдать строковое значение свойства. \en Get a string value of the property.
|
||||
void GetCharValue( TCHAR * v ) const override;
|
||||
// \ru Выдать свойства объекта. \en Get properties of the object.
|
||||
void GetProperties( MbProperties & ) override;
|
||||
// \ru Установить свойства объекта. \en Set properties of object.
|
||||
size_t SetProperties( const MbProperties & ) override;
|
||||
// \ru Выдать заголовок свойства объекта. \en Get a name of object property.
|
||||
MbePrompt GetPropertyName() override;
|
||||
/** \brief \ru Конструктор атрибута хот-точки.
|
||||
\en Constructor of аttribute of hot-point. \~
|
||||
\details \ru Создается атрибут хот-точки содержащий трехмерную точку и трехмерную локальную систему координат.
|
||||
\en Created attribute of hot-point contains three-dimensional point and three-dimensional coordinate system. \~
|
||||
\param[in] place - \ru Локальная система координат хот-точки.
|
||||
\en The local coordinate system of hot-point. \~
|
||||
\param[in] hotPoint - \ru Хот-точка.
|
||||
\en The hot-point. \~
|
||||
\param[in] type - \ru Тип хот-точки.
|
||||
\en The type of hot-point. \~
|
||||
\param[in] changeable - \ru Признак редактируемости.
|
||||
\en Attribute of editability. \~
|
||||
*/
|
||||
MbHotPointAttribute( const MbPlacement3D & place,
|
||||
const MbCartPoint3D & hotPoint,
|
||||
MbeHotPointType type,
|
||||
bool changeable );
|
||||
public:
|
||||
/// \ru Деструктор. \en Destructor.
|
||||
virtual ~MbHotPointAttribute();
|
||||
|
||||
public:
|
||||
// \ru Выдать подтип атрибута. \en Get subtype of an attribute.
|
||||
MbeAttributeType AttributeType() const override;
|
||||
// \ru Сделать копию элемента. \en Create a copy of the element.
|
||||
MbAttribute & Duplicate( MbRegDuplicate * = nullptr ) const override;
|
||||
// \ru Инициализировать данные по присланным. \en Initialize data.
|
||||
bool Init( const MbAttribute & ) override;
|
||||
// \ru Определить, являются ли объекты равными. \en Determine whether objects are equal.
|
||||
bool IsSame( const MbAttribute &,
|
||||
double accuracy ) const override;
|
||||
// \ru Выполнить действия при трансформировании владельца. \en Perform actions when transforming the owner.
|
||||
void OnTransformOwner( const MbAttributeContainer & owner,
|
||||
const MbMatrix3D &,
|
||||
MbRegTransform * = nullptr ) override;
|
||||
// \ru Выполнить действия при перемещении владельца. \en Perform actions when moving the owner.
|
||||
void OnMoveOwner( const MbAttributeContainer & owner,
|
||||
const MbVector3D &,
|
||||
MbRegTransform * = nullptr ) override;
|
||||
// \ru Выполнить действия при вращении владельца. \en Perform actions when rotating the owner.
|
||||
void OnRotateOwner( const MbAttributeContainer & owner,
|
||||
const MbAxis3D &,
|
||||
double angle,
|
||||
MbRegTransform * = nullptr ) override;
|
||||
// \ru Выполнить действия при копировании владельца. \en Perform actions when copying the owner.
|
||||
void OnCopyOwner( const MbAttributeContainer & owner,
|
||||
MbAttributeContainer & other,
|
||||
MbRegDuplicate * = nullptr ) override;
|
||||
// \ru Выполнить действия при объединении владельца. \en Perform actions when merging the owner.
|
||||
void OnMergeOwner( const MbAttributeContainer & owner,
|
||||
MbAttributeContainer & other ) override;
|
||||
|
||||
// \ru Выдать строковое значение свойства. \en Get a string value of the property.
|
||||
void GetCharValue( TCHAR * v ) const override;
|
||||
/// \ru Дать систему координат. \en Get placement.
|
||||
const MbPlacement3D & GetPlacement() const { return _place; }
|
||||
/// \ru Дать хот точку. \en Get hot - point.
|
||||
const MbCartPoint3D & GetHotPoint() const { return _hotPoint; }
|
||||
/// \ru Деструктор. \en Destructor.
|
||||
virtual ~MbHotPointAttribute();
|
||||
|
||||
|
||||
private:
|
||||
// \ru Конструктор копирования. \en Copy constructor.
|
||||
MbHotPointAttribute( const MbHotPointAttribute & init,
|
||||
MbRegDuplicate * iReg );
|
||||
|
||||
|
||||
DECLARE_PERSISTENT_CLASS( MbHotPointAttribute )
|
||||
OBVIOUS_PRIVATE_COPY( MbHotPointAttribute )
|
||||
};
|
||||
|
||||
IMPL_PERSISTENT_OPS( MbHotPointAttribute )
|
||||
|
||||
|
||||
//------------------------------------------------------------------------------
|
||||
/** \brief \ru Атрибут композитной хот-точки (набора хот-точек).
|
||||
\en Attribute of a composite hot-point( hot point set ). \~
|
||||
\details \ru Атрибут параметров композитной хот-точки содержит набор пар :
|
||||
трехмерная локальная система координат -трехмерная точка.
|
||||
\en Attribute of parameters of a composite hot-point contains a set of pairs
|
||||
of three-dimensional coordinate system and three-dimensional point. \n \~
|
||||
\ingroup Model_Attributes
|
||||
\warning \ru В разработке.
|
||||
\en Under development. \~
|
||||
*/
|
||||
class MATH_CLASS MbCompositeHotPointAttribute : public MbBaseHotPointAttribute
|
||||
{
|
||||
private:
|
||||
c3d::PlacePoint3DPairVector _hotpoints;
|
||||
|
||||
public:
|
||||
/** \brief \ru Конструктор атрибута хот-точки.
|
||||
\en Constructor of аttribute of hot-point. \~
|
||||
\details \ru Создается атрибут хот-точки содержащий трехмерную точку и трехмерную локальную систему координат.
|
||||
\en Created attribute of hot-point contains three-dimensional point and three-dimensional coordinate system. \~
|
||||
\param[in] place - \ru Локальная система координат хот-точки.
|
||||
\en The local coordinate system of hot-point. \~
|
||||
\param[in] hotPoint - \ru Хот-точка.
|
||||
\en The hot-point. \~
|
||||
*/
|
||||
explicit
|
||||
MbCompositeHotPointAttribute( MbeHotPointType type,
|
||||
bool changeable );
|
||||
public:
|
||||
/// \ru Деструктор. \en Destructor.
|
||||
virtual ~MbCompositeHotPointAttribute();
|
||||
|
||||
public:
|
||||
// \ru Выдать подтип атрибута. \en Get subtype of an attribute.
|
||||
MbeAttributeType AttributeType() const override;
|
||||
// \ru Сделать копию элемента. \en Create a copy of the element.
|
||||
MbAttribute & Duplicate( MbRegDuplicate * = nullptr ) const override;
|
||||
// \ru Инициализировать данные по присланным. \en Initialize data.
|
||||
bool Init( const MbAttribute & ) override;
|
||||
// \ru Определить, являются ли объекты равными. \en Determine whether objects are equal.
|
||||
bool IsSame( const MbAttribute &,
|
||||
double accuracy ) const override;
|
||||
// \ru Выполнить действия при трансформировании владельца. \en Perform actions when transforming the owner.
|
||||
void OnTransformOwner( const MbAttributeContainer & owner,
|
||||
const MbMatrix3D &,
|
||||
MbRegTransform * = nullptr ) override;
|
||||
// \ru Выполнить действия при перемещении владельца. \en Perform actions when moving the owner.
|
||||
void OnMoveOwner( const MbAttributeContainer & owner,
|
||||
const MbVector3D &,
|
||||
MbRegTransform * = nullptr ) override;
|
||||
// \ru Выполнить действия при вращении владельца. \en Perform actions when rotating the owner.
|
||||
void OnRotateOwner( const MbAttributeContainer & owner,
|
||||
const MbAxis3D &,
|
||||
double angle,
|
||||
MbRegTransform * = nullptr ) override;
|
||||
// \ru Выполнить действия при копировании владельца. \en Perform actions when copying the owner.
|
||||
void OnCopyOwner( const MbAttributeContainer & owner,
|
||||
MbAttributeContainer & other,
|
||||
MbRegDuplicate * = nullptr ) override;
|
||||
// \ru Выполнить действия при объединении владельца. \en Perform actions when merging the owner.
|
||||
void OnMergeOwner( const MbAttributeContainer & owner,
|
||||
MbAttributeContainer & other ) override;
|
||||
|
||||
// \ru Выдать строковое значение свойства. \en Get a string value of the property.
|
||||
void GetCharValue( TCHAR * v ) const override;
|
||||
// \ru Выдать строковое значение свойства. \en Get a string value of the property.
|
||||
size_t GetHotPointsCount() const { return _hotpoints.size(); }
|
||||
// \ru Выдать хот-точку по индексу. \en Get a hot point by index.
|
||||
void GetHotPoint( size_t ind, MbPlacement3D & place, MbCartPoint3D & pnt ) const { place.Init( _hotpoints[ind].first ); pnt.Init( _hotpoints[ind].second ); }
|
||||
// \ru Добавить хот-точку в набор. \en Add a hot point to set.
|
||||
void AddHotPoint( const MbPlacement3D & place, const MbCartPoint3D & pnt );
|
||||
// \ru Добавить набор хот-точек. \en Add a hot points set.
|
||||
void AddHotPoints( const c3d::PlacePoint3DPairVector & data );
|
||||
private:
|
||||
// \ru Конструктор копирования. \en Copy constructor.
|
||||
MbCompositeHotPointAttribute( const MbCompositeHotPointAttribute & init,
|
||||
MbRegDuplicate * iReg );
|
||||
|
||||
DECLARE_PERSISTENT_CLASS( MbCompositeHotPointAttribute )
|
||||
OBVIOUS_PRIVATE_COPY( MbCompositeHotPointAttribute )
|
||||
};
|
||||
|
||||
IMPL_PERSISTENT_OPS( MbCompositeHotPointAttribute )
|
||||
|
||||
|
||||
#endif // __ATTR_HOTPOINT_ATTRIBUTE_H
|
||||
|
||||
|
||||
@@ -88,7 +88,10 @@ enum MbeAttributeType
|
||||
at_Int64VectorAttribute = 212, ///< \ru Атрибут массив целочисленных значений типа int64. \en Array of integer (int64) values attribute.
|
||||
at_DoubleVectorAttribute = 213, ///< \ru Атрибут массив действительных чисел типа double. \en Array of real (double) values attribute.
|
||||
at_UuidInstanceAttribute = 214, ///< \ru Атрибут Uuid для вставок. \en Uuid attribute for instances.
|
||||
at_HotPointAttribute = 215, ///< \ru Атрибут хот-точки. \en Attribute of hot-point. \n
|
||||
at_BaseHotPointAttribute = 215, ///< \ru Базовый атрибут хот-точки. \en Base attribute of hot-point. \n
|
||||
at_HotPointAttribute = 216, ///< \ru Атрибут простой хот-точки. \en Attribute of the simple hot-point. \n
|
||||
at_CompHotPointAttribute = 217, ///< \ru Композитный атрибут хот-точки. \en Composite attribute of the hot-point. \n
|
||||
at_DoubleRangeAttribute = 218, ///< \ru Атрибут диапазона действительных чисел типа double. \en Double precision range attribute.
|
||||
at_CommonLast = 300, ///< \ru Обобщенные атрибуты вставлять перед этим значением. \en Common attributes should be inserted before this value. \n
|
||||
|
||||
// \ru Типы связующих атрибутов. \en Types of linking attributes.
|
||||
@@ -560,14 +563,24 @@ namespace c3d // namespace C3D
|
||||
constexpr TCHAR c3dStr_ValidationPropertyVolumeExchange[] = _T( "c3d_ValidationPropertyVolumeExchange" );
|
||||
/// \ru Подсказка для контрольного значения площади поверхности. \en Prompt for the surface area validation property.
|
||||
constexpr TCHAR c3dStr_ValidationPropertySurfaceAreaExchange[] = _T( "c3d_ValidationPropertySurfaceAreaExchange" );
|
||||
|
||||
/// \ru Подсказка для идентификатора элемента при обмене данными. \en Prompt for the item identifier in model exchange operations.
|
||||
constexpr TCHAR c3dStr_ItemIdentifierExchange[] = _T( "c3d_ItemIdentifierExchange" );
|
||||
/// \ru Подсказка для URL текстуры при обмене данными. \en Prompt for the URL of texture in model exchange operations.
|
||||
constexpr TCHAR c3dStr_TextureUrl[] = _T("C3D_Texture_URL");
|
||||
|
||||
/// \ru Подсказка для атрибута хот-точки в уклоне. \en Prompt for attribute of hot point in draft operations.
|
||||
constexpr TCHAR c3d_DraftOperationHotPoint[] = _T("c3d_DraftOperationHotPoint");
|
||||
/// \ru Подсказка для типа замкнутости оболочки в исходных данных. \en Promt for shell closure type in source data.
|
||||
|
||||
/// \ru Подсказка для типа замкнутости оболочки в исходных данных. \en Prompt for shell closure type in source data.
|
||||
constexpr TCHAR c3d_ShellOpenClosedOriginal[] = _T( "c3d_ShellOpenClosedOriginal" );
|
||||
/// \ru Подсказка для атрибута простой хот-точки. \en Prompt for attribute of simple hot point.
|
||||
constexpr TCHAR c3d_OperationSingleHotPoint[] = _T( "c3d_OperationSingleHotPoint" );
|
||||
/// \ru Подсказка для атрибута композитной хот-точки. \en Prompt for attribute of composite hot point.
|
||||
constexpr TCHAR c3d_OperationCompositeHotPoint[] = _T("c3d_OperationCompositeHotPoint");
|
||||
|
||||
/// \ru Подсказка для атрибута гладкости ребра. \en Hint for an edge smoothness attribute.
|
||||
constexpr TCHAR c3dStr_EdgeSmoothnessInfo[] = _T( "c3d_EdgeSmoothnessInfo" );
|
||||
} // namespace C3D
|
||||
|
||||
|
||||
|
||||
@@ -14,6 +14,7 @@
|
||||
#include <templ_sptr.h>
|
||||
#include <mb_operation_result.h>
|
||||
#include <mb_variables.h>
|
||||
#include <attr_common_attribute.h>
|
||||
#include <topology.h>
|
||||
#include <solid.h>
|
||||
#include <point_frame.h>
|
||||
@@ -957,7 +958,7 @@ MATH_FUNC( ThreeStates ) IsOrientedOutward( const MbFaceShell & shell );
|
||||
\en Check whether vertices and edges names contain a main name of one of the parents (edges and faces corresponding). \~
|
||||
\details \ru Проверить, что имена вершин и рёбер содержат одно из главных имена родителей (рёбер и граней соответственно).
|
||||
\en Check whether vertices and edges names contain a main name of one of the parents (edges and faces corresponding). \~
|
||||
\param[in] shell - \ru Оболчка, которую проверяем.
|
||||
\param[in] shell - \ru Оболочка, которую проверяем.
|
||||
\en Shell to check. \~
|
||||
\param[in] edges - \ru Выходной массив рёбер, не содержащих главное имя ни одной из смежных граней.
|
||||
\en Resulting array of edges which do not contain a main name of any of the adjacent faces. \~
|
||||
@@ -972,6 +973,62 @@ MATH_FUNC (bool) CheckTopologyItemsMainNames( const MbFaceShell & s
|
||||
c3d::ConstVerticesVector & vertices );
|
||||
|
||||
|
||||
//------------------------------------------------------------------------------
|
||||
/** \brief \ru Добавить в рёбра атрибуты гладкости ребра.
|
||||
\en Add edges smoothness attributes. \~
|
||||
\details \ru Добавить в рёбра атрибуты с информацией о гладкости стыковки граней в ребре.
|
||||
\en Add attributes to edges with information about the smoothness of joining faces in the edge. \~
|
||||
\param[in] shell - \ru Оболочка, которую обрабатываем.
|
||||
\en Shell to processing. \~
|
||||
\param[in] skipExisting - \ru Пропустить уже существующие (не обновлять в них данные).
|
||||
\en Skip existing ones (do not update data in them). \~
|
||||
\return \ru Возвращает true, если новые атрибуты были добавлены.
|
||||
\en Returns true if new attributes were added.\~
|
||||
\ingroup Algorithms_3D
|
||||
*/ //---
|
||||
MATH_FUNC (bool) AddEdgeSmoothnessAttributes( MbFaceShell & shell, bool skipExisting );
|
||||
|
||||
//------------------------------------------------------------------------------
|
||||
/** \brief \ru Обновить данные в атрибутах гладкости ребра.
|
||||
\en Update edges smoothness attributes data. \~
|
||||
\details \ru Обновить в атрибутах информацию о гладкости стыковки граней в ребре.
|
||||
\en Update data in the attributes for the smoothness of the joining of faces in an edge. \~
|
||||
\param[in] shell - \ru Оболочка, которую обрабатываем.
|
||||
\en Shell to processing. \~
|
||||
\return \ru Возвращает true, если атрибуты были обновлены.
|
||||
\en Returns true if attributes were updated.\~
|
||||
\ingroup Algorithms_3D
|
||||
*/ //---
|
||||
MATH_FUNC (bool) UpdateEdgeSmoothnessAttributes( MbFaceShell & shell );
|
||||
|
||||
//------------------------------------------------------------------------------
|
||||
/** \brief \ru Удалить атрибуты гладкости ребра.
|
||||
\en Remove edges smoothness attributes. \~
|
||||
\details \ru Удалить из рёбер атрибуты с информацией о гладкости стыковки граней в ребре.
|
||||
\en Remove attributes from edges with information about the smoothness of the joining of faces in the edge. \~
|
||||
\param[in] shell - \ru Оболочка, которую обрабатываем.
|
||||
\en Shell to processing. \~
|
||||
\return \ru Возвращает true, если атрибуты были удалены.
|
||||
\en Returns true if attributes were removed.\~
|
||||
\ingroup Algorithms_3D
|
||||
*/ //---
|
||||
MATH_FUNC (bool) RemoveEdgeSmoothnessAttributes( MbFaceShell & shell );
|
||||
|
||||
|
||||
//------------------------------------------------------------------------------
|
||||
/** \brief \ru Получить из ребра атрибут гладкости ребра.
|
||||
\en Get edge smoothness attribute from an edge. \~
|
||||
\details \ru Получить из ребра атрибут гладкости ребра.
|
||||
\en Get edge smoothness attribute from an edge. \~
|
||||
\param[in] edge - \ru Ребро, которое проверяем.
|
||||
\en Edge to check. \~
|
||||
\return \ru Возвращает атрибут гладкости ребра, если он есть в ребре.
|
||||
\en Returns edge smoothness attribute if this attribute does exist.\~
|
||||
\ingroup Algorithms_3D
|
||||
*/ //---
|
||||
MATH_FUNC (const MbDoubleRangeAttribute *) GetEdgeSmoothnessAttribute( const MbCurveEdge & edge );
|
||||
|
||||
|
||||
//------------------------------------------------------------------------------
|
||||
/** \brief \ru Проверить, вырожденная ли поверхность.
|
||||
\en Check whether the surface is degenerated. \~
|
||||
|
||||
@@ -368,7 +368,9 @@ enum MbeGettingItemType {
|
||||
git_PlaneInstance, ///< \ru Получить вставки плоских объектов (эскизы). \en Get plane instances (drafts).
|
||||
git_PointFrame, ///< \ru Получить точечные каркасы. \en Get point frames.
|
||||
git_AssociatedGeometry, ///< \ru Получить ассоциированные геометрические объекты (резьбы). \en Get associated geometry objects (threads).
|
||||
git_Polygonal ///< \ru Получить полгональные объекты (MbMesh). !!! ЭКСПЕРИМЕНТАЛЬНЫЙ ФУНКЦИОНАЛ !!! \en Get polygonal objects (MbMesh). !!! EXPEREIMENTAL FUNCTIONALITY !!!
|
||||
git_Polygonal, ///< \ru Получить полгональные объекты (MbMesh). !!! ЭКСПЕРИМЕНТАЛЬНЫЙ ФУНКЦИОНАЛ !!! \en Get polygonal objects (MbMesh). !!! EXPEREIMENTAL FUNCTIONALITY !!!
|
||||
git_PMI, ///< \ru Получить размеры и иные элементы аннотации. \en Get dimensions and other annotation items.
|
||||
git_TechnicalRquirments ///< \ru Получить технические требования. \en Get thecnical requirements.
|
||||
};
|
||||
|
||||
|
||||
|
||||
@@ -112,7 +112,7 @@ namespace JTC {
|
||||
//------------------------------------------------------------------------------
|
||||
// Построить сетку по полигонам
|
||||
// ---
|
||||
CONV_FUNC( MbGrid* ) CreateGridByPolyonPoints( const std::vector<std::vector<MbCartPoint3D>>& polygonsAsPoints );
|
||||
CONV_FUNC( SPtr<MbGrid> ) CreateGridByPolygonPoints( const std::vector<std::vector<MbCartPoint3D>>& polygonsAsPoints );
|
||||
|
||||
//------------------------------------------------------------------------------
|
||||
// Создать номали сетки по умолчанию
|
||||
|
||||
@@ -169,7 +169,7 @@ IMPL_PERSISTENT_OPS( MbBooleanSolid )
|
||||
\ingroup Model_Creators
|
||||
*/
|
||||
// ---
|
||||
//DEPRECATE_DECLARE_REPLACE( CreateBoolean with MbBooleanOperationParams )
|
||||
DEPRECATE_DECLARE_REPLACE( CreateBoolean with MbBooleanOperationParams )
|
||||
MATH_FUNC (MbCreator *) CreateBoolean( MbFaceShell * shell1,
|
||||
MbeCopyMode sameShell1,
|
||||
MbFaceShell * shell2,
|
||||
|
||||
@@ -204,7 +204,7 @@ IMPL_PERSISTENT_OPS( MbDraftSolid )
|
||||
\ingroup Model_Creators
|
||||
*/
|
||||
// ---
|
||||
//DEPRECATE_DECLARE_REPLACE( CreateDraft with 'MbDraftSolidParams' argument )
|
||||
DEPRECATE_DECLARE_REPLACE( CreateDraft with 'MbDraftSolidParams' argument )
|
||||
MATH_FUNC (MbCreator *) CreateDraft( MbFaceShell * solid,
|
||||
MbeCopyMode sameShell,
|
||||
const MbPlacement3D & np,
|
||||
|
||||
@@ -61,7 +61,7 @@ public:
|
||||
|
||||
/** \} */
|
||||
|
||||
//DEPRECATE_DECLARE_REPLACE( CreateWireFrame with 'c3d::WireFrameSPtr' argument )
|
||||
DEPRECATE_DECLARE_REPLACE( CreateWireFrame with 'c3d::WireFrameSPtr' argument )
|
||||
bool CreateWireFrame( MbWireFrame *&, MbeCopyMode, RPArray<MbSpaceItem> * ) override; // \ru Построить кривую по журналу построения. \en Create a curve from the history tree. \~
|
||||
bool CreateWireFrame( c3d::WireFrameSPtr & result ); // \ru Построить кривую по журналу построения. \en Create a curve from the history tree. \~
|
||||
|
||||
|
||||
@@ -25,13 +25,15 @@
|
||||
перемещение выбранных граней с окружением относительно оставшихся граней тела, \n
|
||||
замена выбранных граней тела эквидистантными гранями (перемещение по нормали, изменение радиуса), \n
|
||||
замена выбранных граней тела деформируемыми гранями (превращение в NURBS для редактирования).\n
|
||||
замена выбранных граней тела.\n
|
||||
\en Constructor of a shell performing modification of the source shell.
|
||||
Constructor performs the following modifications of the source shell: \n
|
||||
deletion the selected faces with neighborhood from the solid, \n
|
||||
creation of the solid from the selected faces with the neighborhood, \n
|
||||
translation of the selected faces with the neighborhood relative to the remained faces of the solid, \n
|
||||
replacement of the selected faces of the solid with the offset faces (translation along the normal, changing the radius), \n
|
||||
replacement of the specified faces of the solid with the deformable faces (conversion to the NURBS for editing).\n \~
|
||||
replacement of the specified faces of the solid with the deformable faces (conversion to the NURBS for editing).\n
|
||||
replacement of the specified faces of the solid.\n \~
|
||||
\ingroup Model_Creators
|
||||
*/
|
||||
// ---
|
||||
|
||||
@@ -112,7 +112,7 @@ IMPL_PERSISTENT_OPS( MbRibSolid )
|
||||
\ingroup Model_Creators
|
||||
*/
|
||||
// ---
|
||||
//DEPRECATE_DECLARE_REPLACE( CreateRib with MbRibSolidParameters )
|
||||
DEPRECATE_DECLARE_REPLACE( CreateRib with MbRibSolidParameters )
|
||||
MATH_FUNC (MbCreator *) CreateRib( MbFaceShell * solid,
|
||||
MbeCopyMode sameShell,
|
||||
const MbPlacement3D & place,
|
||||
@@ -183,7 +183,7 @@ MATH_FUNC (MbCreator *) CreateRib( c3d::ShellSPtr & solid,
|
||||
\ingroup Model_Creators
|
||||
*/
|
||||
// ---
|
||||
//DEPRECATE_DECLARE_REPLACE( CreateRibElement with MbRibSolidParameters )
|
||||
DEPRECATE_DECLARE_REPLACE( CreateRibElement with MbRibSolidParameters )
|
||||
MATH_FUNC (MbCreator *) CreateRibElement( MbFaceShell * solid,
|
||||
const MbPlacement3D & place,
|
||||
const MbContour & contour,
|
||||
|
||||
@@ -104,17 +104,20 @@ public :
|
||||
\en Generating face names. \~
|
||||
\param[out] res - \ru Код результата операции.
|
||||
\en Operation result code. \~
|
||||
\param[out] shell - \ru Код ошибки порстроения.
|
||||
\en Result code of building. \~
|
||||
\param[out] shell - \ru Результирующая оболочка.
|
||||
\en Resultant shell. \~
|
||||
\param[out] opResult - \ru Обобщенные результаты операции.
|
||||
\en Common operation results. \~
|
||||
\result \ru Возвращает строитель.
|
||||
\en Returns the constructor of operation. \~
|
||||
*/
|
||||
static
|
||||
c3d::CreatorSPtr Create( c3d::ShellSPtr & solid,
|
||||
MbeCopyMode sameShell,
|
||||
const MbSectionData & data,
|
||||
MbResultType & res,
|
||||
c3d::ShellSPtr & shell );
|
||||
c3d::CreatorSPtr Create( c3d::ShellSPtr & solid,
|
||||
MbeCopyMode sameShell,
|
||||
const MbSectionData & data,
|
||||
MbResultType & res,
|
||||
c3d::ShellSPtr & shell,
|
||||
MbOperationResults & opResult );
|
||||
|
||||
private :
|
||||
// \ru Объявление оператора присваивания без реализации, чтобы не было присваивания по умолчанию. \en The declaration of the assignment operator without implementation to prevent an assignment by default.
|
||||
|
||||
@@ -52,7 +52,7 @@ public :
|
||||
\deprecated \ru Метод устарел, взамен использовать конструктор с набором параметров #MbRemoveOperationResultParams.
|
||||
\en The method is deprecated, instead use constructor with the parameter list #MbRemoveOperationResultParams. \~
|
||||
*/
|
||||
// DEPRECATE_DECLARE_REPLACE( MbRemoveOperationSolid with MbRemoveOperationResultParams )
|
||||
DEPRECATE_DECLARE_REPLACE( MbRemoveOperationSolid with MbRemoveOperationResultParams )
|
||||
MbRemoveOperationSolid( const SimpleName removeName,
|
||||
MbeSheetOperationName opType,
|
||||
const MbSNameMaker & names );
|
||||
@@ -155,7 +155,7 @@ MATH_FUNC (MbCreator *) CreateRemovedOperationResult ( MbFaceShell &
|
||||
\ingroup Model_Creators
|
||||
*/
|
||||
// ---
|
||||
// DEPRECATE_DECLARE_REPLACE( CreateRemovedOperationResult with MbRemoveOperationResultParams )
|
||||
DEPRECATE_DECLARE_REPLACE( CreateRemovedOperationResult with MbRemoveOperationResultParams )
|
||||
MATH_FUNC (MbCreator *) CreateRemovedOperationResult ( MbFaceShell & initialShell,
|
||||
const MbeCopyMode sameShell,
|
||||
const SimpleName removeName,
|
||||
@@ -191,7 +191,7 @@ MATH_FUNC (MbCreator *) CreateRemovedOperationResult ( MbFaceShell &
|
||||
\ingroup Model_Creators
|
||||
*/
|
||||
// ---
|
||||
// DEPRECATE_DECLARE_REPLACE( CreateRemovedOperationResult with MbRemoveOperationResultParams )
|
||||
DEPRECATE_DECLARE_REPLACE( CreateRemovedOperationResult with MbRemoveOperationResultParams )
|
||||
MATH_FUNC (MbCreator *) CreateRemovedOperationResult( MbFaceShell & initialShell,
|
||||
const MbeCopyMode sameShell,
|
||||
const SimpleName removeName,
|
||||
|
||||
@@ -109,7 +109,7 @@ IMPL_PERSISTENT_OPS( MbSymmetrySolid )
|
||||
\ingroup Model_Creators
|
||||
*/
|
||||
// ---
|
||||
//DEPRECATE_DECLARE_REPLACE( CreateSymmetry with 'MbSymmetrySolidParams' argument )
|
||||
DEPRECATE_DECLARE_REPLACE( CreateSymmetry with 'MbSymmetrySolidParams' argument )
|
||||
MATH_FUNC (MbCreator *) CreateSymmetry( MbFaceShell * solid,
|
||||
MbeCopyMode sameShell,
|
||||
const MbCartPoint3D & origin,
|
||||
|
||||
@@ -86,6 +86,15 @@ struct MATH_CLASS MbCurvature
|
||||
}
|
||||
/// \ru Определена ли кривизна. \en Is curvature defined.
|
||||
bool IsDefined() const { return meanNormal.Length2() > PARAM_EPSILON; }
|
||||
/// \ru Получить индекс кривизны. \en Get curvature index.
|
||||
double CurvatureIndex() const
|
||||
{
|
||||
const double delta = k1 - k2;
|
||||
if ( ::fabs( delta ) < PARAM_EPSILON )
|
||||
return 1.;
|
||||
|
||||
return ::atan( ( k1 + k2 ) / delta ) / M_PI_2;
|
||||
}
|
||||
};
|
||||
|
||||
|
||||
|
||||
@@ -1726,28 +1726,28 @@ double MbCubeTree<Type, Cube, Point, Vector>::FindNearestObject( const Point &
|
||||
queue.pop();
|
||||
|
||||
double d2 = node._ptr->branchCube.DistanceToPoint( pnt );
|
||||
d2 *= d2;
|
||||
d2 = d2 < 0. ? 0. : d2 * d2;
|
||||
if ( d2 > dist2 )
|
||||
break; // Все оставшиеся узлы дальше уже найденного расстояния.
|
||||
|
||||
if ( ( node._ptr->lowerBranch != nullptr ) || ( node._ptr->upperBranch != nullptr ) || ( node._ptr->midstBranch != nullptr ) ) {
|
||||
if ( node._ptr->lowerBranch != nullptr ) {
|
||||
d2 = node._ptr->lowerBranch->branchCube.DistanceToPoint( pnt );
|
||||
d2 *= d2;
|
||||
d2 = d2 < 0. ? 0. : d2 * d2;
|
||||
if ( d2 < dist2 )
|
||||
queue.push( NodeElem<TypeTree>( node._ptr->lowerBranch, d2 ) );
|
||||
}
|
||||
|
||||
if ( node._ptr->upperBranch != nullptr ) {
|
||||
d2 = node._ptr->upperBranch->branchCube.DistanceToPoint( pnt );
|
||||
d2 *= d2;
|
||||
d2 = d2 < 0. ? 0. : d2 * d2;
|
||||
if ( d2 < dist2 )
|
||||
queue.push( NodeElem<TypeTree>( node._ptr->upperBranch, d2 ) );
|
||||
}
|
||||
|
||||
if ( node._ptr->midstBranch != nullptr ) {
|
||||
d2 = node._ptr->midstBranch->branchCube.DistanceToPoint( pnt );
|
||||
d2 *= d2;
|
||||
d2 = d2 < 0. ? 0. : d2 * d2;
|
||||
if ( d2 < dist2 )
|
||||
queue.push( NodeElem<TypeTree>( node._ptr->midstBranch, d2 ) );
|
||||
}
|
||||
|
||||
@@ -21,6 +21,13 @@ class MATH_CLASS MbDirection;
|
||||
class MATH_CLASS MbCurve3D;
|
||||
class MATH_CLASS MbCube;
|
||||
class MATH_CLASS MbLine3D;
|
||||
class MATH_CLASS MbPlacement3D;
|
||||
|
||||
namespace c3d // namespace C3D
|
||||
{
|
||||
typedef std::pair<MbPlacement3D, MbCartPoint3D> PlacePoint3DPair; ///< \ru Пара ЛСК-точка. \en Pair local coordinate system-point.
|
||||
typedef std::vector<PlacePoint3DPair> PlacePoint3DPairVector; ///< \ru Вектор пар ЛСК-точка. \en Local coordinate system-point pairs vector.
|
||||
}
|
||||
|
||||
|
||||
//------------------------------------------------------------------------------
|
||||
|
||||
+58
-1
@@ -101,6 +101,12 @@ enum class MbeNumericCharacteristicType
|
||||
/// \ru Предопределённый тип терминатора - закрашенная стрелка. \en Pre-defined type of terminator - filled arrow.
|
||||
const c3d::string_t c3d_terminatorFilledArrow = _T("C3D TERMINATOR FILLED ARROW");
|
||||
|
||||
/// \ru Предопределённый тип терминатора - закрашенная стрелка. \en Pre-defined type of terminator - filled arrow.
|
||||
const c3d::string_t c3d_terminatorFilledBox = _T("C3D TERMINATOR FILLED BOX");
|
||||
|
||||
/// \ru Предопределённый тип терминатора - закрашенная стрелка. \en Pre-defined type of terminator - filled arrow.
|
||||
const c3d::string_t c3d_terminatorFilledCircle = _T("C3D TERMINATOR FILLED CIRCLE");
|
||||
|
||||
/// \ru Предопределённый тип терминатора - незакрашенная стрелка. \en Pre-defined type of terminator - unfilled arrow.
|
||||
const c3d::string_t c3d_terminatorUnfilledArrow = _T("C3D TERMINATOR UNFILLED ARROW");
|
||||
|
||||
@@ -110,6 +116,18 @@ const c3d::string_t c3d_terminatorUnfilledBox = _T("C3D TERMINATOR UNFILLED BOX"
|
||||
/// \ru Предопределённый тип терминатора - незакрашенный круг. \en Pre-defined type of terminator - unfilled circle.
|
||||
const c3d::string_t c3d_terminatorUnfilledCircle = _T("C3D TERMINATOR UNFILLED CIRCLE");
|
||||
|
||||
/// \ru Предопределённый тип терминатора - незакрашенный круг. \en Pre-defined type of terminator - unfilled circle.
|
||||
const c3d::string_t c3d_terminatorOpenArrow = _T("C3D TERMINATOR OPEN ARROW");
|
||||
|
||||
/// \ru Предопределённый тип терминатора - незакрашенный круг. \en Pre-defined type of terminator - unfilled circle.
|
||||
const c3d::string_t c3d_terminatorSlash = _T("C3D TERMINATOR SLASH");
|
||||
|
||||
/// \ru Предопределённый тип терминатора - незакрашенный круг. \en Pre-defined type of terminator - unfilled circle.
|
||||
const c3d::string_t c3d_terminatorIntegral = _T("C3D TERMINATOR INTEGRAL");
|
||||
|
||||
/// \ru Предопределённый тип терминатора - незакрашенный круг. \en Pre-defined type of terminator - unfilled circle.
|
||||
const c3d::string_t c3d_terminatorDimensionOrigin = _T("C3D TERMINATOR DIMENSION ORIGIN");
|
||||
|
||||
|
||||
//----------------------------------------------------------------------------------------
|
||||
/** \brief \ru Текстовый элемент, несущий содержание.
|
||||
@@ -248,6 +266,7 @@ public:
|
||||
\param[in] upper - \ru Верхняя граница диапазона.
|
||||
\en Upper value of range. \~
|
||||
*/
|
||||
|
||||
MbValueRange( double lower, double upper );
|
||||
/** \brief \ru Конструктор.
|
||||
\en Constructor. \~
|
||||
@@ -258,7 +277,6 @@ public:
|
||||
\param[in] upper - \ru Верхняя граница диапазона.
|
||||
\en Upper value of range. \~
|
||||
*/
|
||||
|
||||
MbValueRange( double value, double lower, double upper );
|
||||
|
||||
/// \ru Конструктор по умолчанию удалён. \en Default constructor obviously deleted.
|
||||
@@ -291,9 +309,37 @@ public:
|
||||
*/
|
||||
bool IsRangeDefined( double & lower, double & upper ) const;
|
||||
|
||||
/** \brief \ru Задать номинал, сбросить диапазон.
|
||||
\en Set value, reset range. \~
|
||||
\param[in] valie - \ru Номинал.
|
||||
\en Value. \~
|
||||
*/
|
||||
void Init( double value );
|
||||
|
||||
/** \brief \ru Задать диапазон, сбросить номинал.
|
||||
\en Set range, reset value. \~
|
||||
\param[in] lower - \ru Нижняя граница диапазона,
|
||||
\en Lower value of range, \~
|
||||
\param[in] upper - \ru Верхняя граница диапазона.
|
||||
\en Upper value of range. \~
|
||||
*/
|
||||
void Init( double lower, double upper );
|
||||
|
||||
/** \brief \ru Задать номинал и диапазон.
|
||||
\en Set value and range. \~
|
||||
\param[in] value - \ru Номинал,
|
||||
\en Value, \~
|
||||
\param[in] lower - \ru Нижняя граница диапазона,
|
||||
\en Lower value of range, \~
|
||||
\param[in] upper - \ru Верхняя граница диапазона.
|
||||
\en Upper value of range. \~
|
||||
*/
|
||||
void Init( double value, double lower, double upper );
|
||||
|
||||
/// \ru Являются ли объекты равными. \en Are the objects equal.
|
||||
bool IsSame( const MbValueRange & to, double accuracy ) const;
|
||||
|
||||
|
||||
DECLARE_PERSISTENT_CLASS( MbValueRange )
|
||||
};
|
||||
|
||||
@@ -342,6 +388,17 @@ public:
|
||||
*/
|
||||
static SPtr<MbTerminator> Create( const MbPlacement & location, const c3d::string_t & type, double sizeX, double sizeY );
|
||||
|
||||
/// \ru Получить положение терминатора. \en Get terminator's location.
|
||||
MbPlacement GetLocation() const;
|
||||
|
||||
/// \ru Получить тип терминатора. \en Get terminator's type.
|
||||
c3d::string_t GetTerminatorType() const;
|
||||
|
||||
/// \ru Получить ширину терминатора. \en Get terminator's width.
|
||||
double GetWidth() const;
|
||||
|
||||
/// \ru Получить высоту терминатора. \en Get terminator's height.
|
||||
double GetHeight() const;
|
||||
|
||||
/// \ru Инициализировтаь терминатор по исходному. \en Initialize terminator.
|
||||
void Init( const MbTerminator& );
|
||||
|
||||
@@ -222,6 +222,7 @@ enum MbePrompt
|
||||
IDS_ITEM_0352, ///< \ru Поверхность полного скругления. \en Full Fillet Surface.
|
||||
IDS_ITEM_0353, ///< \ru Поверхность заметания с масштабированием. \en Swept Surface with Scaling.
|
||||
IDS_ITEM_0354, ///< \ru Поверхность переменного сечения. \en The Swept Mutable Section Surface.
|
||||
IDS_ITEM_0355, ///< \ru Пользовательская поверхность. \en The User Defined Surface.
|
||||
|
||||
// \ru Типы тел \en Types of solids
|
||||
|
||||
@@ -455,6 +456,7 @@ enum MbePrompt
|
||||
IDS_ITEM_0793, ///< \ru Атрибут массив целочисленных значений типа int64. \en Array of integer (int64) values attribute.
|
||||
IDS_ITEM_0794, ///< \ru Атрибут массив действительных чисел типа double. \en Array of real (double) values attribute.
|
||||
IDS_ITEM_0795, ///< \ru Атрибут хот-точки. \en Attribute of hot-point.
|
||||
IDS_ITEM_0796, ///< \ru Атрибут диапазона действительных чисел типа double. \en Double precision range attribute.
|
||||
|
||||
// \ru Сообщения. \en Messages.
|
||||
|
||||
@@ -659,6 +661,7 @@ enum MbePrompt
|
||||
IDS_PROP_0278, ///< \ru Слияние вершин выбранных ребер. \en Merging vertices of selected edges.
|
||||
IDS_PROP_0279, ///< \ru Замена гладко стыкующихся граней одной гранью. \en Replacing smoothly joined faces with one face.
|
||||
IDS_PROP_0280, ///< \ru Поворот граней. \en Faces rotation.
|
||||
IDS_PROP_0281, ///< \ru Замена граней. \en Faces replacement.
|
||||
|
||||
IDS_PROP_0282, ///< \ru Вектор модификации. \en The vector of modification.
|
||||
IDS_PROP_0283, ///< \ru Количество модифицированных граней. \en Number of modified faces.
|
||||
|
||||
@@ -139,7 +139,7 @@ public:
|
||||
class MATH_CLASS MbOperationResults {
|
||||
protected:
|
||||
double _tolerance; ///< \ru Толерантность построенных объектов. \en The tolerance of the constructed objects.
|
||||
SPtr<MbHotPointAttribute> _hotPoint; ///< \ru Атрибут хот-точки операции. \en Hot-point's attribute.
|
||||
c3d::BaseHotPointAttrSPtr _hotPoint; ///< \ru Атрибут хот-точки операции. \en Hot-point's attribute.
|
||||
|
||||
public:
|
||||
/// \ru Конструктор по умолчанию. \en Default constructor.
|
||||
@@ -162,17 +162,19 @@ public:
|
||||
|
||||
public:
|
||||
/// \ru Функция инициализации. \en Initialization function.
|
||||
void Init( const SPtr<MbHotPointAttribute> & hotPoint,
|
||||
double accuracy = METRIC_EPSILON) {
|
||||
void Init( const c3d::BaseHotPointAttrSPtr & hotPoint,
|
||||
double accuracy = METRIC_EPSILON) {
|
||||
_hotPoint = hotPoint;
|
||||
_tolerance = accuracy;
|
||||
}
|
||||
/// \ru Являются ли объекты равными? \en Determine whether an object is equal?
|
||||
bool IsSame( const MbOperationResults & other, double accuracy ) const;
|
||||
/// \ru Получить значение толерантности построенных объектов. \en Get tolerance of the constructed objects.
|
||||
double GetTolerance() const { return _tolerance; }
|
||||
double GetTolerance() const { return _tolerance; }
|
||||
/// \ru Получить атрибут хот-точки операции. \en Get hot-point's attribute.
|
||||
const SPtr<MbHotPointAttribute> & GetHotPointAttribute() const { return _hotPoint; }
|
||||
const c3d::BaseHotPointAttrSPtr & GetHotPointAttribute() const { return _hotPoint; }
|
||||
/// \ru Установить атрибут хот-точки операции. \en Set hot-point's attribute.
|
||||
c3d::BaseHotPointAttrSPtr & SetHotPointAttribute() { return _hotPoint; }
|
||||
/// \ru Оператор присваивания. \en Assignment operator.
|
||||
MbOperationResults & operator = ( const MbOperationResults & other );
|
||||
|
||||
|
||||
@@ -70,15 +70,15 @@ enum MbeModifyingMode {
|
||||
|
||||
dmm_DeleteEdges = 90, ///< \ru Слияние вершин ребёр и удаление рёбер. \en Merging vertices of edges and edges removal.
|
||||
|
||||
dmm_UniteFaces = 100, ///< \ru Замена гладко стыкующихся граней одной гранью. \en Replacing smoothly joined faces with one face.
|
||||
dmm_UniteFaces = 100, ///< \ru Замена гладко стыкующихся граней одной гранью. \en Replacing smoothly joined faces with one face.
|
||||
|
||||
dmm_RotateFaces = 110, ///< \ru Поворот выбранных граней тела. \en Rotate the chosen faces.
|
||||
|
||||
dmm_FilletsRadiusChange = 120, ///< \ru Изменение радиусов выбранных граней скругления на заданную величину. \en Change of radii of the specified fillet faces for the set value.
|
||||
|
||||
dmm_FilletsRadiusSet = 130, ///< \ru В разработке. Установка радиусов выбранных граней скругления. \en Under development. Set the radii for the specified fillet faces.
|
||||
|
||||
//dmm_ChangeFaceSurface = 140, ///< \ru В разработке. \en Under development.
|
||||
|
||||
dmm_ReplaceFaces = 140, ///< \ru В разработке. Замена граней тела. \en Under development. Replacement faces of a solid.
|
||||
};
|
||||
|
||||
|
||||
@@ -287,8 +287,9 @@ MATH_FUNC (MbResultType) FaceModifiedSolid( MbSolid & solid,
|
||||
Для удаления всех скруглений тела, меньших определённого радиуса _modificationType==dmm_PurifyFilletsBelowRadius.\n
|
||||
8. Слияние вершин ребёр и удаление рёбер dmm_DeleteEdges. \n
|
||||
9. Замена гладко стыкующихся граней одной гранью dmm_UniteFaces. \n
|
||||
10. Поворот выбранных граней dmm_RotateFaces. Угол поворота определяется параметром value,
|
||||
ось поворота определяется осью.\n
|
||||
10. Поворот выбранных граней dmm_RotateFaces. Угол поворота определяется параметром angle,
|
||||
ось поворота определяется осью axis.\n
|
||||
11. Замена выбранных граней тела dmm_ReplaceFaces.\n
|
||||
|
||||
\en Parameters for a solid direct modification include the type of operation (#MbeModifyingMode) and its parameters.
|
||||
The possible operations depend on the '_modificationType' parameter and are listed below: \n
|
||||
@@ -313,6 +314,7 @@ MATH_FUNC (MbResultType) FaceModifiedSolid( MbSolid & solid,
|
||||
9. Replacement of the smoothly joined faces with a single face dmm_UniteFaces. \n
|
||||
10. Rotation of the chosen faces dmm_RotateFaces. The parameters are the rotation angle
|
||||
and the rotation axis.\n
|
||||
11. Replacement of the specified faces of a solid dmm_ReplaceFaces.\n
|
||||
\~
|
||||
\ingroup Direct_Building_Parameters
|
||||
*/
|
||||
@@ -478,7 +480,6 @@ public:
|
||||
AddFaces( faces );
|
||||
}
|
||||
|
||||
|
||||
/** \brief \ru Конструктор.
|
||||
\en Constructor. \~
|
||||
\details \ru Конструктор по параметрам.
|
||||
@@ -502,6 +503,34 @@ public:
|
||||
AddFaces( faces );
|
||||
AddSurfaces( surfaces );
|
||||
}
|
||||
|
||||
/** \brief \ru Конструктор.
|
||||
\en Constructor. \~
|
||||
\details \ru Конструктор по параметрам.
|
||||
\en Constructor by parameters. \~
|
||||
\param[in] type - \ru Тип модификации. Для данного конструктора доступны: dmm_ReplaceFaces.
|
||||
\en Modification type. Available types for this constructor are: dmm_ReplaceFaces. \~
|
||||
\param[in] names - \ru Именователь операции.
|
||||
\en An object defining names generation in the operation. \~
|
||||
\param[in] replacedFaces - \ru Список заменяемых граней.
|
||||
\en Faces to be replaced. \~
|
||||
\param[in] replacementSurfaces - \ru Список заменяющих поверхностей.
|
||||
\en Replacement surfaces. \~
|
||||
\param[in] surfaceParts - \ru Список номеров частей поверхностей, которые будут использоваться при нескольких возможных вариантах замены.
|
||||
\en An array of part numbers of surfaces to be used in several possible replacement options. \~
|
||||
\param[in] sameSurfaces - \ru Использовать исходные поверхности (true) или их копии (false).
|
||||
\en Use the source surfaces (true) or its copies (false). \~
|
||||
\param[in] offsets - \ru Список сдвигов от заменяющих поверхностей.
|
||||
\en Offsets from replacement surfaces. \~
|
||||
*/
|
||||
template<class SurfArray>
|
||||
MATH_FUNC_EX MbModifiedSolidParams( MbeModifyingMode type,
|
||||
const MbSNameMaker & names,
|
||||
const c3d::ItemIndices & replacedFaces,
|
||||
const SurfArray & replacementSurfaces,
|
||||
bool sameSurfaces,
|
||||
const c3d::NumbersVector & surfaceParts,
|
||||
const c3d::DoubleVector & offsets );
|
||||
//
|
||||
/** \} */
|
||||
|
||||
@@ -666,7 +695,7 @@ public:
|
||||
\en Surface pointers array.\~
|
||||
*/
|
||||
template <class SurfArray>
|
||||
void AddSurfaces( const SurfArray & surfs );
|
||||
MATH_FUNC( void ) AddSurfaces( const SurfArray & surfs );
|
||||
/** \brief \ru Получить поверхности для замены граней.
|
||||
\en Get surfaces to change faces. \~
|
||||
\details \ru Получить поверхности для замены граней.
|
||||
@@ -744,9 +773,9 @@ public:
|
||||
class MATH_CLASS MbModifiedSolidResults
|
||||
{
|
||||
public:
|
||||
SPtr<MbSolid> _resSolid; ///< \ru Результирующее тело. \en The resulting body.
|
||||
double _maxDifUnited; ///< \ru Максимальное отклонение объединённой поверхности от присланных граней (оценочная величина). \en The maximum deviation of the united surfaces from the input surfaces (approximate value).
|
||||
std::vector<SPtr<MbSurface>> _surfaces; ///< \ru Список поверхностей (только для dmm_ConvertFacesToNurbs). \en The list of surfaces (only for dmm_ConvertFacesToNurbs)
|
||||
SPtr<MbSolid> _resSolid; ///< \ru Результирующее тело. \en The resulting body.
|
||||
double _maxDifUnited; ///< \ru Максимальное отклонение объединённой поверхности от присланных граней (оценочная величина). \en The maximum deviation of the united surfaces from the input surfaces (approximate value).
|
||||
c3d::SurfacesSPtrVector _surfaces; ///< \ru Список поверхностей (только для dmm_ConvertFacesToNurbs). \en The list of surfaces (only for dmm_ConvertFacesToNurbs).
|
||||
|
||||
// \ru Конструктор. \en Constructor.
|
||||
MbModifiedSolidResults()
|
||||
|
||||
@@ -714,4 +714,28 @@ public:
|
||||
|
||||
OBVIOUS_PRIVATE_COPY( MbMeshUnwrapResult );
|
||||
}; // MbMeshUnwrapResult
|
||||
|
||||
|
||||
//------------------------------------------------------------------------------
|
||||
/** \brief \ru Параметры совмещения объектов.
|
||||
\en Parameters of object alignment. \~
|
||||
\details \ru Параметры совмещения объектов.
|
||||
\en Parameters of object alignment. \~
|
||||
\warning \ru В разработке.
|
||||
\en Under development. \~
|
||||
*/
|
||||
// ---
|
||||
class MATH_CLASS MbObjectAlignmentParams
|
||||
{
|
||||
private:
|
||||
size_t _iterationMax; ///< \ru Максимальное количество итераций. \en Maximum iteration count.
|
||||
|
||||
public:
|
||||
/// \ru Конструктор. \en Constructor.
|
||||
MbObjectAlignmentParams( size_t iterationMax = 10000 ) : _iterationMax( iterationMax ) {}
|
||||
/// \ru Деструктор. \en Destructor.
|
||||
~MbObjectAlignmentParams() {}
|
||||
/// \ru Получить максимальное количество итераций. \en Get the maximum iteration count. \~
|
||||
size_t GetIterationMax() const { return _iterationMax; }
|
||||
}; // MbObjectAlignmentParams
|
||||
#endif // __OP_MESH_PARAMETERS_H
|
||||
|
||||
@@ -4833,6 +4833,21 @@ public:
|
||||
const MbSNameMaker & spineName,
|
||||
IProgressIndicator * prog = nullptr );
|
||||
|
||||
/** \brief \ru Конструктор копирования с заменой образующей
|
||||
\en Copy constructor with generator replacement. \~
|
||||
\details \ru Конструктор копирования с заменой образующей
|
||||
\en Copy constructor with generator replacement. \~
|
||||
\param[in] other - \ru Параметры для копирования.
|
||||
\en Options for copying.
|
||||
\param[in] sweptData - \ru Данные об образующей для замены.
|
||||
\en The generating curve data for replacement. \~
|
||||
\param[in] contourNames - \ru Именователь контуров образующей для замены.
|
||||
\en An object defining the names of generating curve contours for replacement. \~
|
||||
*/
|
||||
MbEvolutionShellParams( const MbEvolutionShellParams & other,
|
||||
const MbSweptData & sweptData,
|
||||
const RPArray<MbSNameMaker> & contoursNames );
|
||||
|
||||
/// \ru Деструктор. \en Destructor. \~
|
||||
~MbEvolutionShellParams();
|
||||
|
||||
@@ -6054,6 +6069,14 @@ public:
|
||||
/// \ru Получить доступ к массиву поверхностей скругления/фаски. \en Get an access to the array of fillet/chamfer surfaces.
|
||||
c3d::SurfacesSPtrVector & SetSurfaces() { return _surfaces; }
|
||||
|
||||
/// \ru Переложить поверхности скругления/фаски в контейнер. \en Put the fillet/chamfer surfaces to a container. \~
|
||||
template<class PtrVector>
|
||||
void DetachSurfaces( PtrVector & surfaces ) {
|
||||
surfaces.reserve( _surfaces.size() );
|
||||
for ( size_t i = 0, iCount = _surfaces.size(); i < iCount; ++i )
|
||||
surfaces.push_back( _surfaces[i].detach() );
|
||||
}
|
||||
|
||||
OBVIOUS_PRIVATE_COPY( MbSmoothPhantomResult )
|
||||
}; // MbSmoothPhantomResult
|
||||
|
||||
@@ -6071,7 +6094,7 @@ public:
|
||||
class MATH_CLASS MbSmoothSequenceResult : public MbSmoothPhantomResult
|
||||
{
|
||||
private:
|
||||
std::vector<MbEdgeSequence *> _edgeSequences; ///< \ru Последовательности гладко стыкующихся рёбер. \en Sequences of smooth mating edges.
|
||||
std::vector<MbEdgeSequence> _edgeSequences; ///< \ru Последовательности гладко стыкующихся рёбер. \en Sequences of smooth mating edges.
|
||||
|
||||
public:
|
||||
/// \ru Конструктор по умолчанию. \en Default constructor. \~
|
||||
@@ -6080,10 +6103,20 @@ public:
|
||||
public:
|
||||
|
||||
/// \ru Получить массив последовательностей гладко стыкующихся рёбер. \en Get the array of sequences of smooth mating edges.
|
||||
const std::vector<MbEdgeSequence *> & GetSequences() const { return _edgeSequences; }
|
||||
const std::vector<MbEdgeSequence> & GetSequences() const { return _edgeSequences; }
|
||||
|
||||
/// \ru Получить доступ к массиву последовательностей гладко стыкующихся рёбер. \en Get an access to the array of sequences of smooth mating edges.
|
||||
std::vector<MbEdgeSequence *> & SetSequences() { return _edgeSequences; }
|
||||
std::vector<MbEdgeSequence> & SetSequences() { return _edgeSequences; }
|
||||
|
||||
/// \ru Получить массив последовательностей гладко стыкующихся рёбер. Освобождать созданные объекты должна вызывающая функция.
|
||||
/// \en Get the array of sequences of smooth mating edges. Destruction of created objects is a responsibility of the function caller.
|
||||
template<class PtrArray>
|
||||
void GetSequences( PtrArray & seq ) const {
|
||||
seq.clear();
|
||||
seq.reserve( _edgeSequences.size() );
|
||||
for ( auto & s : _edgeSequences )
|
||||
seq.push_back( new MbEdgeSequence( s ) );
|
||||
}
|
||||
|
||||
OBVIOUS_PRIVATE_COPY( MbSmoothSequenceResult )
|
||||
}; // MbSmoothSequenceResult
|
||||
@@ -6190,6 +6223,14 @@ public:
|
||||
/// \ru Получить доступ к массиву опорных точек размеров операции скругления/фаски. \en Get an access to the array of the support points of the fillet / chamfer operation sizes.
|
||||
std::vector<MbPositionData *> & SetPositionData() { return _positionData; }
|
||||
|
||||
/// \ru Переложить массив опорных точек в указанный массив. \en Put the support points to the specified array.
|
||||
template<class PtrArray>
|
||||
void GetPositionData( PtrArray & data ) {
|
||||
data.reserve( _positionData.size() );
|
||||
for ( size_t i = 0; i < _positionData.size(); i++ )
|
||||
data.push_back( _positionData[i] );
|
||||
}
|
||||
|
||||
OBVIOUS_PRIVATE_COPY( MbSmoothPositionDataResults )
|
||||
}; // MbSmoothPositionDataResults
|
||||
|
||||
@@ -6540,7 +6581,7 @@ private:
|
||||
|
||||
|
||||
//------------------------------------------------------------------------------
|
||||
/** \brief \ru результаты построения тела уклона.
|
||||
/** \brief \ru Результаты построения тела уклона.
|
||||
\en Results of creating a draft's solid. \~
|
||||
\details \ru Результаты построения тела уклона содержат тело уклона и атрибут хот-точки уклона.
|
||||
\en Results of creating a draft's solid contains draft's solid and hot-point's attribute. \~
|
||||
@@ -6559,12 +6600,6 @@ public:
|
||||
, _resultSolid ()
|
||||
{}
|
||||
/// \ru Функция инициализации. \en Initialization function.
|
||||
void Init( const MbOperationResults & operatResults,
|
||||
const c3d::SolidSPtr & resultSolid ) {
|
||||
MbOperationResults::Init( operatResults.GetHotPointAttribute(), operatResults.GetTolerance() );
|
||||
_resultSolid = resultSolid;
|
||||
}
|
||||
/// \ru Функция инициализации. \en Initialization function.
|
||||
void Init( const c3d::SolidSPtr & resultSolid ) {
|
||||
_resultSolid = resultSolid;
|
||||
}
|
||||
@@ -6572,7 +6607,80 @@ public:
|
||||
c3d::SolidSPtr GetResultSolid() const { return _resultSolid; }
|
||||
/// \ru Получить результирующее тело. \en Get resulting solid.
|
||||
c3d::SolidSPtr & SetResultSolid() { return _resultSolid; }
|
||||
/** \brief \ru Получить хот-точку операции.
|
||||
\en Get operation hot point. \~
|
||||
\param[in] pnt - \ru Хот-точка угла наклона.
|
||||
\en Hot point of draft angle. \~
|
||||
\param[in] axis - \ru Ось вращения.
|
||||
\en Axis of rotation. \~
|
||||
\return \ru Возвращает "true" в случае успеха.
|
||||
\en Returns "true" in case of success. \~
|
||||
*/
|
||||
bool GetDraftHotPoint( MbCartPoint3D & pnt, MbAxis3D & axis ) const;
|
||||
OBVIOUS_PRIVATE_COPY( MbDraftSolidResults )
|
||||
}; // MbDraftSolidResults
|
||||
|
||||
|
||||
//------------------------------------------------------------------------------
|
||||
/** \brief \ru Результаты построения оболочки с переменным коническим сечением.
|
||||
\en Results of construction of a shell on swept mutable section surface. \~
|
||||
\details \ru Результаты построения оболочки с переменным коническим сечением.
|
||||
\en Results of construction of a shell on swept mutable section surface. \~
|
||||
\ingroup ingroup Shell_Building_Parameters
|
||||
*/
|
||||
// ---
|
||||
class MATH_CLASS MbSectionResults : public MbOperationResults {
|
||||
private:
|
||||
c3d::SolidSPtr _solid;
|
||||
public:
|
||||
MbSectionResults()
|
||||
: MbOperationResults()
|
||||
, _solid ()
|
||||
{}
|
||||
/// \ru Конструктор копирования. \en Copy-constructor.
|
||||
MbSectionResults( const MbSectionResults & other )
|
||||
: MbOperationResults( other )
|
||||
, _solid ( other._solid )
|
||||
{}
|
||||
/// \ru Оператор присваивания. \en Assignment operator.
|
||||
MbSectionResults & operator = ( const MbSectionResults & other ) {
|
||||
_tolerance = other._tolerance;
|
||||
_hotPoint = other._hotPoint;
|
||||
_solid = _solid;
|
||||
return *this;
|
||||
}
|
||||
/// \ru Получить результирующее тело. \en Get resulting solid.
|
||||
c3d::SolidSPtr GetResultSolid() const { return _solid; }
|
||||
/// \ru Получить результирующее тело. \en Get resulting solid.
|
||||
c3d::SolidSPtr & SetResultSolid() { return _solid; }
|
||||
/** \brief \ru Выдать хот-точки для заданного расположения сечения.
|
||||
\en Get hot points for given layout. \~
|
||||
\param[in] id - \ru Идентификатор положения сечения:
|
||||
0 - начальный край сечения поверхности,
|
||||
1 - конечный край сечения поверхности,
|
||||
2 - середина сечения поверхности.
|
||||
\en Hot-points layout identifier:
|
||||
0 - initial cross-section of the surface,
|
||||
1 - end cross-section of the surface,
|
||||
2 - middle cross-section of the surface. \~
|
||||
\param[out] p1 - \ru Точка пересечения первой направляющей кривой и плоскости XY.
|
||||
\en The intersection point of the first guide curve and XY plane. \~
|
||||
\param[out] v1 - \ru Вектор направления от первой направляющей к вершине охватывающего треугольника.
|
||||
\en The direction vector from the first guide point to the vertex of the enclosing triangle. \~
|
||||
\param[out] p2 - \ru Точка пересечения второй направляющей кривой и плоскости XY.
|
||||
\en The intersection point of the second guide curve and XY plane. \~
|
||||
\param[out] v2 - \ru Вектор направления от второй направляющей к вершине охватывающего треугольника.
|
||||
\en The direction vector from the second guide point to the vertex of the enclosing triangle. \~
|
||||
\param[out] p3 - \ru Точка пересечения медианы из вершины охватывающего треугольника и поперечного сечения.
|
||||
\en The intersection point of median from vertex the enclosing triangle and cross section curve. \~
|
||||
\param[out] v3 - \ru Вектор направления медианы из вершины охватывающего треугольника.
|
||||
\en The direction vector of median from vertex of the enclosing triangle. \~
|
||||
\return \ru true, в случае успеха.
|
||||
\en true if success. \~
|
||||
*/
|
||||
bool GetHotPointsLayout( size_t id,
|
||||
MbCartPoint3D & p1, MbVector3D & v1,
|
||||
MbCartPoint3D & p2, MbVector3D & v2,
|
||||
MbCartPoint3D & p3, MbVector3D & v3 ) const;
|
||||
};
|
||||
#endif // __OP_SHELL_PARAMETERS_H
|
||||
|
||||
@@ -80,17 +80,26 @@ class MbRegDuplicate;
|
||||
*/
|
||||
// ---
|
||||
class MATH_CLASS MbSweptData {
|
||||
public:
|
||||
/// \ru Тип интерпретации проволочного каркаса. \en Wire frame interpretation type.
|
||||
enum class MbeWireFrameType {
|
||||
undefined = 0, ///< \ru Не определен. \en Undefined. \~
|
||||
planeContours = 1, ///< \ru Контуры на плоскости. \en Contours on plane. \~
|
||||
surfaceContours = 2, ///< \ru Контуры на поверхности. \en Contours on surface. \~
|
||||
spaceContours = 3, ///< \ru Трехмерные контуры. \en Space contours. \~
|
||||
};
|
||||
|
||||
private:
|
||||
// \ru Данные о двумерных контурах на поверхности. \en Data about two-dimensional contours on the surface.
|
||||
c3d::SurfaceSPtr surface; ///< \ru Поверхность. \en The surface.
|
||||
c3d::PlaneContoursSPtrVector contours; ///< \ru Множество двумерных контуров. \en Set of two-dimensional contours.
|
||||
c3d::SurfaceSPtr surface; ///< \ru Поверхность. \en The surface.
|
||||
c3d::PlaneContoursSPtrVector contours; ///< \ru Множество двумерных контуров. \en Set of two-dimensional contours.
|
||||
// \ru Трехмерные контуры. \en Three-dimensional contours.
|
||||
c3d::SpaceContoursSPtrVector contours3D; ///< \ru Множество трёхмерных контуров. \en Set of three-dimensional contours.
|
||||
c3d::SpaceContoursSPtrVector contours3D; ///< \ru Множество трёхмерных контуров. \en Set of three-dimensional contours.
|
||||
// \ru Тело. \en Solid.
|
||||
c3d::SolidSPtr solid; ///< \ru Тело. \en A solid.
|
||||
c3d::SolidSPtr solid; ///< \ru Тело. \en A solid.
|
||||
// \ru Проволочный каркас. \en Wire frame.
|
||||
c3d::WireFrameSPtr wireFrame; ///< \ru Трехмерный проволочный каркас. В разработке. \en Three-dimensional wire frame. In Development.
|
||||
c3d::WireFrameSPtr wireFrame; ///< \ru Трехмерный проволочный каркас. В разработке. \en Three-dimensional wire frame. In Development.
|
||||
MbeWireFrameType frameType; ///< \ru Тип интерпретации проволочного каркаса. \en Wire frame interpretation type.
|
||||
|
||||
public:
|
||||
/// \ru Конструктор по умолчанию. \en Default constructor.
|
||||
@@ -211,8 +220,10 @@ public:
|
||||
\en Constructor по three-dimensional wire frame. Used original. \~
|
||||
\param[in] _wireFrame - \ru Трехмерный проволочный каркас.
|
||||
\en Three-dimensional wire frame. \~
|
||||
\param[in] _wireFrameType - \ru Тип интерпретации проволочного каркаса.
|
||||
\en Wire frame interpretation type. \~
|
||||
*/
|
||||
MbSweptData( MbWireFrame & _wireFrame );
|
||||
MbSweptData( MbWireFrame & _wireFrame, MbeWireFrameType _wireFrameType = MbeWireFrameType::undefined );
|
||||
|
||||
/// \ru Деструктор. \en Destructor.
|
||||
~MbSweptData();
|
||||
@@ -291,6 +302,8 @@ public:
|
||||
const MbWireFrame * GetWireFrame() const { return wireFrame; }
|
||||
/// \ru Выдать проволочный каркас для изменения. \en Get the wire frame for editing.
|
||||
MbWireFrame * SetWireFrame() const { return wireFrame; }
|
||||
/// \ru Выдать тип интерпретации проволочного каркаса. \en Get wire frame interpretation type.
|
||||
MbeWireFrameType GetWireFrameType() const { return frameType; }
|
||||
/// \ru Выдать тело. \en Get the solid.
|
||||
const MbSolid * GetSolid() const { return solid; }
|
||||
/// \ru Выдать тело для изменения. \en Get the solid for editing.
|
||||
@@ -314,10 +327,43 @@ public:
|
||||
\param[out] wireContours3D - \ru Набор трехмерных контуров.
|
||||
\en Set of three-dimensional contours. \~
|
||||
*/
|
||||
void GetWireFrameContours( c3d::PlaneContoursSPtrVector & wireContours,
|
||||
void GetWireFrameContours( c3d::PlaneContoursSPtrVector & wireContours,
|
||||
c3d::SurfaceSPtr & wireSurface,
|
||||
c3d::SpaceContoursSPtrVector & wireContours3D ) const;
|
||||
|
||||
/** \brief \ru Выдать двумерные контуры с поверхностью, полученные с проволочного каркаса.
|
||||
\en Get two-dimensional contours with a surface obtained from a wireframe. \~
|
||||
\details \ru Выдать двумерные контуры с поверхностью, полученные с проволочного каркаса.
|
||||
Контуры будут созданы, если задан тип каркаса frameType == wft_planeContours или frameType == wft_surfaceContours.
|
||||
Каркас трактуется как плоские или как поверхностные контуры, в зависимости от заданного типа frameType.
|
||||
\en Get two-dimensional contours with a surface obtained from a wireframe.
|
||||
Contours will be created if the wireframe type is set to frameType == wft_planeContours or frameType == wft_surfaceContours.
|
||||
The frame is treated as flat or surface contours, depending on the specified frameType \~
|
||||
\param[out] wireSurfaces - \ru Набор поверхностей.
|
||||
\en A set of surfaces. \~
|
||||
\param[out] wireContours - \ru Наборы двумерных контуров для каждой поверхности.
|
||||
\en Sets of two-dimensional contours for all surface. \~
|
||||
\return \ru Количество поверхностей и наборов контуров.
|
||||
\en Number of surfaces and contour sets. \~
|
||||
*/
|
||||
size_t GetWireFrameSurfaceContours( c3d::SurfacesSPtrVector & wireSurfaces,
|
||||
std::vector<c3d::PlaneContoursSPtrVector> & wireContours,
|
||||
std::vector<c3d::SNamesMakerSPtrVector> & contoursNames ) const;
|
||||
|
||||
/** \brief \ru Выдать трехмерные контуры, полученные с проволочного каркаса.
|
||||
\en Get space contours obtained from a wireframe. \~
|
||||
\details \ru Выдать трехмерные контуры, полученные с проволочного каркаса.
|
||||
Контуры будут созданы, если задан тип frameType == wrf_spaceContours.
|
||||
\en Get space contours obtained from a wireframe.
|
||||
Contours will be created if frameType == wrf_spaceContours is set. \~
|
||||
\param[out] wireContours - \ru Наборы двумерных контуров для каждой поверхности.
|
||||
\en Sets of two-dimensional contours for all surface. \~
|
||||
\return \ru Количество контуров.
|
||||
\en Number of contours. \~
|
||||
*/
|
||||
size_t GetWireFrameSpaceContours( c3d::SpaceContoursSPtrVector & wireContours3D,
|
||||
c3d::SNamesMakerSPtrVector & contoursNames ) const;
|
||||
|
||||
/** \brief \ru Преобразовать объект.
|
||||
\en Transform the object. \~
|
||||
\details \ru Преобразовать исходный объект согласно матрице c использованием регистратора.
|
||||
|
||||
@@ -411,7 +411,7 @@ public:
|
||||
protected :
|
||||
void Init(); // \ru Инициализация данных. \en Data init.
|
||||
void BreakPoints( const MbCurve3D * , double precision = ANGLE_REGION ); // \ru Определение точек излома направляющих. \en Determination of the break points of the guides.
|
||||
void CacheInit(); // \ru Инициализация вспомогательных данных. \en Auxiliary data init.
|
||||
void CacheInit( bool resetLongTerm = true ); // \ru Инициализация вспомогательных данных. \en Auxiliary data init.
|
||||
// \ru Проверить и изменить при необходимости параметры поверхности. \en Check and correct parameters of the surface.
|
||||
void CheckParams( double & u, double & v, bool ext ) const;
|
||||
// \ru Вычисление пересечений направляющих с плоскостью сечения поверхности. \ en Calculating the intersections of guides with the surface cross -section plane.
|
||||
|
||||
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Reference in New Issue
Block a user