Program Listing for File alignment_force.hpp

Return to documentation for file (cosm/apf2D/flocking/alignment_force.hpp)

#pragma once

/*******************************************************************************
 * Includes
 ******************************************************************************/
#include <vector>

#include "cosm/cosm.hpp"
#include "cosm/apf2D/boid.hpp"
#include "cosm/apf2D/flocking/config/alignment_force_config.hpp"

/*******************************************************************************
 * Namespaces/Decls
 ******************************************************************************/
namespace cosm::apf2D::flocking {

/*******************************************************************************
 * Class Definitions
 ******************************************************************************/
class alignment_force : public rer::client<alignment_force> {
 public:
  explicit alignment_force(const config::alignment_force_config* config);

  rmath::vector2d operator()(const boid& agent,
                             const std::vector<rmath::vector2d>& others) const;

 private:
  /* clang-format off */
  const double mc_max;
  /* clang-format on */
};

} /* namespace cosm::apf2D::flocking */