C3D Toolkit  Kernel - 110140, Vision - 2.5.0.24

Утилита расчета параметров пересечения и близости тел. Подробнее...

#include <cdet_utility.h>

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

cdet_item AddItem (const MbSolid &solid, const MbPlacement3D &place, cdet_app_item appItem=CDET_APP_NULL)
 Добавить твердое тело с заданным положением в набор для контроля столкновений. Подробнее...
 
void RemoveItem (cdet_item cdItem)
 Удалить геометрический объект из набора для контроля столкновений.
 
void Reposition (cdet_item, const MbPlacement3D &)
 Поменять текущее положение геометрического объекта в наборе.
 
cdet_result CheckCollisions (cdet_query &)
 Проверить соударения между геометрическими объектами набора. Подробнее...
 
cdet_result CheckCollisions ()
 Проверить соударения между геометрическими объектами набора. Подробнее...
 
cdet_app_item AppItem (cdet_item cdItem) const
 Выдать дескриптор клиентского приложения по дескриптору контрольного набора столкновений.

 
cdet_item AddSolid (const MbLumpAndFaces &)
 Добавить модель тела, как набор граней и решеток. Подробнее...
 
cdet_item AddSolid (const MbSolid &, const MbPlacement3D &, cdet_app_item=CDET_APP_NULL)
 Добавить тело с заданным положением.
 
cdet_item AddComponent (cdet_app_item)
 Добавить новый компонент контроля соударений и параметров близости.
 
cdet_item AddInstance (cdet_item compItem, cdet_item solidItem, const MbPlacement3D &place)
 Добавить новый экземпляр тела в компонент контроля соударений. Подробнее...
 
void RemoveSolid (cdet_item)
 Удалить твердотельную модель из детектора столкновений.
 
size_t Count () const
 Выдать количество добавленных твердотельных моделей.
 
size_t SolidIndex (cdet_item cItem) const
 Номер твердотельной модели, зарегистрированной в детекторе.
 
cdet_result DistanceQuery (MbProximityParameters &) const
 Вычисление минимального расстояния между объектами (см.функцию SetDistanceTracking)
 
cdet_result DistanceQuery (cdet_item, cdet_item, MbProximityParameters &) const
 Вычисление минимального расстояния между объектами
 
void FlushSolids ()
 Выключить из рассмотрения все модели.
 
cdet_item GetHRepSolid (const MbLumpAndFaces &) const
 Выдать иерархическое представление тела (NULL = отсутствие такового в списке).
 
void SetTouchTolerance (double lTol)
 Задать барьер для отличия касания от пересечения.
 
void SetApproxCollisionQuery (bool ff)
 Вкл./выкл. приближенного вычисления пересечений тел
 
void SetApproxDistanceComputation (bool ff)
 Вкл./выкл. приближенного вычисления параметров близости - по триангуляции
 
void SetDistanceTracking (const MbLumpAndFaces &, const MbLumpAndFaces &)
 Назначить объекты для отслеживания между ними расстояния.
 
void SetPlacement (size_t solIdx, const MbPlacement3D &)
 Обновить текущее положение тела с индексом solIdx.
 

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

Утилита расчета параметров пересечения и близости тел.

Предоставляет функциональность Collision Detection для взаимодействия с приложением САПР.

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

Методы

◆ AddItem()

cdet_item MbCollisionDetectionUtility::AddItem ( const MbSolid solid,
const MbPlacement3D place,
cdet_app_item  appItem = CDET_APP_NULL 
)

Добавить твердое тело с заданным положением в набор для контроля столкновений.

Возвращает
Дескриптор объекта для контроля столкновений.

◆ CheckCollisions() [1/2]

cdet_result MbCollisionDetectionUtility::CheckCollisions ( cdet_query &  )

Проверить соударения между геометрическими объектами набора.

Возвращает
Функция вернет CDET_RESULT_Intersected при обранужении хотя бы одной коллизии.

◆ CheckCollisions() [2/2]

cdet_result MbCollisionDetectionUtility::CheckCollisions ( )
inline

Проверить соударения между геометрическими объектами набора.

Возвращает
Функция вернет CDET_RESULT_Intersected при обранужении хотя бы одной коллизии.

◆ AddSolid()

cdet_item MbCollisionDetectionUtility::AddSolid ( const MbLumpAndFaces )

Добавить модель тела, как набор граней и решеток.

Возвращает
Внутренняя структура данных представляющая добавленную модель.

◆ AddInstance()

cdet_item MbCollisionDetectionUtility::AddInstance ( cdet_item  compItem,
cdet_item  solidItem,
const MbPlacement3D place 
)

Добавить новый экземпляр тела в компонент контроля соударений.

Аргументы
[in]compItem- Компонент, которому будет принадлежать экземпляр. Оригинальное тело, добавленное методом AddSolid, по которому изготавливается экземпляр. Положение, которое занимает тело экземпляра в глобальной СК. Новый экземпляр тела, зарегистрированный с аппарате контроля соударений. Значение compItem может быть нулевым. Значит просто вставка не будет принадлежать ни одному компоненту.

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