change_collision_margins_command.cpp
Go to the documentation of this file.
1 
28 #include <boost/serialization/access.hpp>
29 #include <boost/serialization/nvp.hpp>
30 #include <boost/serialization/split_member.hpp>
32 
33 #include <tesseract_common/utils.h>
35 
36 namespace tesseract_environment
37 {
39 
41  : Command(CommandType::CHANGE_COLLISION_MARGINS), default_margin_(default_margin)
42 {
43 }
44 
46  CollisionMarginPairOverrideType pair_override_type)
48  , pair_margins_(std::move(pair_margins))
49  , pair_override_type_(pair_override_type)
50 {
51 }
52 
54  CollisionMarginPairData pair_margins,
55  CollisionMarginPairOverrideType pair_override_type)
57  , default_margin_(default_margin)
58  , pair_margins_(std::move(pair_margins))
59  , pair_override_type_(pair_override_type)
60 {
61 }
62 
64 
66 {
67  return pair_margins_;
68 }
69 
72 {
73  return pair_override_type_;
74 }
75 
77 {
78  bool equal = true;
79  equal &= Command::operator==(rhs);
80  equal &= default_margin_.has_value() == rhs.default_margin_.has_value();
81  if (!equal)
82  return equal;
83 
84  if (default_margin_.has_value() && rhs.default_margin_.has_value())
86 
87  equal &= pair_margins_ == rhs.pair_margins_;
89  return equal;
90 }
92 {
93  return !operator==(rhs);
94 }
95 
96 template <class Archive>
97 void ChangeCollisionMarginsCommand::load(Archive& ar, const unsigned int /*version*/)
98 {
99  ar& BOOST_SERIALIZATION_BASE_OBJECT_NVP(Command);
100  bool has_default_margin{ false };
101  ar& boost::serialization::make_nvp("has_default_margin", has_default_margin);
102  if (has_default_margin)
103  {
104  double default_margin{ 0 };
105  ar& boost::serialization::make_nvp("default_margin", default_margin);
106  default_margin_ = default_margin;
107  }
108  ar& BOOST_SERIALIZATION_NVP(pair_margins_);
109  ar& BOOST_SERIALIZATION_NVP(pair_override_type_);
110 }
111 
112 template <class Archive>
113 void ChangeCollisionMarginsCommand::save(Archive& ar, const unsigned int /*version*/) const
114 {
115  ar& BOOST_SERIALIZATION_BASE_OBJECT_NVP(Command);
116 
117  bool has_default_margin{ default_margin_.has_value() };
118  double default_margin{ 0 };
119  if (default_margin_.has_value())
120  default_margin = default_margin_.value();
121 
122  ar& boost::serialization::make_nvp("has_default_margin", has_default_margin);
123  ar& boost::serialization::make_nvp("default_margin", default_margin);
124  ar& BOOST_SERIALIZATION_NVP(pair_margins_);
125  ar& BOOST_SERIALIZATION_NVP(pair_override_type_);
126 }
127 
128 template <class Archive>
129 void ChangeCollisionMarginsCommand::serialize(Archive& ar, const unsigned int version)
130 {
131  boost::serialization::split_member(ar, *this, version);
132 }
133 } // namespace tesseract_environment
134 
137 BOOST_CLASS_EXPORT_IMPLEMENT(tesseract_environment::ChangeCollisionMarginsCommand)
tesseract_environment::Command::operator==
bool operator==(const Command &rhs) const
Definition: command.cpp:60
tesseract_environment::ChangeCollisionMarginsCommand::save
void save(Archive &ar, const unsigned int version) const
Definition: change_collision_margins_command.cpp:113
tesseract_environment
Definition: command.h:45
tesseract_environment::ChangeCollisionMarginsCommand::default_margin_
std::optional< double > default_margin_
Definition: change_collision_margins_command.h:76
tesseract_environment::ChangeCollisionMarginsCommand::operator==
bool operator==(const ChangeCollisionMarginsCommand &rhs) const
Definition: change_collision_margins_command.cpp:76
tesseract_environment::ChangeCollisionMarginsCommand::ChangeCollisionMarginsCommand
ChangeCollisionMarginsCommand()
Definition: change_collision_margins_command.cpp:38
tesseract_environment::Command
Definition: command.h:83
utils.h
tesseract_environment::ChangeCollisionMarginsCommand::pair_override_type_
CollisionMarginPairOverrideType pair_override_type_
Definition: change_collision_margins_command.h:78
tesseract_environment::ChangeCollisionMarginsCommand::load
void load(Archive &ar, const unsigned int version)
Definition: change_collision_margins_command.cpp:97
tesseract_common::almostEqualRelativeAndAbs
bool almostEqualRelativeAndAbs(const Eigen::Ref< const Eigen::VectorXd > &v1, const Eigen::Ref< const Eigen::VectorXd > &v2, const Eigen::Ref< const Eigen::VectorXd > &max_diff, const Eigen::Ref< const Eigen::VectorXd > &max_rel_diff)
tesseract_environment::CommandType::CHANGE_COLLISION_MARGINS
@ CHANGE_COLLISION_MARGINS
TESSERACT_SERIALIZE_ARCHIVES_INSTANTIATE
#define TESSERACT_SERIALIZE_ARCHIVES_INSTANTIATE(Type)
TESSERACT_COMMON_IGNORE_WARNINGS_PUSH
#define TESSERACT_COMMON_IGNORE_WARNINGS_PUSH
tesseract_environment::ChangeCollisionMarginsCommand::getDefaultCollisionMargin
std::optional< double > getDefaultCollisionMargin() const
Definition: change_collision_margins_command.cpp:63
tesseract_environment::ChangeCollisionMarginsCommand::operator!=
bool operator!=(const ChangeCollisionMarginsCommand &rhs) const
Definition: change_collision_margins_command.cpp:91
tesseract_environment::ChangeCollisionMarginsCommand::getCollisionMarginPairOverrideType
CollisionMarginPairOverrideType getCollisionMarginPairOverrideType() const
Definition: change_collision_margins_command.cpp:71
tesseract_common::CollisionMarginPairOverrideType
CollisionMarginPairOverrideType
tesseract_environment::ChangeCollisionMarginsCommand
Definition: change_collision_margins_command.h:49
serialization.h
tesseract_environment::ChangeCollisionMarginsCommand::getCollisionMarginPairData
CollisionMarginPairData getCollisionMarginPairData() const
Definition: change_collision_margins_command.cpp:65
TESSERACT_COMMON_IGNORE_WARNINGS_POP
tesseract_environment::ChangeCollisionMarginsCommand::pair_margins_
CollisionMarginPairData pair_margins_
Definition: change_collision_margins_command.h:77
tesseract_common::CollisionMarginPairData
change_collision_margins_command.h
macros.h
tesseract_environment::ChangeCollisionMarginsCommand::serialize
void serialize(Archive &ar, const unsigned int version)
Definition: change_collision_margins_command.cpp:129
tesseract_environment::CommandType
CommandType
Definition: command.h:47


tesseract_environment
Author(s): Levi Armstrong
autogenerated on Sun May 18 2025 03:02:21