Program Listing for File kinematics_metrics.hpp
↰ Return to documentation for file (cosm/kin/metrics/kinematics_metrics.hpp
)
#pragma once
/*******************************************************************************
* Includes
******************************************************************************/
#include <boost/optional.hpp>
#include "rcppsw/metrics/base_metrics.hpp"
#include "rcppsw/math/vector3.hpp"
#include "rcppsw/spatial/euclidean_dist.hpp"
#include "rcppsw/types/type_uuid.hpp"
#include "rcppsw/metrics/context.hpp"
#include "cosm/cosm.hpp"
#include "cosm/kin/twist.hpp"
#include "cosm/kin/pose.hpp"
/*******************************************************************************
* Namespaces
******************************************************************************/
namespace cosm::kin::metrics {
/*******************************************************************************
* Class Definitions
******************************************************************************/
class kinematics_metrics : virtual public rmetrics::base_metrics {
public:
kinematics_metrics(void) = default;
~kinematics_metrics(void) override = default;
virtual boost::optional<rspatial::euclidean_dist> traveled(
const rmetrics::context& ctx) const = 0;
virtual boost::optional<ckin::twist> twist(
const rmetrics::context& ctx) const = 0;
virtual ckin::pose pose(void) const = 0;
virtual const rtypes::type_uuid& id(void) const = 0;
};
} /* namespace cosm::kin::metrics */