Program Listing for File interference_metrics.hpp

Return to documentation for file (cosm/spatial/metrics/interference_metrics.hpp)

#pragma once

/*******************************************************************************
 * Includes
 ******************************************************************************/
#include <boost/optional.hpp>

#include "rcppsw/metrics/base_metrics.hpp"
#include "rcppsw/types/timestep.hpp"
#include "rcppsw/math/vector3.hpp"

#include "cosm/cosm.hpp"

/*******************************************************************************
 * Namespaces
 ******************************************************************************/
namespace cosm::spatial::metrics {

/*******************************************************************************
 * Class Definitions
 ******************************************************************************/
class interference_metrics : public virtual rmetrics::base_metrics {
 public:
  interference_metrics(void) = default;
  ~interference_metrics(void) override = default;

  virtual bool exp_interference(void) const = 0;

  virtual bool entered_interference(void) const = 0;

  virtual bool exited_interference(void) const = 0;

  virtual boost::optional<rtypes::timestep> interference_duration(void) const = 0;

  virtual boost::optional<rmath::vector3z> interference_loc3D(void) const = 0;

};

} /* namespace cosm::spatial::metrics */