Program Listing for File base_block_pickup.hpp
↰ Return to documentation for file (cosm/controller/operations/base_block_pickup.hpp
)
#pragma once
/*******************************************************************************
* Includes
******************************************************************************/
#include "rcppsw/types/type_uuid.hpp"
#include "rcppsw/types/timestep.hpp"
#include "rcppsw/er/client.hpp"
#include "cosm/controller/block_carrying_controller.hpp"
/*******************************************************************************
* Namespaces
******************************************************************************/
namespace cosm::controller::operations {
/*******************************************************************************
* Class Definitions
******************************************************************************/
class base_block_pickup : public rer::client<base_block_pickup> {
public:
base_block_pickup(crepr::base_block3D* block,
const rtypes::type_uuid& robot_id,
const rtypes::timestep& t);
virtual ~base_block_pickup(void) = default;
/* not copy constructible/assignable by default */
base_block_pickup(const base_block_pickup&) = delete;
base_block_pickup& operator=(const base_block_pickup&) = delete;
void visit(controller::block_carrying_controller& controller);
crepr::base_block3D* block(void) const { return m_block; }
const rtypes::type_uuid& robot_id(void) const { return mc_robot_id; }
private:
/* clang-format off */
const rtypes::timestep mc_timestep;
const rtypes::type_uuid mc_robot_id;
crepr::base_block3D* m_block;
/* clang-format on */
};
} /* namespace cosm::controller::operations */