allowed_collision_matrix.h
Go to the documentation of this file.
1 #ifndef TESSERACT_COMMON_ALLOWED_COLLISION_MATRIX_H
2 #define TESSERACT_COMMON_ALLOWED_COLLISION_MATRIX_H
3 
6 #include <boost/serialization/export.hpp>
7 #include <string>
8 #include <memory>
9 #include <Eigen/Core>
10 #include <unordered_map>
11 #include <tesseract_common/types.h>
13 
15 {
16 class access;
17 }
18 
20 {
21 struct Serialization;
22 
24  std::unordered_map<tesseract_common::LinkNamesPair, std::string, tesseract_common::PairHash>;
25 
26 bool operator==(const AllowedCollisionEntries& entries_1, const AllowedCollisionEntries& entries_2);
27 
29 {
30 public:
31  // LCOV_EXCL_START
32  EIGEN_MAKE_ALIGNED_OPERATOR_NEW
33  // LCOV_EXCL_STOP
34 
35  using Ptr = std::shared_ptr<AllowedCollisionMatrix>;
36  using ConstPtr = std::shared_ptr<const AllowedCollisionMatrix>;
37 
38  AllowedCollisionMatrix() = default;
40  virtual ~AllowedCollisionMatrix() = default;
45 
52  virtual void addAllowedCollision(const std::string& link_name1,
53  const std::string& link_name2,
54  const std::string& reason);
55 
63 
69  virtual void removeAllowedCollision(const std::string& link_name1, const std::string& link_name2);
70 
75  virtual void removeAllowedCollision(const std::string& link_name);
76 
83  virtual bool isCollisionAllowed(const std::string& link_name1, const std::string& link_name2) const;
84 
90 
96 
101  void reserveAllowedCollisionMatrix(std::size_t size);
102 
103  bool operator==(const AllowedCollisionMatrix& rhs) const;
104  bool operator!=(const AllowedCollisionMatrix& rhs) const;
105 
106 private:
108 
111  template <class Archive>
112  void serialize(Archive& ar, const unsigned int version); // NOLINT
113 };
114 
115 std::ostream& operator<<(std::ostream& os, const AllowedCollisionMatrix& acm);
116 } // namespace tesseract_common
117 
118 BOOST_CLASS_EXPORT_KEY(tesseract_common::AllowedCollisionMatrix)
119 
120 #endif // TESSERACT_SCENE_GRAPH_ALLOWED_COLLISION_MATRIX_H
tesseract_common
Definition: allowed_collision_matrix.h:19
tesseract_common::AllowedCollisionMatrix::isCollisionAllowed
virtual bool isCollisionAllowed(const std::string &link_name1, const std::string &link_name2) const
This checks if two links are allowed to be in collision.
Definition: allowed_collision_matrix.cpp:100
tesseract_common::AllowedCollisionMatrix::getAllAllowedCollisions
const AllowedCollisionEntries & getAllAllowedCollisions() const
Get all of the entries in the allowed collision matrix.
Definition: allowed_collision_matrix.cpp:77
tesseract_common::AllowedCollisionEntries
std::unordered_map< tesseract_common::LinkNamesPair, std::string, tesseract_common::PairHash > AllowedCollisionEntries
Definition: allowed_collision_matrix.h:24
types.h
Common Tesseract Types.
tesseract_common::AllowedCollisionMatrix::operator==
bool operator==(const AllowedCollisionMatrix &rhs) const
Definition: allowed_collision_matrix.cpp:116
tesseract_common::AllowedCollisionMatrix::serialize
void serialize(Archive &ar, const unsigned int version)
Definition: allowed_collision_matrix.cpp:126
tesseract_common::AllowedCollisionMatrix::insertAllowedCollisionMatrix
void insertAllowedCollisionMatrix(const AllowedCollisionMatrix &acm)
Inserts an allowable collision matrix ignoring duplicate pairs.
Definition: allowed_collision_matrix.cpp:109
tesseract_common::AllowedCollisionMatrix::operator=
AllowedCollisionMatrix & operator=(const AllowedCollisionMatrix &)=default
tesseract_common::AllowedCollisionMatrix::reserveAllowedCollisionMatrix
void reserveAllowedCollisionMatrix(std::size_t size)
Reserve space for the internal data storage.
Definition: allowed_collision_matrix.cpp:114
tesseract_common::AllowedCollisionMatrix::~AllowedCollisionMatrix
virtual ~AllowedCollisionMatrix()=default
macros.h
Common Tesseract Macros.
TESSERACT_COMMON_IGNORE_WARNINGS_PUSH
#define TESSERACT_COMMON_IGNORE_WARNINGS_PUSH
Definition: macros.h:71
tesseract_common::Serialization
Definition: serialization.h:97
tesseract_common::AllowedCollisionMatrix::Ptr
std::shared_ptr< AllowedCollisionMatrix > Ptr
Definition: allowed_collision_matrix.h:35
tesseract_common::AllowedCollisionMatrix::operator!=
bool operator!=(const AllowedCollisionMatrix &rhs) const
Definition: allowed_collision_matrix.cpp:123
tesseract_common::AllowedCollisionMatrix::ConstPtr
std::shared_ptr< const AllowedCollisionMatrix > ConstPtr
Definition: allowed_collision_matrix.h:36
tesseract_common::operator==
bool operator==(const AllowedCollisionEntries &entries_1, const AllowedCollisionEntries &entries_2)
Definition: allowed_collision_matrix.cpp:42
tesseract_common::AllowedCollisionMatrix::lookup_table_
AllowedCollisionEntries lookup_table_
Definition: allowed_collision_matrix.h:107
boost::serialization
Definition: allowed_collision_matrix.h:14
tesseract_common::AllowedCollisionMatrix::AllowedCollisionMatrix
AllowedCollisionMatrix()=default
tesseract_common::AllowedCollisionMatrix::removeAllowedCollision
virtual void removeAllowedCollision(const std::string &link_name1, const std::string &link_name2)
Remove disabled collision pair from allowed collision matrix.
Definition: allowed_collision_matrix.cpp:79
tesseract_common::AllowedCollisionMatrix::access
friend class boost::serialization::access
Definition: allowed_collision_matrix.h:109
TESSERACT_COMMON_IGNORE_WARNINGS_POP
#define TESSERACT_COMMON_IGNORE_WARNINGS_POP
Definition: macros.h:72
tesseract_common::AllowedCollisionMatrix
Definition: allowed_collision_matrix.h:28
tesseract_common::AllowedCollisionMatrix::clearAllowedCollisions
void clearAllowedCollisions()
Clears the list of allowed collisions, so that no collision will be allowed.
Definition: allowed_collision_matrix.cpp:107
tesseract_common::AllowedCollisionMatrix::addAllowedCollision
virtual void addAllowedCollision(const std::string &link_name1, const std::string &link_name2, const std::string &reason)
Disable collision between two collision objects.
Definition: allowed_collision_matrix.cpp:69
tesseract_common::operator<<
std::ostream & operator<<(std::ostream &os, const AllowedCollisionMatrix &acm)
Definition: allowed_collision_matrix.cpp:131


tesseract_common
Author(s): Levi Armstrong
autogenerated on Sun May 18 2025 03:01:40