C3D Toolkit  Kernel - 105122, Vision - 0.181114.105122

Множество граней или оболочка. Подробнее...

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

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

 MbFaceShell ()
 Конструктор без параметров.
 
template<class Faces >
 MbFaceShell (const Faces &initFaces)
 Конструктор по набору граней.
 
 MbFaceShell (const MbFace &face)
 Конструктор по грани.
 
 MbFaceShell (const MbFaceShell &init)
 Конструктор по граням другой оболочки.
 
virtual ~MbFaceShell ()
 Деструктор.
 
virtual MbeTopologyType IsA () const
 Функции оболочки.
 
MbFaceShellCopy (MbeCopyMode sameShell, MbShellHistory *history=NULL)
 Создать копию. Подробнее...
 
MbFaceShellDuplicate (MbRegDuplicate *iReg=NULL) const
 Создать копию. Подробнее...
 
bool IsClosed () const
 Замкнутая ли оболочка?
 
void SetClosed (bool c)
 Установить (не)замкнутость оболочки.
 
size_t GetFacesCount () const
 Выдать количество граней.
 
ptrdiff_t GetFacesMaxIndex () const
 Выдать максимальный индекс грани.
 
void AddFace (const MbFace &)
 Добавить грань в оболочку.
 
void AddFaces (const RPArray< MbFace > &, bool isSilentAdd)
 Добавить грани в оболочку.
 
void InsertFace (size_t index, const MbFace &)
 Вставить грань перед гранью с заданным индексом.
 
void ChangeFace (size_t index, const MbFace &)
 Заменить грань с заданным индексом.
 
void DeleteFace (size_t index)
 Удалить грань с заданным индексом.
 
void DeleteFace (const MbFace *)
 Удалить грань.
 
MbFaceDetachFace (size_t index)
 Отсоединить грань от оболочки с заданным индексом.
 
void DetachFace (const MbFace *)
 Отсоединить грань.
 
void DeleteFaces ()
 Удалить все грани оболочки.
 
void DetachFaces ()
 Отсоединить все грани оболочки.
 
void ExchangeFaces (size_t i1, size_t i2)
 Поменять местами грани оболочки.
 
void MakeRight (bool setBounds=false)
 Установить правильную (текущую) информацию в ребрах о соединяемых ими гранях и параметры поверхностей по данным циклов граней (setBounds = true).
 
bool IsRight () const
 Верно ли установлены указатели в ребрах на соединяемые ими грани.
 
void SetNullToFace (const MbFace *delFace)
 Обнулить указатели в ребрах на отсутствующую в оболочке грань.
 
void Transform (const MbMatrix3D &matr, MbRegTransform *iReg=NULL)
 Преобразовать согласно матрице. Подробнее...
 
void Move (const MbVector3D &to, MbRegTransform *iReg=NULL)
 Сдвинуть вдоль вектора. Подробнее...
 
void Rotate (const MbAxis3D &axis, double angle, MbRegTransform *iReg=NULL)
 Повернуть вокруг оси. Подробнее...
 
double DistanceToPoint (const MbCartPoint3D &to) const
 Рассчитать расстояние до точки.
 
void Reverse ()
 Вывернуть оболочку наизнанку - переориентация всего набора граней.
 
bool IsSame (const MbFaceShell &faces, double accuracy) const
 Являются ли объекты равными.
 
void SetLabelThrough (MbeLabelState, void *=NULL) const
 Установить метки всем объектам, имеющим таковые.
 
void RemovePrivateLabelThrough (void *) const
 Удалить частные метки всем объектам, имеющим таковые.
 
void SetOwnChangedThrough (MbeChangedType n)
 Установить флаги изменённости объектов.
 
void ResetFlags (void *=NULL)
 Установить флаги в начальное состояние.
 
bool UnionWith (MbFaceShell &faces, c3d::FacesSet *sharedSet=NULL)
 Забрать в оболочку множество граней из оболочки faces.
 
size_t SetVerticesLabel (MbeLabelState, void *=NULL) const
 Установить заданную метку всем вершинам оболочки.
 
size_t SetEdgesLabel (MbeLabelState, void *=NULL) const
 Установить заданную метку всем рёбрам оболочки.
 
void SetFacesLabel (MbeLabelState, void *=NULL) const
 Установить заданную метку всем граням оболочки.
 
void GetVertices (RPArray< MbVertex > &) const
 Выдать множество вершин оболочки.
 
void GetEdges (RPArray< MbCurveEdge > &) const
 Выдать множество ребер оболочки.
 
template<class Faces >
void GetFaces (Faces &faces) const
 Выдать множество граней оболочки.
 
template<class Faces >
void GetFacesSet (Faces &faces) const
 Выдать множество граней оболочки.
 
void GetItems (RPArray< MbVertex > &vertices, RPArray< MbCurveEdge > &edges) const
 Выдать множество вершин и множество ребер оболочки.
 
void GetItems (RPArray< MbTopologyItem > &list) const
 Выдать множество вершин, множество ребер и множество граней оболочки.
 
MbVertexGetVertex (size_t index) const
 Выдать вершину по индексу.
 
MbCurveEdgeGetEdge (size_t index) const
 Выдать ребро по индексу.
 
MbFaceGetFace (size_t index) const
 Выдать грань по индексу.
 
MbFace_GetFace (size_t index) const
 Выдать грань по индексу без проверки корректности индекса.
 
const MbSurfaceGetSurface (size_t index) const
 Выдать поверхность грани по индексу.
 
size_t GetVertexIndex (const MbVertex &vertex) const
 Выдать индекс вершины.
 
size_t GetEdgeIndex (const MbCurveEdge &edge) const
 Выдать индекс ребра.
 
size_t GetFaceIndex (const MbFace &face) const
 Выдать индекс грани.
 
size_t Find (const MbFace *face) const
 Найти индекс грани в оболочке.
 
size_t GetShellCount () const
 Определить количество связных поверхностей, описываемых оболочкой.
 
bool DistanceToBound (const MbCartPoint3D &pnt, double accuracy, MbPntLoc &finFaceData, MbeItemLocation &rShell) const
 Определить расстояния от точки до оболочки. Подробнее...
 
bool PointClassification (const MbCartPoint3D &pnt, double accuracy, MbCartPoint3D &shellPoint, MbVector3D &shellNormal, MbeItemLocation &rShell) const
 Определить положение точки относительно оболочки. Подробнее...
 
bool PointClassification (const MbCartPoint3D &pnt, double accuracy, MbCartPoint3D &shellPoint, MbVector3D &shellNormal, MbPntLoc &rShell) const
 Определить положение точки относительно оболочки. Подробнее...
 
void PointOn (size_t n, double &u, double &v, MbCartPoint3D &p) const
 Вычислить точку оболочки. Подробнее...
 
void Normal (size_t n, double &u, double &v, MbVector3D &p) const
 Вычислить нормаль оболочки. Подробнее...
 
void NearPointProjection (const MbCartPoint3D &p, SArray< size_t > &nums, SArray< MbCartPoint > &uv) const
 Найти все проекции точки на оболочку. Подробнее...
 
bool NearPointProjection (const MbCartPoint3D &p, size_t &faceIndex, double &u, double &v) const
 Найти ближайшую проекцию точки на оболочку. Подробнее...
 
void DirectPointProjection (const MbCartPoint3D &p, const MbVector3D &vect, SArray< size_t > &nums, SArray< MbCartPoint > &uv) const
 Найти все проекции точки на оболочку вдоль вектора в любом из двух направлений. Подробнее...
 
bool NearDirectPointProjection (const MbCartPoint3D &p, size_t &faceIndex, const MbVector3D &vect, double &u, double &v, bool onlyPositiveDirection=false) const
 Найти ближайшую проекцию точки на оболочку в направлении вектора. Подробнее...
 
bool DirectPointProjection (const MbCartPoint3D &p, const MbVector3D &vect) const
 Существует ли проекция в направлении вектора? Подробнее...
 
void CurveIntersection (const MbCurve3D &curve, SArray< size_t > &nn, SArray< MbCartPoint > &uv, SArray< double > &tt) const
 Пересечение оболочки и кривой.
 
void AddYourGabaritTo (MbCube &cube) const
 Добавить свой габарит в габаритный куб.
 
void CalculateGabarit (MbCube &cube) const
 Рассчитать габарит оболочки.
 
void CalculateLocalGabarit (const MbMatrix3D &matrToLocal, MbCube &cube) const
 Рассчитать габарит в локальной системы координат, заданной матрицей matrToLocal преобразования в неё
 
void CalculateLocalGabarit (const MbPlacement3D &localPlace, MbCube &cube) const
 Рассчитать габарит в локальной системы координат localPlace.
 
void CalculateMesh (const MbStepData &stepData, const MbFormNote &note, MbMesh &mesh) const
 Построить полигональную копию оболочки. Подробнее...
 
void GetProperties (MbProperties &)
 Выдать свойства объекта.
 
void SetProperties (const MbProperties &)
 Установить свойства объекта.
 
void SetMainName (SimpleName mainName, bool addOldMainName)
 Установить главное имя и вставить старое в индекс копирования.
 
void MakeNewNames (SimpleName mainName, SimpleName modifier)
 Установить главное имя и модифицировать имена граней, рёбер и вершин для оболочки-копии для предотвращения совпадения имен нескольких копий.
 
void MakeNewNames (const MbSNameMaker &, SimpleName modifier)
 Установить главное имя и модифицировать имена граней для оболочки-копии для предотвращения совпадения имен нескольких копий.
 
void SetShellNames (const MbSNameMaker &names)
 Проименовать грани, рёбра и вершины оболочки.
 
void SetNamesCopyIndex (SimpleName index)
 Заменить в имени метку копирования на index.
 
void SetShellNames (const MbFaceShell *s)
 Проименовать грани оболочки именами оболочки s.
 
void ClearShellNames ()
 Очистить все имена в оболочке.
 
void ClearEdgesNames (bool clearVerticesNames=true)
 Очистить имена ребер в оболочке.
 
MbResultType CheckTopology (MbCheckTopologyParams &checkParams)
 Проверка оболочки: вершин (удаление совпадающих и лишних), ребер (со слиянием). Подробнее...
 
void CheckClosed (bool checkChangedOnly=false)
 Определение замкнутости оболочки с модификацией флага.
 
bool MakeBoundaryCurve ()
 Найти граничные рёбра и сделать граничными их кривые.
 
bool GetBoundaryEdges (RPArray< const MbCurveEdge > &) const
 Получить краевые ребра оболочки.
 
bool GetBoundaryEdges (c3d::ConstEdgesVector &) const
 Получить краевые ребра оболочки.
 
bool FindFacesIndexByEdges (const RPArray< MbCurveEdge > &init, SArray< MbEdgeFacesIndexes > &indexes) const
 Для множества ребер найти номера ребер и номера ее граней.
 
bool FindFacesIndexByEdges (const SArray< MbEdgeFunction > &init, RPArray< MbFunction > &functions, SArray< MbEdgeFacesIndexes > &indexes) const
 Для множества структур (ребер и функций изменения радиусов) найти номера ребер и номера ее граней.
 
bool FindEdgesByFacesIndex (const SArray< MbEdgeFacesIndexes > &indexes, RPArray< MbFunction > *functions, RPArray< MbCurveEdge > &initCurves, RPArray< MbFunction > &initFunctions) const
 Для множества номеров ребер и номеров ее граней найти ребра.
 
bool FindFacesIndexByEdge (const MbCurveEdge &edge, size_t &ind1, size_t &ind2) const
 Найти номера граней по ребру.
 
bool FindFacesIndexByFaces (const RPArray< MbFace > &init, SArray< size_t > &ind0) const
 Для множества граней найти множество их номеров.
 
bool FindIndexByFaces (const RPArray< MbFace > &init, SArray< MbItemIndex > &ind0) const
 Для множества граней найти множество их комбинированных номеров.
 
bool FindFacesByIndex (const SArray< MbItemIndex > &indexes, RPArray< const MbFace > &initFaces) const
 Найти множество граней по множеству комбинированных индексов.
 
bool FindIndexByVertices (const RPArray< MbVertex > &init, SArray< MbItemIndex > &indexes) const
 Для множества вершин найти множество их комбинированных номеров.
 
bool FindVerticesByIndex (const SArray< MbItemIndex > &indexes, RPArray< MbVertex > &init) const
 Найти множество вершин по множеству комбинированных индексов.
 
bool FindIndexByFace (const MbFace &face, MbItemIndex &ind) const
 Найти комбинированный индекс грани.
 
const MbFaceFindFaceByIndex (MbItemIndex &ind) const
 Найти грань по комбинированному индексу.
 
MbFaceFindFaceByIndex (MbItemIndex &ind)
 Найти грань по комбинированному индексу.
 
void FindEdgesForVertex (const MbVertex &vertex, RPArray< MbCurveEdge > &findEdges) const
 Найти множество ребер с общей заданной вершиной.
 
void FindFacesForVertex (const MbVertex &vertex, RPArray< MbFace > &findFaces) const
 Найти множество граней с общей заданной вершиной.
 
bool FindEdgeNumbers (const MbCurveEdge &edge, size_t &faceN, size_t &loopN, size_t &edgeN) const
 Для ребра edge найти индекс грани, индекс цикла и индекс ребра в этом цикле.
 
const MbVertexFindVertexByName (const MbName &) const
 Найти вершину по имени.
 
const MbCurveEdgeFindEdgeByName (const MbName &) const
 Найти ребро по имени.
 
const MbFaceFindFaceByName (const MbName &) const
 Найти грань по имени.
 
MbVertexFindVertexByName (const MbName &)
 Найти вершину по имени.
 
MbCurveEdgeFindEdgeByName (const MbName &)
 Найти ребро по имени.
 
MbFaceFindFaceByName (const MbName &)
 Найти грань по имени.
 
bool MergeSimilarFaces ()
 Объединить подобные грани.
 
bool IsTemporal () const
 Создан ли временный объект сопровождения?
 
void RemoveTemporal () const
 Удалить временный объект сопровождения.
 
bool CreateTemporal (bool keepExisting) const
 Создать новый временный объект сопровождения.
 
bool UpdateTemporal (bool changedOnly=false) const
 Обновить временный объект сопровождения грани. changedOnly = true использовать только при не измененной оболочке (после резки ребер), не обновляется дерево габаритов.
 
bool IsTemporal (size_t k) const
 Создан ли временный объект сопровождения грани?
 
bool CreateTemporal (size_t k, bool keepExisting) const
 Получить временный объект сопровождения грани.
 
void RemoveParentNamesAttributes ()
 Удалить атрибуты типа имя с родительскими именами.
 
- Открытые члены унаследованные от MbTopItem
virtual MbeRefType RefType () const
 Регистрационный тип (для копирования, дублирования).
 
void PrepareWrite ()
 Подготовить объект к записи.
 
bool IsAVertex () const
 Это вершина?
 
bool IsAWireEdge () const
 Это ребро каркаса?
 
bool IsAnEdge () const
 Это ребро?
 
bool IsAFace () const
 Это грань?
 
bool IsAShell () const
 Это оболочка?
 
- Открытые члены унаследованные от MbRefItem
 MbRefItem ()
 Конструктор без параметров.
 
refcount_t GetUseCount () const
 Выдать количество ссылок (выдать количество владельцев объекта).
 
refcount_t AddRef () const
 Увеличить количество ссылок на единицу.
 
refcount_t DecRef () const
 Уменьшить количество ссылок на единицу.
 
refcount_t Release () const
 Уменьшить количество ссылок на единицу и, если количество ссылок стало равным нулю, удалить себя.
 
- Открытые члены унаследованные от TapeBase
 TapeBase (RegistrableRec regs=noRegistrable)
 Конструктор.
 
 TapeBase (const TapeBase &other)
 Конструктор копирования
 
virtual ~TapeBase ()
 Деструктор.
 
RegistrableRec GetRegistrable () const
 Является ли потоковый класс регистрируемым.
 
void SetRegistrable (RegistrableRec regs=registrable) const
 Установить состояние регистрации потокового класса.
 
virtual ClassDescriptor GetClassDescriptor (const VersionContainer &) const =0
 Получить дескриптор класса
 
virtual const char * GetPureName (const VersionContainer &) const
 Получить имя класса.
 
virtual bool IsFamilyRegistrable () const
 Принадлежит ли объект к регистрируемому семейству.
 

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

RPArray< MbFacefaceSet
 Множество граней.
 
bool closed
 Признак замкнутости указывает на отсутствие края.
 

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

- Защищенные члены унаследованные от MbTopItem
 MbTopItem ()
 Конструктор.
 

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

Множество граней или оболочка.

Оболочка представляет собой составную поверхность, образованную конечным множеством граней MbFace, стыкующихся друг с другом по рёбрам MbCurveEdge.
В общем случае оболочка может быть многосвязной, то есть описывать несколько не связанных между собой поверхностей.
Оболочка называется замкнутой, если она не имеет края, в противном случае оболочка называется незамкнутой.
Замкнутость оболочки указывает на возможность использования множества её внутренних точек в операциях над телами MbSolid. Формально множество граней не ограничено никакими условиями, но реально грани множества удовлетворяют некоторым условиям. Чтобы подчеркнуть эту особенность оболочки, вводится понятие "Однородная оболочка". Оболочки, удовлетворяющие нижеперечисленным требованиям, называются однородными.

  1. Оболочки являются конечными.
  2. Оболочки не пересекают сами себя.
  3. Оболочки являются двусторонними (ориентируемыми).
  4. В каждом ребре оболочки стыкуются не более двух граней. Две грани оболочки стыкуются так, что внешняя сторона одной грани переходит во внешнюю сторону другой грани.
  5. При любом обходе любой вершины замкнутой оболочки по её поверхности, мы обязательно посетим все примыкающие к данной вершине грани и пересечём все выходящие из неё рёбра.
    Так как внешняя сторона грани переходит во внешнюю сторону соседней грани, то однородная оболочка также имеет внешнюю и внутреннюю стороны. Замкнутая однородная оболочка делит трёхмерное пространство на две части, одна из которых находится внутри оболочки. Назовем замкнутую однородную оболочку внешней, если её внешняя сторона направлена вне ограничиваемой оболочкой части пространства.
    Назовем замкнутую однородную оболочку внутренней, если её внешняя сторона направлена внутрь ограничиваемой оболочкой части пространства.

Методы

◆ Copy()

MbFaceShell* MbFaceShell::Copy ( MbeCopyMode  sameShell,
MbShellHistory history = NULL 
)

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

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

Аргументы
[in]sameShell- Способ передачи данных при копировании оболочки MbeCopyMode:
sameShell == cm_Same - в качестве копии возвращяетчя исходная оболока (оболочка не копируется, но выставляются правильно указатели в рёбрах на грани справа и грани слева);
sameShell == cm_KeepHistory - копируется часть данных (исходная оболочка и её копия имеют общие базовые поверхности и вершины) и заполняются множества граней объекта history;
sameShell == cm_KeepSurface - копируется часть данных (исходная оболочка и её копия имеют общие базовые поверхности);
sameShell == cm_Copy - обычное копирование (исходная оболочка и её копия не имеет общих данных).
[in]history- История копий граней используется после операции для замены неизменённых копий граней их оригиналами.
Возвращает
Копия объекта или оригинал(в случае режима копирования cm_Same).

◆ Duplicate()

MbFaceShell* MbFaceShell::Duplicate ( MbRegDuplicate iReg = NULL) const

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

Создать копию оболочки с регистратором.

Возвращает
Копия объекта.

◆ Transform()

void MbFaceShell::Transform ( const MbMatrix3D matr,
MbRegTransform iReg = NULL 
)

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

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

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

◆ Move()

void MbFaceShell::Move ( const MbVector3D to,
MbRegTransform iReg = NULL 
)

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

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

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

◆ Rotate()

void MbFaceShell::Rotate ( const MbAxis3D axis,
double  angle,
MbRegTransform iReg = NULL 
)

Повернуть вокруг оси.

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

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

◆ DistanceToBound()

bool MbFaceShell::DistanceToBound ( const MbCartPoint3D pnt,
double  accuracy,
MbPntLoc finFaceData,
MbeItemLocation rShell 
) const

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

Определить расстояния от точки до оболочки и положение точки: снаружи оболочки, на оболочке, внутри оболочки.

Аргументы
[in]pnt- Точка.
[in]accuracy- Заданная точность определения положения.
[out]finFaceData- Информация об окружении проекции точки pnt на ближайшую грань оболочки.
[out]rShell- Результат определения: снаружи оболочки (-1), на оболочке (0), внутри оболочки (+1).
Возвращает
Удалось ли определить расстояния от точки до оболочки.

◆ PointClassification() [1/2]

bool MbFaceShell::PointClassification ( const MbCartPoint3D pnt,
double  accuracy,
MbCartPoint3D shellPoint,
MbVector3D shellNormal,
MbeItemLocation rShell 
) const

Определить положение точки относительно оболочки.

Определить положение точки относительно оболочки: снаружи оболочки, на оболочке, внутри оболочки.

Аргументы
[in]pnt- Точка.
[in]accuracy- Заданная точность определения положения.
[out]shellPoint- Ближайшая к точке pnt точка оболочки.
[out]shellNormal- Нормаль в ближайшей к точке pnt точке оболочки.
[out]rShell- Результат определения: снаружи оболочки (-1), на оболочке (0), внутри оболочки (+1).
Возвращает
Удалось ли определить положение точки относительно оболочки.

◆ PointClassification() [2/2]

bool MbFaceShell::PointClassification ( const MbCartPoint3D pnt,
double  accuracy,
MbCartPoint3D shellPoint,
MbVector3D shellNormal,
MbPntLoc rShell 
) const

Определить положение точки относительно оболочки.

Определить положение точки относительно оболочки: снаружи оболочки, на оболочке, внутри оболочки.

Аргументы
[in]pnt- Точка.
[in]accuracy- Заданная точность определения положения.
[out]shellPoint- Ближайшая к точке pnt точка оболочки.
[out]shellNormal- Нормаль в ближайшей к точке pnt точке оболочки.
[out]rShell- Положение точки относительно оболочки.
Возвращает
Удалось ли определить положение точки относительно оболочки.

◆ PointOn()

void MbFaceShell::PointOn ( size_t  n,
double &  u,
double &  v,
MbCartPoint3D p 
) const

Вычислить точку оболочки.

Вычислить точку оболочки для заданной грани по заданным параметрам её поверхности.

Аргументы
[in]n- Индекс грани оболочки.
[in]u- Первый параметр поверхности грани.
[in]v- Второй параметр поверхности грани.
[out]p- Вычисленная точка оболочки.

◆ Normal()

void MbFaceShell::Normal ( size_t  n,
double &  u,
double &  v,
MbVector3D p 
) const

Вычислить нормаль оболочки.

Вычислить нормаль оболочки для заданной грани по заданным параметрам её поверхности.

Аргументы
[in]n- Индекс грани оболочки.
[in]u- Первый параметр поверхности грани.
[in]v- Второй параметр поверхности грани.
[out]p- Вычисленная нормаль оболочки.

◆ NearPointProjection() [1/2]

void MbFaceShell::NearPointProjection ( const MbCartPoint3D p,
SArray< size_t > &  nums,
SArray< MbCartPoint > &  uv 
) const

Найти все проекции точки на оболочку.

Найти все проекции точки на все грани оболочки.

Аргументы
[in]p- Проецируемая точка.
[out]nums- Массив номера граней в оболочки, синхронный с массивом параметров проекций.
[out]uv- Массив параметров проекций.

◆ NearPointProjection() [2/2]

bool MbFaceShell::NearPointProjection ( const MbCartPoint3D p,
size_t &  faceIndex,
double &  u,
double &  v 
) const

Найти ближайшую проекцию точки на оболочку.

Найти номер грани и параметры её поверхности для ближайшей проекции точки на оболочку.

Аргументы
[in]p- Проецируемая точка.
[out]faceIndex- Номер грани в оболочке для ближайшей проекции.
[out]u- Первый параметр поверхности грани проекций для ближайшей проекции точки на оболочку.
[out]v- Второй параметр поверхности грани проекций для ближайшей проекции точки на оболочку.
Возвращает
Удалось ли определить положение точки.

◆ DirectPointProjection() [1/2]

void MbFaceShell::DirectPointProjection ( const MbCartPoint3D p,
const MbVector3D vect,
SArray< size_t > &  nums,
SArray< MbCartPoint > &  uv 
) const

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

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

Аргументы
[in]p- Проецируемая точка.
[in]vect- Вектор направления проецирования.
[out]nums- Массив номера граней в оболочки, синхронный с массивом параметров проекций.
[out]uv- Массив параметров проекций.

◆ NearDirectPointProjection()

bool MbFaceShell::NearDirectPointProjection ( const MbCartPoint3D p,
size_t &  faceIndex,
const MbVector3D vect,
double &  u,
double &  v,
bool  onlyPositiveDirection = false 
) const

Найти ближайшую проекцию точки на оболочку в направлении вектора.

Найти номер грани и параметры её поверхности для ближайшей проекции точки на оболочку в направлении вектора.

Аргументы
[in]p- Проецируемая точка.
[out]faceIndex- Номер грани в оболочке для ближайшей проекции.
[in]vect- Вектор направления проецирования.
[out]u- Первый параметр поверхности грани проекций для ближайшей проекции точки на оболочку в направлении вектора.
[out]v- Второй параметр поверхности грани проекций для ближайшей проекции точки на оболочку в направлении вектора.
[in]onlyPositiveDirection- Искать только в положительном направлении вектора vect от точки p.
Возвращает
Удалось ли определить положение точки.

◆ DirectPointProjection() [2/2]

bool MbFaceShell::DirectPointProjection ( const MbCartPoint3D p,
const MbVector3D vect 
) const

Существует ли проекция в направлении вектора?

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

Аргументы
[in]p- Проецируемая точка.
[in]vect- Вектор, задающий направление проецирования.
Возвращает
true, если нашлась хотя бы одна проекция.

◆ CalculateMesh()

void MbFaceShell::CalculateMesh ( const MbStepData stepData,
const MbFormNote note,
MbMesh mesh 
) const

Построить полигональную копию оболочки.

Построить полигональную копию оболочки заполнить ею полигональный объект (сетку) mesh.

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

◆ CheckTopology()

MbResultType MbFaceShell::CheckTopology ( MbCheckTopologyParams checkParams)

Проверка оболочки: вершин (удаление совпадающих и лишних), ребер (со слиянием).

Проверка оболочки: вершин (удаление совпадающих и лишних), ребер (со слиянием).

Аргументы
[in]checkParams- Параметры функции.

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