4 #include <MT_Quaternion.h>
12 #include "base/collider.h"
46 void init(std::vector<std::vector<std::string>> groupedModelPaths,
bool subCollider)
override;
55 void paint(std::vector<Eigen::Matrix4d> matrices,
bool onlyRobot)
override;
62 bool isCollided(std::vector<Eigen::Matrix4d> matrices)
override;
70 std::vector<float>
getPoints(std::vector<Eigen::Matrix4d> matrices)
override;
83 std::vector<double>
getBoxCoords(
unsigned long robotNum, std::vector<Eigen::Matrix4d> matrices)
override;
94 bool isCollided(std::vector<Eigen::Matrix4d> matrices, std::vector<int> robotIndexes)
override;
108 std::vector<double>
getBoxPoints(
unsigned long robotNum, std::vector<Eigen::Matrix4d> matrices)
override;
122 static std::vector<std::vector<std::string>> _getSubGroupedModelPaths(
123 const std::vector<std::vector<std::string>> &groupedModelPaths,
const std::vector<int> &indexes
134 void _populateColliderMap(
const std::vector<std::vector<std::string>> &groupedModelPaths) {
135 _populateColliderMap(groupedModelPaths, {}, 0, 0);
147 void _populateColliderMap(
148 const std::vector<std::vector<std::string>> &groupedModelPaths,
149 std::vector<int> indexes,
int pos,
int val
156 void _makeFree() { _setTransformMutex.unlock(); };
169 void _setTransformMatrices(
unsigned long robotNum, std::vector<Eigen::Matrix4d> matrices);
180 void _setTransformMatrices(std::vector<Eigen::Matrix4d> matrices);
188 static double *_eigenToDouble(Eigen::Matrix4d m);
200 bool _isSingleObject{};
205 std::vector<std::pair<long, long>> _objectIndexRanges;
210 DT_SceneHandle _scene{};
214 std::vector<std::shared_ptr<Solid3Object>> _links;
220 std::vector<std::vector<std::shared_ptr<Solid3Object>>> _groupedLinks;
224 std::mutex _setTransformMutex;
229 std::map<std::vector<int>, std::shared_ptr<SolidCollider>> _collidersMap;