Buran Motion Planning Framework
Public Member Functions | List of all members
bmpf::SolidCollider Class Reference

Класс однопоточного коллайдера Класс однопоточного коллайдера. Класс работает по следующему принципу: сначала мы задаём состояние кооллайдеру, а потом либо запускаем его рисование, либо проверку коллизий, одновременно эти два дейсвтвия выполняться не могут. При этом он оперирует только 3D объектами и их матрицами преобразований More...

#include <solid_collider.h>

Inheritance diagram for bmpf::SolidCollider:
Inheritance graph
[legend]
Collaboration diagram for bmpf::SolidCollider:
Collaboration graph
[legend]

Public Member Functions

 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...
 

Detailed Description

Класс однопоточного коллайдера Класс однопоточного коллайдера. Класс работает по следующему принципу: сначала мы задаём состояние кооллайдеру, а потом либо запускаем его рисование, либо проверку коллизий, одновременно эти два дейсвтвия выполняться не могут. При этом он оперирует только 3D объектами и их матрицами преобразований

Constructor & Destructor Documentation

◆ SolidCollider()

bmpf::SolidCollider::SolidCollider ( )
default

Конструктор по умолчанию

◆ ~SolidCollider()

SolidCollider::~SolidCollider ( )
virtual

Деструктор

Member Function Documentation

◆ 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: