forked from pz4kybsvg/Conception
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
39 lines
1.2 KiB
39 lines
1.2 KiB
#include "drake/geometry/geometry_version.h"
|
|
|
|
namespace drake {
|
|
namespace geometry {
|
|
|
|
GeometryVersion::GeometryVersion()
|
|
: proximity_version_id_(RoleVersionId::get_new_id()),
|
|
perception_version_id_(RoleVersionId::get_new_id()),
|
|
illustration_version_id_(RoleVersionId::get_new_id()) {}
|
|
|
|
bool GeometryVersion::IsSameAs(const GeometryVersion& other, Role role) const {
|
|
switch (role) {
|
|
case Role::kUnassigned:
|
|
throw std::logic_error(
|
|
"Trying to compare the version of unassigned roles.");
|
|
case Role::kProximity:
|
|
return proximity_version_id_ == other.proximity_version_id_;
|
|
case Role::kIllustration:
|
|
return illustration_version_id_ == other.illustration_version_id_;
|
|
case Role::kPerception:
|
|
return perception_version_id_ == other.perception_version_id_;
|
|
}
|
|
DRAKE_UNREACHABLE();
|
|
}
|
|
|
|
void GeometryVersion::modify_proximity() {
|
|
proximity_version_id_ = RoleVersionId::get_new_id();
|
|
}
|
|
|
|
void GeometryVersion::modify_perception() {
|
|
perception_version_id_ = RoleVersionId::get_new_id();
|
|
}
|
|
|
|
void GeometryVersion::modify_illustration() {
|
|
illustration_version_id_ = RoleVersionId::get_new_id();
|
|
}
|
|
} // namespace geometry
|
|
} // namespace drake
|