C3D Toolkit
Kernel - 117936, Vision - 2.7.0.41
|
Триангуляция. Подробнее...
#include <mesh_primitive.h>
Открытые члены | |
virtual | ~MbGrid () |
Деструктор. | |
double | DistanceToPoint (const MbCartPoint3D &pnt, size_t &ind) const |
Вычислить расстояние до точки. Подробнее... | |
double | DistanceToLine (const MbAxis3D &axis, double extDistance, double &t, c3d::IndicesPair &tqInd) const |
Вычислить расстояние до оси. Подробнее... | |
bool | FindTrianglesByPoint (uint ind, c3d::IndicesVector &) const |
Дать объекты, содержащие указанный индекс точки. \ en Get all triangles with point index ind. | |
bool | FindQuadranglesByPoint (uint ind, c3d::IndicesVector &) const |
Дать объекты, содержащие указанный индекс точки. \ en Get all quadrangles with point index ind. | |
bool | MakeSimplyConnected () |
Сделать триангуляцию односвязной. \ en Make simply connected triangulation (make cuts from outer loop to inner loops with duplicated points of cuts). | |
bool | IsSearchTreeReady () const |
Готово ли дерево поиска элементов. | |
bool | CreateSearchTree () const |
Создать дерево поиска элементов. | |
void | DeleteSearchTree () const |
Удалить дерево поиска элементов. | |
bool | FindIntersectElements (const MbAxis3D &ray, c3d::IndicesVector &triIndices, c3d::IndicesVector &quadIndices, double eps=METRIC_EPSILON) const |
Найти индексы треугольников и четырехугольников, потенциально пересекающихся с лучом. | |
bool | IsGridTopologyReady () const |
Готова ли топология триангуляции. | |
const MbGridTopology * | CreateGridTopology (bool keepExisting) const |
Создать новый временный объект информации о топологии. | |
const MbGridTopology * | GetGridTopology () const |
Получить временный объект информации о топологии. | |
void | ResetGridTopology () const |
Удалить информацию о топологии. | |
Общие функции примитива. | |
MbePrimitiveType | Type () const override |
Получить тип объекта. | |
virtual double | DistanceToPoint (const MbCartPoint3D &) const override |
Вычислить расстояние до точки. | |
virtual double | DistanceToLine (const MbAxis3D &, double extDistance, double &t) const override |
Вычислить расстояние до оси. | |
Функции триангуляции. | |
bool | IsComplete () const |
Проверить наличие данных. | |
virtual size_t | PointsCount () const =0 |
Выдать количество точек. | |
virtual size_t | NormalsCount () const =0 |
Выдать количество нормалей. | |
virtual size_t | ParamsCount () const =0 |
Выдать количество параметров. | |
virtual size_t | EscortsCount () const =0 |
Выдать количество значений. | |
virtual ptrdiff_t | PointsMaxIndex () const =0 |
Выдать количество точек минус 1 (максимальный индекс). | |
virtual ptrdiff_t | NormalsMaxIndex () const =0 |
Выдать количество нормалей минус 1 (максимальный индекс). | |
virtual ptrdiff_t | ParamsMaxIndex () const =0 |
Выдать количество параметров минус 1 (максимальный индекс). | |
size_t | TrianglesCount () const |
size_t | QuadranglesCount () const |
size_t | LoopsCount () const |
virtual void | AddPoint (const MbCartPoint &p2D, const MbCartPoint3D &p3D, const MbVector3D &n3D)=0 |
Добавить в триангуляцию параметры, точку и нормаль триангулируемой поверхности в точке. | |
virtual void | AddPoint (const MbCartPoint &p2D, const MbCartPoint3D &p3D)=0 |
Добавить в триангуляцию параметры и точку. | |
virtual void | AddPoint (const MbCartPoint3D &p3D, const MbVector3D &n3D)=0 |
Добавить в триангуляцию точку и нормаль в точке. | |
virtual void | AddPoint (const MbCartPoint3D &p3D)=0 |
Добавить в триангуляцию точку. | |
virtual void | AddNormal (const MbVector3D &n3D)=0 |
Добавить в триангуляцию нормаль. | |
virtual void | AddParam (const MbCartPoint &p2D)=0 |
Добавить в триангуляцию параметры триангулируемой поверхности. | |
virtual void | AddPoint (const MbFloatPoint &p2D, const MbFloatPoint3D &p3D, const MbFloatVector3D &n3D)=0 |
Добавить в триангуляцию параметры, точку и нормаль триангулируемой поверхности в точке. | |
virtual void | AddPoint (const MbFloatPoint &p2D, const MbFloatPoint3D &p3D)=0 |
Добавить в триангуляцию параметры и точку. | |
virtual void | AddPoint (const MbFloatPoint3D &p3D, const MbFloatVector3D &n3D)=0 |
Добавить в триангуляцию точку и нормаль в точке. | |
virtual void | AddPoint (const MbFloatPoint3D &p3D)=0 |
Добавить в триангуляцию точку. | |
virtual void | AddNormal (const MbFloatVector3D &n3D)=0 |
Добавить в триангуляцию нормаль. | |
virtual void | AddParam (const MbFloatPoint &p2D)=0 |
Добавить в триангуляцию параметры триангулируемой поверхности. | |
template<class PointsVector > | |
void | AddPoints (const PointsVector &pnts) |
Добавить в триангуляцию точки. | |
template<class NormalsVector > | |
void | AddNormals (const NormalsVector &norms) |
Добавить в триангуляцию нормали. | |
template<class ParamsVector > | |
void | AddParams (const ParamsVector &pars) |
Добавить в триангуляцию параметры триангулируемой поверхности. | |
template<class TrianglesVector > | |
void | AddTriangles (const TrianglesVector &trngs) |
Добавить в триангуляцию объекты. | |
template<class QuadranglesVector > | |
void | AddQuadrangles (const QuadranglesVector &qrngs) |
Добавить в триангуляцию объекты. | |
virtual void | AddEscorts (const std::vector< uint32 > &scores)=0 |
Добавить в коллекцию данных. | |
virtual void | AddColor (float r, float g, float b, float a)=0 |
Добавить цвет как дополнительную информацию в точке (0 <= r,g,b,a <= 1). Подробнее... | |
virtual void | GetPoint (size_t i, MbCartPoint3D &p) const =0 |
Выдать точку по её номеру. | |
virtual void | GetNormal (size_t i, MbVector3D &n) const =0 |
Выдать нормаль по её номеру. | |
virtual void | GetParam (size_t i, MbCartPoint &p) const =0 |
Выдать параметр по его номеру. | |
virtual const uint32 & | GetEscort (size_t i) const =0 |
Выдать дополнительную информацию по её номеру. | |
virtual void | GetPoint (size_t i, MbFloatPoint3D &p) const =0 |
Выдать точку по её номеру. | |
virtual void | GetNormal (size_t i, MbFloatVector3D &n) const =0 |
Выдать нормаль по её номеру. | |
virtual void | GetParam (size_t i, MbFloatPoint &p) const =0 |
Выдать параметр по его номеру. | |
virtual void | SetPoint (size_t i, const MbCartPoint3D &p)=0 |
Установить точку с заданным номером. | |
virtual void | SetNormal (size_t i, const MbVector3D &n)=0 |
Установить нормаль с заданным номером. | |
virtual void | SetParam (size_t i, const MbCartPoint &p)=0 |
Установить параметр с заданным номером. | |
virtual void | SetEscort (size_t i, const uint32 &e)=0 |
Установить дополнительную информацию по её номеру. | |
virtual void | PointRemove (size_t i)=0 |
Удалить точку с заданным номером. | |
virtual void | NormalRemove (size_t i)=0 |
Удалить нормаль с заданным номером. | |
virtual void | ParamRemove (size_t i)=0 |
Удалить параметры поверхности с заданным номером. | |
void | TriangleRemove (size_t k) |
Удалить треугольник по его индексу. | |
void | QuadrangleRemove (size_t k) |
Удалить четырёхугольник по его индексу. | |
void | LoopRemove (size_t k) |
Удалить полигон по его индексу. | |
virtual void | PointsDelete ()=0 |
Удалить точки. | |
virtual void | NormalsDelete ()=0 |
Удалить нормали. | |
virtual void | ParamsDelete ()=0 |
Удалить параметры. | |
virtual void | EscortsDelete ()=0 |
Удалить дополнительную информацию. | |
void | TrianglesDelete () |
Удалить все треугольники. | |
void | QuadranglesDelete () |
Удалить все четырёхугольники. | |
void | LoopsDelete () |
Удалить все полигоны. | |
virtual void | NormalsInvert ()=0 |
Инвертировать нормали. | |
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 | AddGridLoop (MbGridLoop &poly) |
void | CollectEdges (std::vector< c3d::UintPair > &edges) const |
bool | GetTrianglePointIndex (size_t i, uint &ind0, uint &ind1, uint &ind2) const |
Выдать индексы точек в массиве points для i-го треугольника (связанного или несвязанного). | |
bool | GetQuadranglePointIndex (size_t i, uint &ind0, uint &ind1, uint &ind2, uint &ind3) const |
Выдать индексы точек в массиве points для i-го четырехугольника (связанного или несвязанного). | |
virtual bool | GetTriangleParams (size_t i, MbCartPoint &r0, MbCartPoint &r1, MbCartPoint &r2) const =0 |
virtual bool | GetTrianglePoints (size_t i, MbCartPoint3D &p0, MbCartPoint3D &p1, MbCartPoint3D &p2) const =0 |
virtual bool | GetTrianglePoints (size_t i, MbFloatPoint3D &p0, MbFloatPoint3D &p1, MbFloatPoint3D &p2) const =0 |
virtual bool | GetTriangleNormals (size_t i, MbVector3D &n0, MbVector3D &n1, MbVector3D &n2) const =0 |
virtual bool | GetTriangleNormals (size_t i, MbFloatVector3D &n0, MbFloatVector3D &n1, MbFloatVector3D &n2) const =0 |
virtual bool | GetQuadrangleParams (size_t i, MbCartPoint &r0, MbCartPoint &r1, MbCartPoint &r2, MbCartPoint &r3) const =0 |
virtual bool | GetQuadranglePoints (size_t i, MbCartPoint3D &p0, MbCartPoint3D &p1, MbCartPoint3D &p2, MbCartPoint3D &p3) const =0 |
virtual bool | GetQuadranglePoints (size_t i, MbFloatPoint3D &p0, MbFloatPoint3D &p1, MbFloatPoint3D &p2, MbFloatPoint3D &n3) const =0 |
virtual bool | GetQuadrangleNormals (size_t i, MbVector3D &n0, MbVector3D &n1, MbVector3D &n2, MbVector3D &n3) const =0 |
virtual bool | GetQuadrangleNormals (size_t i, MbFloatVector3D &n0, MbFloatVector3D &n1, MbFloatVector3D &n2, MbFloatVector3D &n3) const =0 |
virtual bool | GetSingleNormal (MbVector3D &) const =0 |
virtual bool | GetSingleNormal (MbFloatVector3D &) const =0 |
virtual void | SynchronizeNormals ()=0 |
Если количество точек больше количества нормалей, то добавить недостающие нормали (только для плоской триангуляции). | |
virtual void | NormalizeNormals ()=0 |
Нормализовать нормали. | |
const MbTriangle & | GetTriangle (size_t i) const |
const MbQuadrangle & | GetQuadrangle (size_t i) const |
const MbGridLoop & | GetGridLoop (size_t i) const |
bool | GetTriangleIndex (size_t i, uint &i0, uint &i1, uint &i2) const |
bool | GetQuadrangleIndex (size_t i, uint &i0, uint &i1, uint &i2, uint &i3) const |
template<class Param , class ParamsVector > | |
void | GetParams (ParamsVector ¶msVector) const |
template<class Point , class PointsVector > | |
void | GetPoints (PointsVector &pointsVector) const |
template<class Normal , class NormalsVector > | |
void | GetNormals (NormalsVector &normalsVector) const |
template<class TrianglesVector > | |
void | GetTriangles (TrianglesVector &tVector) const |
template<class QuadranglesVector > | |
void | GetQuadrangles (QuadranglesVector &qVector) const |
void | ConvertQuadranglesToTriangles () |
Преобразовать четырёхугольники в треугольники. | |
void | ConvertAllToTriangles () |
Преобразовать все объекты в треугольники и уравнять число точек и нормалей. | |
bool | FlipTriangle (size_t triIndex, size_t edgeIndex) |
virtual bool | TriangleIntersectRect (size_t i, MbRect &rect) const =0 |
Определить, пересекается ли проекция на глобальную плоскость XY треугольника с заданным номером с присланным прямоугольником. | |
virtual void | TriangleGetGabRect (size_t i, MbRect &rect) const =0 |
Рассчитать габаритный прямоугольник проекции на глобальную плоскость XY треугольника с заданным номером. | |
virtual bool | QuadrangleIntersectRect (size_t i, MbRect &rect) const =0 |
Определить, пересекается ли проекция на глобальную плоскость XY четырёхугольника с заданным номером с присланным прямоугольником. | |
virtual void | QuadrangleGetGabRect (size_t i, MbRect &rect) const =0 |
Рассчитать габаритный прямоугольник проекции на глобальную плоскость XY четырёхугольника с заданным номером. | |
virtual void | AddRect (MbRect &rect) const =0 |
Расширить присланный габаритный прямоугольник так, чтобы он включал в себя проекцию данного объекта на глобальную плоскость XY. | |
virtual void | AddCube (MbCube &r) const =0 |
Расширить присланный габаритный куб так, чтобы он включал в себя данный объект. | |
virtual bool | RemoveRedundantPoints (bool deleteNormals, double epsilon=LENGTH_EPSILON)=0 |
Удалить дублирующие с заданной точностью друг друга точки. | |
virtual MbeItemLocation | GetLocation (const MbPlacement3D &pl, double eps, bool onlyInItem=false) const =0 |
Определить положение объекта относительно плоскости. Подробнее... | |
virtual bool | InsideLocation (const MbPlacement3D &place, MbRect &rect, double eps) const =0 |
Определить положение объекта относительно трубы. Подробнее... | |
virtual void | SetVista (const MbCartPoint3D &vista)=0 |
Преобразовать триангуляцию так, чтобы её параллельная проекция выглядела как центральная проекция, наблюдаемая из заданной точки vista. | |
virtual void | DeleteVista (const MbCartPoint3D &vista)=0 |
Отменить преобразование триангуляцию для центральной проекции, наблюдаемой из заданной точки vista. | |
virtual void | ParamsReserve (size_t n)=0 |
Зарезервировать память для контейнера параметров. | |
virtual void | PointsReserve (size_t n)=0 |
Зарезервировать память для контейнера точек. | |
virtual void | NormalsReserve (size_t n)=0 |
Зарезервировать память для контейнера нормалей. | |
virtual void | EscordsReserve (size_t n)=0 |
Зарезервировать память для контейнера параметров. | |
void | TrianglesReserve (size_t n) |
Зарезервировать память для контейнера треугольников. | |
void | QuadranglesReserve (size_t n) |
Зарезервировать память для контейнера четырёхугольников. | |
void | LoopsReserve (size_t n) |
Зарезервировать память для контейнера полигонов. | |
virtual void | ReserveParamsPoints (size_t n)=0 |
Зарезервировать память для контейнеров. | |
virtual void | ReservePointsNormals (size_t n)=0 |
Зарезервировать память для контейнеров. | |
virtual void | ReserveParamsPointsNormals (size_t n)=0 |
Зарезервировать память для контейнеров. | |
virtual void | Flush ()=0 |
Удалить всю триангуляцию без освобождения памяти, занятую контейнерами. | |
virtual void | HardFlush ()=0 |
Удалить всю триангуляцию и освободить память. | |
virtual void | Adjust ()=0 |
Освободить лишнюю память. | |
virtual size_t | SizeOf () const =0 |
Выдать размер занимаемой памяти. | |
virtual void | Reverse ()=0 |
Инвертировать последовательность вершин треугольников и четырехугольников. | |
virtual bool | IsSame (const MbGrid &init, double eps) const =0 |
Являются ли объекты равными? | |
const MbStepData & | GetStepData () const |
Выдать параметр расчета триангуляции (стрелку прогиба или угол отклонения). | |
void | SetStepData (const MbStepData &stData) |
Установить параметр расчета триангуляции (стрелку прогиба или угол отклонения). | |
const MbCube & | Cube () const |
Вернуть габаритный куб. | |
const MbCube & | GetCube () const |
Вернуть габаритный куб. | |
virtual void | Init (const MbGrid &grid)=0 |
const MbTriangle * | GetTrianglesAddr () const |
Выдать адрес начала массива. | |
const MbQuadrangle * | GetQuadranglesAddr () const |
Выдать адрес начала массива. | |
virtual const MbCartPoint3D * | GetExactPointsAddr () const =0 |
Выдать адрес начала массива. | |
virtual const MbVector3D * | GetExactNormalsAddr () const =0 |
Выдать адрес начала массива. | |
virtual const MbCartPoint * | GetExactParamsAddr () const =0 |
Выдать адрес начала массива. | |
virtual const MbFloatPoint3D * | GetFloatPointsAddr () const =0 |
Выдать адрес начала массива. | |
virtual const MbFloatVector3D * | GetFloatNormalsAddr () const =0 |
Выдать адрес начала массива. | |
virtual const MbFloatPoint * | GetFloatParamsAddr () const =0 |
Выдать адрес начала массива. | |
![]() | |
virtual | ~MbPrimitive () |
Деструктор | |
virtual MbePrimitiveType | IsA () const =0 |
MbeRefType | RefType () const override |
Регистрационный тип (для копирования, дублирования). | |
virtual MbPrimitive & | Duplicate (MbRegDuplicate *iReg=nullptr) const |
Создать копию примитива. Подробнее... | |
virtual SPtr< MbPrimitive > | Clone (MbRegDuplicate *iReg=nullptr) const =0 |
Создать копию примитива. Подробнее... | |
virtual void | Transform (const MbMatrix3D &matr)=0 |
Преобразовать примитив согласно матрице. Подробнее... | |
virtual void | Move (const MbVector3D &to)=0 |
Сдвинуть примитив вдоль вектора. Подробнее... | |
virtual void | Rotate (const MbAxis3D &axis, double angle)=0 |
Повернуть примитив вокруг оси на заданный угол. Подробнее... | |
MbeImplicationType | ImplicationType () const override |
Выдать тип контейнера атрибутов. | |
virtual void | AddYourGabaritTo (MbCube &r) const =0 |
Расширить присланный габаритный куб так, чтобы он включал в себя данный объект. | |
virtual void | GetProperties (MbProperties &)=0 |
Выдать свойства объекта. | |
virtual void | SetProperties (const MbProperties &)=0 |
Записать свойства объекта. | |
SimpleName | GetPrimitiveName () const |
void | SetPrimitiveName (SimpleName n) |
const MbName & | GetName () const |
Выдать имя объекта. | |
MbName & | SetName () |
Выдать имя объекта для модификации. | |
SimpleName | GetFirstName () const |
Получить первое имя. | |
SimpleName | GetNameHash () const |
Выдать hash имени. | |
void | SetName (const MbName &n) |
Установить имя. | |
const MbRefItem * | GetItem () const |
Выдать породивший примитив объект. | |
void | SetItem (const MbRefItem *g) |
Установить породивший примитив объект. | |
MbeRefType | GetPrimitiveType () const |
Дать тип объекта. | |
void | SetPrimitiveType (MbeRefType t) |
Установить тип объекта. | |
bool | NearestType (MbeSpaceType sType, MbeTopologyType tType, MbePlaneType pType) const |
Удовлетворяет ли примитив критериям поиска ближайшего объекта? | |
const MbSpaceItem * | SpaceItem () const |
Получить пространственный объект, для которого построен примитив. | |
const MbPlaneItem * | PlaneItem () const |
Получить двумерный объект, для которого построен примитив. | |
const MbTopItem * | TopItem () const |
Получить топологический объект, для которого построен примитив. | |
const MbItem * | Item () const |
Получить объект геометрической модели, для которого построен примитив. | |
void | PrimitiveRead (reader &) |
Чтение примитива из потока. | |
void | PrimitiveWrite (writer &) const |
Запись примитива в поток. | |
![]() | |
MbAttributeContainer () | |
Конструктор без параметров. | |
MbAttributeContainer (MbAttribute &) | |
Конструктор по атрибуту. | |
virtual | ~MbAttributeContainer () |
Деструктор. | |
void | AttributesRead (reader &) |
Прочитать атрибуты из потока. | |
void | AttributesWrite (writer &) const |
Записать атрибуты в поток. | |
void | GetProperties (MbProperties &) |
Выдать свойства атрибутов. | |
void | SetProperties (const MbProperties &) |
Установить свойства атрибутов. | |
void | SetDensity (double) |
Установить плотность объекта. | |
double | GetDensity () const |
Выдать плотность объекта. | |
void | SetVisual (float a, float d, float sp, float sh, float t, float e, uint rgb=0) |
Установить визуальные свойства объекта. | |
bool | GetVisual (float &a, float &d, float &sp, float &sh, float &t, float &e, uint rgb=0) const |
Выдать визуальные свойства объекта. Подробнее... | |
bool | IsColored () const |
Есть ли у объекта свой цвет. Подробнее... | |
void | SetColor (uint32) |
Изменить цвет объекта. | |
void | SetColor (int R, int G, int B) |
Изменить цвет объекта (0-255). | |
uint32 | GetColor () const |
Выдать цвет объекта. | |
void | SetWidth (int) |
Установить толщину линий для отображения объекта. | |
int | GetWidth () const |
Выдать толщину линий для отображения объекта. | |
void | SetStyle (int) |
Установить стиль линий для отображения объекта. | |
int | GetStyle () const |
Выдать стиль линий для отображения объекта. | |
void | SetSelected (bool s=true) |
Выделить или не выделить объект. | |
bool | IsSelected () const |
Выделен ли объект? | |
bool | ReverseSelected () |
Инвертировать выделение объекта. | |
void | SetChanged (bool c=true) |
Задать: объект изменен или не изменён. | |
bool | IsChanged () const |
Изменен ли объект? | |
void | SetVisible (bool) |
Установить видимость. | |
bool | IsVisible () const |
Видимый ли объект? | |
bool | IsInvisible () const |
Не видимый ли элемент? | |
void | AttributesAssign (const MbAttributeContainer &) |
Cдублировать атрибуты присланного объекта, свои отпустить. | |
size_t | AttributesCount () const |
Выдать количество объектов. | |
bool | RemoveAttributes (bool onDeleteOwner=false) |
Удалить все атрибуты из контейнера. | |
MbAttribute * | AddAttribute (MbAttribute *attr, bool checkSame=true) |
Добавить атрибут в контейнер. Подробнее... | |
MbAttribute * | AddAttribute (const MbAttribute &attr, bool checkSame=true) |
Добавить атрибут в контейнер (добавляет копию атрибута, если его можно добавить). Подробнее... | |
void | GetAttributes (c3d::AttrVector &attrs, MbeAttributeType aFamily, MbeAttributeType subType) const |
Выдать атрибуты заданного типа или семейства. Подробнее... | |
void | GetAttributes (c3d::AttrVector &attrs, MbeAttributeType aType) const |
Выдать атрибуты заданного типа. Подробнее... | |
void | GetCommonAttributes (c3d::AttrVector &, const c3d::string_t &samplePrompt, MbeAttributeType subType=at_Undefined, bool firstFound=false) const |
Выдать атрибуты по строке описания. | |
void | GetStringAttributes (c3d::AttrVector &, const c3d::string_t &sampleContent) const |
Выдать строковые атрибуты по строке содержания. | |
bool | RemoveAttribute (const MbAttribute *, bool checkAccuracySame=false, double accuracy=LENGTH_EPSILON) |
Выдать атрибут заданного типа, если их несколько - то первый попавшийся. Подробнее... | |
bool | RemoveAttributes (MbeAttributeType type, MbeAttributeType subType) |
Удалить атрибуты заданного типа. | |
const MbAttribute * | GetSimpleAttribute (MbeAttributeType) const |
Выдать простой атрибут данного подтипа. | |
MbAttribute * | SetSimpleAttribute (MbeAttributeType) |
Выдать простой атрибут данного подтипа. | |
MbAttribute * | SetSimpleAttribute (MbAttribute *simpAttr) |
Установить простой атрибут данного подтипа. | |
MbAttribute * | SetSimpleAttribute (const MbAttribute &simpAttr) |
Установить простой атрибут данного подтипа (всегда копирует атрибут). | |
void | RemoveSimpleAttribute (MbeAttributeType) |
Удалить простой атрибут(один и более) данного подтипа. | |
MbAttribute * | DetachSimpleAttribute (MbeAttributeType) |
Отдать простой атрибут данного подтипа. | |
void | GetUserAttributes (std::vector< MbUserAttribute * > &attrs, const MbUserAttribType &type) const |
Выдать пользовательский атрибут данного подтипа. | |
void | RemoveUserAttributes (const MbUserAttribType &type) |
Удалить пользовательский атрибут (один и более) данного подтипа. | |
void | DetachUserAttributes (std::vector< MbUserAttribute * > &attrs, const MbUserAttribType &type) |
Отдать пользовательский атрибут данного подтипа. | |
void | AttributesChange () |
Выполнить действия при изменении атрибутов. | |
void | AttributesConvert (MbAttributeContainer &other) const |
Выполнить действия при конвертации атрибутов. | |
void | AttributesTransform (const MbMatrix3D &, MbRegTransform *=nullptr) |
Выполнить действия при трансформировании атрибутов. | |
void | AttributesMove (const MbVector3D &, MbRegTransform *=nullptr) |
Выполнить действия при перемещении атрибутов. | |
void | AttributesRotate (const MbAxis3D &, double angle, MbRegTransform *=nullptr) |
Выполнить действия при вращении атрибутов. | |
void | AttributesCopy (MbAttributeContainer &other, MbRegDuplicate *=nullptr) const |
Выполнить действия при копировании атрибутов. | |
void | AttributesMerge (MbAttributeContainer &other) |
Выполнить действия при объединении атрибутов. | |
void | AttributesReplace (MbAttributeContainer &other) |
Выполнить действия при замене атрибутов. | |
void | AttributesSplit (const std::vector< MbAttributeContainer * > &others) |
Выполнить действия при разделении атрибутов. | |
void | AttributesDelete () |
Выполнить действия при удалении атрибутов. | |
![]() | |
refcount_t | GetUseCount () const |
Выдать количество ссылок (выдать количество владельцев объекта). | |
refcount_t | AddRef () const |
Увеличить количество ссылок на единицу. | |
refcount_t | DecRef () const |
Уменьшить количество ссылок на единицу. | |
refcount_t | Release () const |
Уменьшить количество ссылок на единицу и, если количество ссылок стало равным нулю, удалить себя. | |
![]() | |
void | Lock () const |
Включить блокировку (блокировка происходит только при наличии параллельности). | |
void | Unlock () const |
Снять блокировку, если она была установлена. | |
CommonRecursiveMutex * | GetLock () const |
Выдать указатель на объект мьютекса. Возращает nullptr, если параллельности нет. Для использования в ScopedLock. | |
Защищенные члены | |
MbGrid (const MbGrid &, MbRegDuplicate *) | |
Конструктор копирования с регистратором. | |
MbGrid () | |
Конструктор без параметров. | |
void | MoveSearchTree (const MbVector3D &) const |
Переместить дерево поиска элементов. | |
![]() | |
MbPrimitive (const MbPrimitive &, MbRegDuplicate *iReg) | |
Конструктор копирования с регистратором. | |
MbPrimitive () | |
Конструктор без параметров. | |
![]() | |
MbAttributeContainer (const MbAttributeContainer &, MbRegDuplicate *) | |
Конструктор копирования с регистратором. | |
![]() | |
MbRefItem () | |
Конструктор без параметров. | |
Защищенные данные | |
std::vector< MbTriangle > | triangles |
Индексное множество треугольных пластин содержит номера элементов множества params и/или множеств points и normals. | |
std::vector< MbQuadrangle > | quadrangles |
Индексное множество четырёхугольных пластин содержит номера элементов множества params и/или множеств points и normals. | |
std::vector< MbGridLoop * > | loops |
Индексное множество граничных циклов триангуляции содержит номера элементов множества points и/или params. Объект владеет элементами множества. | |
MbStepData | stepData |
Параметр расчета триангуляции. | |
MbCube | cube |
Габаритный куб объекта. Подробнее... | |
MbGridSearchTree * | searchTree |
Дерево поиска элементов. | |
c3d::GridTopologyPtr | topo |
Дополнительная информация о топологии триангуляции. | |
![]() | |
MbName | name |
Имя примитива. | |
const MbRefItem * | parentItem |
Породивший объект (не владеем). | |
MbeRefType | type |
Тип примитива. | |
Дополнительные унаследованные члены | |
![]() | |
static MbUserAttribute * | ReduceUserAttrib (const MbExternalAttribute &) |
Преобразовать из пользовательского в "системный". | |
static MbExternalAttribute * | AdvanceUserAttrib (const MbUserAttribute &) |
Преобразовать из "системного" в пользовательский | |
Триангуляция.
Триангуляция представляет собой набор треугольных и четырёхугольных пластин, стыкующихся друг с другом по общим сторонам.
В простейшем случае триангуляция состоит из набора точек и набора треугольников. Треугольник - это три номера из набора точек, определяющих вершины треугольника. Триангуляция используется для аппроксимации криволинейных поверхностей. В определенных случаях использование плоских пластин значительно упрощает работу с криволинейными поверхностями. Триангуляция описывает геометрическую форму объектов с определённой степенью точности.
Триангуляция используется для получения точечных изображений, вычисления масс-инерционных характеристик, проверки столкновений объектов, проведения численных экспериментов над моделями. Для одного и того же объекта триангуляция может иметь разное наполнение данных, в зависимости от назначения.
|
pure virtual |
Определить положение объекта относительно плоскости.
Определить положение объекта относительно плоскости XY локальной системы координат.
[in] | pl | - Локальная система координат, задающая плоскость. |
[in] | eps | - Метрическая точность. |
[in] | onlyInItem | - Интересует только положение объекта над плоскостью XY локальной системы координат. |
Замещается в MbFloatGrid и MbExactGrid.
|
pure virtual |
Определить положение объекта относительно трубы.
Определить, расположен ли объект внутри трубы прямоугольного сечения, заданного прямоугольником в плоскости XY локальной системы координат.
[in] | place | - Локальная система координат, в в плоскости XY которой лежит сечение трубы. |
[in] | rect | - Прямоугольник, задающая сечение трубы. |
[in] | eps | - Метрическая точность. |
[in] | onlyInItem | - Интересует только положение объекта внутри трубы. |
Замещается в MbFloatGrid и MbExactGrid.
double MbGrid::DistanceToPoint | ( | const MbCartPoint3D & | pnt, |
size_t & | ind | ||
) | const |
Вычислить расстояние до точки.
Вычислить расстояние от точки до ближайшей опорной точки триангуляции.
[in] | pnt | - Точка. |
[out] | ind | - Индекс ближайшей точки в массиве опорных точек триангуляции. |
double MbGrid::DistanceToLine | ( | const MbAxis3D & | axis, |
double | extDistance, | ||
double & | t, | ||
c3d::IndicesPair & | tqInd | ||
) | const |
Вычислить расстояние до оси.
Вычислить расстояние от оси до ближайшего треугольника или четырехугольника триангуляции.
[in] | axis | - Ось (луч). |
[in] | extDistance | - Расширение габарита триангуляции (по умолчанию можно поставить 0). |
[in,out] | t | - Параметр на луче, где он пересекает триангуляцию. |
[out] | tqInd | - Индекс ближайшего треугольника или четырехугольника. |
|
mutableprotected |
Габаритный куб объекта.
Габаритный куб объекта рассчитывается только при запросе габарита объекта. Габаритный куб в конструкторе объекта и после модификации объекта принимает неопределенное значение.