Program Listing for File cell3D_empty.hpp

Return to documentation for file (cosm/ds/operations/cell3D_empty.hpp)

#pragma once

/*******************************************************************************
 * Includes
 ******************************************************************************/
#include "rcppsw/er/client.hpp"
#include "rcppsw/math/vector2.hpp"

#include "cosm/ds/operations/cell3D_op.hpp"

/*******************************************************************************
 * Namespaces
 ******************************************************************************/
namespace cosm::ds::operations {

/*******************************************************************************
 * Class Definitions
 ******************************************************************************/
class cell3D_empty : public cell3D_op, public rer::client<cell3D_empty> {
 private:
  struct visit_typelist_impl {
    using value = cell3D_op::visit_typelist;
  };

 public:
  using visit_typelist = visit_typelist_impl::value;

  explicit cell3D_empty(const rmath::vector3z& coord)
      : cell3D_op(coord), ER_CLIENT_INIT("cosm.ds.operations.cell3D_empty") {}

  void visit(ds::cell3D& cell);
  void visit(fsm::cell3D_fsm& fsm);
};

using cell3D_empty_visitor = rpvisitor::filtered_visitor<cell3D_empty>;

} /* namespace cosm::ds::operations */