Базовый класс для всех коллайдеров Базовый класс для всех коллайдеров, все функции являются чисто виртуальными Коллайдер выстраивает параметризированную сцену, состоящую из произвольного числа роботов, потом по состоянию возвращает флаг, соответствует ли это состояние коллизии моделей сцены. Состояния передаются в качестве матриц преобразований из текущей СК звена в следующую. Класс работает по следующему принципу: сначала мы задаём состояние кооллайдеру, а потом либо запускаем его рисование, либо проверку коллизий, одновременно эти два дейсвтвия выполняться не могут. При этом он оперирует только 3D объектами и их матрицами преобразований
More...
#include <collider.h>
|
virtual void | init (std::vector< std::vector< std::string >> groupedModelPaths, bool subColliders)=0 |
|
virtual void | paint (std::vector< Eigen::Matrix4d > matrices, bool onlyRobot)=0 |
|
virtual bool | isCollided (std::vector< Eigen::Matrix4d > matrices)=0 |
|
virtual bool | isCollided (std::vector< Eigen::Matrix4d > matrices, std::vector< int > robotIndexes)=0 |
| проверка соответствует ли состояние сцены столкновению проверка соответствует ли состояние сцены (список матриц преобразований звеньев только для задействованных объектов) столкновению при этом учитываются только объекты с индексами из robotIndexes. More...
|
|
virtual std::vector< float > | getPoints (std::vector< Eigen::Matrix4d > matrices)=0 |
|
virtual std::vector< double > | getBoxCoords (unsigned long robotNum, std::vector< Eigen::Matrix4d > matrices)=0 |
| получить координаты куба, ограничивающего объём робота получить координаты куба, ограничивающего объём, в котором помещён робот с индексом robotNum, если задать его звеньям матрицы трансформации из списка всех матриц трансформации звеньев сцены, возвращает список из шести координат: min.x(), min.y(), min.z(), max.x(), max.y(), max.z() More...
|
|
virtual std::vector< double > | getBoxPoints (unsigned long robotNum, std::vector< Eigen::Matrix4d > matrices)=0 |
| получить точки куба, ограничивающего объём робота получить точки куба, ограничивающего объём, в котором помещён робот с индексом robotNum, если задать его звеньям матрицы трансформации из списка всех матриц трансформации звеньев сцены, возвращает список из точек, по которым построится куб линиями GL_LINES ax, ay, az, bx, by, bz. More...
|
|
Базовый класс для всех коллайдеров Базовый класс для всех коллайдеров, все функции являются чисто виртуальными Коллайдер выстраивает параметризированную сцену, состоящую из произвольного числа роботов, потом по состоянию возвращает флаг, соответствует ли это состояние коллизии моделей сцены. Состояния передаются в качестве матриц преобразований из текущей СК звена в следующую. Класс работает по следующему принципу: сначала мы задаём состояние кооллайдеру, а потом либо запускаем его рисование, либо проверку коллизий, одновременно эти два дейсвтвия выполняться не могут. При этом он оперирует только 3D объектами и их матрицами преобразований
◆ getBoxCoords()
virtual std::vector<double> bmpf::Collider::getBoxCoords |
( |
unsigned long |
robotNum, |
|
|
std::vector< Eigen::Matrix4d > |
matrices |
|
) |
| |
|
pure virtual |
получить координаты куба, ограничивающего объём робота получить координаты куба, ограничивающего объём, в котором помещён робот с индексом robotNum, если задать его звеньям матрицы трансформации из списка всех матриц трансформации звеньев сцены, возвращает список из шести координат: min.x(), min.y(), min.z(), max.x(), max.y(), max.z()
- Parameters
-
robotNum | номер робота в списке роботов |
matrices | список матриц преобразований звеньев |
- Returns
- получить координаты куба, ограничивающего объём робота
Implemented in bmpf::SolidSyncCollider, and bmpf::SolidCollider.
◆ getBoxPoints()
virtual std::vector<double> bmpf::Collider::getBoxPoints |
( |
unsigned long |
robotNum, |
|
|
std::vector< Eigen::Matrix4d > |
matrices |
|
) |
| |
|
pure virtual |
получить точки куба, ограничивающего объём робота получить точки куба, ограничивающего объём, в котором помещён робот с индексом robotNum, если задать его звеньям матрицы трансформации из списка всех матриц трансформации звеньев сцены, возвращает список из точек, по которым построится куб линиями GL_LINES ax, ay, az, bx, by, bz.
- Parameters
-
robotNum | номер робота в списке роботов |
matrices | список матриц преобразований звеньев |
- Returns
- получить точки куба, ограничивающего объём робота
Implemented in bmpf::SolidCollider, and bmpf::SolidSyncCollider.
◆ getPoints()
virtual std::vector<float> bmpf::Collider::getPoints |
( |
std::vector< Eigen::Matrix4d > |
matrices | ) |
|
|
pure virtual |
возвращает список всех координат полигона (вектор нормали и координаты вершины): nx, ny, nz, ax, ay, az, bx, by, bz, cx, cy, cz по списку матриц состояния
- Parameters
-
matrices | список матриц преобразований звеньев |
- Returns
- возвращает список всех координат полигона
Implemented in bmpf::SolidCollider, and bmpf::SolidSyncCollider.
◆ init()
virtual void bmpf::Collider::init |
( |
std::vector< std::vector< std::string >> |
groupedModelPaths, |
|
|
bool |
subColliders |
|
) |
| |
|
pure virtual |
инициализация коллайдера
- Parameters
-
groupedModelPaths | вектор векторов путей к моделям. это связано с тем, что сцена строится на основе набора описаний роботов каждый из них содержит список путей к своим моделям |
subColliders | флаг, нудно ли составить виртуальные сцены для каждого подмножества объектов сцены |
Implemented in bmpf::SolidSyncCollider, and bmpf::SolidCollider.
◆ isCollided() [1/2]
virtual bool bmpf::Collider::isCollided |
( |
std::vector< Eigen::Matrix4d > |
matrices | ) |
|
|
pure virtual |
проверка соответствует ли состояние сцены столкновению
- Parameters
-
matrices | список матриц преобразований звеньев |
- Returns
- флаг, соответствует ли состояние сцены столкновению
Implemented in bmpf::SolidCollider, and bmpf::SolidSyncCollider.
◆ isCollided() [2/2]
virtual bool bmpf::Collider::isCollided |
( |
std::vector< Eigen::Matrix4d > |
matrices, |
|
|
std::vector< int > |
robotIndexes |
|
) |
| |
|
pure virtual |
проверка соответствует ли состояние сцены столкновению проверка соответствует ли состояние сцены (список матриц преобразований звеньев только для задействованных объектов) столкновению при этом учитываются только объекты с индексами из robotIndexes.
- Parameters
-
matrices | список матриц преобразований звеньев |
robotIndexes | индексы роботов |
- Returns
- флаг, соответствует ли состояние сцены столкновению
Implemented in bmpf::SolidSyncCollider, and bmpf::SolidCollider.
◆ paint()
virtual void bmpf::Collider::paint |
( |
std::vector< Eigen::Matrix4d > |
matrices, |
|
|
bool |
onlyRobot |
|
) |
| |
|
pure virtual |
рисование сцены коллайдера
- Parameters
-
matrices | список матриц преобразования из текущей СК звена в следующую |
onlyRobot | флаг, нужно ли рисовать только роботов или ещё и статические объекты сцены |
Implemented in bmpf::SolidCollider, and bmpf::SolidSyncCollider.
The documentation for this class was generated from the following file: