C3D Kernel  104598
Открытые члены | Защищенные члены

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

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

Полный список членов класса

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

virtual MbePrimitiveType IsA () const
virtual MbExactGridDuplicate (MbRegDuplicate *iReg=NULL) const
 Создать копию примитива.
virtual void Transform (const MbMatrix3D &matr)
 Преобразовать примитив согласно матрице.
virtual void Move (const MbVector3D &to)
 Сдвинуть примитив вдоль вектора.
virtual void Rotate (const MbAxis3D &axis, double angle)
 Повернуть примитив вокруг оси на заданный угол.
virtual void AddYourGabaritTo (MbCube &r) const
 Расширить присланный габаритный куб так, чтобы он включал в себя данный объект.
virtual double DistanceToPoint (const MbCartPoint3D &pnt) const
 Вычислить расстояние до точки.
virtual double DistanceToLine (const MbAxis3D &axis, double maxDistance, double &t) const
 Вычислить расстояние до оси.
virtual void GetProperties (MbProperties &)
 Выдать свойства объекта.
virtual void SetProperties (const MbProperties &)
 Записать свойства объекта.
virtual size_t PointsCount () const
 Выдать количество точек.
virtual size_t NormalsCount () const
 Выдать количество нормалей.
virtual size_t ParamsCount () const
 Выдать количество параметров.
virtual size_t EscortsCount () const
 Выдать количество значений.
virtual ptrdiff_t PointsMaxIndex () const
 Выдать количество точек минус 1 (максимальный индекс).
virtual ptrdiff_t NormalsMaxIndex () const
 Выдать количество нормалей минус 1 (максимальный индекс).
virtual ptrdiff_t ParamsMaxIndex () const
 Выдать количество параметров минус 1 (максимальный индекс).
virtual void AddPoint (const MbCartPoint &p2D, const MbCartPoint3D &p3D, const MbVector3D &n3D)
 Добавить в триангуляцию параметры, точку и нормаль триангулируемой поверхности в точке.
virtual void AddPoint (const MbCartPoint &p2D, const MbCartPoint3D &p3D)
 Добавить в триангуляцию параметры и точку.
virtual void AddPoint (const MbCartPoint3D &p3D, const MbVector3D &n3D)
 Добавить в триангуляцию точку и нормаль в точке.
virtual void AddPoint (const MbCartPoint3D &p3D)
 Добавить в триангуляцию точку.
virtual void AddNormal (const MbVector3D &n3D)
 Добавить в триангуляцию нормаль.
virtual void AddParam (const MbCartPoint &p2D)
 Добавить в триангуляцию параметры триангулируемой поверхности.
virtual void AddPoint (const MbFloatPoint &p2D, const MbFloatPoint3D &p3D, const MbFloatVector3D &n3D)
 Добавить в триангуляцию параметры, точку и нормаль триангулируемой поверхности в точке.
virtual void AddPoint (const MbFloatPoint &p2D, const MbFloatPoint3D &p3D)
 Добавить в триангуляцию параметры и точку.
virtual void AddPoint (const MbFloatPoint3D &p3D, const MbFloatVector3D &n3D)
 Добавить в триангуляцию точку и нормаль в точке.
virtual void AddPoint (const MbFloatPoint3D &p3D)
 Добавить в триангуляцию точку.
virtual void AddNormal (const MbFloatVector3D &n3D)
 Добавить в триангуляцию нормаль.
virtual void AddParam (const MbFloatPoint &p2D)
 Добавить в триангуляцию параметры триангулируемой поверхности.
template<class PointsVector >
void AddPoints (const PointsVector &pnts)
template<class NormalsVector >
void AddNormals (const NormalsVector &nrms)
template<class ParamsVector >
void AddParams (const ParamsVector &prms)
virtual void AddEscorts (const std::vector< uint32 > &scores)
 Добавить в коллекцию данных.
virtual void GetPoint (size_t i, MbCartPoint3D &p) const
 Выдать точку по её номеру.
virtual void GetNormal (size_t i, MbVector3D &n) const
 Выдать нормаль по её номеру.
virtual void GetParam (size_t i, MbCartPoint &p) const
 Выдать параметр по его номеру.
virtual const uint32 & GetEscort (size_t i) const
 Выдать дополнительную информацию по её номеру.
virtual void GetPoint (size_t i, MbFloatPoint3D &p) const
 Выдать точку по её номеру.
virtual void GetNormal (size_t i, MbFloatVector3D &n) const
 Выдать нормаль по её номеру.
virtual void GetParam (size_t i, MbFloatPoint &p) const
 Выдать параметр по его номеру.
const MbCartPoint3DGetPoint (size_t i) const
const MbVector3DGetNormal (size_t i) const
const MbCartPointGetParam (size_t i) const
virtual void SetPoint (size_t i, const MbCartPoint3D &p)
 Установить точку с заданным номером.
virtual void SetNormal (size_t i, const MbVector3D &n)
 Установить нормаль с заданным номером.
virtual void SetParam (size_t i, const MbCartPoint &p)
 Установить параметр с заданным номером.
virtual void SetEscort (size_t i, const uint32 &e)
 Установить дополнительную информацию по её номеру.
virtual void PointRemove (size_t i)
 Удалить точку с заданным номером.
virtual void NormalRemove (size_t i)
 Удалить нормаль с заданным номером.
virtual void ParamRemove (size_t i)
 Удалить параметры поверхности с заданным номером.
virtual void PointsDelete ()
 Удалить точки.
virtual void NormalsDelete ()
 Удалить нормали.
virtual void PapamsDelete ()
 Удалить параметры.
virtual void EscortsDelete ()
 Удалить дополнительную информацию.
virtual bool GetTriangleParams (size_t i, MbCartPoint &r0, MbCartPoint &r1, MbCartPoint &r2) const
virtual bool GetTrianglePoints (size_t i, MbCartPoint3D &p0, MbCartPoint3D &p1, MbCartPoint3D &p2) const
virtual bool GetTrianglePoints (size_t i, MbFloatPoint3D &p0, MbFloatPoint3D &p1, MbFloatPoint3D &p2) const
virtual bool GetTriangleNormals (size_t i, MbVector3D &n0, MbVector3D &n1, MbVector3D &n2) const
virtual bool GetTriangleNormals (size_t i, MbFloatVector3D &n0, MbFloatVector3D &n1, MbFloatVector3D &n2) const
virtual bool GetQuadrangleParams (size_t i, MbCartPoint &r0, MbCartPoint &r1, MbCartPoint &r2, MbCartPoint &r3) const
virtual bool GetQuadranglePoints (size_t i, MbCartPoint3D &p0, MbCartPoint3D &p1, MbCartPoint3D &p2, MbCartPoint3D &p3) const
virtual bool GetQuadranglePoints (size_t i, MbFloatPoint3D &p0, MbFloatPoint3D &p1, MbFloatPoint3D &p2, MbFloatPoint3D &n3) const
virtual bool GetQuadrangleNormals (size_t i, MbVector3D &n0, MbVector3D &n1, MbVector3D &n2, MbVector3D &n3) const
virtual bool GetQuadrangleNormals (size_t i, MbFloatVector3D &n0, MbFloatVector3D &n1, MbFloatVector3D &n2, MbFloatVector3D &n3) const
virtual bool GetSingleNormal (MbVector3D &) const
virtual bool GetSingleNormal (MbFloatVector3D &) const
virtual void SynchronizNormals ()
 Если количество точек больше количества нормалей, то добавить недостающие нормали (только для плоской триангуляции).
template<class ParamsVector >
void GetParams (ParamsVector &paramsVector) const
template<class PointsVector >
void GetPoints (PointsVector &pointsVector) const
template<class NormalsVector >
void GetNormals (NormalsVector &normalsVector) const
virtual void AddRect (MbRect &rect) const
 Расширить присланный габаритный прямоугольник так, чтобы он включал в себя проекцию данного объекта на глобальную плоскость XY.
virtual void AddCube (MbCube &r) const
 Расширить присланный габаритный куб так, чтобы он включал в себя данный объект.
bool TriangleIntersectRect (size_t i, MbRect &rect) const
 Определить, пересекается ли проекция на глобальную плоскость XY треугольника с заданным номером с присланным прямоугольником.
void TriangleGetGabRect (size_t i, MbRect &rect) const
 Рассчитать габаритный прямоугольник проекции на глобальную плоскость XY треугольника с заданным номером.
bool QuadrangleIntersectRect (size_t i, MbRect &rect) const
 Определить, пересекается ли проекция на глобальную плоскость XY четырёхугольника с заданным номером с присланным прямоугольником.
void QuadrangleGetGabRect (size_t i, MbRect &rect) const
 Рассчитать габаритный прямоугольник проекции на глобальную плоскость XY четырёхугольника с заданным номером.
virtual MbeItemLocation GetLocation (const MbPlacement3D &pl, double eps, bool onlyInItem=false) const
 Определить положение объекта относительно плоскости.
virtual bool InsideLocation (const MbPlacement3D &place, MbRect &rect, double eps) const
 Определить положение объекта относительно трубы.
virtual void SetVista (const MbCartPoint3D &vista)
 Преобразовать триангуляцию так, чтобы её параллельная проекция выглядела как центральная проекция, наблюдаемая из заданной точки vista.
virtual void DeleteVista (const MbCartPoint3D &vista)
 Отменить преобразование триангуляцию для центральной проекции, наблюдаемой из заданной точки vista.
virtual void ParamsReserve (size_t n)
 Зарезервировать память для контейнера параметров.
virtual void PointsReserve (size_t n)
 Зарезервировать память для контейнера точек.
virtual void NormalsReserve (size_t n)
 Зарезервировать память для контейнера нормалей.
virtual void EscordsReserve (size_t n)
 Зарезервировать память для контейнера параметров.
virtual void ReserveParamsPoints (size_t n)
 Зарезервировать память для контейнеров.
virtual void ReservePointsNormals (size_t n)
 Зарезервировать память для контейнеров.
virtual void ReserveParamsPointsNormals (size_t n)
 Зарезервировать память для контейнеров.
virtual bool RemoveRedundantPoints (bool deleteNormals, double epsilon=LENGTH_EPSILON)
 Удалить дублирующие с заданной точностью друг друга точки.
virtual void Flush ()
 Удалить всю триангуляцию без освобождения памяти, занятую контейнерами.
virtual void HardFlush ()
 Удалить всю триангуляцию и освободить память.
virtual void Adjust ()
 Освободить лишнюю память.
virtual size_t SizeOf () const
 Выдать размер занимаемой памяти.
virtual void Reverse ()
 Инвертировать последовательность вершин треугольников и четырехугольников.
virtual bool IsSame (const MbGrid &init, double eps) const
 Являются ли объекты равными?
virtual void Init (const MbGrid &grid)
virtual const MbCartPoint3DGetExactPointsAddr () const
 Выдать адрес начала массива.
virtual const MbVector3DGetExactNormalsAddr () const
 Выдать адрес начала массива.
virtual const MbCartPointGetExactParamsAddr () const
 Выдать адрес начала массива.
virtual const MbFloatPoint3DGetFloatPointsAddr () const
 Выдать адрес начала массива.
virtual const MbFloatVector3DGetFloatNormalsAddr () const
 Выдать адрес начала массива.
virtual const MbFloatPointGetFloatParamsAddr () const
 Выдать адрес начала массива.

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

 MbExactGrid (const MbExactGrid &init)
 MbExactGrid (const MbExactGrid &init, MbRegDuplicate *iReg)

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

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


Методы

virtual MbExactGrid& MbExactGrid::Duplicate ( MbRegDuplicate iReg = NULL) const [virtual]

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

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

Замещает MbGrid.

virtual void MbExactGrid::Transform ( const MbMatrix3D matr) [virtual]

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

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

Замещает MbGrid.

virtual void MbExactGrid::Move ( const MbVector3D to) [virtual]

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

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

Замещает MbGrid.

virtual void MbExactGrid::Rotate ( const MbAxis3D axis,
double  angle 
) [virtual]

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

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

Замещает MbGrid.

virtual MbeItemLocation MbExactGrid::GetLocation ( const MbPlacement3D pl,
double  eps,
bool  onlyInItem = false 
) const [virtual]

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

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

Замещает MbGrid.

virtual bool MbExactGrid::InsideLocation ( const MbPlacement3D place,
MbRect rect,
double  eps 
) const [virtual]

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

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

Замещает MbGrid.


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