f29512578a
- C3d aggiornamento delle librerie ( 117832).
207 lines
11 KiB
C++
207 lines
11 KiB
C++
////////////////////////////////////////////////////////////////////////////////
|
|
/**
|
|
\file
|
|
\brief \ru Условное обозначения шероховатости. Условное обозначение линия-выноска.
|
|
\en Roughness conventional notation. Leader conventional notation. \~
|
|
|
|
*/
|
|
////////////////////////////////////////////////////////////////////////////////
|
|
|
|
#ifndef __MB_ROUGH_H
|
|
#define __MB_ROUGH_H
|
|
|
|
|
|
#include <topology_item.h>
|
|
#include <mb_symbol.h>
|
|
|
|
|
|
class MATH_CLASS MbPlacement3D;
|
|
|
|
|
|
//------------------------------------------------------------------------------
|
|
/** \brief \ru Обозначение шероховатости.
|
|
\en Roughness notation. \~
|
|
\details \ru Обозначение шероховатости поверхности детали.\n
|
|
\en Roughness notation of detail surface.\n \~
|
|
\ingroup Legend
|
|
*/
|
|
// ---
|
|
class MATH_CLASS MbRough : public MbPointsSymbol
|
|
{
|
|
private:
|
|
MbTopologyItem * item; ///< \ru Топологический объект, которому принадлежит шероховатость (не владеет). \en Topological object which roughness belongs to (doesn't own).
|
|
|
|
protected:
|
|
/// \ru Конструктор-копия. \en Copy constructor.
|
|
MbRough( const MbRough & );
|
|
/// \ru Умолчательный конструктор. \en Default constructor.
|
|
MbRough();
|
|
public:
|
|
/** \brief \ru Конструктор.
|
|
\en Constructor. \~
|
|
\details \ru Конструктор условного обозначения на базовых точках.
|
|
\en Constructor of conventional notation on base points. \~
|
|
\param[in] _points - \ru Базовые точки условного обозначения в мировой системе координат.
|
|
\en Conventional notation base points in world coordinate system. \~
|
|
\param[in] _name - \ru Имя условного обозначения объекта.
|
|
\en Object's conventional notation name. \~
|
|
\param[in] _component - \ru Компонент условного обозначения.
|
|
\en Component of conventional notation. \~
|
|
\param[in] _item - \ru Топологический объект, которому принадлежит шероховатость.
|
|
\en Topological object, which roughness belongs to. \~
|
|
\param[in] _stateCalc - \ru Тип расчета видимости точек.
|
|
\en Points visibility calculation type. \~
|
|
*/
|
|
MbRough( const SArray<MbCartPoint3D> & _points, MbName * _name,
|
|
uint _component, MbTopologyItem * _item, StateCalc _stateCalc = st_strong );
|
|
/// \ru Деструктор. \en Destructor.
|
|
virtual ~MbRough();
|
|
|
|
public:
|
|
/** \ru \name Общие функции геометрического объекта.
|
|
\en \name Common functions of a geometric object.
|
|
\{ */
|
|
MbeSpaceType IsA () const override;
|
|
MbSpaceItem & Duplicate( MbRegDuplicate * = nullptr ) const override;
|
|
bool IsSame ( const MbSpaceItem & other, double accuracy = LENGTH_EPSILON ) const override;
|
|
bool SetEqual ( const MbSpaceItem & ) override;
|
|
|
|
/** \} */
|
|
/** \ru \name Собственные функции шероховатости.
|
|
\en \name Own functions of roughness.
|
|
\{ */
|
|
|
|
/// \ru Получить топологический объект, которому принадлежит шероховатость. \en Get topological object, which roughness belongs to.
|
|
MbTopologyItem * GetTopologicItem() const;
|
|
/// \ru Установить топологический объект, которому принадлежит шероховатость. \en Set topological object, which roughness belongs to.
|
|
void SetTopologicItem( MbTopologyItem * _item );
|
|
/** \} */
|
|
|
|
private:
|
|
MbRough & operator = ( const MbRough & );
|
|
|
|
DECLARE_PERSISTENT_CLASS( MbRough )
|
|
};
|
|
|
|
IMPL_PERSISTENT_OPS( MbRough )
|
|
|
|
//------------------------------------------------------------------------------
|
|
/** \brief \ru Условное обозначение линия-выноска.
|
|
\en Leader conventional notation. \~
|
|
\details \ru Условное обозначение линия-выноска.\n
|
|
\en Leader conventional notation.\n \~
|
|
\ingroup Legend
|
|
*/
|
|
// ---
|
|
class MATH_CLASS MbLeader : public MbSymbol {
|
|
|
|
protected:
|
|
PArray<MbRough> branches; ///< \ru Узлы обозначения линия-выноска (не владеет). \en Leader notation nodes (doesn't own).
|
|
|
|
protected:
|
|
/// \ru Конструктор-копия. \en Copy constructor.
|
|
MbLeader( const MbLeader & );
|
|
/// \ru Умолчательный конструктор. \en Default constructor.
|
|
MbLeader();
|
|
public:
|
|
/** \brief \ru Конструктор.
|
|
\en Constructor. \~
|
|
\details \ru Конструктор условного обозначения на базовых точках.
|
|
\en Constructor of conventional notation on base points. \~
|
|
\param[in] _branches - \ru Узлы обозначения линия-выноска.
|
|
\en Leader notation nodes. \~
|
|
\param[in] _name - \ru Имя условного обозначения.
|
|
\en Conventional notation name. \~
|
|
\param[in] _component - \ru Компонент условного обозначения.
|
|
\en Component of conventional notation. \~
|
|
\param[in] _stateCalc - \ru Тип расчета видимости точек.
|
|
\en Points visibility calculation type. \~
|
|
*/
|
|
MbLeader( const PArray<MbRough> & _branches, MbName * _name,
|
|
uint _component, StateCalc _stateCalc = st_strong );
|
|
/// \ru Деструктор. \en Destructor.
|
|
virtual ~MbLeader();
|
|
|
|
public:
|
|
/// \ru Инициализация. \en Initialization.
|
|
void Init( const MbLeader & );
|
|
|
|
public:
|
|
|
|
/** \ru \name Общие функции геометрического объекта
|
|
\en \name Common functions of a geometric object
|
|
\{ */
|
|
|
|
MbeSpaceType IsA () const override;
|
|
MbSpaceItem & Duplicate ( MbRegDuplicate * = nullptr ) const override;
|
|
bool IsSame ( const MbSpaceItem & other, double accuracy = LENGTH_EPSILON ) const override;
|
|
bool SetEqual ( const MbSpaceItem & ) override;
|
|
void Transform ( const MbMatrix3D &, MbRegTransform * = nullptr ) override;
|
|
void Move ( const MbVector3D &, MbRegTransform * = nullptr ) override;
|
|
void Rotate ( const MbAxis3D &, double, MbRegTransform * = nullptr ) override;
|
|
|
|
void GetProperties( MbProperties & ) override;
|
|
void SetProperties( const MbProperties & ) override;
|
|
void GetBasisPoints( MbControlData3D & ) const override; // \ru Выдать контрольные точки объекта. \en Get control points of object.
|
|
void SetBasisPoints( const MbControlData3D & ) override; // \ru Изменить объект по контрольным точкам. \en Change the object by control points.
|
|
|
|
/** \} */
|
|
/** \ru \name Функции условного обозначения.
|
|
\en \name Functions of conventional notation.
|
|
\{ */
|
|
|
|
/// \ru Включить свой габарит в габаритный куб cube. \en Include own bounding box into 'cube' bounding box.
|
|
void IncludeGab ( MbCube & ) const override;
|
|
/// \ru Находится ли условное обозначение на плоскости OXY плейсмента place. \en Check if conventional notation on OXY plane of 'place' placement.
|
|
bool IsSymbolOnPlace ( const MbPlacement3D & ) const override;
|
|
/// \ru Находится ли условное обозначение на или под плоскостью OXY плейсмента place. \en Check if conventional notation on OXY plane of 'place' placement or under it.
|
|
bool IsSymbolUnderPlace( const MbPlacement3D & ) const override;
|
|
/// \ru Находится ли условное обозначение на или внутри оболочки faceShell. \en Check if conventional notation on 'faceShell' shell or inside it.
|
|
bool IsSymbolInShell ( const MbFaceShell & ) const override;
|
|
/// \ru Получить массив условных обозначений на базовых точках, принадлежащих данному обозначению. \en Get an array of notation conventions on the base points which belong to this notation.
|
|
void GetPointsSymbols ( RPArray<MbSymbol> & ) const override;
|
|
|
|
/** \} */
|
|
/** \ru \name Собственные функции обозначения линия-выноска.
|
|
\en \name Own functions of leader notation.
|
|
\{ */
|
|
|
|
/// \ru Получить количество узлов обозначения линия-выноска. \en Get count of leader notation nodes.
|
|
ptrdiff_t GetBranchesCount () const;
|
|
|
|
/** \brief \ru Получить узел.
|
|
\en Get node. \~
|
|
\details \ru Получить узел обозначения по индексу.
|
|
\en Get notation node by index. \~
|
|
\param[in] ind - \ru Индекс узла.
|
|
\en Node index. \~
|
|
\return \ru Узел по указанному индексу,\n
|
|
в случае некорректного индекса - последний узел из списка.
|
|
\en Node by specified index,\ n
|
|
in case of incorrect index - the last node from list. \~
|
|
*/
|
|
const MbRough & GetBranch( size_t ind ) const;
|
|
|
|
/** \brief \ru Установить узел.
|
|
\en Set node. \~
|
|
\details \ru Установить узел обозначения с указанным индексом.
|
|
\en Set notation node by given index. \~
|
|
\param[in] rough - \ru Новый узел.
|
|
\en New node. \~
|
|
\param[in] ind - \ru Индекс узла.
|
|
\en Node index. \~
|
|
*/
|
|
void SetBranch( const MbRough & rough, size_t ind );
|
|
/** \} */
|
|
private:
|
|
// \ru Не реализованные методы класса. \en Not implemented class methods.
|
|
void operator = ( const MbLeader & );
|
|
|
|
DECLARE_PERSISTENT_CLASS( MbLeader )
|
|
};
|
|
|
|
IMPL_PERSISTENT_OPS( MbLeader )
|
|
|
|
|
|
#endif // __MB_ROUGH_H
|