C3D Toolkit  Kernel - 107186, Vision - 190715.107186
+ Граф связей класса Полигональные объекты:

Классы

class  MbMeshProcessorValues
 Параметры построения оболочки тела по полигональной сетке. Подробнее...
 
class  MbMeshProcessor
 Класс для создания оболочки в граничном представлении по полигональной сетке. Подробнее...
 
struct  MbCurvature
 Данные о кривизне и главных направлениях изменений кривизны. Подробнее...
 
class  MbFloatPoint
 Двумерная точка. Подробнее...
 
class  MbFloatPoint3D
 Трехмерная точка. Подробнее...
 
class  MbFloatVector3D
 Трехмерный вектор. Подробнее...
 
class  MbFloatAxis3D
 Ось. Подробнее...
 
class  MbExactGrid
 Триангуляция на числах double. Подробнее...
 
class  MbFloatGrid
 Триангуляция на числах float. Подробнее...
 
class  MbExactPolygon3D
 Полигон на числах double. Подробнее...
 
class  MbFloatPolygon3D
 Полигон на числах float. Подробнее...
 
class  MbPolygon
 Двумерный полигон. Подробнее...
 
class  MbPrimitive
 Примитив. Подробнее...
 
class  MbApex3D
 Апекс (точка). Подробнее...
 
class  MbExactApex3D
 Апекс на числах double. Подробнее...
 
class  MbFloatApex3D
 Апекс на числах float. Подробнее...
 
class  MbPolygon3D
 Полигон. Подробнее...
 
class  MbGrid
 Триангуляция. Подробнее...
 
class  MbTriangle
 Tреугольник. Подробнее...
 
class  MbQuadrangle
 Четырёхугольник. Подробнее...
 
class  MbElement
 Объемный элемент. Подробнее...
 
class  MbGridLoop
 Граница триангуляции. Подробнее...
 
class  MbGridSegment
 Сегмент(результат сегментации) полигональной сетки. Подробнее...
 
class  MbFaceAndGrid
 Математическая грань и ее рассчитанная решетка. Подробнее...
 
struct  MbLumpAndFaces
 Тело с массивом граней и триангуляционных решеток. Подробнее...
 

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

enum  MbeSurfReconstructMode { srm_All = 0, srm_NoGrids = 1, srm_CanonicOnly = 2, srm_Default = srm_NoGrids }
 Режим распознавания поверхностей. Подробнее...
 
enum  MbePrimitiveType {
  pt_Apex3D, pt_ExactApex3D, pt_FloatApex3D, pt_Polygon3D,
  pt_ExactPolygon3D, pt_FloatPolygon3D, pt_Grid, pt_ExactGrid,
  pt_FloatGrid
}
 Типы примитивов. Подробнее...
 
enum  MbeMoveType { mt_Forward = 0, mt_Backward = 1 }
 Направление движения Подробнее...
 

Функции

static MbMeshProcessorMbMeshProcessor::Create (const MbCollection &collection)
 Создать экземпляр процессора по коллекции. Подробнее...
 
virtual void MbMeshProcessor::SetRelativeTolerance (double tolerance)=0
 Установить относительную точность. Подробнее...
 
virtual void MbMeshProcessor::SetTolerance (double tolerance)=0
 Установить точность. Подробнее...
 
virtual double MbMeshProcessor::GetTolerance () const =0
 Получить точность. Подробнее...
 
virtual const MbCollectionMbMeshProcessor::GetSimplifiedMesh ()=0
 Получить исправленную (упрощенную) копию входной полигональной сетки. Подробнее...
 
virtual const MbCollectionMbMeshProcessor::GetSegmentedMesh ()=0
 Получить сегментированную копию входной полигональной сетки. Подробнее...
 
virtual const std::vector< MbCurvature > & MbMeshProcessor::CalculateCurvatures ()=0
 Рассчитать главные кривизны и главные направления изменения кривизн в точках сетки. Подробнее...
 
virtual MbResultType MbMeshProcessor::SegmentMesh (bool createSurfaces=true)=0
 Сегментровать полигональную сетку. Подробнее...
 
virtual MbResultType MbMeshProcessor::CreateBRepShell (MbFaceShell *&pShell)=0
 Создать оболочку. Подробнее...
 
virtual void MbMeshProcessor::FitSurfaceToSegment (size_t idxSegment)=0
 Вписать поверхность. Подробнее...
 
virtual void MbMeshProcessor::FitSurfaceToSegment (size_t idxSegment, MbeSpaceType surfaceType)=0
 Вписать поверхность заданного типа. Подробнее...
 
virtual const MbSurfaceMbMeshProcessor::GetSegmentSurface (size_t idxSegment) const =0
 Получить поверхность для сегмента. Подробнее...
 
virtual void MbMeshProcessor::ResetSegmentation ()=0
 Очистить сегментацию полигональной сетки. Подробнее...
 
virtual bool MbMeshProcessor::FindShortestVertexPath (uint v1, uint v2, std::vector< uint > &path)=0
 Найти ближайший путь между двумя вершинами коллекции. Подробнее...
 
MbResultType ConvertMeshToShell (MbMesh &mesh, MbFaceShell *&shell, const MbMeshProcessorValues &params=MbMeshProcessorValues())
 Создать оболочку по полигональной сетке c автоматическим распознаванием поверхностей. Подробнее...
 
MbResultType ConvertCollectionToShell (MbCollection &collection, MbFaceShell *&shell, const MbMeshProcessorValues &params=MbMeshProcessorValues())
 Создать оболочку по коллекции, содержащей полигональную сетку c автоматическим распознаванием поверхностей. Подробнее...
 
void CalculateWire (const MbPlaneItem &obj, const MbPlacement3D &plane, double sag, MbMesh &mesh)
 Построить полигональный двухмерный объект. Подробнее...
 
MbResultType CreateIcosahedron (const MbPlacement3D &place, double radius, const MbFormNote &fn, MbMesh *&result)
 Построить икосаэдр в виде полигональной модели. Подробнее...
 
MbResultType CreateSpherePolyhedron (const MbPlacement3D &place, double radius, double &epsilon, MbMesh *&result)
 Построить полигональную сферу. Подробнее...
 
MbResultType CreateConvexPolyhedron (const SArray< MbFloatPoint3D > &points, MbMesh *&result)
 Вычислить выпуклую оболочку для множества точек. Подробнее...
 
MbResultType CreateConvexPolyhedron (const MbMesh &mesh, double offset, MbMesh *&result)
 Построить выпуклую оболочку для триангуляционной сетки. Подробнее...
 
bool AreIntersectConvexPolyhedrons (const MbMesh &mesh1, const MbMesh &mesh2)
 Определить, пересекаются ли данные выпуклые сетки. Подробнее...
 
MbResultType MeshCutting (MbMesh &mesh, MbeCopyMode sameShell, const MbPlacement3D &place, int part, const MbSNameMaker &names, bool closed, MbMesh *&result)
 Отрезать часть полигонального объекта плоскостью. Подробнее...
 
MbResultType CalculateBallPivotingGrid (const MbCollection &collection, double radius, double radiusMin, double angle, MbMesh *&result)
 Построить триангуляцию по облаку точек на основе алгоритма поворотного шара. Подробнее...
 
void CalculateHideMesh (const MbSurface &surf, const MbVector3D &eyeDir, double sag, MbMesh *&mesh, VERSION version=Math::DefaultMathVersion())
 Рассчитать сетку. Подробнее...
 
void TriangulateRegion (const MbRegion &region, double sag, MbPlanarGrid &grid)
 Трингуляция двумерного региона Подробнее...
 

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

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

◆ MbeSurfReconstructMode

Режим распознавания поверхностей.

Режим распознавания поверхностей.

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

Строить все поверхности.

srm_NoGrids 

Не строить поверхности на базе триангуляции.

srm_CanonicOnly 

Строить только элементарные поверхности.

srm_Default 

Режим по умолчанию.

◆ MbePrimitiveType

Типы примитивов.

Типы примитивов полигонального объекта.

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

Апекс.

pt_ExactApex3D 

Апекс на числах double.

pt_FloatApex3D 

Апекс на числах float.

pt_Polygon3D 

Полигон.

pt_ExactPolygon3D 

Полигон на числах double.

pt_FloatPolygon3D 

Полигон на числах float.

pt_Grid 

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

pt_ExactGrid 

Триангуляция на числах double.

pt_FloatGrid 

Триангуляция на числах float.

◆ MbeMoveType

Направление движения

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

Вперед.

mt_Backward 

Назад.

Функции

◆ Create()

static MbMeshProcessor* MbMeshProcessor::Create ( const MbCollection collection)
static

Создать экземпляр процессора по коллекции.

Создать экземпляр процессора по коллекции. Пользователь должен сам удалить объект.

Аргументы
[in]collection- Входная коллекция, содержащая треугольную сетку.
Возвращает
Возвращает указатель на созданный объект.

◆ SetRelativeTolerance()

virtual void MbMeshProcessor::SetRelativeTolerance ( double  tolerance)
pure virtual

Установить относительную точность.

Установить относительную точность по габаритам текущей сетки.

Аргументы
[in]tolerance- Относительная точность.

◆ SetTolerance()

virtual void MbMeshProcessor::SetTolerance ( double  tolerance)
pure virtual

Установить точность.

Установить точность распознавания поверхностей и расширения сегментов сетки. Метод должен быть вызван перед вызовом SegmentMesh. Точность по умолчанию равна 0.1.

Аргументы
[in]tolerance- Точность.

◆ GetTolerance()

virtual double MbMeshProcessor::GetTolerance ( ) const
pure virtual

Получить точность.

Получить текущую точность, используемую при распознавании поверхностей и расширения сегментов сетки.

Возвращает
Возвращает абсолютную точность.

◆ GetSimplifiedMesh()

virtual const MbCollection& MbMeshProcessor::GetSimplifiedMesh ( )
pure virtual

Получить исправленную (упрощенную) копию входной полигональной сетки.

Получить исправленную копию входной сетки, на которой выполняются операции MbMeshProcessor: подсчет кривизн, сегментация, построение оболочки. Все индексы в выходных данных соответствуют индексам вершин и треугольников упрощенной сетки, возвращаемой данным методом.

Возвращает
Возвращает исправленную версию входной полигональной сетки.

◆ GetSegmentedMesh()

virtual const MbCollection& MbMeshProcessor::GetSegmentedMesh ( )
pure virtual

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

Получить сегменитрованную копию входной сетки, на которой выполняются операции MbMeshProcessor: подсчет кривизн, сегментация, построение оболочки. Сегментация доступна внутри коллекции.

Возвращает
Возвращает сегментированную версию входной полигональной сетки.

◆ CalculateCurvatures()

virtual const std::vector<MbCurvature>& MbMeshProcessor::CalculateCurvatures ( )
pure virtual

Рассчитать главные кривизны и главные направления изменения кривизн в точках сетки.

Рассчитать главные кривизны и главные направления изменения кривизн в точках сетки.

Возвращает
Возвращает главные кривизны и главные направления в точках сетки.

◆ SegmentMesh()

virtual MbResultType MbMeshProcessor::SegmentMesh ( bool  createSurfaces = true)
pure virtual

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

Выполнить сегментацию полигональной сетки.

Возвращает
Возвращает код результата операции.
Аргументы
[in]createSurfaces- Создавать ли поверхности на сегментах.

◆ CreateBRepShell()

virtual MbResultType MbMeshProcessor::CreateBRepShell ( MbFaceShell *&  pShell)
pure virtual

Создать оболочку.

Создать оболочку в граничном представлении, соответствующее модели, заданной полигональной сеткой. Используется текущая сегментация. Если сегментация не была вычислена, но вычисляется автоматическая сегментация (с параметрами по умолчанию).

Аргументы
[out]pShell- Указатель на созданную оболочку.
Возвращает
Возвращает код результата операции.

◆ FitSurfaceToSegment() [1/2]

virtual void MbMeshProcessor::FitSurfaceToSegment ( size_t  idxSegment)
pure virtual

Вписать поверхность.

Распознать поверхность по сегменту сетки с заданным индексом. Распознанная поверхность может быть получена с помощью метода GetSegmentSurface.

Аргументы
[in]idxSegment- Индекс сегмента полигональной сетки.

◆ FitSurfaceToSegment() [2/2]

virtual void MbMeshProcessor::FitSurfaceToSegment ( size_t  idxSegment,
MbeSpaceType  surfaceType 
)
pure virtual

Вписать поверхность заданного типа.

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

Аргументы
[in]idxSegment- Индекс сегмента полигональной сетки.
[in]surfaceType- Тип вписываемой поверхности.

◆ GetSegmentSurface()

virtual const MbSurface* MbMeshProcessor::GetSegmentSurface ( size_t  idxSegment) const
pure virtual

Получить поверхность для сегмента.

Получить поверхность, вписанную в сегмент. Чтобы поверхность была определена предварительно должны быть вызваны методы SegmentMesh или FitSurfaceToSegment. Распознанная поверхность с помощью метода GetSegmentSurface.

Аргументы
[in]idxSegment- Индекс сегмента полигональной сетки.
Возвращает
Возвращает указатель на поверхность для сегмента, если поверхность определена, иначе - NULL.

◆ ResetSegmentation()

virtual void MbMeshProcessor::ResetSegmentation ( )
pure virtual

Очистить сегментацию полигональной сетки.

Очистить сегментацию полигональной сетки, хранящуюся внутри MbMeshProcessor.

◆ FindShortestVertexPath()

virtual bool MbMeshProcessor::FindShortestVertexPath ( uint  v1,
uint  v2,
std::vector< uint > &  path 
)
pure virtual

Найти ближайший путь между двумя вершинами коллекции.

Найти ближайший путь, проходящий по вершинам и ребрам коллекции, соединяющий две заданные вершины.

Аргументы
[in]v1- Индекс первой вершины.
[in]v2- Индекс второй вершины.
[out]path- Путь из первой вершины во вторую. Массив содержит последовательные индексы всех вершин пути.
Возвращает
Возвращает код результата операции.

◆ ConvertMeshToShell()

MbResultType ConvertMeshToShell ( MbMesh mesh,
MbFaceShell *&  shell,
const MbMeshProcessorValues params = MbMeshProcessorValues() 
)

Создать оболочку по полигональной сетке c автоматическим распознаванием поверхностей.

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

Аргументы
[in]mesh- Входная сетка.
[out]shell- Указатель на созданную оболочку.
[in]params- Параметры построения оболочки тела.
Возвращает
Возвращает код результата операции.

◆ ConvertCollectionToShell()

MbResultType ConvertCollectionToShell ( MbCollection collection,
MbFaceShell *&  shell,
const MbMeshProcessorValues params = MbMeshProcessorValues() 
)

Создать оболочку по коллекции, содержащей полигональную сетку c автоматическим распознаванием поверхностей.

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

Аргументы
[in]collection- Коллекция, содержащая входную сетку.
[out]shell- Указатель на созданную оболочку.
[in]params- Параметры построения оболочки тела.
Возвращает
Возвращает код результата операции.

◆ CalculateWire()

void CalculateWire ( const MbPlaneItem obj,
const MbPlacement3D plane,
double  sag,
MbMesh mesh 
)

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

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

Аргументы
[in]obj- Двумерный объект (если NULL, то объект не создаётся).
[in]plane- Локальная система координат.
[in]sag- Максимальное отклонение полигонального объекта от оригинала по прогибу.
[out]mesh- Полигональный объект.

◆ CreateIcosahedron()

MbResultType CreateIcosahedron ( const MbPlacement3D place,
double  radius,
const MbFormNote fn,
MbMesh *&  result 
)

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

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

Аргументы
[in]place- Местная система координат.
[in]radius- Радиус описанной сферы.
[in]fn- Способ построения полигонального объекта.
[out]result- Результат построения.
Возвращает
Возвращает код результата операции.

◆ CreateSpherePolyhedron()

MbResultType CreateSpherePolyhedron ( const MbPlacement3D place,
double  radius,
double &  epsilon,
MbMesh *&  result 
)

Построить полигональную сферу.

Построить аппроксимацию сферы выпуклым многогранником.

Аргументы
[in]place- Местная система координат.
[in]radius- Радиус сферы.
[in]epsilon- Параметр аппроксимации сферы.
[out]result- Результат построения.
Возвращает
Возвращает код результата операции.

◆ CreateConvexPolyhedron() [1/2]

MbResultType CreateConvexPolyhedron ( const SArray< MbFloatPoint3D > &  points,
MbMesh *&  result 
)

Вычислить выпуклую оболочку для множества точек.

Вычислить сетку, представляющую выпуклой оболочку для множества точек.

Возвращает
Возвращает код результата операции.

◆ CreateConvexPolyhedron() [2/2]

MbResultType CreateConvexPolyhedron ( const MbMesh mesh,
double  offset,
MbMesh *&  result 
)

Построить выпуклую оболочку для триангуляционной сетки.

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

Аргументы
[in]mesh- Исходная триангуляционная сетка.
[in]offset- Отступ по нормали для результирующей сетки.
[out]resMesh- Результирующая выпуклая триангуляционная сетка.
Возвращает
Возвращает код результата операции.

◆ AreIntersectConvexPolyhedrons()

bool AreIntersectConvexPolyhedrons ( const MbMesh mesh1,
const MbMesh mesh2 
)

Определить, пересекаются ли данные выпуклые сетки.

Определить, пересекаются ли данные выпуклые оболочки, заданные триангуляционными сетками. Пересечение определяется по алгоритму Гильберта-Джонсона-Керти (Gilbert-Johnson-Keerthi). Заданные сетки равноправны, их последовательность в алгоритме не важна. Сложность алгоритма линейная, зависит от количества вершин сеток.

Аргументы
[in]mesh1- Первая выпуклая триангуляционная сетка.
[in]mesh2- Вторая выпуклая триангуляционная сетка.
Возвращает
true - Выпуклые триангуляционные сетки пересекаются. false - Выпуклые триангуляционные сетки не пересекаются.

◆ MeshCutting()

MbResultType MeshCutting ( MbMesh mesh,
MbeCopyMode  sameShell,
const MbPlacement3D place,
int  part,
const MbSNameMaker names,
bool  closed,
MbMesh *&  result 
)

Отрезать часть полигонального объекта плоскостью.

Отрезать часть полигонального объекта плоскостью XY локальной системы координат.
part = 1 - оставляем часть объекта, расположенную сверху плоскости XY локальной системы координат,
part = -1 - оставляем часть объекта, расположенную снизу плоскости XY локальной системы координат.

Аргументы
[in]solid- Исходный полигональный объект.
[in]sameShell- Режим копирования исходного объекта.
[in]surface- Секущая плоскость.
[in]part- Направление отсечения.
[in]names- Именователь.
[in]closed- Флаг режима отсечения: true - сечем как тело, false - сечем как оболочку.
[out]result- Построенный полигональный объект.
Возвращает
Возвращает код результата операции.

◆ CalculateBallPivotingGrid()

MbResultType CalculateBallPivotingGrid ( const MbCollection collection,
double  radius,
double  radiusMin,
double  angle,
MbMesh *&  result 
)

Построить триангуляцию по облаку точек на основе алгоритма поворотного шара.

Аргументы
[in]collection- Коллекция трехмерных элементов.
[in]radius- Радиус поворотного шара, если radius==0 будет предпринята попытка его автоопределения.
[in]radiusMin- Радиус кластеризации ( в % от радиуса поворотного шара ).
[in]angle- Максимальный угол между двумя соседними элементами сетки.
[out]result- Построенный полигональный объект.
Возвращает
Возвращает код результата операции.

◆ CalculateHideMesh()

void CalculateHideMesh ( const MbSurface surf,
const MbVector3D eyeDir,
double  sag,
MbMesh *&  mesh,
VERSION  version = Math::DefaultMathVersion() 
)

Рассчитать сетку.

Рассчитать сетку массива кривых очерка поверхности.

◆ TriangulateRegion()

void TriangulateRegion ( const MbRegion region,
double  sag,
MbPlanarGrid grid 
)

Трингуляция двумерного региона

Трингуляция двумерного региона. Регион region должен быть корректным (на некорректном работает неправильно)