C3D Kernel  104598
Классы | Открытые типы | Открытые члены | Защищенные члены
Класс MbModel

Геометрическая модель. Подробнее...

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

Полный список членов класса

Классы

class  ItemConstIterator
 Константный итератор по объектам модели. Подробнее...
class  ItemIterator
 Простой итератор по объектам модели. Подробнее...

Открытые типы

typedef std::map< SimpleName,
MbItem * > 
NameItemArray

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

 MbModel (SimpleName n=0)
 Конструктор по имени объекта.
virtual ~MbModel ()
 Деструктор
SimpleName GetModelName () const
 Выдать имя модели.
void SetModelName (SimpleName n)
 Установить имя модели.
MbItemAddItem (MbItem &item, SimpleName n=UNDEFINED_SNAME)
 Добавить объект в модель.
bool AddModel (const MbModel &)
 Добавить объекты модели item в модель.
const MbItemGetItem (size_t ind) const
const MbItemSubItem (SimpleName n) const
bool ReplaceItem (const MbItem &item, MbItem &newItem, bool saveName=false)
 Заменить объект.
template<class Items >
void GetItems (Items &) const
 Дать все объекты.
bool DetachItem (MbItem *)
 Отцепить объект, если он есть в модели.
template<class Items >
void DetachItems (Items &)
 Отцепить все объекты.
bool DeleteItem (MbItem *)
 Удалить объект, если он есть в модели.
void DeleteItems ()
 Удалить все объекты модели.
bool DecomposeAssemblies ()
 Разрушить сборки с подсборками на составляющие.
bool FillMeshModel (const MbStepData &stepData, const MbFormNote &note, MbModel &meshModel) const
 Наполнить присланную модель полигональными копиями объектов модели.
bool AddYourMesh (const MbStepData &stepData, const MbFormNote &note, MbMesh &mesh) const
 Добавить полигональный объект.
MbModelCutMeshModel (const MbPlacement3D &cutPlace, double distance) const
 Разрезать модель полигональных объектов одной или двумя параллельными плоскостями.
bool NearestMesh (MbeSpaceType sType, MbeTopologyType tType, MbePlaneType pType, const MbAxis3D &axis, double maxDistance, bool gridPriority, MbItem *&find, SimpleName &findName, MbRefItem *&element, SimpleName &elementName, MbPath &path, MbMatrix3D &from) const
 Найти ближайший объект или имя ближайшего объекта.
virtual void GetItems (MbeSpaceType type, RPArray< MbItem > &items, SArray< MbMatrix3D > &matrs)
 Дать все объекты указанного типа.
virtual void GetItems (MbeSpaceType type, RPArray< const MbItem > &items, SArray< MbMatrix3D > &matrs) const
 Дать все объекты указанного типа.
virtual void GetUniqItems (MbeSpaceType type, CSSArray< const MbItem * > &items) const
 Дать все уникальные объекты указанного типа.
bool MakePath (const MbItem &obj, MbPath &path, MbMatrix3D &from) const
 Построить путь положения объекта.
const MbItemGetItemByPath (const MbPath &path, MbMatrix3D &from) const
 Дать объект по его пути.
const MbItemFindItem (const MbSpaceItem *s, MbPath &path, MbMatrix3D &from) const
 Найти объект по геометрическому объекту.
const MbItemFindItem (const MbPlaneItem *s, MbPath &path, MbMatrix3D &from) const
 Найти объект по геометрическому объекту.
const MbItemFindItem (const MbItem *s, MbPath &path, MbMatrix3D &from) const
 Найти объект по объекту геометрической модели.
const MbItemGetItemByName (SimpleName n, MbPath &path, MbMatrix3D &from) const
 Найти объект по имени.
MbItemSetItemByName (SimpleName n, MbPath &path, MbMatrix3D &from)
 Найти объект по имени для редактирования.
void TransformSelected (const MbMatrix3D &, MbRegTransform *=NULL)
 Преобразовать селектирование объекты по матрице.
void MoveSelected (const MbVector3D &, MbRegTransform *=NULL)
 Сдвинуть выбранные объекты.
void RotateSelected (const MbAxis3D &, double angle, MbRegTransform *=NULL)
 Повернуть выбранные объекты вокруг оси.
void DetachSelected (RPArray< MbItem > &, SArray< MbMatrix3D > &, bool selected=true)
 Отцепить все выбранные объекты.
void DetachInvisible (RPArray< MbItem > &, SArray< MbMatrix3D > &, bool invisible=true)
 Отцепить все видимые или невидимые объекты.
size_t ItemsCount () const
 Выдать количество объектов модели.
bool ContainsItem (const MbItem *) const
 Содержится ли объект в модели?
bool AddModelItems (const MbModel &)
 Добавить в модель объекты другой модели.
size_t GetSelected (RPArray< MbItem > &) const
 Добавить в массив выбранные объекты модели без поиска в сложных составных объектах.
void CalculateGabarit (MbCube &) const
 Вычислить габарит по всем объектам модели.
ItemConstIterator CBegin () const
 Выдать константный итератор по всем объектам с указанием на начало.
ItemConstIterator CEnd () const
 Выдать константный итератор по всем объектам с указанием за конец.
ItemConstIterator CBegin (SimpleName n) const
 Выдать константный итератор для указанного имени с указанием на начало.
ItemConstIterator CEnd (SimpleName n) const
 Выдать константный итератор для указанного имени с указанием на конец.
ItemIterator Begin ()
 Выдать не константный итератор по всем объектам с указанием на начало.
ItemIterator End ()
 Выдать не константный итератор по всем объектам с указанием за конец.
ItemIterator Begin (SimpleName n)
 Выдать не константный итератор для указанного имени с указанием на начало.
ItemIterator End (SimpleName n)
 Выдать не константный итератор для указанного имени с указанием на конец.
Общие функции геометрического объекта
virtual MbeImplicationType ImplicationType () const
 Тип контейнера атрибутов - классификатор наследников.
MbModelDuplicate (MbRegDuplicate *=NULL) const
 Создать копию.
void Transform (const MbMatrix3D &, MbRegTransform *iReg=NULL)
 Преобразовать согласно матрице.
void Move (const MbVector3D &, MbRegTransform *iReg=NULL)
 Сдвинуть вдоль вектора.
void Rotate (const MbAxis3D &, double angle, MbRegTransform *iReg=NULL)
 Повернуть вокруг оси.
double DistanceToPoint (const MbCartPoint3D &) const
 Вычислить расстояние до точки.
void AddYourGabaritTo (MbCube &) const
 Добавь свой габарит в габаритный куб.
MbPropertyCreateProperty (MbePrompt) const
 Создать собственное свойство с заданием его имени.
void GetProperties (MbProperties &)
 Выдать свойства объекта.
void SetProperties (const MbProperties &)
 Установить свойства объекта.

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

 MbModel (const MbModel &, MbRegDuplicate *)
 Конструктор копирования с регистратором.

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

Геометрическая модель - контейнер геометрических объектов.
Модель состоит из массивов указателей на объекты геометрической модели MbItem. Модель может содержать вспомогательные объекты MbAssistingItem, точки MbPointFrame, каркасы MbWireFrame, твердые тела MbSolid, полигональные объекты MbMesh, объекты MbSpaceInstance и MbPlaneInstance.
Модель используется для описания геометрических свойств реальных и воображаемых объектов, визуализации моделируемых объектов, вычисления геометрических характеристик моделируемых объектов.
Имя объекта геометрической модели представляет собой контейнер простых имён. В начале контейнера содержится простое имя SimpleName, которое совпадает с первым полем std::multimap геометрической модели.
Если объект не держит в себе других объектов, то контейнер содержит одно простое имя SimpleName. Ели объект держит в себе другие объекты (MbAssembly или MbInstance), то имя внутренних объектов представляет собой контейнер, содержащий как минимум два простых имени. Количество элементов имени объекта отражают количество уровней вложенности объект относительно модели.


Методы

MbItem* MbModel::AddItem ( MbItem item,
SimpleName  n = UNDEFINED_SNAME 
)

Добавить объект в модель с указанным именем.

Аргументы:
[in]item- Объект модели.
[in]n- Имя объекта. Если указанное имя равно нулю, то модель именует объект своим уникальным именем.
Возвращает:
Добавленный объект.
bool MbModel::ReplaceItem ( const MbItem item,
MbItem newItem,
bool  saveName = false 
)

Заменить объект новым.

Аргументы:
[in]item- Заменяемый объект.
[in]newItem- Новый объект.
Возвращает:
Возвращает true, если замена была выполнена.
bool MbModel::FillMeshModel ( const MbStepData stepData,
const MbFormNote note,
MbModel meshModel 
) const

Наполнить присланную модель полигональными копиями объектов оригинальной модели. Присланная модель опустошается и наполняется полигональными копиями объектов оригинальной модели. Присланная модель заполняется аналогично оригинальной модели с той разницей, что вместо тел, проволочных каркасов, точечных каркасов и других конечных объектов модели присланную модель заполняют соответствующие полигональные копии объектов (MbMesh). Сборки и вставки в присланной модели сохраняются аналогичными оригинальной модели. Присланная модель может использоваться для визуализации модели и расчетов.

Заметки:
В многопоточном режиме выполняется параллельно.
Аргументы:
[in]stepData- Данные для вычисления шага при триангуляции.
[in]note- Способ построения полигонального объекта.
[out]meshModel- Присланная модель для наполнения.
Возвращает:
Не было ошибок во время построения - true, были ошибки - false.
bool MbModel::AddYourMesh ( const MbStepData stepData,
const MbFormNote note,
MbMesh mesh 
) const

Добавить полигональную копию модели в присланный полигональный объект (MbMesh). Все объекты модели, её сборки и вставки помещаются в единый плоскогранный полигональный объект. Один и тот же объект, вставленный несколько раз в сборки и вставки модели, получает несколько копий, так как каждая копия трансформируется по матрице локальной системы координат cjjndtncnde.otq сборки и вставки.

Аргументы:
[in]stepData- Данные для вычисления шага при триангуляции.
[in]note- Способ построения полигонального объекта.
[out]mesh- Присланный полигональный объект.
Возвращает:
Добавлен ли объект.
MbModel* MbModel::CutMeshModel ( const MbPlacement3D cutPlace,
double  distance 
) const

Создать новую модель полигональных объектов и наполнить её частями исходной модели, лежащими под плоскостью XY локальной системы координат на заданном расстоянии.
Функция "режет" только модель полигональных объектов MbMesh. Функция "режет" модель двумя плоскостями: плоскостью XY локальной системы координат place и плоскостью, параллельной ей и расположенной на расстоянии distance ниже неё. Если distance<=0, то функция "режет" объект только одной плоскостью XY локальной системы.
Содержимое исходных полигональных объектов, необходимое для построения разрезанного объекта и не затронутое режущими плоскостями, добавляется в возвращаемый разрезанный объект без копирования.

Аргументы:
[in]place- Локальная система координат, плоскость XY которой задаёт режущую плоскость.
[in]distance- Расстояние до параллельной режущей плоскости откладывается в отрицательную сторону оси Z локальной системы.
Возвращает:
Возвращает новую модель полигональных объектов, лежащую под плоскость XY локальной системы координат на заданном расстоянии.
bool MbModel::NearestMesh ( MbeSpaceType  sType,
MbeTopologyType  tType,
MbePlaneType  pType,
const MbAxis3D axis,
double  maxDistance,
bool  gridPriority,
MbItem *&  find,
SimpleName findName,
MbRefItem *&  element,
SimpleName elementName,
MbPath path,
MbMatrix3D from 
) const

Найти ближайший трехмерный объект или его имя по типу объекта и составляющий элемент искомого объекта или его имя по топологическому или двумерному типу элемента (по требованию) на расстоянии от прямой, не превышающем заданной величины. Функция предназначена для идентификации геометрического объекта, породившего полигональный объект. Реальный поиск выполняется для элементов MbPrimitive полигонального объекта MbMesh, у которых берётся информация о породившем примитив геометрическом объекте.

Заметки:
В многопоточном режиме выполняется параллельно.
Аргументы:
[in]sType- Тип искомого объекта.
[in]tType- Топологический тип составляющего элемента искомого объекта.
[in]pType- Двумерный тип составляющего элемента искомого объекта.
[in]axis- Прямая поиска.
[in]maxDistance- Расстояние от прямой, на котором ищется объект.
[in]gridPriority- Повышенный приоритет триангуляционной сетки при поиске.
[out]find- Найденный объект.
[out]findName- Имя найденного объекта.
[out]element- Найденный составляющий элемент объекта.
[out]elementName- Имя найденного составляющего элемента объекта.
[out]path- Путь к объекту в модели.
[out]from- Матрица преобразования найденного объекта в глобальную систему координат.
Возвращает:
Найден ли объект или его имя.
bool MbModel::MakePath ( const MbItem obj,
MbPath path,
MbMatrix3D from 
) const

Построить путь положения объекта в модели и дать матрицу преобразования объекта в глобальную систему координат. Объект может содержаться в другом объекте (в сборке или вставке).

Аргументы:
[in]obj- Объект.
[out]path- Путь к объекту в модели.
[out]from- Матрица преобразования объекта в глобальную систему координат.
Возвращает:
Найден ли путь и матрица объекта.
const MbItem* MbModel::GetItemByPath ( const MbPath path,
MbMatrix3D from 
) const

Дать объект по его пути положения в модели и дать матрицу преобразования объекта в глобальную систему координат. Объект может содержаться в другом объекте (в сборке или вставке).

Аргументы:
[in]path- Путь к объекту в модели.
[out]from- Матрица преобразования объекта в глобальную систему координат.
Возвращает:
Найден ли путь и матрица объекта.
const MbItem* MbModel::FindItem ( const MbSpaceItem s,
MbPath path,
MbMatrix3D from 
) const

Найти объект по геометрическому объекту, а также получить путь к объекту в модели и матрицу преобразования в глобальную систему координат.

Аргументы:
[in]s- Геометрический объект.
[out]path- Путь к объекту в модели.
[out]from- Матрица преобразования объекта в глобальную систему координат.
Возвращает:
Найден ли путь и матрица объекта.
const MbItem* MbModel::FindItem ( const MbPlaneItem s,
MbPath path,
MbMatrix3D from 
) const

Найти объект по геометрическому объекту, а также получить путь к объекту в модели и матрицу преобразования в глобальную систему координат.

Аргументы:
[in]s- Геометрический объект.
[out]path- Путь к объекту в модели.
[out]from- Матрица преобразования объекта в глобальную систему координат.
Возвращает:
Найден ли путь и матрица объекта.
const MbItem* MbModel::FindItem ( const MbItem s,
MbPath path,
MbMatrix3D from 
) const

Найти объект по объекту геометрической модели. а также получить путь к объекту в модели и матрицу преобразования в глобальную систему координат.

Аргументы:
[in]s- Геометрический объект.
[out]path- Путь к объекту в модели.
[out]from- Матрица преобразования объекта в глобальную систему координат.
Возвращает:
Найден ли путь и матрица объекта.
const MbItem* MbModel::GetItemByName ( SimpleName  n,
MbPath path,
MbMatrix3D from 
) const

Найти объект по имени, а также получить путь к объекту в модели и матрицу преобразования в глобальную систему координат.

Аргументы:
[in]n- Имя объекта.
[out]path- Путь к объекту в модели.
[out]from- Матрица преобразования объекта в глобальную систему координат.
Возвращает:
Найден ли путь и матрица объекта.
MbItem* MbModel::SetItemByName ( SimpleName  n,
MbPath path,
MbMatrix3D from 
)

Найти объект по имени для редактирования, а также получить путь к объекту в модели и матрицу преобразования в глобальную систему координат.

Аргументы:
[in]n- Имя объекта.
[out]path- Путь к объекту в модели.
[out]from- Матрица преобразования объекта в глобальную систему координат.
Возвращает:
Найден ли путь и матрица объекта.
void MbModel::DetachSelected ( RPArray< MbItem > &  ,
SArray< MbMatrix3D > &  ,
bool  selected = true 
)

Отцепить все выбранные объекты модели, в том числе и содержащиеся в сложных составных объектах, таких как сборка.

Аргументы:
[out]items- Отцепленные объекты.
[out]matrs- Матрицы преобразования отцепленных объектов в глобальную систему координат.

Объявления и описания членов класса находятся в файле:
 Указатель Классы Пространства имен Файлы Функции Переменные Определения типов Перечисления Элементы перечислений Друзья Макросы