C3D Kernel  102057
Классы | Перечисления | Функции
Полигональные объекты
Методы геометрических вычислений
Граф связей класса Полигональные объекты:

Классы

class  MbFloatPoint
 Двумерная точка. Подробнее...
class  MbFloatPoint3D
 Трехмерная точка. Подробнее...
class  MbFloatVector3D
 Трехмерный вектор. Подробнее...
class  MbFloatAxis3D
 Ось. Подробнее...
class  MbGrid
 Триангуляция. Подробнее...
class  MbPolygon
 Двумерный полигон. Подробнее...
class  MbPrimitive
 Примитив. Подробнее...
class  MbApex3D
 Апекс (точка). Подробнее...
class  MbPolygon3D
 Полигон. Подробнее...
class  MbTriangle
 Tреугольник. Подробнее...
class  MbQuadrangle
 Четырёхугольник. Подробнее...
class  MbElement
 Объемный элемент. Подробнее...
class  MbGridPolygon
 Граница триангуляции. Подробнее...
class  MbFaceAndGrid
 Математическая грань и ее рассчитанная решетка. Подробнее...
struct  MbLumpAndFaces
 Тело с массивом граней и триангуляционных решеток. Подробнее...

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

enum  MbePrimitiveType { pt_Apex3D, pt_Polygon3D, pt_Grid }
 Типы примитивов. Подробнее...
enum  MbeMoveType { mt_Forward = 0, mt_Backward = 1 }
 Направление движения Подробнее...

Функции

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)
 Рассчитать сетку.
void TriangulateRegion (const MbRegion &region, double sag, MbPlanarGrid &grid)
 Трингуляция двумерного региона

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

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

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

Апекс.

pt_Polygon3D 

Полигон.

pt_Grid 

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

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

Вперед.

mt_Backward 

Назад.


Функции

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

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

Аргументы:
[in]obj- Двумерный объект (если NULL, то объект не создаётся).
[in]plane- Локальная система координат.
[in]sag- Максимальное отклонение полигонального объекта от оригинала по прогибу.
[out]mesh- Полигональный объект.
MbResultType CreateIcosahedron ( const MbPlacement3D place,
double  radius,
const MbFormNote fn,
MbMesh *&  result 
)

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

Аргументы:
[in]place- Местная система координат.
[in]radius- Радиус описанной сферы.
[in]fn- Способ построения полигонального объекта.
[out]result- Результат построения.
Возвращает:
Возвращает код результата операции.
MbResultType CreateSpherePolyhedron ( const MbPlacement3D place,
double  radius,
double &  epsilon,
MbMesh *&  result 
)

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

Аргументы:
[in]place- Местная система координат.
[in]radius- Радиус сферы.
[in]epsilon- Параметр аппроксимации сферы.
[out]result- Результат построения.
Возвращает:
Возвращает код результата операции.
MbResultType CreateConvexPolyhedron ( const SArray< MbFloatPoint3D > &  points,
MbMesh *&  result 
)

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

Возвращает:
Возвращает код результата операции.
MbResultType CreateConvexPolyhedron ( const MbMesh mesh,
double  offset,
MbMesh *&  result 
)

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

Аргументы:
[in]mesh- Исходная триангуляционная сетка.
[in]offset- Отступ по нормали для результирующей сетки.
[out]resMesh- Результирующая выпуклая триангуляционная сетка.
Возвращает:
Возвращает код результата операции.
bool AreIntersectConvexPolyhedrons ( const MbMesh mesh1,
const MbMesh mesh2 
)

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

Аргументы:
[in]mesh1- Первая выпуклая триангуляционная сетка.
[in]mesh2- Вторая выпуклая триангуляционная сетка.
Возвращает:
true - Выпуклые триангуляционные сетки пересекаются. false - Выпуклые триангуляционные сетки не пересекаются.
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- Построенный полигональный объект.
Возвращает:
Возвращает код результата операции.
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- Построенный полигональный объект.
Возвращает:
Возвращает код результата операции.
void CalculateHideMesh ( const MbSurface surf,
const MbVector3D eyeDir,
double  sag,
MbMesh *&  mesh 
)

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

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

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

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