Class base_block_pickup

Inheritance Relationships

Base Type

  • public rer::client< base_block_pickup >

Class Documentation

class base_block_pickup : public rer::client<base_block_pickup>

Base class for the simulation event fired whenever a robot picks up a block. Has “base” in the name, because it does not contain the necessary functions for updating the FSM attached to a controller, which is necessary for it to be reused as-is, hence it is therefore a base class.

Public Functions

base_block_pickup(const base_block_pickup&) = delete
base_block_pickup(crepr::base_block3D *block, const rtypes::type_uuid &robot_id, const rtypes::timestep &t)
Parameters:
  • block – Non-owning reference to the block to be picked up; block is owned by arena map.

  • robot_id – ID of the robot doing the pickup.

  • t – The current timestep.

virtual ~base_block_pickup(void) = default
inline crepr::base_block3D *block(void) const
base_block_pickup &operator=(const base_block_pickup&) = delete
inline const rtypes::type_uuid &robot_id(void) const
void visit(controller::block_carrying_controller &controller)

Update the controller with the block it has just picked up, along with updating necessary block metadata to reflect the fact that it is now carried by a robot.