C3D Toolkit
Kernel - 112346, Vision - 2.6.2.8
|
Множество граней или оболочка. Подробнее...
#include <topology_faceset.h>
Открытые члены | |
MbFaceShell () | |
Конструктор без параметров. | |
template<class Faces > | |
MbFaceShell (const Faces &initFaces) | |
Конструктор по набору граней. | |
MbFaceShell (const MbFace &face) | |
Конструктор по грани. | |
MbFaceShell (const MbFaceShell &init) | |
Конструктор по граням другой оболочки. | |
virtual | ~MbFaceShell () |
Деструктор. | |
virtual MbeTopologyType | IsA () const |
Функции оболочки. | |
MbFaceShell * | Copy (MbeCopyMode sameShell, MbShellHistory *history=c3d_null, MbRegDuplicate *iReg=c3d_null) |
Создать копию. Подробнее... | |
MbFaceShell * | Duplicate (MbRegDuplicate *iReg=c3d_null) const |
Создать копию. Подробнее... | |
bool | IsClosed () const |
Замкнутая ли оболочка? | |
void | SetClosed (bool c) |
Установить (не)замкнутость оболочки. | |
size_t | GetFacesCount () const |
Выдать количество граней. | |
ptrdiff_t | GetFacesMaxIndex () const |
Выдать максимальный индекс грани. | |
void | AddFace (const MbFace &) |
Добавить грань в оболочку. | |
template<class FacesVector > | |
void | AddFaces (const FacesVector &newFaces, bool justAdd) |
Добавить грани в оболочку. | |
void | InsertFace (size_t index, const MbFace &) |
Вставить грань перед гранью с заданным индексом. | |
bool | ChangeFace (size_t index, const MbFace &) |
Заменить грань с заданным индексом. | |
bool | DeleteFace (size_t index) |
Удалить грань с заданным индексом. | |
bool | DeleteFace (const MbFace *) |
Удалить грань. | |
MbFace * | DetachFace (size_t index) |
Отсоединить грань от оболочки с заданным индексом. | |
void | DetachFace (const MbFace *) |
Отсоединить грань. | |
void | DeleteFaces () |
Удалить все грани оболочки. | |
void | DetachFaces () |
Отсоединить все грани оболочки. | |
template<class FacesVector > | |
void | DetachFaces (FacesVector &detachFaces) |
Отсоединить все грани оболочки. | |
bool | 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=c3d_null) |
Преобразовать согласно матрице. Подробнее... | |
void | Move (const MbVector3D &to, MbRegTransform *iReg=c3d_null) |
Сдвинуть вдоль вектора. Подробнее... | |
void | Rotate (const MbAxis3D &axis, double angle, MbRegTransform *iReg=c3d_null) |
Повернуть вокруг оси. Подробнее... | |
double | DistanceToPoint (const MbCartPoint3D &to) const |
Рассчитать расстояние до точки. | |
void | Reverse () |
Вывернуть оболочку наизнанку - переориентировать все грани. | |
bool | IsSame (const MbFaceShell &faces, double accuracy) const |
Являются ли объекты равными. | |
void | SetLabelThrough (MbeLabelState, void *=c3d_null) const |
Установить метки всем объектам, имеющим таковые. | |
void | SetLabelThrough (MbeLabelState, void *, bool) const |
Установить метки всем объектам, имеющим таковые. | |
void | RemovePrivateLabelThrough (void *) const |
Удалить частные метки всем объектам, имеющим таковые. | |
void | SetOwnChangedThrough (MbeChangedType n) |
Установить флаги изменённости объектов. | |
void | ResetFlags (void *=c3d_null) |
Установить флаги в начальное состояние. | |
bool | UnionWith (MbFaceShell &faces, c3d::FacesSet *sharedSet=c3d_null) |
Забрать в оболочку множество граней из оболочки faces. | |
size_t | SetVerticesLabel (MbeLabelState, void *=c3d_null) const |
Установить заданную метку всем вершинам оболочки. | |
size_t | SetEdgesLabel (MbeLabelState, void *=c3d_null) const |
Установить заданную метку всем рёбрам оболочки. | |
void | SetFacesLabel (MbeLabelState, void *=c3d_null) const |
Установить заданную метку всем граням оболочки. | |
template<class VerticesVector > | |
void | GetVertices (VerticesVector &) const |
Выдать множество вершин оболочки. | |
template<class EdgesVector > | |
void | GetEdges (EdgesVector &edges) const |
Выдать множество ребер оболочки. | |
template<class FacesVector > | |
void | GetFaces (FacesVector &faces) const |
Выдать множество граней оболочки. | |
template<class FacesSet > | |
void | GetFacesSet (FacesSet &faces) const |
Выдать множество граней оболочки. | |
template<class VerticesVector , class EdgesVector > | |
void | GetItems (VerticesVector &vertices, EdgesVector &edges) const |
Выдать множество вершин и множество ребер оболочки. | |
template<class TopologyItemsVector > | |
void | GetItems (TopologyItemsVector &) const |
Выдать множество вершин, множество ребер и множество граней оболочки. | |
MbVertex * | GetVertex (size_t index) const |
Выдать вершину по индексу. | |
MbCurveEdge * | GetEdge (size_t index) const |
Выдать ребро по индексу. | |
MbFace * | GetFace (size_t index) const |
Выдать грань по индексу. | |
MbFace * | _GetFace (size_t index) const |
Выдать грань по индексу без проверки корректности индекса. | |
const MbSurface * | GetSurface (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 | DistanceToShell (const MbFaceShell &shell, double lowerLimitDistance, bool tillFirstLowerLimit, double epsilon, std::vector< MbShellsDistanceData > &shellsDistanceData) 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 &gab, c3d::IndexCubeVector *extTolCubes=c3d_null) const |
Добавить свой габарит в габаритный куб. Подробнее... | |
void | CalculateGabarit (MbCube &) 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 ¬e, MbMesh &mesh) const |
Построить полигональную копию оболочки. Подробнее... | |
void | GetProperties (MbProperties &) |
Выдать свойства объекта. | |
void | SetProperties (const MbProperties &) |
Установить свойства объекта. | |
void | SetItemsMainName (const MbSNameMaker &newNameMaker, bool addOldMainName) |
Установить главное имя и вставить старое в индекс копирования. Подробнее... | |
void | SetNamesCopyIndex (SimpleName index) |
Вставить индекс копирования. Подробнее... | |
void | SetNamesCopyIndex (SimpleName index, const MbSNameMaker &newNameMaker) |
Заменить главное имя, вставить старое главное имя и индекс копирования в индексы копирования. Подробнее... | |
void | MakeItemsNewNames (const MbSNameMaker &, SimpleName modifier) |
Установить главное имя и модифицировать имена граней, рёбер и вершин для оболочки-копии для предотвращения совпадения имен нескольких копий. | |
void | MakeFacesNewNames (const MbSNameMaker &, SimpleName modifier) |
Установить главное имя и модифицировать имена граней для оболочки-копии для предотвращения совпадения имен нескольких копий. | |
void | SetShellNames (const MbSNameMaker &) |
Проименовать грани, рёбра и вершины оболочки. | |
void | SetShellNames (const MbFaceShell &) |
Проименовать элементы оболочки именами оболочки s. | |
void | ClearShellNames () |
Очистить все имена в оболочке. Подробнее... | |
void | ClearEdgesNames (bool clearVerticesNames=true) |
Очистить имена ребер в оболочке. Подробнее... | |
MbResultType | CheckTopology (MbCheckTopologyParams &checkParams) |
Проверка оболочки: вершин (удаление совпадающих и лишних), ребер (со слиянием). Подробнее... | |
void | CheckClosed (bool checkChangedOnly=false) |
Определение замкнутости оболочки с модификацией флага. | |
bool | MakeBoundaryCurve () |
Найти граничные рёбра и сделать граничными их кривые. | |
template<class ConstEdgesVector > | |
bool | GetBoundaryEdges (ConstEdgesVector &) const |
Получить краевые ребра оболочки. | |
bool | FindFacesIndexByEdges (const RPArray< MbCurveEdge > &init, SArray< MbEdgeFacesIndexes > &indexes, bool any=false) const |
Для множества ребер найти номера ребер и номера ее граней. | |
bool | FindFacesIndexByEdges (const SArray< MbEdgeFunction > &init, RPArray< MbFunction > &functions, RPArray< MbCurve3D > &slideways, SArray< MbEdgeFacesIndexes > &indexes) const |
Для множества структур (ребер и функций изменения радиусов) найти номера ребер и номера ее граней. | |
bool | FindEdgesByFacesIndex (const SArray< MbEdgeFacesIndexes > &indexes, RPArray< MbFunction > *functions, RPArray< MbCurve3D > *slideways, RPArray< MbCurveEdge > &initCurves, RPArray< MbFunction > &initFunctions, RPArray< MbCurve3D > &initSlideways) const |
Для множества номеров ребер и номеров ее граней найти ребра. | |
bool | FindFacesIndexByEdge (const MbCurveEdge &edge, size_t &ind1, size_t &ind2, bool any=false) const |
Найти номера граней по ребру. | |
bool | FindFacesIndexByFaces (const RPArray< MbFace > &init, SArray< size_t > &ind0) const |
Для множества граней найти множество их номеров. | |
template<class FacesPointersVector , class ItemIndices > | |
bool | FindIndexByFaces (const FacesPointersVector &, ItemIndices &, size_t mapThreshold=50) const |
Для множества граней найти множество их комбинированных номеров. | |
template<class ItemIndices , class ConstFacesPointersVector > | |
bool | FindConstFacesByIndex (const ItemIndices &, ConstFacesPointersVector &) 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 &, MbItemIndex &) const |
Найти комбинированный индекс грани. | |
const MbFace * | FindFaceByIndex (MbItemIndex &) const |
Найти грань по комбинированному индексу. | |
MbFace * | FindFaceByIndex (MbItemIndex &) |
Найти грань по комбинированному индексу. | |
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 MbVertex * | FindVertexByName (const MbName &) const |
Найти вершину по имени. | |
const MbCurveEdge * | FindEdgeByName (const MbName &) const |
Найти ребро по имени. | |
const MbFace * | FindFaceByName (const MbName &) const |
Найти грань по имени. | |
MbVertex * | FindVertexByName (const MbName &) |
Найти вершину по имени. | |
MbCurveEdge * | FindEdgeByName (const MbName &) |
Найти ребро по имени. | |
MbFace * | FindFaceByName (const MbName &) |
Найти грань по имени. | |
bool | MergeSimilarFaces (SimpleName simMainName=c3d::SIMPLENAME_MAX) |
Объединить подобные грани. Подробнее... | |
bool | IsTemporal () const |
Создан ли временный объект сопровождения? | |
void | RemoveTemporal (bool removeFacesTemporal=false) const |
Удалить временный объект сопровождения. | |
const MbFaceSetTemp * | 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 () |
Удалить атрибуты типа имя с родительскими именами. | |
![]() | |
virtual MbeRefType | RefType () const |
Регистрационный тип (для копирования, дублирования). | |
void | PrepareWrite () const |
Подготовить объект к записи. | |
bool | IsAVertex () const |
Это вершина? | |
bool | IsAWireEdge () const |
Это ребро каркаса? | |
bool | IsAnEdge () const |
Это ребро? | |
bool | IsAFace () const |
Это грань? | |
bool | IsAShell () const |
Это оболочка? | |
bool | IsAProxy () const |
Это заменитель? | |
![]() | |
MbRefItem () | |
Конструктор без параметров. | |
refcount_t | GetUseCount () const |
Выдать количество ссылок (выдать количество владельцев объекта). | |
refcount_t | AddRef () const |
Увеличить количество ссылок на единицу. | |
refcount_t | DecRef () const |
Уменьшить количество ссылок на единицу. | |
refcount_t | Release () const |
Уменьшить количество ссылок на единицу и, если количество ссылок стало равным нулю, удалить себя. | |
![]() | |
TapeBase (RegistrableRec regs=noRegistrable) | |
Конструктор. | |
TapeBase (const TapeBase &) | |
Конструктор копирования | |
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 |
Принадлежит ли объект к регистрируемому семейству. | |
![]() | |
void | Lock () const |
Включить блокировку (блокировка происходит только при наличии параллельности). | |
void | Unlock () const |
Снять блокировку, если она была установлена. | |
Защищенные данные | |
RPArray< MbFace > | faceSet |
Множество граней. | |
bool | closed |
Признак замкнутости указывает на отсутствие края. | |
Дополнительные унаследованные члены | |
![]() | |
MbTopItem () | |
Конструктор. | |
Множество граней или оболочка.
Оболочка представляет собой составную поверхность, образованную конечным множеством граней MbFace, стыкующихся друг с другом по рёбрам MbCurveEdge.
В общем случае оболочка может быть многосвязной, то есть описывать несколько не связанных между собой поверхностей.
Оболочка называется замкнутой, если она не имеет края, в противном случае оболочка называется незамкнутой.
Замкнутость оболочки указывает на возможность использования множества её внутренних точек в операциях над телами MbSolid. Формально множество граней не ограничено никакими условиями, но реально грани множества удовлетворяют некоторым условиям. Чтобы подчеркнуть эту особенность оболочки, вводится понятие "Однородная оболочка". Оболочки, удовлетворяющие нижеперечисленным требованиям, называются однородными.
MbFaceShell* MbFaceShell::Copy | ( | MbeCopyMode | sameShell, |
MbShellHistory * | history = c3d_null , |
||
MbRegDuplicate * | iReg = c3d_null |
||
) |
Создать копию.
Создать копию оболочки с копированием части данных и перекладыванием из оригинала в копию остальной части данных.
Параметр history используется, если режим копирования cm_KeepHistory.
[in] | sameShell | - Способ передачи данных при копировании оболочки MbeCopyMode: sameShell == cm_Same - в качестве копии возвращяетчя исходная оболока (оболочка не копируется, но выставляются правильно указатели в рёбрах на грани справа и грани слева); sameShell == cm_KeepHistory - копируется часть данных (исходная оболочка и её копия имеют общие базовые поверхности и вершины) и заполняются множества граней объекта history; sameShell == cm_KeepSurface - копируется часть данных (исходная оболочка и её копия имеют общие базовые поверхности); sameShell == cm_Copy - обычное копирование (исходная оболочка и её копия не имеет общих данных). |
[in] | history | - История копий граней используется после операции для замены неизменённых копий граней их оригиналами. |
[in] | iReg | - Регистратор копирования. |
MbFaceShell* MbFaceShell::Duplicate | ( | MbRegDuplicate * | iReg = c3d_null | ) | const |
Создать копию.
Создать копию оболочки с регистратором.
void MbFaceShell::Transform | ( | const MbMatrix3D & | matr, |
MbRegTransform * | iReg = c3d_null |
||
) |
Преобразовать согласно матрице.
Преобразование оболочки согласно матрице. В оболочке одни и те же геометрические объекты, например поверхности, используются как в гранях, так и в рёбрах. Для преобразования каждого геометрического объекта только один раз используется регистратор.
[in] | matr | - Матрица преобразования. |
[in] | iReg | - Регистратор объектов. |
void MbFaceShell::Move | ( | const MbVector3D & | to, |
MbRegTransform * | iReg = c3d_null |
||
) |
Сдвинуть вдоль вектора.
Сдвиг оболочки вдоль вектора. В оболочке одни и те же геометрические объекты, например поверхности, используются как в гранях, так и в рёбрах. Для преобразования каждого геометрического объекта только один раз используется регистратор.
[in] | to | - Вектор сдвига. |
[in] | iReg | - Регистратор. |
void MbFaceShell::Rotate | ( | const MbAxis3D & | axis, |
double | angle, | ||
MbRegTransform * | iReg = c3d_null |
||
) |
Повернуть вокруг оси.
Поворот оболочки вокруг оси. В оболочке одни и те же геометрические объекты, например поверхности, используются как в гранях, так и в рёбрах. Для преобразования каждого геометрического объекта только один раз используется регистратор.
[in] | axis | - Ось поворота. |
[in] | angle | - Угол поворота. |
[in] | iReg | - Регистратор. |
bool MbFaceShell::DistanceToShell | ( | const MbFaceShell & | shell, |
double | lowerLimitDistance, | ||
bool | tillFirstLowerLimit, | ||
double | epsilon, | ||
std::vector< MbShellsDistanceData > & | shellsDistanceData | ||
) | const |
Вычислить ближайшее расстояние до оболочки.
Вычислить ближайшее расстояние до оболочки с заданным допуском с той же системой координат. В случае пересечения или касания оболочек возвращается нулевая дистанция.
[in] | shell | - Оболочка. |
[in] | lowerLimitDistance | - Минимально допустимое расстояние. |
[in] | tillFirstLowerLimit | - Остановить поиск после первого найденного расстояния меньшего либо равного минимально допустимому. |
[in] | epsilon | - Погрешность вычисления расстояния между поверхностями граней оболочек. |
[out] | shellsDistanceData | - Данные ближайщего расстояния между оболочками. |
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). |
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). |
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 | - Положение точки относительно оболочки. |
void MbFaceShell::PointOn | ( | size_t | n, |
double & | u, | ||
double & | v, | ||
MbCartPoint3D & | p | ||
) | const |
Вычислить точку оболочки.
Вычислить точку оболочки для заданной грани по заданным параметрам её поверхности.
[in] | n | - Индекс грани оболочки. |
[in] | u | - Первый параметр поверхности грани. |
[in] | v | - Второй параметр поверхности грани. |
[out] | p | - Вычисленная точка оболочки. |
void MbFaceShell::Normal | ( | size_t | n, |
double & | u, | ||
double & | v, | ||
MbVector3D & | p | ||
) | const |
Вычислить нормаль оболочки.
Вычислить нормаль оболочки для заданной грани по заданным параметрам её поверхности.
[in] | n | - Индекс грани оболочки. |
[in] | u | - Первый параметр поверхности грани. |
[in] | v | - Второй параметр поверхности грани. |
[out] | p | - Вычисленная нормаль оболочки. |
void MbFaceShell::NearPointProjection | ( | const MbCartPoint3D & | p, |
SArray< size_t > & | nums, | ||
SArray< MbCartPoint > & | uv | ||
) | const |
Найти все проекции точки на оболочку.
Найти все проекции точки на все грани оболочки.
[in] | p | - Проецируемая точка. |
[out] | nums | - Массив номера граней в оболочки, синхронный с массивом параметров проекций. |
[out] | uv | - Массив параметров проекций. |
bool MbFaceShell::NearPointProjection | ( | const MbCartPoint3D & | p, |
size_t & | faceIndex, | ||
double & | u, | ||
double & | v | ||
) | const |
Найти ближайшую проекцию точки на оболочку.
Найти номер грани и параметры её поверхности для ближайшей проекции точки на оболочку.
[in] | p | - Проецируемая точка. |
[out] | faceIndex | - Номер грани в оболочке для ближайшей проекции. |
[out] | u | - Первый параметр поверхности грани проекций для ближайшей проекции точки на оболочку. |
[out] | v | - Второй параметр поверхности грани проекций для ближайшей проекции точки на оболочку. |
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 | - Массив параметров проекций. |
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. |
bool MbFaceShell::DirectPointProjection | ( | const MbCartPoint3D & | p, |
const MbVector3D & | vect | ||
) | const |
Существует ли проекция в направлении вектора?
Определить, существует ли хотя бы одна проекция точки на оболочку в направлении вектора.
[in] | p | - Проецируемая точка. |
[in] | vect | - Вектор, задающий направление проецирования. |
void MbFaceShell::CurveIntersection | ( | const MbCurve3D & | curve, |
SArray< size_t > & | nn, | ||
SArray< MbCartPoint > & | uv, | ||
SArray< double > & | tt | ||
) | const |
Пересечение оболочки и кривой.
Найти пересечения кривой с гранями оболочки.
[in] | curve | - Кривая. |
[out] | nn | - Номера граней оболочки, у которых есть пересечения с кривой. |
[out] | uv | - Параметрические точки пересечений на поверхностях граней оболочки. |
[out] | tt | - Параметры пересечений на кривой. |
void MbFaceShell::AddYourGabaritTo | ( | MbCube & | gab, |
c3d::IndexCubeVector * | extTolCubes = c3d_null |
||
) | const |
Добавить свой габарит в габаритный куб.
Добавить свой габарит в габаритный куб.
[out] | gab | - Габаритный куб для добавления габарита оболочки. |
[out] | extTolCubes | - Контейнер для расширенных габаритов граней оболочки с неточными ребрам. |
void MbFaceShell::CalculateMesh | ( | const MbStepData & | stepData, |
const MbFormNote & | note, | ||
MbMesh & | mesh | ||
) | const |
Построить полигональную копию оболочки.
Построить полигональную копию оболочки заполнить ею полигональный объект (сетку) mesh.
[in] | stepData | - Данные для вычисления шага при триангуляции. |
[in] | note | - Способ построения полигонального объекта. |
[out] | mesh | - Заполняемый полигональный объект. |
void MbFaceShell::SetItemsMainName | ( | const MbSNameMaker & | newNameMaker, |
bool | addOldMainName | ||
) |
Установить главное имя и вставить старое в индекс копирования.
Установить главное имя элементам оболочки и вставить старое в индекс копирования. Объекты с пустыми имена пропускаются.
[in] | newNameMaker | - Именователь с новым главным именем. |
[in] | addOldMainName | - Вставить старое в индекс копирования. |
void MbFaceShell::SetNamesCopyIndex | ( | SimpleName | index | ) |
Вставить индекс копирования.
Вставить индекс копирования.
[in] | index | - Индекс копирования. |
void MbFaceShell::SetNamesCopyIndex | ( | SimpleName | index, |
const MbSNameMaker & | newNameMaker | ||
) |
Заменить главное имя, вставить старое главное имя и индекс копирования в индексы копирования.
Заменить главное имя, вставить старое главное имя и индекс копирования в индексы копирования. Объекты с пустыми имена пропускаются.
[in] | index | - Индекс копирования. |
[in] | newMainName | - Именователь с новым главным именем. |
void MbFaceShell::ClearShellNames | ( | ) |
Очистить все имена в оболочке.
Очистить имена всех элементов оболочки : граней, ребер и вершин.
void MbFaceShell::ClearEdgesNames | ( | bool | clearVerticesNames = true | ) |
Очистить имена ребер в оболочке.
Очистить имена ребер (и вершин) в оболочке.
[in] | clearVerticesNames | - Очистить также и имена вершин. |
MbResultType MbFaceShell::CheckTopology | ( | MbCheckTopologyParams & | checkParams | ) |
Проверка оболочки: вершин (удаление совпадающих и лишних), ребер (со слиянием).
Проверка оболочки: вершин (удаление совпадающих и лишних), ребер (со слиянием).
[in] | checkParams | - Параметры функции. |
bool MbFaceShell::MergeSimilarFaces | ( | SimpleName | simMainName = c3d::SIMPLENAME_MAX | ) |
Объединить подобные грани.
Объединить подобные грани.
[in] | simMainName | - Новое главное имя для объединенных граней (если не равно c3d::SIMPLENAME_MAX). |