Buran Motion Planning Framework
solid_sync_collider.h
1 #pragma once
2 
3 #include <mutex>
4 #include "solid_collider.h"
5 
6 
7 namespace bmpf {
20  class SolidSyncCollider : public Collider {
21  public:
22 
26  const static int MAX_MUTES_CNT = 60;
27 
32  explicit SolidSyncCollider(unsigned int mutexCnt);
33 
43  void init(std::vector<std::vector<std::string>> groupedModelPaths, bool subColliders) override;
44 
52  void paint(std::vector<Eigen::Matrix4d> matrices, bool onlyRobot) override {
53  _colliders.front()->paint(matrices, onlyRobot);
54  }
55 
61  bool isCollided(std::vector<Eigen::Matrix4d> matrices) override;
62 
69  std::vector<float> getPoints(std::vector<Eigen::Matrix4d> matrices) override {
70  return _colliders.front()->getPoints(matrices);
71  }
72 
84  std::vector<double> getBoxCoords(unsigned long robotNum, std::vector<Eigen::Matrix4d> matrices) override {
85  return _colliders.front()->getBoxCoords(robotNum, matrices);
86  }
87 
100  std::vector<double> getBoxPoints(unsigned long robotNum, std::vector<Eigen::Matrix4d> matrices) override {
101  return _colliders.front()->getBoxPoints(robotNum, matrices);
102  }
103 
104 
114  bool isCollided(std::vector<Eigen::Matrix4d> matrices, std::vector<int> robotIndexes) override;
115 
116  private:
117  // кол-во мьютексов
118  unsigned int _mutexCnt{};
119  // список коллайдеров
120  std::vector<std::shared_ptr<SolidCollider>> _colliders;
121  // массив мьютексов
122  std::mutex _colliderMutexes[MAX_MUTES_CNT];
123 
124  };
125 
126 }
bmpf::Collider
Базовый класс для всех коллайдеров Базовый класс для всех коллайдеров, все функции являются чисто вир...
Definition: collider.h:23
bmpf::SolidSyncCollider::init
void init(std::vector< std::vector< std::string >> groupedModelPaths, bool subColliders) override
Definition: solid_sync_collider.cpp:37
bmpf::SolidSyncCollider
Класс класс многопоточного коллайдера Класс класс многопоточного коллайдера. Он является надстройкой ...
Definition: solid_sync_collider.h:20
bmpf::SolidSyncCollider::MAX_MUTES_CNT
const static int MAX_MUTES_CNT
Definition: solid_sync_collider.h:26
bmpf::SolidSyncCollider::getBoxPoints
std::vector< double > getBoxPoints(unsigned long robotNum, std::vector< Eigen::Matrix4d > matrices) override
получить точки куба, ограничивающего объём робота получить точки куба, ограничивающего объём,...
Definition: solid_sync_collider.h:100
bmpf::SolidSyncCollider::getBoxCoords
std::vector< double > getBoxCoords(unsigned long robotNum, std::vector< Eigen::Matrix4d > matrices) override
получить координаты куба, ограничивающего объём робота получить координаты куба, ограничивающего объё...
Definition: solid_sync_collider.h:84
bmpf::SolidSyncCollider::SolidSyncCollider
SolidSyncCollider(unsigned int mutexCnt)
Definition: solid_sync_collider.cpp:11
bmpf::SolidSyncCollider::getPoints
std::vector< float > getPoints(std::vector< Eigen::Matrix4d > matrices) override
Definition: solid_sync_collider.h:69
bmpf::SolidSyncCollider::isCollided
bool isCollided(std::vector< Eigen::Matrix4d > matrices) override
Definition: solid_sync_collider.cpp:49
bmpf::SolidSyncCollider::paint
void paint(std::vector< Eigen::Matrix4d > matrices, bool onlyRobot) override
Definition: solid_sync_collider.h:52