- C3d aggiornamento delle librerie.
This commit is contained in:
Dario Sassi
2021-02-04 10:10:16 +00:00
parent 45803fb2d7
commit 9cf768b114
16 changed files with 73 additions and 56 deletions
+6 -4
View File
@@ -540,14 +540,16 @@ namespace c3d // namespace C3D
/// \ru Подсказка для продленной грани. \en Hint for extended face.
c3d_constexpr TCHAR c3dStr_ExtendedFace[] = _T( "c3d_ExtendedFace" );
/// \ru Подсказка для контрольного значения массы. \en Hint for the mass validation property.
/// \ru Подсказка для контрольного значения массы. \en Prompt for the mass validation property.
c3d_constexpr TCHAR c3dStr_ValidationPropertyMassExchange[] = _T( "c3d_ValidationPropertyMassExchange" );
/// \ru Подсказка для контрольного значения объёма. \en Hint for the volume validation property.
/// \ru Подсказка для контрольного значения объёма. \en Prompt for the volume validation property.
c3d_constexpr TCHAR c3dStr_ValidationPropertyVolumeExchange[] = _T( "c3d_ValidationPropertyVolumeExchange" );
/// \ru Подсказка для контрольного значения площади поверхности. \en Hint for the surface area validation property.
/// \ru Подсказка для контрольного значения площади поверхности. \en Prompt for the surface area validation property.
c3d_constexpr TCHAR c3dStr_ValidationPropertySurfaceAreaExchange[] = _T( "c3d_ValidationPropertySurfaceAreaExchange" );
/// \ru Подсказка для идентификатора элемента при обмене данными. \en Hint for the item identifier in model exchange operations.
/// \ru Подсказка для идентификатора элемента при обмене данными. \en Prompt for the item identifier in model exchange operations.
c3d_constexpr TCHAR c3dStr_ItemIdentifierExchange[] = _T( "c3d_ItemIdentifierExchange" );
/// \ru Подсказка для URL текстуры при обмене данными. \en Prompt for the URL of texture in model exchange operations.
c3d_constexpr TCHAR c3dStr_TextureUrl[] = _T("C3D_Texture_URL");
} // namespace C3D
#endif // __ATTRIBUTE_H
+1 -1
View File
@@ -140,7 +140,7 @@ public:
virtual void Transform( const MbMatrix3D &, MbRegTransform * = c3d_null ); // \ru Преобразовать элемент согласно матрице. \en Transform element according to the matrix.
virtual void Move ( const MbVector3D &, MbRegTransform * = c3d_null ); // \ru Сдвинуть вдоль вектора. \en Move along a vector.
virtual void Rotate ( const MbAxis3D &, double angle, MbRegTransform * = c3d_null ); // \ru Повернуть вокруг оси. \en Rotate about an axis.
virtual void AddYourGabaritTo( MbCube & r ) const; // \ru Добавить свой габарит в куб. \en Add your own bounding box into a cube.
virtual void AddYourGabaritTo( MbCube & ) const; // \ru Добавить свой габарит в куб. \en Add your own bounding box into a cube.
virtual void Refresh(); // \ru Сбросить все временные данные. \en Reset all temporary data.
virtual void PrepareIntegralData( const bool forced ) const; // \ru Рассчитать временные (mutable) данные объекта. \en Calculate temporary (mutable) data of an object.
-3
View File
@@ -117,9 +117,6 @@ public:
double GetParam( size_t index ) const; // \ru Дать значение параметра точки по номеру \en Get the value of point parameter by its number
double GetValue( size_t index ) const; // \ru Дать значение точки по номеру \en Get the value of point by its number
double GetDerive( size_t index ) const; // \ru Дать значение производной по номеру \en Get the value of derivative by its number
// \ru Получить коэффициенты кубической функции на указанном интервале.
// \en Get the coefficients of the cubic function on the specified interval.
void GetCubicFactors( size_t index, double & a, double & b, double & c, double & d ) const;
private:
bool CalculateDerivatives(); // \ru Расчет производных. \en Calculation of derivatives
+4 -4
View File
@@ -2484,7 +2484,7 @@ inline reader & operator >> ( reader & ps, unsigned short & sh )
return ps;
}
#ifdef __MOBILE_VERSION__
//#ifdef __MOBILE_VERSION__
//----------------------------------------------------------------------------------------
/// \ru Чтение wchar_t в поток. \en Reading wchar_t to the stream. \~ \ingroup Base_Tools_IO
// ---
@@ -2500,7 +2500,7 @@ inline reader & operator >> ( reader & ps, wchar_t & sh )
return ps;
}
#endif // __MOBILE_VERSION__
//#endif // __MOBILE_VERSION__
//----------------------------------------------------------------------------------------
@@ -2618,7 +2618,7 @@ inline writer& operator << ( writer& ps, unsigned short sh )
return ps;
}
#ifdef __MOBILE_VERSION__
//#ifdef __MOBILE_VERSION__
//----------------------------------------------------------------------------------------
/// \ru Запись wchar_t в поток. \en Write wchar_t to the stream. \~ \ingroup Base_Tools_IO
// ---
@@ -2628,7 +2628,7 @@ inline writer & operator << ( writer & ps, wchar_t sh )
ps.writeBytes( &sh, size );
return ps;
}
#endif // __MOBILE_VERSION__
//#endif // __MOBILE_VERSION__
//----------------------------------------------------------------------------------------
+40 -32
View File
@@ -94,24 +94,26 @@ public:
\en The iterator by a set of solids models. \~
\details \ru Итератор по множеству моделей тел.\n
\en The iterator by a set of solids models.\n \~
\param[in] lumps - \ru Набор тел с матрицами и признаками рассечения.
\en A set of solids with matrices and dissections attributes. \~
\param[in] place - \ru Плоскость секущего вида.
\en A plane of secant view. \~
\param[in] isViewCut - \ru Признак вида-разреза (а не сечения).
\en An attribute of a cutaway-view (not section). \~
\param[in] isDismantel - \ru Разнесенный вид сборки.
\en Dismantled view of the assembly. \~
\param[in] ncontour - \ru Контур разреза\сечения.
\en A cutaway\section contour. \~
\param[in] ncontourNames - \ru Именователь контура.
\en A name-maker of contour. \~
\param[in] part - \ru Сторона отсечения. Имеет значение знак числа.
\en A cut-off side. It have a value of the number sign. \~
\param[in] visMode - \ru Настройки видимости следов проецируемых объектов.
\en Visibility mode of mapping. \~
\param[in] obj_version - \ru Математическая версия.
\en Mathematical version. \~
\param[in] lumps - \ru Набор тел с матрицами и признаками рассечения.
\en A set of solids with matrices and dissections attributes. \~
\param[in] place - \ru Плоскость секущего вида.
\en A plane of secant view. \~
\param[in] isViewCut - \ru Признак вида-разреза (а не сечения).
\en An attribute of a cutaway-view (not section). \~
\param[in] isDismantel - \ru Разнесенный вид сборки.
\en Dismantled view of the assembly. \~
\param[in] ncontour - \ru Контур разреза\сечения.
\en A cutaway\section contour. \~
\param[in] ncontourNames - \ru Именователь контура.
\en A name-maker of contour. \~
\param[in] part - \ru Сторона отсечения. Имеет значение знак числа.
\en A cut-off side. It have a value of the number sign. \~
\param[in] visMode - \ru Настройки видимости следов проецируемых объектов.
\en Visibility mode of mapping. \~
\param[in] doCommonNaming - \ru Именовать все промежуточные тела вместе.
\en Do common naming of all intermediate bodies. \~
\param[in] obj_version - \ru Математическая версия.
\en Mathematical version. \~
\return \ru Итератор видов сечений.
\en The iterator of section views. \~
*/
@@ -123,7 +125,8 @@ public:
const MbSNameMaker & ncontourNames,
ptrdiff_t part,
const MbMapVisibilityMode & visMode,
VERSION obj_version ); // _BUG_18777_DEF_
bool doCommonNaming,
VERSION obj_version ); // _BUG_18777_DEF_
/** \brief \ru Валидность контура.
\en The validity of the contour. \~
@@ -182,18 +185,22 @@ public:
\en The iterator by a set of solids models. \~
\details \ru Итератор по множеству моделей тел.\n
\en The iterator by a set of solids models.\n \~
\param[in] lumps - \ru Набор тел с матрицами и признаками рассечения.
\en A set of solids with matrices and dissections attributes. \~
\param[in] place - \ru Плоскость секущего вида.
\en A plane of secant view. \~
\param[in] isViewCut - \ru Признак вида-разреза (а не сечения).
\en An attribute of a cutaway-view (not section). \~
\param[in] contour - \ru Контур разреза\сечения.
\en A cutaway\section contour. \~
\param[in] contourNames - \ru Именователь контура.
\en A name-maker of contour. \~
\param[in] invisible - \ru Строить невидимые линии.
\en Build invisible lines. \~
\param[in] lumps - \ru Набор тел с матрицами и признаками рассечения.
\en A set of solids with matrices and dissections attributes. \~
\param[in] place - \ru Плоскость секущего вида.
\en A plane of secant view. \~
\param[in] isViewCut - \ru Признак вида-разреза (а не сечения).
\en An attribute of a cutaway-view (not section). \~
\param[in] isDismantel - \ru Разнесенный вид сборки.
\en Dismantled view of the assembly. \~
\param[in] contour - \ru Контур разреза\сечения.
\en A cutaway\section contour. \~
\param[in] contourNames - \ru Именователь контура.
\en A name-maker of contour. \~
\param[in] visMode - \ru Настройки видимости следов проецируемых объектов.
\en Visibility mode of mapping. \~
\param[in] doCommonNaming - \ru Именовать все промежуточные тела вместе.
\en Do common naming of all intermediate bodies. \~
\return \ru Итератор местных видов сечений.
\en The iterator of local views of sections. \~
*/
@@ -203,7 +210,8 @@ public:
bool isDismantel,
const MbContour & contour,
const MbSNameMaker & contourNames,
const MbMapVisibilityMode & visMode );
const MbMapVisibilityMode & visMode,
bool doCommonNaming );
}; // MbLocalSectionMapIterator
+7
View File
@@ -31,11 +31,18 @@ class MATH_CLASS MbSurface;
namespace c3d // namespace C3D
{
typedef std::pair<MbCube, size_t> CubeIndex; ///< \ru Габаритный куб и индекс. \en Bounding box and index.
typedef std::pair<size_t, MbCube> IndexCube; ///< \ru Индекс и габаритный куб. \en Index and bounding box.
typedef std::pair<MbCube *, size_t> CubePtrIndex; ///< \ru Габаритный куб и индекс. \en Bounding box and index.
typedef std::pair<size_t, MbCube *> IndexCubePtr; ///< \ru Индекс и габаритный куб. \en Index and bounding box.
typedef std::pair<const MbCube *, size_t> ConstCubePtrIndex; ///< \ru Габаритный куб и индекс. \en Bounding box and index.
typedef std::pair<size_t, const MbCube *> IndexConstCubePtr; ///< \ru Индекс и габаритный куб. \en Index and bounding box.
typedef std::vector<CubePtrIndex> CubesPtrIndices; ///< \ru Вектор габаритных кубов и индексов. \en Vector of bounding boxes and indices.
typedef std::vector<ConstCubePtrIndex> ConstCubesPtrIndices; ///< \ru Вектор габаритных кубов и индексов. \en Vector of bounding boxes and indices.
typedef std::vector<MbCube> CubesVector; ///< \ru Вектор габаритных кубов. \en Vector of bounding boxes.
typedef std::vector<IndexCube> IndexCubeVector; ///< \ru Вектор индексов и габаритных кубов. \en Vector of indices and bounding boxes.
typedef std::vector<CubeIndex> CubeIndexVector; ///< \ru Вектор индексов и габаритных кубов. \en Vector of indices and bounding boxes.
typedef MbCubeTree<MbCube, MbCube, MbCartPoint3D> CubesTree; ///< \ru Дерево габаритных кубов. \en Tree of bounding boxes.
} // namespace C3D
+1 -1
View File
@@ -563,7 +563,7 @@ public:
MbFairCurveData() :
//closed( false ), fairing( false ), arrange( false ), subdivision( fairSubdiv_Single ),
closed( false ), fairing( true ), arrange( false ), subdivision( fairSubdiv_Single ), //DEBUG 2020 25
accountCurvature( fairCur_No ), accountInflexVector( fairVector_SegmentDir ),
accountCurvature( fairCur_No ), accountInflexVector( fairVector_Tangent ),
fixPntTng( fixPntTng_NotFix ),
//approx( fairApprox_KnotsSpline ), create( 1 ), degreeBSpline( 8 ),
approx( fairApprox_IsoNurbs ), create( 1 ), degreeBSpline( 8 ), //DEBUG 2020 25
+4 -2
View File
@@ -705,8 +705,10 @@ enum MbeFairApprox
//---
enum MbeFairVector
{
fairVector_SegmentDir = 0, ///< \ru Направление звена S-полигона. \en Direction of segment of S-polygon.
fairVector_Tangent = 1, ///< \ru Направление касательной. \en Direction of tangent to curve.
fairVector_Tangent = 0, ///< \ru Учет направления касательной. \en Direction of tangent to curve.
fairSmooth_Segment = 1, ///< \ru Плавная форма участка перегиба. \en Smooth shape of the inflection site.
fairSuperSmooth_Segment = 2, ///< \ru Супер плавная форма участка перегиба. \en Super smooth shape of the inflection site.
};
//------------------------------------------------------------------------------
/** \brief \ru Управление построением гладких кривых на базе трехмерной ломаной. Учет касательной в заданной точке / точки на касательной.
+1 -1
View File
@@ -206,7 +206,7 @@ enum MbResultType {
rt_MissingKnots, ///< 26 \ru Отсутствует вектор узлов. \en Missing knots vector.
rt_ClosedSpline, ///< 27 \ru Замкнутый сплайн во внешнем файле. \en Closed spline in an external file.
rt_ObjectNotSelected, ///< 28 \ru Не выбран нужный объект. \en Object is not selected.
rt_Reserved1, ///< 29 \ru Зарезервировано. \en Reserved.
rt_SharpChangeCurvature, ///< 29 \ru \ru Резкое изменение кривизны на участке перегиба \en A sharp change in curvature at the inflection site.
rt_Reserved2, ///< 30 \ru Зарезервировано. \en Reserved.
rt_TooFewStartPoints, ///< 31 \ru Слишком мало точек на выпуклом участке начального участка. \en Too few points on convex start site of curve.
rt_BanClosedConfiguration, ///< 32 \ru Запрет на замкнутую конфигурацию при количестве точек < 5. \en A ban on a closed configuration when the number of points < 5.
+3 -2
View File
@@ -166,9 +166,10 @@ public: /** \}
MbPlacement3D & Init();
/// \ru Инициализировать по плейсменту. \en Initialize by a placement.
MbPlacement3D & Init( const MbPlacement3D & );
/// \ru Инициализировать по матрице. \en Constructor by a matrix.
/// \ru Инициализировать по матрице. \en Initialize by a matrix.
MbPlacement3D & Init( const MbMatrix3D & matr );
/// \ru Инициализировать с произвольной осью 'X'. \en Initialize by point and vector (Z-axis) with arbitrary X-axis.
void Init( const MbCartPoint3D & initOrigin, const MbVector3D & initAxisZ );
/// \ru Инициализировать по началу и векторам осей X, Z. \en Initialize by the origin and vectors of X and Z axes.
MbPlacement3D & Init( const MbCartPoint3D & p, const MbVector3D & axisZ, const MbVector3D & axisX,
bool left = false );
+3 -3
View File
@@ -248,7 +248,7 @@ inline bool Array2<Type>::SetSize( size_t lSize, size_t cSize ) {
template <class Type>
const Type & Array2<Type>::GetElem( size_t ln, size_t cn ) const {
PRECONDITION( !!parr && ln < l && cn < c );
return parr[ln][cn];
return parr[ln][cn]; // SKIP_SA
}
//------------------------------------------------------------------------------
@@ -267,14 +267,14 @@ void Array2<Type>::SetElem( size_t ln, size_t cn, const Type & v ) {
template <class Type>
const Type & Array2<Type>::operator() ( size_t i, size_t j ) const {
PRECONDITION( i < l && j < c );
return parr[i][j];
return parr[i][j]; // SKIP_SA
}
/// \ru Оператор доступа по индексам. \en Access by indices operator.
template <class Type>
Type & Array2<Type>::operator() ( size_t i, size_t j ) {
PRECONDITION( i < l && j < c );
return parr[i][j];
return parr[i][j]; // SKIP_SA
}
//------------------------------------------------------------------------------
+3 -3
View File
@@ -624,10 +624,10 @@ public :
\en Add your own bounding box into bounding cube. \~
\param[out] gab -\ru Габаритный куб для добавления габарита оболочки.
\en Bounding box for adding a bounding box of the shell. \~
\param[out] vec -\ru Контейнер для расширенных габаритов граней оболочки.
\en Сontainer for extended bounding boxes of shell faces. \~
\param[out] extTolCubes - \ru Контейнер для расширенных габаритов граней оболочки с неточными ребрам.
\en Container of extended bounding boxes of shell faces that contain inexact edges. \~
*/
void AddYourGabaritTo( MbCube & gab, std::vector<std::pair<size_t, MbCube>> * vec = c3d_null ) const;
void AddYourGabaritTo( MbCube & gab, c3d::IndexCubeVector * extTolCubes = c3d_null ) const;
/// \ru Рассчитать габарит оболочки. \en Calculate bounding box of the shell.
void CalculateGabarit( MbCube & ) const;
/// \ru Рассчитать габарит в локальной системы координат, заданной матрицей matrToLocal преобразования в неё \en Calculate bounding box in the local coordinate system which is given by the matrix 'matrToLocal ' of transformation to it.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.