Class cell3D_fsm

Inheritance Relationships

Base Types

  • public rpfsm::simple_fsm

  • public rer::client< cell3D_fsm >

Class Documentation

class cell3D_fsm : public rpfsm::simple_fsm, public rer::client<cell3D_fsm>

Per-cell FSM containing the current state of the cell (empty, has a block, part of the extent of a block, etc.).

Public Types

using state = cell3D_state

Public Functions

cell3D_fsm(const cell3D_fsm &other)

Initialize a COPY of a class instance via copy construction.

This function is necessary to use this class with rcppsw::ds::grid3D.

My FSM paradigm uses MEMBER function pointers, so you need to initialize the state map cleanly WITHOUT copy construction (even though this is the copy constructor), otherwise all copies of the object will use the other object’s state map (default behavior in default copy constructor). If other is destructed, then you will get a segfault due to dangling pointers.

cell3D_fsm(void)
~cell3D_fsm(void) override = default
void event_block_extent(void)
void event_block_place(void)
void event_empty(void)
void event_unknown(void)
cell3D_fsm &operator=(const cell3D_fsm&) = delete
inline bool state_has_block(void) const
inline bool state_in_block_extent(void) const
inline bool state_is_empty(void) const
inline bool state_is_known(void) const