- C3d aggiornamento delle librerie ( 117950).
This commit is contained in:
SaraP
2023-06-05 10:20:23 +02:00
parent e028c0aa69
commit 3ad8c64ea7
33 changed files with 405 additions and 319 deletions
+2 -2
View File
@@ -531,7 +531,7 @@ private:
OBVIOUS_PRIVATE_COPY( MbSurfacesJointAnalysisParams )
};
//DEPRECATE_DECLARE_REPLACE( MbSurfacesJointAnalysisParams )
DEPRECATE_DECLARE_REPLACE( MbSurfacesJointAnalysisParams )
typedef MbSurfacesJointAnalysisParams MbNormalsMinMaxAnglesParams;
@@ -605,7 +605,7 @@ public:
OBVIOUS_PRIVATE_COPY( MbSurfacesJointAnalysisResults )
};
//DEPRECATE_DECLARE_REPLACE( MbSurfacesJointAnalysisResults )
DEPRECATE_DECLARE_REPLACE( MbSurfacesJointAnalysisResults )
typedef MbSurfacesJointAnalysisResults MbNormalsMinMaxAnglesResults;
+119 -20
View File
@@ -18,6 +18,7 @@
#include <mesh.h>
#include <mb_enum.h>
#include <mb_operation_result.h>
#include <op_mesh_parameter.h>
#include <vector>
@@ -153,20 +154,36 @@ enum MbeRejectOutliersType
// ---
class MATH_CLASS MbSurfaceFitToGridParameters {
private:
MbeSpaceType _surfaceType; ///< \ru Тип поверхности. \en A surface type.
double _tolerance; ///< \ru Точность распознавания. \en A fitting tolerance.
c3d::IndicesVector _indicies; ///< \ru Индексы полигонов сетки. \en Indicies of polygons.
MbeRejectOutliersType _typeReject; ///< \ru Способ отбраковки выбросов. \en Outliers rejection mode.
double _valueReject; ///< \ru Пороговое значения для отбраковки выбросов. \en Outliers rejection mode treshold value.
MbeSpaceType _surfaceType; ///< \ru Тип поверхности. \en A surface type.
double _tolerance; ///< \ru Точность распознавания. \en A fitting tolerance.
c3d::IndicesVector _indicies; ///< \ru Индексы полигонов сетки. \en Indicies of polygons.
MbeRejectOutliersType _typeReject; ///< \ru Способ отбраковки выбросов. \en Outliers rejection mode.
double _valueReject; ///< \ru Пороговое значения для отбраковки выбросов. \en Outliers rejection mode treshold value.
///< \ru Предельные значения параметров аналитических поверхностей. \en Tresholds for analytical surfaces parameters.
double _angleConeMin; ///< \ru Минимально возможный половинный угол конуса (градусы). \en Mininmum allowed cone half-angle ( degrees ).
double _angleConeMax; ///< \ru Максимально возможный половинный угол конуса (градусы). \en Maximum allowed cone half-angle( degrees ).
double _radiusAnalyticShapeMax; ///< \ru Максимально возможный радиальный размер аналитических поверхностей. \en Maximum allowed analytical shapes radial size.
///< \ru Параметры для вписывания нурбс поверхности. \en NURBs surface fitting parameters.
size_t _order; ///< \ru Порядок нурбс поверхности. \en NURBs surface order.
size_t _countCpMax; ///< \ru Максимально разрешенное количество контрольных точек. \en Maximum allowed control points count.
double _smoothCoef; ///< \ru Коэффициент сглаживания [1e-9 - 1e-3]. \en Smoothing coefficient [1e-9 - 1e-3].
private:
/// \ru Конструктор по умолчанию. \en Default constructor.
MbSurfaceFitToGridParameters()
: _surfaceType ( st_Undefined )
, _tolerance ( c3d::DELTA_MIN )
, _indicies ( )
, _typeReject ( rot_NoReject )
, _valueReject ( 0. )
: _surfaceType ( st_Undefined )
, _tolerance ( c3d::DELTA_MIN )
, _indicies ( )
, _typeReject ( rot_NoReject )
, _valueReject ( 0. )
, _order ( c3d::NURBS_DEGREE )
, _countCpMax ( c3d::NURBS_POINTS_MAX_COUNT )
, _smoothCoef ( METRIC_ACCURACY )
, _angleConeMin ( 1. )
, _angleConeMax ( 89. )
, _radiusAnalyticShapeMax( 1500. )
{}
public:
@@ -174,24 +191,80 @@ public:
explicit MbSurfaceFitToGridParameters( MbeSpaceType surfaceType,
double tolerance,
const c3d::IndicesVector & indicies )
: _surfaceType( surfaceType )
, _tolerance ( tolerance )
, _indicies ( indicies )
, _typeReject ( rot_NoReject )
, _valueReject( 0. )
: _surfaceType ( surfaceType )
, _tolerance ( tolerance )
, _indicies ( indicies )
, _typeReject ( rot_NoReject )
, _valueReject ( 0. )
, _order ( c3d::NURBS_DEGREE )
, _countCpMax ( c3d::NURBS_POINTS_MAX_COUNT )
, _smoothCoef ( METRIC_ACCURACY )
, _angleConeMin ( 1. )
, _angleConeMax ( 89. )
, _radiusAnalyticShapeMax( 1500. )
{}
/// \ru Конструктор по параметрам. \en Constructor by parameters.
explicit MbSurfaceFitToGridParameters( MbeSpaceType surfaceType,
double tolerance,
const c3d::IndicesVector & indicies,
MbeRejectOutliersType rejectType,
double rejectValue )
: _surfaceType( surfaceType )
, _tolerance ( tolerance )
, _indicies ( indicies )
, _typeReject ( rejectType )
, _valueReject( rejectValue )
: _surfaceType ( surfaceType )
, _tolerance ( tolerance )
, _indicies ( indicies )
, _typeReject ( rejectType )
, _valueReject ( rejectValue )
, _order ( c3d::NURBS_DEGREE )
, _countCpMax ( c3d::NURBS_POINTS_MAX_COUNT )
, _smoothCoef ( METRIC_ACCURACY )
, _angleConeMin ( 1. )
, _angleConeMax ( 89. )
, _radiusAnalyticShapeMax( 1500. )
{}
/// \ru Конструктор по параметрам для вписывания аналитических поверхностей. \en Constructor by parameters for analytic surfaces fitting.
explicit MbSurfaceFitToGridParameters( MbeSpaceType surfaceType,
double tolerance,
const c3d::IndicesVector & indicies,
MbeRejectOutliersType rejectType,
double rejectValue,
double angleConeMin,
double angleConeMax,
double radiusAnalyticShapeMax )
: _surfaceType ( surfaceType )
, _tolerance ( tolerance )
, _indicies ( indicies )
, _typeReject ( rejectType )
, _valueReject ( rejectValue )
, _order ( c3d::NURBS_DEGREE )
, _countCpMax ( c3d::NURBS_POINTS_MAX_COUNT )
, _smoothCoef ( METRIC_ACCURACY )
, _angleConeMin ( angleConeMin )
, _angleConeMax ( angleConeMax )
, _radiusAnalyticShapeMax( radiusAnalyticShapeMax )
{}
/// \ru Конструктор по параметрам для вписывания нурбс поверхности. \en Constructor by parameters for NURBs surface fitting.
explicit MbSurfaceFitToGridParameters( MbeSpaceType surfaceType,
double tolerance,
const c3d::IndicesVector & indicies,
size_t order,
size_t countCpMax,
double smoothCoef )
: _surfaceType ( surfaceType )
, _tolerance ( tolerance )
, _indicies ( indicies )
, _typeReject ( rot_NoReject )
, _valueReject ( 0. )
, _order ( order )
, _countCpMax ( countCpMax )
, _smoothCoef ( smoothCoef )
, _angleConeMin ( 1. )
, _angleConeMax ( 89. )
, _radiusAnalyticShapeMax( 1500. )
{}
/// \ru Выдать тип поверхности. \en Get surface type.
MbeSpaceType GetSurfaceType() const { return _surfaceType; }
/// \ru Выдать точность распознавания. \en Get fitting tolerance.
@@ -202,6 +275,32 @@ public:
MbeRejectOutliersType GetOutliersRejectionMode() const { return _typeReject; }
/// \ru Выдать пороговое значения для отбраковки выбросов. \en Get outliers rejection mode treshold value.
double GetOutliersRejectionValue() const { return _valueReject; }
/// \ru Выдать порядок нурбс поверхности. \en Get NURBs order.
size_t GetNurbsOrder() const { return _order; }
/// \ru Выдать максимально разрешенное количество контрольных точек. \en Get maximum allowed control points count.
size_t GetCountCpMax() const { return _countCpMax; }
/// \ru Выдать коэффициент сглаживания. \en Get smoothing coefficient.
double GetSmoothCoef() const { return _smoothCoef; }
/// \ru Выдать минимально возможный половинный угол конуса. \en Get mininmum allowed cone half-angle.
double GetAngleConeMin() const { return _angleConeMin; }
/// \ru Выдать максимально возможный половинный угол конуса. \en Get maximum allowed cone half-angle.
double GetAngleConeMax() const { return _angleConeMax; }
/// \ru Выдать максимально возможный радиальный размер аналитических поверхностей. \en Get maximum allowed analytical shapes radial size.
double GetRadiusAnalyticShapeMax() const { return _radiusAnalyticShapeMax; }
/// \ru Установить предельные значения параметров аналитических поверхностей. \en Set tresholds for analytical surfaces parameters.
void SetAnalyticBounds( double angleConeMin, double angleConeMax, double radiusAnalyticShapeMax )
{
_angleConeMin = angleConeMin;
_angleConeMax = angleConeMax;
_radiusAnalyticShapeMax = radiusAnalyticShapeMax;
}
/// \ru Установить параметры для вписывания нурбс поверхности. \en Set NURBs surface fitting parameters.
void SetNurbsFitParams( size_t order, size_t countCpMax, double smoothCoef )
{
_order = order;
_countCpMax = countCpMax;
_smoothCoef = smoothCoef;
}
OBVIOUS_PRIVATE_COPY( MbSurfaceFitToGridParameters )
};
+1 -1
View File
@@ -537,7 +537,7 @@ MATH_FUNC (MbResultType) MeshCutting( MbMesh & mesh,
\en Returns operation result code. \~
\ingroup Polygonal_Objects
*/ // ---
//DEPRECATE_DECLARE
DEPRECATE_DECLARE
MATH_FUNC (MbResultType) MeshSection( const MbMesh & mesh,
const MbPlacement3D & place,
RPArray<MbCurve3D> & polylines );
+1 -1
View File
@@ -263,7 +263,7 @@ MATH_FUNC (MbResultType) OffsetPhantom( const MbSolid & solid,
\ingroup Shell_Modeling
*/
// ---
//DEPRECATE_DECLARE_REPLACE(LocalCubePhantom with LocalCubePhantomParam)
DEPRECATE_DECLARE_REPLACE(LocalCubePhantom with LocalCubePhantomParam)
MATH_FUNC (MbResultType) LocalCubePhantom( const MbSolid & solid,
const MbPlacement3D & place,
bool bScale,
+13 -12
View File
@@ -953,8 +953,8 @@ MATH_FUNC (MbResultType) CutSolidArrayByBorders( MbSolid &
\en - The operation result code. \~
\ingroup Sheet_Metal_Modeling
*/
//DEPRECATE_DECLARE_REPLACE( CreateStampParts with 'MbStampPartsParams' argument )
// ---
DEPRECATE_DECLARE_REPLACE( CreateStampParts with 'MbStampPartsParams' argument )
MATH_FUNC (MbResultType) CreateStampParts( const MbFace * face,
const MbPlacement3D & placement,
const MbContour & contour,
@@ -1031,7 +1031,7 @@ MATH_FUNC (MbResultType) CreateStampParts( const MbPlacement3D & placement,
\ingroup Sheet_Metal_Modeling
*/
// ---
//DEPRECATE_DECLARE_REPLACE( StampWithToolSolid with 'MbStampWithToolPartsParams' argument )
DEPRECATE_DECLARE_REPLACE( CreateStampWithToolSolidParts with 'MbStampWithToolPartsParams' argument )
MATH_FUNC(MbResultType) CreateStampWithToolSolidParts( MbSolid & solid,
MbeCopyMode sameShell,
const MbFace & targetFace,
@@ -1096,7 +1096,7 @@ MATH_FUNC(MbResultType) CreateStampWithToolSolidParts( const c3d::SolidSPtr &
\ingroup Sheet_Metal_Modeling
*/
// ---
//DEPRECATE_DECLARE_REPLACE( NormalizeCutSides with 'MbNormalizeCutSidesParams' argument )
DEPRECATE_DECLARE_REPLACE( NormalizeCutSides with 'MbNormalizeCutSidesParams' argument )
MATH_FUNC(MbResultType) NormalizeCutSides ( MbSolid & solid,
MbeCopyMode sameShell,
const MbSNameMaker & nameMaker,
@@ -1161,7 +1161,7 @@ MATH_FUNC(MbResultType) NormalizeCutSides ( MbSolid & so
\ingroup Sheet_Metal_Modeling
*/
// ---
//DEPRECATE_DECLARE_REPLACE( Stamp with 'MbStampParams' argument )
DEPRECATE_DECLARE_REPLACE( Stamp with 'MbStampParams' argument )
MATH_FUNC (MbResultType) Stamp( MbSolid & solid,
MbeCopyMode sameShell,
const MbFace & face,
@@ -1236,7 +1236,7 @@ MATH_FUNC (MbResultType) Stamp( const c3d::SolidSPtr & solid,
\ingroup Sheet_Metal_Modeling
*/
// ---
//DEPRECATE_DECLARE_REPLACE( StampWithToolSolid with 'MbStampWithToolParams' argument )
DEPRECATE_DECLARE_REPLACE( StampWithToolSolid with 'MbStampWithToolParams' argument )
MATH_FUNC( MbResultType ) StampWithToolSolid( MbSolid & solid,
MbeCopyMode sameShell,
const MbFace & targetFace,
@@ -1328,8 +1328,8 @@ MATH_FUNC (MbResultType) CreateSphericalStampParts( const MbSphericalStampPartsP
\en - The operation result code. \~
\ingroup Sheet_Metal_Modeling
*/
//DEPRECATE_DECLARE_REPLACE( CreateSphericalStampParts with 'MbSphericalStampPartsParams' argument )
// ---
DEPRECATE_DECLARE_REPLACE( CreateSphericalStampParts with 'MbSphericalStampPartsParams' argument )
MATH_FUNC (MbResultType) CreateSphericalStampParts( const MbFace * face,
const MbPlacement3D & placement,
const MbStampingValues & params,
@@ -1343,6 +1343,7 @@ MATH_FUNC (MbResultType) CreateSphericalStampParts( const MbFace * fac
//------------------------------------------------------------------------------
// устаревшая
// ---
DEPRECATE_DECLARE
MATH_FUNC (MbResultType) CreateSphericalStampParts( const MbPlacement3D & placement,
const MbStampingValues & params,
const double thickness,
@@ -1406,7 +1407,7 @@ MATH_FUNC (MbResultType) SphericalStamp( const c3d::SolidSPtr & solid,
\ingroup Sheet_Metal_Modeling
*/
// ---
//DEPRECATE_DECLARE_REPLACE( SphericalStamp with 'MbSphericalStampParams' argument )
DEPRECATE_DECLARE_REPLACE( SphericalStamp with 'MbSphericalStampParams' argument )
MATH_FUNC (MbResultType) SphericalStamp( MbSolid & solid,
MbeCopyMode sameShell,
const MbFace & face,
@@ -2069,7 +2070,7 @@ MATH_FUNC (bool) CalculateConicAxisLine( const MbFace & face,
\ingroup Sheet_Metal_Modeling
*/
// ---
//DEPRECATE_DECLARE_REPLACE( BuildBends3DCenterlines with MbBends3DLinesParams )
DEPRECATE_DECLARE_REPLACE( BuildBends3DCenterlines with MbBends3DLinesParams )
MATH_FUNC (bool) BuildBends3DAxisLines( const RPArray<MbFace> & bendFaces,
RPArray<MbLineSegment3D> & axisLineSegments );
@@ -2090,7 +2091,7 @@ MATH_FUNC (bool) BuildBends3DAxisLines( const RPArray<MbFace> & bendFac
\ingroup Sheet_Metal_Modeling
*/
// ---
//DEPRECATE_DECLARE_REPLACE( BuildBends3DCenterlines with MbBends3DLinesParams )
DEPRECATE_DECLARE_REPLACE( BuildBends3DCenterlines with MbBends3DLinesParams )
MATH_FUNC (bool) BuildBends3DCenterlines( const RPArray<MbFace> & bendFaces,
RPArray<MbCurve3D> & centerlines );
@@ -2576,7 +2577,7 @@ private:
\ingroup Sheet_Metal_Modeling
*/
// ---
//DEPRECATE_DECLARE_REPLACE( SheetRibParts with MbSheetRibSolidParams )
DEPRECATE_DECLARE_REPLACE( SheetRibParts with MbSheetRibSolidParams )
MATH_FUNC (MbResultType) SheetRibParts( MbSolid & solid,
MbeCopyMode sameShell,
const MbPlacement3D & place,
@@ -2649,7 +2650,7 @@ MATH_FUNC (MbResultType) SheetRibParts( const c3d::SolidSPtr & solid,
\ingroup Sheet_Metal_Modeling
*/
// ---
//DEPRECATE_DECLARE_REPLACE( SheetRibSolid with MbSheetRibSolidParams )
DEPRECATE_DECLARE_REPLACE( SheetRibSolid with MbSheetRibSolidParams )
MATH_FUNC (MbResultType) SheetRibSolid( MbSolid & solid,
MbeCopyMode sameShell,
const MbPlacement3D & place,
@@ -2807,7 +2808,7 @@ MATH_FUNC (MbResultType) RemoveOperationResult( MbSolid &
\ingroup Sheet_Metal_Modeling
*/
// ---
//DEPRECATE_DECLARE_REPLACE( ConvertSolidToSheetMetal with 'MbSolidToSheetMetalParams' argument )
DEPRECATE_DECLARE_REPLACE( ConvertSolidToSheetMetal with 'MbSolidToSheetMetalParams' argument )
MATH_FUNC (MbResultType) ConvertSolidToSheetMetal( MbSolid & solid,
const MbeCopyMode sameShell,
const MbFace & initFace,
+1 -1
View File
@@ -91,7 +91,7 @@ public:
\en The value compItem can be CDET_NULL. This just means that the
instance does not belong to any component.
*/
cdet_item AddInstance( cdet_item compItem, cdet_item solidItem, const MbPlacement3D & place );
cdet_item AddInstance( cdet_item compItem, cdet_item solidItem, const MbPlacement3D & place );
/**
\brief \ru Удалить геометрический объект из набора для контроля столкновений.
\en Remove a geometric object from the set of collision detection. \~
-6
View File
@@ -491,12 +491,6 @@ public:
/// \ru Получить ЛСК. \en Get LCS.
MbPlacement3D GetLocation() const;
/// \ru Задать имя. \en Specify name.
DEPRECATE_DECLARE_REPLACE( SetC3dName ) void SetName( const std::string & nm );
/// \ru Получить имя. \en Specify name.
DEPRECATE_DECLARE_REPLACE ( GetC3dName ) void GetName( std::string & nm ) const;
/// \ru Задать имя. \en Specify name.
void SetC3dName ( const c3d::string_t& nm );
+1 -16
View File
@@ -498,24 +498,9 @@ public:
virtual bool AddRemovedFacesAsShells() const { return false; }
/// \ru Получить генератор однострочного идентификтора изделия. \en Get generator of one-line product identifier.
virtual SPtr<IProductIdMaker> ProductIdentifierGenerator() const { return SPtr<IProductIdMaker>(); }
/** \brief \ru Проводить ли аудит траснляции.
\en Whether to audit the translation. \~
\details \ru Замещена GetDebugSettings::enableCERRout.
\en GetDebugSettings::enableCERRout should be used instead. \~
\note \ru ТОЛЬКО ДЛЯ РАЗРАБОТЧИКОВ.
\en DEVELOPERS ONLY \~.
*/
DEPRECATE_DECLARE virtual bool TotalAudit() const { return false; } // 16.06.2021. GetDebugSettings
/// \ru Получить настройки для выдачи отладочной информации. \en Get the settings of debug info.
virtual C3DConverterDebugSettings GetDebugSettings() const { return C3DConverterDebugSettings(); };
/// \ru Следует ли формировать атрибут на основе идентификатора элемнта в файле. \en Whether to attatch the element's id in file as attribute.
DEPRECATE_DECLARE_REPLACE( GetDebugSettings ) virtual bool AttatchIdAttributes() const { return true; }
/// \ru Получить пользовательский преобразователь строк. \en Get user string transformer.
/// \ru Получить пользовательский преобразователь строк. \en Get user string transformer.
virtual SPtr<IC3DCharEncodingTransformer> GetUserCharEncodingTransformer() const { return SPtr<IC3DCharEncodingTransformer>(nullptr); }
}; // IConvertorProperty3D
+1 -54
View File
@@ -267,59 +267,6 @@ public:
/// \ru Задать технические требования. \en Set technical requirements.
virtual void SetRequirements( const AnnotationSptrVector & ) = 0;
/// \ru Наименование. \en Name.
/// \ru Задать имя документа. \en Set document's name. \~ \deprecated \ru Метод устарел 06.05.2020. \en The method is deprecated 06.05.2020.
DEPRECATE_DECLARE virtual bool SetName( const std::string& /*name*/ ) { return false; };
/// \ru Получить имя документа. \en Get document's name. \~ \deprecated \ru Метод устарел 06.05.2020. \en The method is deprecated 06.05.2020.
DEPRECATE_DECLARE virtual std::string Name() const { return std::string(); };
/// \ru Обозначение. \en Marking.
/// \ru Задать обозначение документа. \en Set document marking. \~ \deprecated \ru Метод устарел 06.05.2020. \en The method is deprecated 06.05.2020.
DEPRECATE_DECLARE virtual bool SetMarking( const std::string& /*name*/ ) { return false; };
/// \ru Получить обозначение документа. \en Get document marking. \~ \deprecated \ru Метод устарел 06.05.2020. \en The method is deprecated 06.05.2020.
DEPRECATE_DECLARE virtual std::string Marking() const { return std::string(); };
/// \ru Автор. \en Author.
/// \ru Задать имя автора. \en Set author's name. \~ \deprecated \ru Метод устарел 06.05.2020. \en The method is deprecated 06.05.2020.
DEPRECATE_DECLARE virtual bool SetAuthor( const std::string& /*name*/ ) { return false; };
/// \ru Получить имя автора. \en Get author's name. \~ \deprecated \ru Метод устарел 06.05.2020. \en The method is deprecated 06.05.2020.
DEPRECATE_DECLARE virtual std::string Author() const { return std::string(); };
/// \ru Организация. \en Organization.
/// \ru Задать имя автора. \en Set author's name. \~ \deprecated \ru Метод устарел 06.05.2020. \en The method is deprecated 06.05.2020.
DEPRECATE_DECLARE virtual bool SetOrganization( const std::string& /*name*/ ) { return false; };
/// \ru Получить имя автора. \en Get author's name. \~ \deprecated \ru Метод устарел 06.05.2020. \en The method is deprecated 06.05.2020.
DEPRECATE_DECLARE virtual std::string Organization() const { return std::string(); };
/// \ru Комментарий. \en Comment.
/// \ru Задать комментарии. \en Set the comments. \~ \deprecated \ru Метод устарел 06.05.2020. \en The method is deprecated 06.05.2020.
DEPRECATE_DECLARE virtual bool SetComments( const std::vector< std::string > & /*comments*/ ) { return false; };
/// \ru Получить следующий комментарий. \en Get the next comment. \~ \deprecated \ru Метод устарел 06.05.2020. \en The method is deprecated 06.05.2020.
DEPRECATE_DECLARE virtual std::vector< std::string > GetComments( ) const { return std::vector< std::string >(); };
/// \ru Цвет сборки, детали или вставки. \en Color of an assembly, a part or an instance.
/// \ru Задать цветовые свойства. \en Set color properties. \~ \deprecated \ru Метод устарел 06.05.2020. \en The method is deprecated 06.05.2020.
DEPRECATE_DECLARE virtual bool SetColor( const MbAttributeContainer & ) { return false; };
/// \ru Получить цветовые свойства. \en Get color properties. \~ \deprecated \ru Метод устарел 06.05.2020. \en The method is deprecated 06.05.2020.
DEPRECATE_DECLARE virtual bool GetColor( MbAttributeContainer & ) const { return false; };
/// \ru Цвет тела. \en Solid color.
/// \ru Задать цветовые свойства оболочки. \en Set color properties of a shell. \~ \deprecated \ru Метод устарел 06.05.2020. \en The method is deprecated 06.05.2020.
DEPRECATE_DECLARE virtual bool SetColor( const MbAttributeContainer &, size_t ) { return false; };
/// \ru Цвет грани. \en Face color.
/// \ru Задать цветовые свойства грани \en Set color properties of a face. \~ \deprecated \ru Метод устарел 06.05.2020. \en The method is deprecated 06.05.2020.
DEPRECATE_DECLARE virtual bool SetColor( const MbAttributeContainer &, const MbName & ) { return false; };
/// \ru Получить цветовые свойства грани. \en Get color properties of a face. \~ \deprecated \ru Метод устарел 06.05.2020. \en The method is deprecated 06.05.2020.
DEPRECATE_DECLARE virtual bool GetColor( MbAttributeContainer &, const MbName & ) const { return false; };
};
@@ -586,4 +533,4 @@ public:
};
#endif // __CONV_MODEL_DOCUMENT_H
#endif // __CONV_MODEL_DOCUMENT_H
+33 -112
View File
@@ -27,6 +27,7 @@ class ItModelDocument;
class IConvertorProperty3D;
class IConfigurationSelector;
class IAttributeNamesCollector;
class IConverterEventLogger;
/**
\addtogroup Exchange_Interface
@@ -426,9 +427,9 @@ namespace c3d {
\en Converter's interface implements methods of export of the model to files of exchange formats
and import from them. \~
*/
class IConvertor3D {
class IConverter3D {
public:
virtual ~IConvertor3D() {}
virtual ~IConverter3D() = default;
public:
/** \brief \ru Установить обработчик для выбора конфигураций.
@@ -446,6 +447,14 @@ public:
*/
virtual void SetConfgiurationSelector( SPtr<IConfigurationSelector> configuration_selector ) = 0;
/** \brief \ru Установить обработчик для логирования.
\en Set logging handler. \~
\param[in] importEventLogger - \ru Указатель на устанавливаемый обработчик.
\en Pointer to handler to be set. \~
*/
virtual void SetDeveloperEventLogger( SPtr<IConverterEventLogger> importEventLogger ) = 0;
/** \brief \ru Прочитать файл формата SAT.
\en Read a file of SAT format. \~
\details \ru Прочитать файл формата SAT или указанный поток.
@@ -908,7 +917,9 @@ public:
*/
virtual MbeConvResType ImportFromFile( ItModelDocument& mDoc, const c3d::path_string& filePath, IConvertorProperty3D* prop = nullptr, IProgressIndicator* indicator = nullptr ) = 0;
}; // IConvertor3D
}; // IConverter3D
typedef IConverter3D IConvertor3D;
//------------------------------------------------------------------------------
@@ -916,7 +927,7 @@ public:
\en Get the converter interface. \~
\ingroup Exchange_Interface
*/
CONV_FUNC( IConvertor3D* ) GetConvertor3D();
CONV_FUNC( IConverter3D* ) GetConverter3D();
//------------------------------------------------------------------------------
@@ -924,7 +935,24 @@ CONV_FUNC( IConvertor3D* ) GetConvertor3D();
\en Release the converter interface. \~
\ingroup Exchange_Interface
*/
CONV_FUNC( void ) ReleaseConvertor3D( IConvertor3D* );
CONV_FUNC( void ) ReleaseConverter3D( IConverter3D* );
//------------------------------------------------------------------------------
/** \brief \ru Получить интерфейс конвертера.
\en Get the converter interface. \~
\ingroup Exchange_Interface
*/
inline IConverter3D* GetConvertor3D() { return GetConverter3D(); }
//------------------------------------------------------------------------------
/** \brief \ru Освободить интерфейс конвертера.
\en Release the converter interface. \~
\ingroup Exchange_Interface
*/
inline void ReleaseConvertor3D( IConverter3D* convInstance ) { ReleaseConverter3D( convInstance ); }
/** \brief \ru Прочитать файл формата SAT.
@@ -1215,113 +1243,6 @@ CONV_FUNC( MbeConvResType ) ASCIIPointCloudRead( IConvertorProperty3D& prop, ItM
CONV_FUNC( MbeConvResType ) ASCIIPointCloudWrite( IConvertorProperty3D& prop, ItModelDocument& idoc, IProgressIndicator* indicator = 0 );
namespace c3d {
/** \brief \ru Импортировать данные из буфера в модель.
\en Import data from buffer into model. \~
\deprecated \ru Метод устарел 26.06.2020. \en The method is deprecated 26.06.2020. \~
\param[out] model - \ru Модель.
\en The model. \~
\param[in] data - \ru Буфер.
\en Buffer. \~
\param[in] length - \ru Размер буфера.
\en Buffer size. \~
\param[in] modelFormat - \ru Формат модели.
\en Model format. \~
\param[in] prop - \ru Реализация интерфейса свойств конвертера.
\en Implementation of converter's properties interface. \~
\param[in] indicator - \ru Индикатор хода процесса.
\en The process progress indicator. \~
\return \ru Код завершения операции.
\en Code of the operation termination. \~
\ingroup Exchange_Interface
*/
DEPRECATE_DECLARE CONV_FUNC( MbeConvResType ) ImportFromBuffer( MbModel& model,
const char* data,
size_t length,
MbeModelExchangeFormat modelFormat,
IConvertorProperty3D* prop = 0,
IProgressIndicator* indicator = 0 );
/** \brief \ru Импортировать данные из буфера в модель.
\en Import data from buffer into model. \~
\deprecated \ru Метод устарел 26.06.2020. \en The method is deprecated 26.06.2020. \~
\param[out] item - \ru Замещаемый элемент.
\en The item to replace. \~
\param[in] data - \ru Буфер.
\en Buffer. \~
\param[in] length - \ru Размер буфера.
\en Buffer size. \~
\param[in] modelFormat - \ru Формат модели.
\en Model format. \~
\param[in] prop - \ru Реализация интерфейса свойств конвертера.
\en Implementation of converter's properties interface. \~
\param[in] indicator - \ru Индикатор хода процесса.
\en The process progress indicator. \~
\return \ru Код завершения операции.
\en Code of the operation termination. \~
\ingroup Exchange_Interface
*/
DEPRECATE_DECLARE CONV_FUNC( MbeConvResType ) ImportFromBuffer( c3d::ItemSPtr& item,
const char* data,
size_t length,
MbeModelExchangeFormat modelFormat,
IConvertorProperty3D* prop = nullptr, IProgressIndicator* indicator = nullptr );
/** \brief \ru Экспортировать модель в буфер.
\en Export model into buffer. \~
\deprecated \ru Метод устарел 26.06.2020. \en The method is deprecated 26.06.2020. \~
\param[in] model - \ru Модель.
\en The model. \~
\param[in] modelFormat - \ru Формат модели.
\en Model format. \~
\param[out] data - \ru Буфер.
\en Buffer. \~
\param[out] length - \ru Размер буфера.
\en Buffer size. \~
\param[in] prop - \ru Реализация интерфейса свойств конвертера.
\en Implementation of converter's properties interface. \~
\param[in] indicator - \ru Индикатор хода процесса.
\en The process progress indicator. \~
\return \ru Код завершения операции.
\en Code of the operation termination. \~
\ingroup Exchange_Interface
*/
DEPRECATE_DECLARE CONV_FUNC( MbeConvResType ) ExportIntoBuffer( MbModel& model,
MbeModelExchangeFormat modelFormat,
char*& data,
size_t& length,
IConvertorProperty3D* prop = 0,
IProgressIndicator* indicator = 0 );
/** \brief \ru Экспортировать модель в буфер.
\en Export model into buffer. \~
\deprecated \ru Метод устарел 26.06.2020. \en The method is deprecated 26.06.2020. \~
\param[in] item - \ru Экспортируемый элемент.
\en The item to export. \~
\param[in] modelFormat - \ru Формат модели.
\en Model format. \~
\param[out] data - \ru Буфер.
\en Buffer. \~
\param[out] length - \ru Размер буфера.
\en Buffer size. \~
\param[in] prop - \ru Реализация интерфейса свойств конвертера.
\en Implementation of converter's properties interface. \~
\param[in] indicator - \ru Индикатор хода процесса.
\en The process progress indicator. \~
\return \ru Код завершения операции.
\en Code of the operation termination. \~
\ingroup Exchange_Interface
*/
DEPRECATE_DECLARE CONV_FUNC( MbeConvResType ) ExportIntoBuffer( MbItem& item, MbeModelExchangeFormat modelFormat,
char*& data,
size_t& length,
IConvertorProperty3D* prop = nullptr, IProgressIndicator* indicator = nullptr );
}
/** \} */
+13
View File
@@ -91,4 +91,17 @@ public:
};
//------------------------------------------------------------------------------
/**
\brief \ru Интерфейс запроса отладочного вывода.
\en Debug output request interface \~
*/
// ---
class IConverterEventLogger : public MbRefItem
{
public:
virtual bool WriteToLog( const char * ) = 0;
};
#endif // __CONV_REQUESTOR_H
+1 -1
View File
@@ -95,7 +95,7 @@ IMPL_PERSISTENT_OPS( MbDuplicationSolid )
\en Returns the constructor if the operation has been successfully performed. \~
\ingroup Solid_Modeling
*/
//DEPRECATE_DECLARE_REPLACE(CreateDuplication with MbDuplicationSolidParams)
DEPRECATE_DECLARE_REPLACE(CreateDuplication with MbDuplicationSolidParams)
MATH_FUNC (MbCreator *) CreateDuplication( const MbFaceShell & solid,
const DuplicationValues & params,
const MbSNameMaker & operNames,
+2 -2
View File
@@ -215,7 +215,7 @@ MbElementarySolid::MbElementarySolid( const PointsVector & pnts, ElementaryShell
\ingroup Solid_Modeling
*/
// ---
//DEPRECATE_DECLARE_REPLACE( CreateElementary with MbElementarySolidParams )
DEPRECATE_DECLARE_REPLACE( CreateElementary with MbElementarySolidParams )
MATH_FUNC (MbCreator *) CreateElementary( const SArray<MbCartPoint3D> & points,
const ElementaryShellType t,
const MbSNameMaker & n,
@@ -247,7 +247,7 @@ MATH_FUNC (MbCreator *) CreateElementary( const SArray<MbCartPoint3D> & points,
\ingroup Solid_Modeling
*/
// ---
//DEPRECATE_DECLARE_REPLACE( CreateElementary with MbElementarySolidParams )
DEPRECATE_DECLARE_REPLACE( CreateElementary with MbElementarySolidParams )
MATH_FUNC (MbCreator *) CreateElementary( const MbElementarySurface & surface,
const MbSNameMaker & n,
MbResultType & res,
+7 -10
View File
@@ -60,11 +60,9 @@ private:
*/
//----------------------------------------------------------------------------------------
/**
\brief \ru Состояние определенности системы геометрических ограничений.
\en Difinition State of geometric constraints system.
*/
//---
/** \brief \ru Состояние определенности системы геометрических ограничений.
\en Difinition State of geometric constraints system.
*/ //---
typedef enum
{
GCE_STATE_Unknown = 0 ///< \ru О состоянии ничего не известно. \en State is unknown.
@@ -104,13 +102,12 @@ GCE_FUNC(bool) GCE_CheckPointSatisfaction( GCE_system gSys, geom_item pnt, point
DEPRECATE_DECLARE GCE_FUNC(GCE_s_state) GCE_StateOfSystem( GCE_system gSys );
//----------------------------------------------------------------------------------------
/**
\brief \ru Выдать состояние определенности системы ограничений.
\en Get constraint system definition state.
/** \brief \ru Выдать состояние определенности системы ограничений.
\en Get constraint system definition state.
\param[in] gSys - \ru Система ограничений.
\param[in] gSys - \ru Система ограничений.
\en System of constraints. \~
\details
\details
\ru Функция вернет состояние #GCE_STATE_Underconstrained, если имеется хотя бы
один геометрический объект с ненулевой степенью свободы.
Состояние #GCE_STATE_WellConstrained означает, что геометрия полностью определена, а другое
+6 -6
View File
@@ -1510,19 +1510,19 @@ GCE_FUNC(constraint_item) GCE_FixVariable( GCE_system gSys, var_item var );
GCE_FUNC(constraint_item) GCE_FixGeom( GCE_system gSys, geom_item g );
//----------------------------------------------------------------------------------------
/** \brief \ru Задать ограничение "Фиксированная длина отрезка"
\en Set the constraint "Fixation of segment length" \~
/** \brief \ru Задать ограничение "Фиксированная длина кривой"
\en Set the constraint "Fixation of curve length" \~
\param[in] gSys - \ru Система ограничений.
\en System of constraints. \~
\param[in] ls - \ru Дескриптор отрезка.
\en Descriptor of segment. \~
\param[in] ls - \ru Дескриптор кривой.
\en Descriptor of curve. \~
\return \ru Дескриптор нового ограничения.
\en Descriptor of a new constraint. \~
\details \ru У кривой должны быть начальная и конечная точки (#GCE_FIRST_END и #GCE_SECOND_END).
Ограничение поддерживается для линейных объектов и дуг окружностей.
Ограничение поддерживается для линейных объектов, дуг окружностей и сплайнов.
\en The curve must have a start and end points (#GCE_FIRST_END и #GCE_SECOND_END).
Constraint is supported for linear objects and circular arcs.\~
Constraint is supported for linear objects circular arcs and splines.\~
*/
//---
GCE_FUNC(constraint_item) GCE_FixLength( GCE_system gSys, geom_item ls );
+31 -19
View File
@@ -228,25 +228,37 @@ typedef enum
//---
typedef enum
{
GCE_RESULT_None = 0, ///< \ru Нет результата (пустое сообщение). \en No result (empty message).
GCE_RESULT_Ok = 1, ///< \ru Успешный результат. \en Successful result.
GCE_RESULT_Satisfied = 1, ///< \ru Ограничение удовлетворено. \en The constraint is satisfied.
GCE_RESULT_Not_Satisfied = 2, ///< \ru Система ограничений не решена. \en The system of constraints is not solved.
GCE_RESULT_Overconstrained = 3, ///< \ru Переопределенная (несовместная) система ограничений. \en Overdetermined (inconsistent) system of constraints.
GCE_RESULT_InvalidGeometry = 4, ///< \ru Решение привело к нарушению геометрии. \en Solution leaded to violation of geometry.
GCE_RESULT_MovingOfFixedGeom = 5, ///< \ru Попытка перемещения фиксированного объекта. \en Attempt of a fixed object translation.
GCE_RESULT_Unregistered = 6, ///< \ru Обращение к недействительному объекту. \en Access to invalid object.
GCE_RESULT_SystemError = 7, ///< \ru Внутренняя системная ошибка. \en Internal system error.
GCE_RESULT_NullSystem = 8, ///< \ru Обращение к недействительной системе ограничений. \en Access to invalid system of constraints.
GCE_RESULT_CircleCantStretched = 9, ///< \ru Окружность не может быть масштабирована с разными коэффициентами по осям (растяжение). \en The circle can't be scaled with different scaling factors for each axis (stretching).
GCE_RESULT_SingularMatrix = 10, ///< \ru Прислали вырожденную матрицу трансформации. \en A singular transform matrix was received.
GCE_RESULT_DegenerateScalingFactor = 11, ///< \ru Вырожденный коэффициент масштабирования. \en Degenerate scaling factor.
GCE_RESULT_InvalidDimensionTransform = 12, ///< \ru Неудачное преобразование размера. \en Invalid dimension transformation.
GCE_RESULT_Aborted = 13, ///< \ru Процесс вычислений был прерван по запросу приложения. \en The evaluation process aborted by the application. \~
GCE_RESULT_IsNotDrivingDimension = 14, ///< \ru Данное ограничение должно быть управляющим размером. \en Given constraint should be a driving dimension.
GCE_RESULT_UnsupportedConstraint = 15, ///< \ru На геометрические объекты было наложено невозможное ограничение. \en An impossible constraint was set on geometric objects.
GCE_RESULT_AnisotropicScaling = 16, ///< \ru Анизотропное масштабирование. \en Anisotropic scaling.
GCE_RESULT_OverconstrainedInstance = 17, ///< \ru Попытка подчинить экземпляр более, чем одному паттерну. \en An attempt to make an instance patterned on more than one pattern.
/*
Evaluation results.
*/
GCE_RESULT_None ///< \ru Нет результата (пустое сообщение). \en No result (empty message).
, GCE_RESULT_Ok ///< \ru Успешный результат. \en Successful result.
, GCE_RESULT_Satisfied = GCE_RESULT_Ok ///< \ru Ограничение удовлетворено. \en The constraint is satisfied.
, GCE_RESULT_Not_Satisfied ///< \ru Система ограничений не решена. \en The system of constraints is not solved.
, GCE_RESULT_Overconstrained ///< \ru Переопределенная (несовместная) система ограничений. \en Overdetermined (inconsistent) system of constraints.
, GCE_RESULT_InvalidGeometry ///< \ru Решение привело к нарушению геометрии. \en Solution leaded to violation of geometry.
/*
Data validation errors.
*/
, GCE_RESULT_MovingOfFixedGeom ///< \ru Попытка перемещения фиксированного объекта. \en Attempt of a fixed object translation.
, GCE_RESULT_CircleCantStretched ///< \ru Окружность не может быть масштабирована с разными коэффициентами по осям (растяжение). \en The circle can't be scaled with different scaling factors for each axis (stretching).
, GCE_RESULT_SingularMatrix ///< \ru Прислали вырожденную матрицу трансформации. \en A singular transform matrix was received.
, GCE_RESULT_DegenerateScalingFactor ///< \ru Вырожденный коэффициент масштабирования. \en Degenerate scaling factor.
, GCE_RESULT_InvalidDimensionTransform ///< \ru Неудачное преобразование размера. \en Invalid dimension transformation.
, GCE_RESULT_IsNotDrivingDimension ///< \ru Данное ограничение должно быть управляющим размером. \en Given constraint should be a driving dimension.
, GCE_RESULT_UnsupportedConstraint ///< \ru На геометрические объекты было наложено невозможное ограничение. \en An impossible constraint was set on geometric objects.
, GCE_RESULT_AnisotropicScaling ///< \ru Анизотропное масштабирование. \en Anisotropic scaling.
, GCE_RESULT_OverconstrainedInstance ///< \ru Попытка подчинить экземпляр более, чем одному паттерну. \en An attempt to make an instance patterned on more than one pattern.
/*
System errors.
*/
, GCE_RESULT_SystemError ///< \ru Внутренняя системная ошибка. \en Internal system error.
, GCE_RESULT_NullSystem ///< \ru Обращение к недействительной системе ограничений. \en Access to invalid system of constraints.
, GCE_RESULT_Unregistered ///< \ru Обращение к недействительному объекту. \en Access to invalid object.
, GCE_RESULT_Aborted ///< \ru Процесс вычислений был прерван по запросу приложения. \en The evaluation process aborted by the application. \~
} GCE_result;
//----------------------------------------------------------------------------------------
+54 -2
View File
@@ -9,12 +9,14 @@
#define __GCM_CONSTRAINT_H
#include <gcm_manager.h>
#include <templ_dptr.h>
#include <templ_sptr.h>
#include <mb_cart_point3d.h>
#include <mb_matrix3d.h>
class MbTopologyItem;
class MtConstraintNode;
class MbTopologyItem;
class MtConstraintNode;
struct CNodesRange;
/**
\addtogroup GCM_3D_ObjectAPI
@@ -31,6 +33,10 @@ struct GCM_CLASS GCM_geom_axis
GCM_geom_axis()
: axis( MbVector3D::zero )
, geomPtr( nullptr ) {}
GCM_geom_axis( const MbVector3D & axis, const ItGeom * g )
: axis( axis )
, geomPtr( g ) {}
};
@@ -508,6 +514,52 @@ inline MtArgument ItConstraintItem::GeomArg( int geomN ) const
return MtArgument( GeomItem(geomN), SubGeom(geomN) );
}
//----------------------------------------------------------------------------------------
/** \brief \ru Диапазон из набора геометрических ограничений.
\en The range of the geometric constraints set. \~
\note it is for testing purposes.
*/
//---
class GCM_CLASS GeConstraintsRange
{
public:
struct constraint_t: public MtObjectId {};
using value_type = constraint_t;
public:
GeConstraintsRange();
GeConstraintsRange( const GeConstraintsRange & );
GeConstraintsRange( const MtConstraintSystem & );
GeConstraintsRange & operator = ( const GeConstraintsRange & );
public:
bool empty() const;
size_t size() const;
GeConstraintsRange & drop_front();
GeConstraintsRange & drop_back();
GCM_constraint frontId() const;
GCM_constraint backId() const;
private:
SPtr<MtRefItem> m_pOwner;
CNodesRange * m_pImpl;
};
//----------------------------------------------------------------------------------------
// Get a range to traverse constraints of the system.
// for testing only.
//---
GCM_FUNC(GeConstraintsRange) GCM_GetConstraints( GCM_system gSys );
//----------------------------------------------------------------------------------------
// Get unified data record of a geometric constraint.
// for testing only.
//---
GCM_FUNC(GCM_c_record) GCM_ConstraintRecord( GCM_system gSys, GCM_constraint conId );
//----------------------------------------------------------------------------------------
// Get S-expression of a geometric constraint.
// for testing only.
//---
GCM_FUNC(std::string&) GCM_SExprRecord( GCM_system gSys, GCM_constraint conId, std::string& str );
#endif // __GCM_CONSTRAINT_H
// eof
+12 -11
View File
@@ -700,20 +700,21 @@ private:
//----------------------------------------------------------------------------------------
/** \brief \ru Создать объектно-ориентированный интерфейс 3D солвера.
\en Create an object-oriented interface of 3D solver. \~
\details \ru Вызов создает пустую систему ограничений. Кроме того, в памяти
создаются внутренние структуры данных геометрического решателя, обслуживающего
систему ограничений. Функция возвращает экземпляр класса, представляющего
объектно-ориентированный интерфейс солвера.
\en The call creates an empty constraint system. Besides, there are created
internal data structures of geometric solver maintaining the system of constraints.
The function returns an instance of class representing an object-oriented interface
of the 3D solver. \~
\param[in] pMan - \ru Интерфейс, предоставляющий функции репозиции геометрических объектов на стороне приложения.
\en Interface that provides functions of reposition of geometric objects on the application side. \~
\details \ru Вызов создает пустую систему ограничений. Кроме того, в памяти создаются
внутренние структуры данных геометрического решателя, обслуживающего систему ограничений.
Функция возвращает экземпляр класса, представляющего объектно-ориентированный интерфейс солвера.
\en The call creates an empty constraint system. Besides, there are created internal
data structures of geometric solver maintaining the constraint system. The function returns
an instance of class representing an object-oriented interface of the 3D solver. \~
\return \ru Решатель геометрических ограничений.
\en A geometric constraint solver. \~
\return \ru Указатель (с автоматическим подсчетом ссылок) на новый экземпляр геометрического решателя.
\en Smart-pointer to a new instance of geometric constraint solver. \~
*/
//---
GCM_FUNC(SPtr<MtGeomSolver>) GCM_CreateSolver( SPtr<ItPositionManager> );
GCM_FUNC(SPtr<MtGeomSolver>) GCM_CreateSolver( SPtr<ItPositionManager> pMan );
//----------------------------------------------------------------------------------------
/** \brief \ru Выдать решатель для данной системы геометрических ограничений.
+42 -32
View File
@@ -161,21 +161,6 @@ struct GCM_CLASS MtADimensionTraits
{}
};
//----------------------------------------------------------------------------------------
/** \brief \ru Создать Интерфейс геометрического решателя.
\en Create interface of geometric solver. \~
\details \ru Функция возвращает smart-pointer интерфейса решателя.
\en The function returns smart-pointer of solver Interface. \~
\param[in] pMan - \ru Интерфейс клиентского приложения, предоставляющий
функции репозиции геометрических объектов на стороне клиента.
\en Interface of the client application that provides
functions of reposition of geometric objects on the client side. \~
\return \ru smart-pointer на экземпляр геометрического решателя.
\en smart-pointer to an instance of geometric solver. \~
*/
//---
GCM_FUNC(SPtr<MtGeomSolver>) CreateSolver( ItPositionManager & pMan );
//----------------------------------------------------------------------------------------
/** \brief \ru Автоматически назначить тип сопряжению для его аргументов.
\en Automatically assign the mate type for its arguments. \~
@@ -483,6 +468,44 @@ GCM_FUNC(size_t) VolumeOfAlignOption( const ItConstraintItem & );
/** \} */ // GCM_3D_Routines
//----------------------------------------------------------------------------------------
// for testing only.
//---
GCT_FUNC(bool) CheckSatisfaction( GCM_system );
//----------------------------------------------------------------------------------------
// for testing only.
//---
GCT_FUNC(size_t) GetGeomsCount( GCM_system );
//----------------------------------------------------------------------------------------
// for testing only.
//---
GCT_FUNC(size_t) GetConstraintsCount( GCM_system );
//----------------------------------------------------------------------------------------
// Get a range to traverse constraints of the system.
//---
GCT_FUNC(void) GCM_GetConstraints( GCM_system gSys, CNodeIterator & begIter, CNodeIterator & endIter );
//----------------------------------------------------------------------------------------
// Callback function for logging messages from the solver.
//---
typedef void ( *GCM_log_func )( GCM_journal, GCM_log_type logType, const char* recStr );
//----------------------------------------------------------------------------------------
/** \brief \ru Выдать журнал записывающий вызовы Solver API, а также другие события, имеющие отношение к взаимодействием с солвером.
\en Get a logger that recording API calls, as well as other events related to interaction with the solver. \~
\note \ru Вызов используется пока только для тестовых целей. Может быть изменен или удален из API в следующих ревизиях.
\en The call is used for testing purposes only. It may be changed or removed in future revisions. \~
*/
//---
GCM_FUNC(GCM_journal) GCM_SubscribeJournal( GCM_system gSys, GCM_log_func logFunc, GCM_extra_param extParam );
/*
* Deprecated calls.
*/
//----------------------------------------------------------------------------------------
// for internal use only
// \en This call is out of date, it will be removed in 2023. \~
@@ -490,24 +513,11 @@ GCM_FUNC(size_t) VolumeOfAlignOption( const ItConstraintItem & );
DEPRECATE_DECLARE GCM_FUNC(MtResultCode3D) AdHocDiagnose(GCM_system, const ItGeom*);
//----------------------------------------------------------------------------------------
// for testing only
/** \brief The deprecated version of GCM_CreateSolver.
\note The call is deprecated. Use GCM_CreateSolver instead. It will be removed in 2024.
*/
//---
GCT_FUNC(bool) CheckSatisfaction( GCM_system );
//----------------------------------------------------------------------------------------
// for testing only
//---
GCT_FUNC(size_t) GetGeomsCount( GCM_system );
//----------------------------------------------------------------------------------------
// for testing only
//---
GCT_FUNC(size_t) GetConstraintsCount( GCM_system );
//----------------------------------------------------------------------------------------
// Get a range to traverse constraints of the system
//---
GCT_FUNC(void) GCM_GetConstraints( GCM_system gSys, CNodeIterator & begIter, CNodeIterator & endIter );
DEPRECATE_DECLARE GCM_FUNC(SPtr<MtGeomSolver>) CreateSolver( ItPositionManager & );
#endif // __GCM_ROUTINES_H
+30 -2
View File
@@ -461,8 +461,8 @@ typedef enum
//---
struct GCM_CLASS GCM_extra_param
{
size_t funcId; // integral identifier of a user-defined callback
void * funcData; // pointer to an application data structure
size_t funcId; // Integral identifier of a user-defined callback.
void * funcData; // Pointer to an application data structure.
GCM_extra_param() { funcId = 0, funcData = 0; }
};
@@ -593,6 +593,34 @@ inline const uint32 & _id( const MtObjectId & obj ) { return obj; }
#endif // GCM_ID_TYPE
//----------------------------------------------------------------------------------------
// It represents a journal that logs Solver API transactions.
//---
struct ItJrnLogger;
//----------------------------------------------------------------------------------------
// It represents a journal that logs Solver API transactions.
//---
typedef struct
{
const ItJrnLogger * logger; // Internal C3D Solver logger.
GCM_extra_param extra; // Callback extra data interpreted in the application side.
} GCM_journal;
//----------------------------------------------------------------------------------------
// Type of log string.
//---
typedef enum
{
GCM_LOG_JournalLine /// \ru Строка отчета о вызове Solver API. \en Reporting string about the Solver API call.
, GCM_LOG_Message /// \ru Строка передает некоторое информативное сообщение. \en The string notifies that something informative happend.
, GCM_LOG_Error /// \ru Строка извещает об ошибочной ситуации. \en Error notification.
} GCM_log_type;
//----------------------------------------------------------------------------------------
//
//---
typedef GCM_alignment MtAlignType;
typedef GCM_g_type MtGeometryType;
typedef GCM_result MtResultCode3D;
+1 -1
View File
@@ -117,7 +117,7 @@ public:
/// \ru Инициализировать тело и матрицу. \en Initialize solid and matrix.
void SetSolid( const MbSolid & solid, const MbMatrix3D & from, bool changed = true );
/// \ru Получить тело. \en Get solid.
//DEPRECATE_DECLARE_REPLACE( GetItem )
DEPRECATE_DECLARE_REPLACE( GetItem )
const MbSolid & GetSolid() const;
/// \ru Инициализировать тело и матрицу. \en Initialize solid and matrix.
void SetMesh( const MbMesh & mesh, const MbMatrix3D & from, bool changed = true );
+4 -4
View File
@@ -43,11 +43,11 @@ public:
\param[in] lump - \ru Тело с матрицей преобразования.
\en A solid with a matrix of transformation. \~
*/
//DEPRECATE_DECLARE_REPLACE( ThreadMapperStruct with 'MbSolid' )
DEPRECATE_DECLARE_REPLACE( ThreadMapperStruct with 'MbSolid' )
ThreadMapperStruct( const MbThread & thr, const MbLump & lump,
const VERSION ver = Math::DefaultMathVersion() )
: thread ( thr )
, solid ( lump.GetSolid() )
, solid ( static_cast<const MbSolid &>(lump.GetItem()) )
, matrFrom ( lump.GetMatrixFrom() )
, placeView ( )
, thrMapType( tmt_CompleteView )
@@ -88,11 +88,11 @@ public:
\param[in] tmType - \ru Тип отображения резьбы.
\en A type of thread mapping. \~
*/
//DEPRECATE_DECLARE_REPLACE( ThreadMapperStruct with 'MbSolid' )
DEPRECATE_DECLARE_REPLACE( ThreadMapperStruct with 'MbSolid' )
ThreadMapperStruct( const MbThread & thr, const MbLump & lump, const MbPlacement3D & plView, MbeThrMapType tmType,
const VERSION ver = Math::DefaultMathVersion() )
: thread ( thr )
, solid ( lump.GetSolid() )
, solid ( static_cast<const MbSolid &>(lump.GetItem()) )
, matrFrom ( lump.GetMatrixFrom() )
, placeView ( plView )
, thrMapType( tmType )
+1
View File
@@ -92,6 +92,7 @@
#define MATH_21_UHF_VERSION 0x15000011L ///< \ru Версия файла - 21.0 UHF (Upper Hot Fix). \en The file version - 21.0 UHF (Upper Hot Fix). \~ \ingroup Base_Tools
#define C3D_2022_VERSION 0x15001001L ///< \ru Версия файла - C3D 2022. \en The file version - C3D 2021. \~ \ingroup Base_Tools
#define MATH_22_VERSION 0x16000001L ///< \ru Версия файла - 22.0. \en The file version - 22.0. \~ \ingroup Base_Tools
#define MATH_22_HF1_VERSION 0x16000002L ///< \ru Версия файла - 22.0 HF1. \en The file version - 22.0 HF1. \~ \ingroup Base_Tools
#define MATH_22_UHF_VERSION 0x16000011L ///< \ru Версия файла - 22.0 UHF (Upper Hot Fix). \en The file version - 22.0 UHF (Upper Hot Fix). \~ \ingroup Base_Tools
+2
View File
@@ -88,6 +88,8 @@ public :
/// \ru Проекция точки на ось. \en The point projection on the axis.
double PointProjection( const MbCartPoint3D & p0, MbCartPoint3D & proj ) const;
/// \ru Проекция точки на ось. \en The point projection on the axis.
double PointProjection( const MbCartPoint3D & p0 ) const;
/// \ru Проверка соосности. \en The check of complanarity.
bool Complanar ( const MbPlacement3D & p, double eps = Math::angleRegion ) const;
/// \ru Проверка коллинеарности осей. \en The check of axes collinearity.
+5 -2
View File
@@ -1207,11 +1207,14 @@ inline void MbCubeTree<Type, Cube, Point, Vector>::GetIntersectObjects( const Po
Point segmPnt1( rayPnt1 ), segmPnt2( rayPnt2 );
double segmLen = segmPnt1.DistanceToPoint( segmPnt2 );
double sameEps = std_min( eps, LENGTH_EPSILON );
sameEps = std_max( sameEps, EXTENT_EPSILON );
C3D_ASSERT( !branchCube.IsEmpty() );
C3D_ASSERT( !rayPnt1.IsSame( rayPnt2, eps ) );
C3D_ASSERT( !rayPnt1.IsSame( rayPnt2, sameEps ) );
if ( isBranch || isLeaf ) {
if ( !branchCube.IsEmpty() && !rayPnt1.IsSame( rayPnt2, eps ) ) {
if ( !branchCube.IsEmpty() && !rayPnt1.IsSame( rayPnt2, sameEps ) ) {
Vector rayVect( rayPnt1, rayPnt2 );
{
double rayLen = rayVect.Length();
+2
View File
@@ -280,6 +280,8 @@ enum MbResultType {
rt_NonBijectiveFunc, ///< \ru Отображение множества значений параметра функции во множество значений параметра кривой не является взаимно однозначным. \en A map from function parameter range to curve parameter range is not bijective.
rt_LicenseError, ///< \ru Ошибка лицензии: неправильная или истекшая лицензия. \en License error: wrong or expired license.
// \ru !!! СТРОКИ ВСТАВЛЯТЬ СТРОГО ПЕРЕД ЭТОЙ СТРОКОЙ !!!! \en !!! INSERT LINES STRICTLY BEFORE THIS LINE !!!!
rt_ErrorTotal // \ru НИЖЕ НЕ ДОБАВЛЯТЬ! \en DON'T ADD BELOW!
};
+7 -2
View File
@@ -2023,11 +2023,16 @@ public:
const MbCurve3D * GetSpine() const { return spine.get(); }
MbCurve3D * SetSpine() { return spine.get(); }
/// \ru Выдать форму сечения поверхности. \en Get cross-section shape.
DEPRECATE_DECLARE_REPLACE( GetSectionForm )
MbeSectionShape GetForm() const { return form; }
/// \ru Установить форму сечения поверхности. \en Set cross-section shape.
DEPRECATE_DECLARE_REPLACE( SetSectionForm )
void SetForm( MbeSectionShape f ) { form = f; }
/// \ru Выдать форму сечения поверхности. \en Get cross-section shape.
MbeSectionShape GetSectionForm() const { return form; }
/// \ru Установить форму сечения поверхности. \en Set cross-section shape.
void SetSectionForm( MbeSectionShape f ) { form = f; }
///< \ru Данные начального края сечения. \en The data of the begining of section.
MbSectionRail & GetRrail1() { return rail1; }
///< \ru Данные конечного края сечения. \en The data of the end of section.
+2
View File
@@ -385,6 +385,8 @@ public:
/// \ru Дать образующую кривую при form==cs_Shape (для других форм nullptr). \en Get forming curve for form==cs_Shape (nullptr on other case).
const MbPolyCurve * GetPattern() const { return pattern; }
/// \ru Дать форму сечения поверхности при фиксированном втором параметре. \en Get the surface cross-section shape with the second parameter fixed.
MbeSectionShape GetSectionForm() const { return form; }
DEPRECATE_DECLARE_REPLACE( GetSectionForm )
MbeSectionShape GetForm() const { return form; }
/// \ru Дать параметры опорной кривой, для которых направляющие терпят излом. \en Get parameters of the reference curve for which the guides have a break.
void GetBreakVParams( std::vector<double> & vParams ) const;
+11
View File
@@ -101,6 +101,17 @@ extern "C" MATH_FUNC (bool) IsMathBShaperEnable();
extern "C" MATH_FUNC (bool) IsMathCollisionEnable();
//------------------------------------------------------------------------------
/** \brief \ru Проверить контроллер защиты FairCurve моделировщика.
\en Check the controller of the FairCurve modeler. \~
\details \ru Проверить контроллер защиты FairCurve моделировщика.
\en Check the controller of the FairCurve modeler. \~
\ingroup Base_Tools
*/
// ---
extern "C" MATH_FUNC (bool) IsMathFairCurveEnable();
//------------------------------------------------------------------------------
/** \brief \ru Отпустить контролера работы модулей ядра.
\en Free the controller of the kernel modules work. \~
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.