C3D Toolkit  Kernel - 105122, Vision - 0.181114.105122

Примитив. Подробнее...

Граф наследования:MbPrimitive:
[см. легенду]
Граф связей класса MbPrimitive:
[см. легенду]

Открытые члены

virtual ~MbPrimitive ()
 Деструктор
 
Общие функции примитива.
virtual MbePrimitiveType Type () const =0
 Получить тип объекта.
 
virtual MbeRefType RefType () const
 Регистрационный тип (для копирования, дублирования).
 
virtual MbPrimitiveDuplicate (MbRegDuplicate *iReg=NULL) const =0
 Создать копию примитива. Подробнее...
 
virtual void Transform (const MbMatrix3D &matr)=0
 Преобразовать примитив согласно матрице. Подробнее...
 
virtual void Move (const MbVector3D &to)=0
 Сдвинуть примитив вдоль вектора. Подробнее...
 
virtual void Rotate (const MbAxis3D &axis, double angle)=0
 Повернуть примитив вокруг оси на заданный угол. Подробнее...
 
virtual MbeImplicationType ImplicationType () const
 Выдать тип контейнера атрибутов.
 
virtual void AddYourGabaritTo (MbCube &r) const =0
 Расширить присланный габаритный куб так, чтобы он включал в себя данный объект.
 
virtual double DistanceToPoint (const MbCartPoint3D &pnt) const =0
 Вычислить расстояние до точки.
 
virtual double DistanceToLine (const MbAxis3D &axis, double maxDistance, double &t) const =0
 Вычислить расстояние до оси.
 
virtual void GetProperties (MbProperties &)=0
 Выдать свойства объекта.
 
virtual void SetProperties (const MbProperties &)=0
 Записать свойства объекта.
 
SimpleName GetPrimitiveName () const
 
void SetPrimitiveName (SimpleName n)
 
const MbRefItemGetItem () const
 Выдать породивший примитив объект.
 
void SetItem (const MbRefItem *g)
 Установить породивший примитив объект.
 
MbeRefType GetPrimitiveType () const
 Дать тип объекта.
 
void SetPrimitiveType (MbeRefType t)
 Установить тип объекта.
 
bool NearestType (MbeSpaceType sType, MbeTopologyType tType, MbePlaneType pType) const
 Удовлетворяет ли примитив критериям поиска ближайшего объекта?
 
const MbSpaceItemSpaceItem () const
 Получить пространственный объект, для которого построен примитив.
 
const MbPlaneItemPlaneItem () const
 Получить двумерный объект, для которого построен примитив.
 
const MbTopItemTopItem () const
 Получить топологический объект, для которого построен примитив.
 
const MbItemItem () const
 Получить объект геометрической модели, для которого построен примитив.
 
void PrimitiveRead (reader &in)
 Чтение примитива из потока.
 
void PrimitiveWrite (writer &out) const
 Запись примитива в поток.
 
- Открытые члены унаследованные от MbAttributeContainer
 MbAttributeContainer ()
 Конструктор без параметров.
 
 MbAttributeContainer (MbAttribute &)
 Конструктор по атрибуту.
 
virtual ~MbAttributeContainer ()
 Деструктор.
 
void AttributesRead (reader &)
 Прочитать атрибуты из потока.
 
void AttributesWrite (writer &) const
 Записать атрибуты в поток.
 
void GetProperties (MbProperties &)
 Выдать свойства атрибутов.
 
void SetProperties (const MbProperties &)
 Установить свойства атрибутов.
 
void SetDensity (double)
 Установить плотность объекта.
 
double GetDensity () const
 Выдать плотность объекта.
 
void SetVisual (float a, float d, float sp, float sh, float t, float e)
 Установить визуальные свойства объекта.
 
bool GetVisual (float &a, float &d, float &sp, float &sh, float &t, float &e) const
 Выдать визуальные свойства объекта. Подробнее...
 
bool IsColored () const
 Есть ли у объекта свой цвет. Подробнее...
 
void SetColor (uint32)
 Изменить цвет объекта.
 
uint32 GetColor () const
 Выдать цвет объекта.
 
void SetWidth (int)
 Установить толщину линий для отображения объекта.
 
int GetWidth () const
 Выдать толщину линий для отображения объекта.
 
void SetStyle (int)
 Установить стиль линий для отображения объекта.
 
int GetStyle () const
 Выдать стиль линий для отображения объекта.
 
void SetSelected (bool s=true)
 Выделить или не выделить объект.
 
bool IsSelected () const
 Выделен ли объект?
 
bool ReverseSelected ()
 Инвертировать выделение объекта.
 
void SetChanged (bool c=true)
 Задать: объект изменен или не изменён.
 
bool IsChanged () const
 Изменен ли объект?
 
void SetVisible (bool)
 Установить видимость.
 
bool IsVisible () const
 Видимый ли объект?
 
bool IsInvisible () const
 Не видимый ли элемент?
 
void AttributesAssign (const MbAttributeContainer &)
 Cдублировать атрибуты присланного объекта, свои отпустить.
 
size_t AttributesCount () const
 Выдать количество объектов.
 
void RemoveAttributes ()
 Удалить все атрибуты из контейнера.
 
MbAttributeAddAttribute (MbAttribute *attr, bool checkSame=true)
 Добавить атрибут в контейнер.
 
MbAttributeAddAttribute (const MbAttribute &attr, bool checkSame=true)
 Добавить атрибут в контейнер (всегда копирует атрибут).
 
void GetAttributes (std::vector< MbAttribute *> &attrs, MbeAttributeType type, MbeAttributeType subType) const
 Выдать атрибуты заданного типа.
 
void GetCommonAttributes (std::vector< MbAttribute *> &attrs, const c3d::string_t &samplePrompt, MbeAttributeType subType=at_Undefined) const
 Выдать атрибуты по строке описания.
 
void GetStringAttributes (std::vector< MbAttribute *> &attrs, const c3d::string_t &sampleContent) const
 Выдать строковые атрибуты по строке содержания.
 
bool RemoveAttribute (const MbAttribute *)
 Выдать атрибут заданного типа, если их несколько - то первый попавшийся. Подробнее...
 
bool RemoveAttributes (MbeAttributeType type, MbeAttributeType subType)
 Удалить атрибуты заданного типа.
 
const MbAttributeGetSimpleAttribute (MbeAttributeType) const
 Выдать простой атрибут данного подтипа.
 
MbAttributeSetSimpleAttribute (MbeAttributeType)
 Выдать простой атрибут данного подтипа.
 
MbAttributeSetSimpleAttribute (MbAttribute *simpAttr)
 Установить простой атрибут данного подтипа.
 
MbAttributeSetSimpleAttribute (const MbAttribute &simpAttr)
 Установить простой атрибут данного подтипа (всегда копирует атрибут).
 
void RemoveSimpleAttribute (MbeAttributeType)
 Удалить простой атрибут(один и более) данного подтипа.
 
MbAttributeDetachSimpleAttribute (MbeAttributeType)
 Отдать простой атрибут данного подтипа.
 
void GetUserAttributes (std::vector< MbUserAttribute *> &attrs, const MbUserAttribType &type) const
 Выдать пользовательский атрибут данного подтипа.
 
void RemoveUserAttributes (const MbUserAttribType &type)
 Удалить пользовательский атрибут (один и более) данного подтипа.
 
void DetachUserAttributes (std::vector< MbUserAttribute *> &attrs, const MbUserAttribType &type)
 Отдать пользовательский атрибут данного подтипа.
 
void AttributesChange ()
 Выполнить действия при изменении атрибутов.
 
void AttributesConvert (MbAttributeContainer &other) const
 Выполнить действия при конвертации атрибутов.
 
void AttributesTransform (const MbMatrix3D &, MbRegTransform *=NULL)
 Выполнить действия при трансформировании атрибутов.
 
void AttributesMove (const MbVector3D &, MbRegTransform *=NULL)
 Выполнить действия при перемещении атрибутов.
 
void AttributesRotate (const MbAxis3D &, double angle, MbRegTransform *=NULL)
 Выполнить действия при вращении атрибутов.
 
void AttributesCopy (MbAttributeContainer &other, MbRegDuplicate *=NULL) const
 Выполнить действия при копировании атрибутов.
 
void AttributesMerge (MbAttributeContainer &other)
 Выполнить действия при объединении атрибутов.
 
void AttributesReplace (MbAttributeContainer &other)
 Выполнить действия при замене атрибутов.
 
void AttributesSplit (const std::vector< MbAttributeContainer *> &others)
 Выполнить действия при разделении атрибутов.
 
void AttributesDelete ()
 Выполнить действия при удалении атрибутов.
 
- Открытые члены унаследованные от MbRefItem
 MbRefItem ()
 Конструктор без параметров.
 
refcount_t GetUseCount () const
 Выдать количество ссылок (выдать количество владельцев объекта).
 
refcount_t AddRef () const
 Увеличить количество ссылок на единицу.
 
refcount_t DecRef () const
 Уменьшить количество ссылок на единицу.
 
refcount_t Release () const
 Уменьшить количество ссылок на единицу и, если количество ссылок стало равным нулю, удалить себя.
 

Защищенные члены

 MbPrimitive (const MbPrimitive &init, MbRegDuplicate *iReg)
 Конструктор копирования с регистратором.
 
 MbPrimitive ()
 Конструктор без параметров.
 
- Защищенные члены унаследованные от MbAttributeContainer
 MbAttributeContainer (const MbAttributeContainer &, MbRegDuplicate *)
 Конструктор копирования с регистратором.
 

Защищенные данные

SimpleName name
 Имя примитива.
 
const MbRefItemparentItem
 Породивший объект (не владеем).
 
MbeRefType type
 Тип примитива.
 

Дополнительные унаследованные члены

- Открытые статические члены унаследованные от MbAttributeContainer
static MbUserAttributeReduceUserAttrib (const MbExternalAttribute &source)
 Преобразовать из пользовательского в "системный".
 
static MbExternalAttributeAdvanceUserAttrib (const MbUserAttribute &source)
 Преобразовать из "системного" в пользовательский
 

Подробное описание

Примитив.

Родительский класс элемента полигонального объекта служит для аппроксимации геометрического объекта. Каждый экземпляр класса MbPrimitive несет имя и указатель на исходный геометрический объект (если есть такой) и атрибуты.
MbPrimitive является предком для триангуляции (MbGrid), полигона (MbPolygon3D) и апекса (MbApex3D).

Методы

◆ Duplicate()

virtual MbPrimitive& MbPrimitive::Duplicate ( MbRegDuplicate iReg = NULL) const
pure virtual

Создать копию примитива.

Создать копию примитива с использованием регистратора. Регистратор используется для предотвращения многократного копирования примитива, входящего в состав нескольких объектов копируемых одновременно. При копировании одиночного объекта или набора не связанных между собой объектов допустимо не использовать регистратор. Регистратор необходимо использовать, если надо последовательно копировать несколько взаимосвязанных объектов. Взаимосвязь представляет собой наличие в объектах ссылок на общие примитивы. Тогда, при копировании без использования регистратора, можно получить набор копий, содержащих ссылки на разные копии одного и того же вложенного примитива, что ведет к потере связи между копиями.

Аргументы
[in]iReg- Регистратор.
Возвращает
Копия объекта.

Замещается в MbGrid, MbPolygon3D, MbFloatApex3D, MbFloatGrid, MbExactApex3D, MbApex3D, MbFloatPolygon3D, MbExactGrid и MbExactPolygon3D.

◆ Transform()

virtual void MbPrimitive::Transform ( const MbMatrix3D matr)
pure virtual

Преобразовать примитив согласно матрице.

Преобразовать примитив согласно матрице c использованием регистратора. Регистратор служит для предотвращения многократного преобразования примитива, входящего в состав нескольких объектов, трансформируемых одновременно. Допустимо использовать функцию без регистратора, если надо преобразовать одиночный объект. Если надо преобразовать набор взаимосвязанных объектов, необходимо использовать регистратор для предотвращения повторного преобразования вложенных примитивов, поскольку не исключена ситуация, когда несколько объектов из набора содержат ссылки на один или несколько общих примитивов, подлежащих трансформации.

Аргументы
[in]matr- Матрица преобразования.

Замещается в MbGrid, MbPolygon3D, MbFloatApex3D, MbFloatGrid, MbExactApex3D, MbApex3D, MbFloatPolygon3D, MbExactGrid и MbExactPolygon3D.

◆ Move()

virtual void MbPrimitive::Move ( const MbVector3D to)
pure virtual

Сдвинуть примитив вдоль вектора.

Сдвинуть примитив вдоль вектора с использованием регистратора. Регистратор служит для предотвращения многократного преобразования примитива, входящего в состав нескольких объектов, трансформируемых одновременно. Допустимо использовать функцию без регистратора, если надо преобразовать одиночный объект. Если надо преобразовать набор взаимосвязанных объектов, необходимо использовать регистратор для предотвращения повторного преобразования вложенных примитивов, поскольку не исключена ситуация, когда несколько объектов из набора содержат ссылки на один или несколько общих примитивов, подлежащих сдвигу.

Аргументы
[in]to- Вектор сдвига.

Замещается в MbGrid, MbPolygon3D, MbFloatApex3D, MbFloatGrid, MbExactApex3D, MbApex3D, MbFloatPolygon3D, MbExactGrid и MbExactPolygon3D.

◆ Rotate()

virtual void MbPrimitive::Rotate ( const MbAxis3D axis,
double  angle 
)
pure virtual

Повернуть примитив вокруг оси на заданный угол.

Повернуть примитив вокруг оси на заданный угол с использованием регистратора. Регистратор служит для предотвращения многократного преобразования примитива, входящего в состав нескольких объектов, трансформируемых одновременно. Допустимо использовать функцию без регистратора, если надо преобразовать одиночный объект. Если надо преобразовать набор взаимосвязанных объектов, необходимо использовать регистратор для предотвращения повторного преобразования вложенных примитивов, поскольку не исключена ситуация, когда несколько объектов из набора содержат ссылки на один или несколько общих примитивов, подлежащих повороту.

Аргументы
[in]axis- Ось поворота.
[in]angle- Угол поворота.

Замещается в MbGrid, MbPolygon3D, MbFloatApex3D, MbFloatGrid, MbExactApex3D, MbApex3D, MbFloatPolygon3D, MbExactGrid и MbExactPolygon3D.


Объявления и описания членов класса находятся в файле: