C3D Toolkit  Kernel - 105122, Vision - 0.181114.105122

Триангуляция. Подробнее...

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

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

virtual ~MbGrid ()
 Деструктор.
 
void GetPoints (std::vector< MbCartPoint3D > &pnts) const
 Выдать все точки триангуляции.
 
void GetPoints (std::vector< MbFloatPoint3D > &pnts) const
 Выдать все точки триангуляции.
 
void GetNormals (std::vector< MbVector3D > &vecs) const
 Выдать все нормали триангуляции.
 
void GetNormals (std::vector< MbFloatVector3D > &vecs) const
 Выдать все нормали триангуляции.
 
void GetParams (std::vector< MbCartPoint > &pnts) const
 Выдать все параметрические точки триангуляции.
 
void GetParams (std::vector< MbFloatPoint > &pnts) const
 Выдать все параметрические точки триангуляции.
 
Общие функции примитива.
virtual MbePrimitiveType Type () const
 Получить тип объекта.
 
virtual MbePrimitiveType IsA () const =0
 
virtual MbGridDuplicate (MbRegDuplicate *iReg=NULL) 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
 Повернуть примитив вокруг оси на заданный угол. Подробнее...
 
virtual void AddYourGabaritTo (MbCube &r) const =0
 Расширить присланный габаритный куб так, чтобы он включал в себя данный объект.
 
virtual double DistanceToPoint (const MbCartPoint3D &pnt) const =0
 Вычислить расстояние до точки.
 
virtual double DistanceToLine (const MbAxis3D &axis, double maxDistance, double &t) const =0
 Вычислить расстояние до оси.
 
virtual void GetProperties (MbProperties &)=0
 Выдать свойства объекта.
 
virtual void SetProperties (const MbProperties &)=0
 Записать свойства объекта.
 
Функции триангуляции.
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 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 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 PapamsDelete ()=0
 Удалить параметры.
 
virtual void EscortsDelete ()=0
 Удалить дополнительную информацию.
 
void TrianglesDelete ()
 Удалить все треугольники.
 
void QuadranglesDelete ()
 Удалить все четырёхугольники.
 
void LoopsDelete ()
 Удалить все полигоны.
 
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 SynchronizNormals ()=0
 Если количество точек больше количества нормалей, то добавить недостающие нормали (только для плоской триангуляции).
 
const MbTriangleGetTriangle (size_t i) const
 
const MbQuadrangleGetQuadrangle (size_t i) const
 
const MbGridLoopGetGridLoop (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 TrianglesVector >
void GetTriangles (TrianglesVector &tVector) const
 
template<class QuadranglesVector >
void GetQuadrangles (QuadranglesVector &qVector) const
 
void ConvertQuadranglesToTriangles ()
 Преобразовать четырёхугольники в треугольники.
 
void ConvertAllToTriangles ()
 Преобразовать все объекты в треугольники и уравнять число точек и нормалей.
 
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 MbStepDataGetStepData () const
 Выдать параметр расчета триангуляции (стрелку прогиба или угол отклонения).
 
void SetStepData (const MbStepData &stData)
 Установить параметр расчета триангуляции (стрелку прогиба или угол отклонения).
 
const MbCubeCube () const
 Вернуть габаритный куб.
 
virtual void Init (const MbGrid &grid)=0
 
const MbTriangleGetTrianglesAddr () const
 Выдать адрес начала массива.
 
const MbQuadrangleGetQuadranglesAddr () const
 Выдать адрес начала массива.
 
virtual const MbCartPoint3DGetExactPointsAddr () const =0
 Выдать адрес начала массива.
 
virtual const MbVector3DGetExactNormalsAddr () const =0
 Выдать адрес начала массива.
 
virtual const MbCartPointGetExactParamsAddr () const =0
 Выдать адрес начала массива.
 
virtual const MbFloatPoint3DGetFloatPointsAddr () const =0
 Выдать адрес начала массива.
 
virtual const MbFloatVector3DGetFloatNormalsAddr () const =0
 Выдать адрес начала массива.
 
virtual const MbFloatPointGetFloatParamsAddr () const =0
 Выдать адрес начала массива.
 
- Открытые члены унаследованные от MbPrimitive
virtual ~MbPrimitive ()
 Деструктор
 
virtual MbeRefType RefType () const
 Регистрационный тип (для копирования, дублирования).
 
virtual MbeImplicationType ImplicationType () const
 Выдать тип контейнера атрибутов.
 
SimpleName GetPrimitiveName () const
 
void SetPrimitiveName (SimpleName n)
 
const MbRefItemGetItem () const
 Выдать породивший примитив объект.
 
void SetItem (const MbRefItem *g)
 Установить породивший примитив объект.
 
MbeRefType GetPrimitiveType () const
 Дать тип объекта.
 
void SetPrimitiveType (MbeRefType t)
 Установить тип объекта.
 
bool NearestType (MbeSpaceType sType, MbeTopologyType tType, MbePlaneType pType) const
 Удовлетворяет ли примитив критериям поиска ближайшего объекта?
 
const MbSpaceItemSpaceItem () const
 Получить пространственный объект, для которого построен примитив.
 
const MbPlaneItemPlaneItem () const
 Получить двумерный объект, для которого построен примитив.
 
const MbTopItemTopItem () const
 Получить топологический объект, для которого построен примитив.
 
const MbItemItem () const
 Получить объект геометрической модели, для которого построен примитив.
 
void PrimitiveRead (reader &in)
 Чтение примитива из потока.
 
void PrimitiveWrite (writer &out) const
 Запись примитива в поток.
 
- Открытые члены унаследованные от MbAttributeContainer
 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)
 Установить визуальные свойства объекта.
 
bool GetVisual (float &a, float &d, float &sp, float &sh, float &t, float &e) const
 Выдать визуальные свойства объекта. Подробнее...
 
bool IsColored () const
 Есть ли у объекта свой цвет. Подробнее...
 
void SetColor (uint32)
 Изменить цвет объекта.
 
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
 Выдать количество объектов.
 
void RemoveAttributes ()
 Удалить все атрибуты из контейнера.
 
MbAttributeAddAttribute (MbAttribute *attr, bool checkSame=true)
 Добавить атрибут в контейнер.
 
MbAttributeAddAttribute (const MbAttribute &attr, bool checkSame=true)
 Добавить атрибут в контейнер (всегда копирует атрибут).
 
void GetAttributes (std::vector< MbAttribute *> &attrs, MbeAttributeType type, MbeAttributeType subType) const
 Выдать атрибуты заданного типа.
 
void GetCommonAttributes (std::vector< MbAttribute *> &attrs, const c3d::string_t &samplePrompt, MbeAttributeType subType=at_Undefined) const
 Выдать атрибуты по строке описания.
 
void GetStringAttributes (std::vector< MbAttribute *> &attrs, const c3d::string_t &sampleContent) const
 Выдать строковые атрибуты по строке содержания.
 
bool RemoveAttribute (const MbAttribute *)
 Выдать атрибут заданного типа, если их несколько - то первый попавшийся. Подробнее...
 
bool RemoveAttributes (MbeAttributeType type, MbeAttributeType subType)
 Удалить атрибуты заданного типа.
 
const MbAttributeGetSimpleAttribute (MbeAttributeType) const
 Выдать простой атрибут данного подтипа.
 
MbAttributeSetSimpleAttribute (MbeAttributeType)
 Выдать простой атрибут данного подтипа.
 
MbAttributeSetSimpleAttribute (MbAttribute *simpAttr)
 Установить простой атрибут данного подтипа.
 
MbAttributeSetSimpleAttribute (const MbAttribute &simpAttr)
 Установить простой атрибут данного подтипа (всегда копирует атрибут).
 
void RemoveSimpleAttribute (MbeAttributeType)
 Удалить простой атрибут(один и более) данного подтипа.
 
MbAttributeDetachSimpleAttribute (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 *=NULL)
 Выполнить действия при трансформировании атрибутов.
 
void AttributesMove (const MbVector3D &, MbRegTransform *=NULL)
 Выполнить действия при перемещении атрибутов.
 
void AttributesRotate (const MbAxis3D &, double angle, MbRegTransform *=NULL)
 Выполнить действия при вращении атрибутов.
 
void AttributesCopy (MbAttributeContainer &other, MbRegDuplicate *=NULL) const
 Выполнить действия при копировании атрибутов.
 
void AttributesMerge (MbAttributeContainer &other)
 Выполнить действия при объединении атрибутов.
 
void AttributesReplace (MbAttributeContainer &other)
 Выполнить действия при замене атрибутов.
 
void AttributesSplit (const std::vector< MbAttributeContainer *> &others)
 Выполнить действия при разделении атрибутов.
 
void AttributesDelete ()
 Выполнить действия при удалении атрибутов.
 
- Открытые члены унаследованные от MbRefItem
 MbRefItem ()
 Конструктор без параметров.
 
refcount_t GetUseCount () const
 Выдать количество ссылок (выдать количество владельцев объекта).
 
refcount_t AddRef () const
 Увеличить количество ссылок на единицу.
 
refcount_t DecRef () const
 Уменьшить количество ссылок на единицу.
 
refcount_t Release () const
 Уменьшить количество ссылок на единицу и, если количество ссылок стало равным нулю, удалить себя.
 

Защищенные члены

 MbGrid (const MbGrid &init, MbRegDuplicate *iReg)
 Конструктор копирования с регистратором.
 
 MbGrid ()
 Конструктор без параметров.
 
- Защищенные члены унаследованные от MbPrimitive
 MbPrimitive (const MbPrimitive &init, MbRegDuplicate *iReg)
 Конструктор копирования с регистратором.
 
 MbPrimitive ()
 Конструктор без параметров.
 
- Защищенные члены унаследованные от MbAttributeContainer
 MbAttributeContainer (const MbAttributeContainer &, MbRegDuplicate *)
 Конструктор копирования с регистратором.
 

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

std::vector< MbTriangletriangles
 Индексное множество треугольных пластин содержит номера элементов множества params и/или множеств points и normals.
 
std::vector< MbQuadranglequadrangles
 Индексное множество четырёхугольных пластин содержит номера элементов множества params и/или множеств points и normals.
 
std::vector< MbGridLoop * > loops
 Индексное множество граничных циклов триангуляции содержит номера элементов множества points и/или params. Объект владеет элементами множества.
 
MbStepData stepData
 Параметр расчета триангуляции.
 
MbCube cube
 Габаритный куб объекта. Подробнее...
 
- Защищенные данные унаследованные от MbPrimitive
SimpleName name
 Имя примитива.
 
const MbRefItemparentItem
 Породивший объект (не владеем).
 
MbeRefType type
 Тип примитива.
 

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

- Открытые статические члены унаследованные от MbAttributeContainer
static MbUserAttributeReduceUserAttrib (const MbExternalAttribute &source)
 Преобразовать из пользовательского в "системный".
 
static MbExternalAttributeAdvanceUserAttrib (const MbUserAttribute &source)
 Преобразовать из "системного" в пользовательский
 

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

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

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

Назначения триангуляции
От назначения триангуляции зависит наполнение данных:
Если триангуляция предназначена для визуализации геометрической формы, то заполняются множества points и normals, шаг движения вдоль кривых и поверхностей вычисляется по стрелке прогиба, работают функции Step, StepU, StepV.
Если триангуляция предназначена для аппроксимации геометрической формы с привязкой к параметрам поверхности, то заполняются множества params, points и normals, шаг движения вдоль кривых и поверхностей вычисляется по стрелке прогиба.
Если триангуляция предназначена для вычисления инерционных характеристик, то заполняется множество params, шаг движения вдоль кривых и поверхностей вычисляется по углу отклонения нормали, работают функции DeviationStep, DeviationStepU, DeviationStepV.
Если триангуляция предназначена для определения столкновений элементов модели, то заполняются множества params и points, шаг движения вдоль кривых и поверхностей вычисляется по стрелке прогиба, работают функции Step, StepU, StepV.
Если триангуляция предназначена для разбивки на элементы, то заполняются множества points и normals, шаг движения вдоль кривых и поверхностей вычисляется с ограничением длины сторон треугольников, может быть добавлено ограничение по стрелке прогиба и углу отклонения нормали. (работают функции MetricStep, MetricStepU, MetricStepV).

Методы

◆ Duplicate()

virtual MbGrid& MbGrid::Duplicate ( MbRegDuplicate iReg = NULL) const
pure virtual

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

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

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

Замещает MbPrimitive.

Замещается в MbFloatGrid и MbExactGrid.

◆ Transform()

virtual void MbGrid::Transform ( const MbMatrix3D matr)
pure virtual

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

Преобразовать примитив согласно матрице c использованием регистратора. Регистратор служит для предотвращения многократного преобразования примитива, входящего в состав нескольких объектов, трансформируемых одновременно. Допустимо использовать функцию без регистратора, если надо преобразовать одиночный объект. Если надо преобразовать набор взаимосвязанных объектов, необходимо использовать регистратор для предотвращения повторного преобразования вложенных примитивов, поскольку не исключена ситуация, когда несколько объектов из набора содержат ссылки на один или несколько общих примитивов, подлежащих трансформации.

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

Замещает MbPrimitive.

Замещается в MbFloatGrid и MbExactGrid.

◆ Move()

virtual void MbGrid::Move ( const MbVector3D to)
pure virtual

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

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

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

Замещает MbPrimitive.

Замещается в MbFloatGrid и MbExactGrid.

◆ Rotate()

virtual void MbGrid::Rotate ( const MbAxis3D axis,
double  angle 
)
pure virtual

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

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

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

Замещает MbPrimitive.

Замещается в MbFloatGrid и MbExactGrid.

◆ GetLocation()

virtual MbeItemLocation MbGrid::GetLocation ( const MbPlacement3D pl,
double  eps,
bool  onlyInItem = false 
) const
pure virtual

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

Определить положение объекта относительно плоскости XY локальной системы координат.

Аргументы
[in]pl- Локальная система координат, задающая плоскость.
[in]eps- Метрическая точность.
[in]onlyInItem- Интересует только положение объекта над плоскостью XY локальной системы координат.
Возвращает
iloc_OnItem - объект пересекает плоскость XY локальной системы координат,
iloc_InItem - объект расположен над плоскостью XY локальной системы координат,
iloc_OutOfItem - объект расположен под плоскостью XY локальной системы координат.

Замещается в MbFloatGrid и MbExactGrid.

◆ InsideLocation()

virtual bool MbGrid::InsideLocation ( const MbPlacement3D place,
MbRect rect,
double  eps 
) const
pure virtual

Определить положение объекта относительно трубы.

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

Аргументы
[in]place- Локальная система координат, в в плоскости XY которой лежит сечение трубы.
[in]rect- Прямоугольник, задающая сечение трубы.
[in]eps- Метрическая точность.
[in]onlyInItem- Интересует только положение объекта внутри трубы.
Возвращает
true, если объект расположен внутри трубы.

Замещается в MbFloatGrid и MbExactGrid.

Данные класса

◆ cube

MbCube MbGrid::cube
mutableprotected

Габаритный куб объекта.

Габаритный куб объекта рассчитывается только при запросе габарита объекта. Габаритный куб в конструкторе объекта и после модификации объекта принимает неопределенное значение.


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