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