C3D Kernel  104598
Открытые типы | Открытые члены

Коллекция элементов. Подробнее...

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

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

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

enum  CollectionType { coll_PointCloud = 0, coll_Tessellation = 1, coll_Elements = 2, coll_Segmentation = 3 }
 Типы коллекций 3D объектов. Подробнее...

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

 MbCollection ()
 Конструктор.
 MbCollection (const MbMesh &mesh)
 Конструктор.
virtual ~MbCollection ()
 Деструктор.
 VISITING_CLASS (MbCollection)
virtual MbeSpaceType IsA () const
 Получить тип объекта.
virtual MbeSpaceType Type () const
 Получить групповой тип объекта.
virtual MbSpaceItemDuplicate (MbRegDuplicate *=NULL) const
 Создать копию объекта.
virtual void Transform (const MbMatrix3D &, MbRegTransform *=NULL)
 Преобразовать объект согласно матрице.
virtual void Move (const MbVector3D &, MbRegTransform *=NULL)
 Сдвинуть объект вдоль вектора.
virtual void Rotate (const MbAxis3D &, double angle, MbRegTransform *=NULL)
 Повернуть объект вокруг оси на заданный угол.
virtual bool IsSame (const MbSpaceItem &init, double accuracy=LENGTH_EPSILON) const
 Определить, являются ли объекты равными.
virtual bool SetEqual (const MbSpaceItem &init)
 Сделать объекты равным, если они подобны.
virtual double DistanceToPoint (const MbCartPoint3D &) const
 Определить расстояние до точки.
virtual void AddYourGabaritTo (MbCube &r) const
 Расширить присланный габаритный куб так, чтобы он включал в себя данный объект.
virtual void CalculateLocalGabarit (const MbMatrix3D &into, MbCube &cube) const
 Рассчитать габарит в локальной системы координат.
virtual void CalculateMesh (const MbStepData &stepData, const MbFormNote &note, MbMesh &mesh) const
 Построить полигональную копию mesh.
virtual MbPropertyCreateProperty (MbePrompt n) const
 Создать собственное свойство с заданием его имени.
virtual void GetProperties (MbProperties &)
 Выдать свойства атрибутов.
virtual void SetProperties (const MbProperties &)
 Установить свойства атрибутов.
virtual MbItemCreateMesh (const MbStepData &stepData, const MbFormNote &note, MbRegDuplicate *iReg) const
 Создать полигональный объект.
MbGridCreateGrid () const
void CreateGridsByElements (RPArray< MbGrid > &grids_) const
void CreateCornerPointsAndElements (SArray< MbFloatPoint3D > &points0, SArray< MbElement > &elements0) const
void CreateGridsBySegments (RPArray< MbGrid > &grids_) const
Общие функции коллекции.
size_t PointsCount () const
 Выдать количество точек.
size_t NormalsCount () const
 Выдать количество нормалей.
size_t EscortsCount () const
 Выдать количество значений.
size_t TrianglesCount () const
 Выдать количество треугольников.
size_t QuadranglesCount () const
 Выдать количество четырехугольников.
size_t ElementsCount () const
 Выдать количество объемных элементов.
size_t SegmentsCount () const
 Выдать количество сегментов.
ptrdiff_t PointsMaxIndex () const
 Выдать количество триангуляций.
ptrdiff_t NormalsMaxIndex () const
 Выдать количество нормалей минус 1 (максимальный индекс).
void AddPoint (const MbCartPoint3D &p3D, const MbVector3D &n3D)
 Добавить в коллекцию точку и нормаль в точке.
void AddPoint (const MbCartPoint3D &p3D)
 Добавить в коллекцию точку.
void AddNormal (const MbVector3D &n3D)
 Добавить в коллекцию нормаль.
void AddPoints (const std::vector< MbCartPoint3D > &pnts)
 Добавить в коллекцию точки.
void AddNormals (const SArray< MbFloatVector3D > &nrms)
 Добавить в коллекцию нормали.
void AddEscorts (const std::vector< double > &scores)
 Добавить в коллекцию данных.
void AddTriangle (const MbTriangle &triangle)
 Добавить треугольник.
void AddTriangle (uint j0, uint j1, uint j2, bool o)
 Добавить треугольник с заданными номерами вершин.
void AddQuadrangle (const MbQuadrangle &quadrangle)
 Добавить четырёхугольник.
void AddQuadrangle (uint j0, uint j1, uint j2, uint j3, bool o)
 Добавить четырёхугольник с заданными номерами вершин.
void AddElement (const MbElement &element)
 Добавить объемный элемент.
void AddElement (uint j0, uint j1, uint j2, uint j3, uint j4, uint j5, uint j6, uint j7)
 Добавить объемный элемент.
void AddSegment (const MbGridSegment &segment)
void AddSegment (const std::vector< size_t > &initFaces)
bool GetTrianglePointIndex (size_t i, uint &ind0, uint &ind1, uint &ind2) const
 Добавить полигон.
bool GetQuadranglePointIndex (size_t i, uint &ind0, uint &ind1, uint &ind2, uint &ind3) const
 Выдать индексы точек в массиве points для i-го четырехугольника (связанного или несвязанного).
bool GetTrianglePoints (size_t i, MbCartPoint3D &p0, MbCartPoint3D &p1, MbCartPoint3D &p2) const
 Выдать для треугольника с номером i в общей нумерации (с полосами) точки вершин.
bool GetTriangleNormals (size_t i, MbVector3D &n0, MbVector3D &n1, MbVector3D &n2) const
 Выдать для треугольника с номером i в общей нумерации (с полосами) нормали в вершинах.
bool GetQuadranglePoints (size_t i, MbCartPoint3D &p0, MbCartPoint3D &p1, MbCartPoint3D &p2, MbCartPoint3D &p3) const
 Выдать для четырёхугольника с номером i в общей нумерации (с полосами) точки вершин.
bool GetQuadrangleNormals (size_t i, MbVector3D &n0, MbVector3D &n1, MbVector3D &n2, MbVector3D &n3) const
 Выдать для четырёхугольника с номером i в общей нумерации (с полосами) нормали в вершинах.
void PointsRemove ()
 Удалить точки.
void PointRemove (size_t i)
 Удалить точку с заданным номером.
void NormalRemove (size_t i)
 Удалить нормаль с заданным номером.
void SetType (CollectionType t)
 Установить тип объекта.
CollectionType GetType () const
 Выдать тип объекта.
void SetXSize (uint32 n)
 Установить количество объектов вдоль первой координаты.
void SetYSize (uint32 n)
 Установить количество объектов вдоль второй координаты.
void SetZSize (uint32 n)
 Установить количество объектов вдоль третьей координаты.
uint32 GetXSize () const
 Выдать количество объектов вдоль первой координаты.
uint32 GetYSize () const
 Выдать количество объектов вдоль второй координаты.
uint32 GetZSize () const
 Выдать количество объектов вдоль третьей координаты.
void GetPoint (size_t i, MbCartPoint3D &p) const
 Выдать точку по её номеру.
const std::vector
< MbCartPoint3D > & 
GetPoints () const
 Выдать множество точек.
void GetNormal (size_t i, MbVector3D &n) const
 Выдать нормаль по её номеру.
const std::vector< MbVector3D > & GetNormals () const
 Выдать множество нормалей.
double GetEscort (size_t i) const
 Выдать точку по её номеру.
void GetElement (size_t i, MbElement &elem) const
 Выдать элемент по его номеру.
bool GetElementIndex (size_t i, uint &ind0, uint &ind1, uint &ind2, uint &ind3, uint &ind4, uint &ind5, uint &ind6, uint &ind7) const
 Выдать индексы точек в массиве points для i-го объемного элемента.
bool GetElementPoints (size_t i, MbCartPoint3D &p0, MbCartPoint3D &p1, MbCartPoint3D &p2, MbCartPoint3D &p3, MbCartPoint3D &p4, MbCartPoint3D &p5, MbCartPoint3D &p6, MbCartPoint3D &p7) const
 Выдать для элемента с номером i точки вершин.
void GetSegment (size_t i, MbGridSegment &seg) const
 Выдать сегмент по его номеру.
const MbCartPoint3DGetPoint (size_t i) const
 Выдать точку с заданным номером.
const MbVector3DGetNormal (size_t i) const
 Выдать нормаль с заданным номером.
const MbTriangleGetTriangle (size_t i) const
 Выдать треугольник с номером i.
const MbQuadrangleGetQuadrangle (size_t i) const
 Выдать четырёхугольник с номером i.
const MbElementGetElement (size_t i) const
 Выдать четырёхугольник с номером i.
const MbGridSegmentGetSegment (size_t i) const
 Выдать сегмент по его номеру.
void TrianglesDelete ()
 Выдать полигон с номером i.
void QuadranglesDelete ()
 Удалить все четырехугольники.
void ElementsDelete ()
 Удалить все объемные элементы.
void SegmentsDelete ()
 Удалить все сегменты.
void ReservePointsNormals (size_t n)
 Удалить все nhbfyuekzwbb.
void PointsReserve (size_t n)
 Зарезервировать память для контейнера точек.
void NormalsReserve (size_t n)
 Зарезервировать память для контейнера нормалей.
void EscordsReserve (size_t n)
void TrianglesReserve (size_t n)
 Зарезервировать память для контейнера треугольников.
void QuadranglesReserve (size_t n)
 Зарезервировать память для контейнера четырехугольников.
void ElementsReserve (size_t n)
 Зарезервировать память для контейнера элементов.
void SegmentsReserve (size_t n)
 Зарезервировать память для контейнера сегментов.
void Flush ()
 Зарезервировать память для контейнера полигонов.
void HardFlush ()
 Удалить всю триангуляцию и освободить память.
void Adjust ()
 Освободить лишнюю память.
void Init (const MbCollection &init)
 Инициализировать объект.
void Init (const MbGrid &init)
 Инициализировать объект.
void Init (const MbMesh &init)
 Инициализировать объект.
void ConvertQuadranglesToTriangles ()
 Преобразовать четырёхугольники в треугольники.
void ConvertAllToTriangles ()
 Преобразовать все объекты в треугольники и уравнять число точек и нормалей.
bool RemoveRedundantPoints (bool deleteNormals, double epsilon=LENGTH_EPSILON)
 Удалить дублирующие с заданной точностью друг друга точки.

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

Коллекция элементов - это объект геометрической модели, наследник MbItem, являющийся множеством элементов в трехмерном пространстве.


Перечисления

Элементы перечислений:
coll_PointCloud 

Облако точек.

coll_Tessellation 

Триангуляция.

coll_Elements 

Набор элементов.

coll_Segmentation 

Сегментированная полигональная сетка.


Методы

virtual MbSpaceItem& MbCollection::Duplicate ( MbRegDuplicate iReg = NULL) const [virtual]

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

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

Замещает MbItem.

virtual void MbCollection::Transform ( const MbMatrix3D matr,
MbRegTransform iReg = NULL 
) [virtual]

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

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

Замещает MbItem.

virtual void MbCollection::Move ( const MbVector3D to,
MbRegTransform iReg = NULL 
) [virtual]

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

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

Замещает MbItem.

virtual void MbCollection::Rotate ( const MbAxis3D axis,
double  angle,
MbRegTransform iReg = NULL 
) [virtual]

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

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

Замещает MbItem.

virtual bool MbCollection::IsSame ( const MbSpaceItem other,
double  accuracy = LENGTH_EPSILON 
) const [virtual]

Равными считаются однотипные объекты, все данные которых одинаковы (равны).

Аргументы:
[in]item- Объект для сравнения.
[in]accuracy- Точность сравнения.
Возвращает:
Равны ли объекты.

Замещает MbItem.

virtual bool MbCollection::SetEqual ( const MbSpaceItem item) [virtual]

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

Аргументы:
[in]item- Объект для инициализации.
Возвращает:
Сделан ли объект равным присланному.

Замещает MbItem.

virtual double MbCollection::DistanceToPoint ( const MbCartPoint3D point) const [virtual]

Определить расстояние до точки.

Аргументы:
[in]point- Точка.
Возвращает:
Расстояние от объекта до точки.

Замещает MbItem.

virtual void MbCollection::AddYourGabaritTo ( MbCube cube) const [virtual]

Расширить присланный габаритный куб так, чтобы он включал в себя данный объект.

Аргументы:
[in,out]cube- Принимающий габаритный куб с информацией по габаритам.

Замещает MbItem.

virtual void MbCollection::CalculateLocalGabarit ( const MbMatrix3D into,
MbCube cube 
) const [virtual]

Для получения габарита объекта относительно локальной системы координат, присланный куб делается пустым. Затем вычисляются габариты объекта в локальной системе координат и сохраняются в кубе cube.

Аргументы:
[in]into- Матрица перехода от текущей для объекта системы координат к локальной системе координат.
[in,out]cube- Куб с информацией по габаритам.

Замещает MbItem.

virtual void MbCollection::CalculateMesh ( const MbStepData stepData,
const MbFormNote note,
MbMesh mesh 
) const [virtual]

Построить полигональную копию данного объекта, представленную полигонами, или/и плоскими пластинами.

Аргументы:
[in]stepData- Данные для вычисления шага при построении полигонального.
[in]note- Способ построения полигонального объекта.
[in,out]mesh- Построенный полигональный объект.

Замещает MbItem.

virtual MbItem* MbCollection::CreateMesh ( const MbStepData stepData,
const MbFormNote note,
MbRegDuplicate iReg 
) const [virtual]

Создать полигональный объект - упрощенную копию данного объекта.

Аргументы:
[in]stepData- Данные для вычисления шага при триангуляции.
[in]note- Способ построения полигонального объекта.
Возвращает:
Построенный полигональный объект.

Замещает MbItem.

bool MbCollection::GetTrianglePointIndex ( size_t  i,
uint &  ind0,
uint &  ind1,
uint &  ind2 
) const

Выдать индексы точек в массиве points для i-го треугольника (связанного или несвязанного).

void MbCollection::TrianglesDelete ( ) [inline]

Удалить все xтреугольники.

void MbCollection::ReservePointsNormals ( size_t  n) [inline]

Зарезервировать память для контейнеров.

void MbCollection::EscordsReserve ( size_t  n) [inline]

Зарезервировать память для контейнера параметров. Зарезервировать память для контейнера параметров.

void MbCollection::Flush ( ) [inline]

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


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