21 const std::shared_ptr<const IHexapodCoordinateConverter>& converter_ptr,
22 const std::shared_ptr<const IHexapodStatePresenter>& presenter_ptr,
23 const std::shared_ptr<const IHexapodPostureValidator>& checker_ptr)
24 : converter_ptr_(converter_ptr),
25 presenter_ptr_(presenter_ptr),
26 checker_ptr_(checker_ptr) {}
30 std::map<
HexapodMove, std::unique_ptr<INodeCreator> >* node_creator)
const {
34 assert(node_creator !=
nullptr);
35 assert(node_creator->size() == 0);
42 const auto hierarchy_list = std::vector<DiscreteLegPos>{
46 std::make_unique<NodeCreatorLegHierarchy>(
kLegUpDown, hierarchy_list);
48 (*node_creator)[
kLegUpDown] = std::make_unique<NodeCreatorLegUpDown>(
49 map, converter_ptr_, presenter_ptr_, checker_ptr_,
kComUpDown);
51 (*node_creator)[
kComUpDown] = std::make_unique<NodeCreatorComUpDown>(
52 map, converter_ptr_, presenter_ptr_, checker_ptr_,
kComMove);
54 (*node_creator)[
kComMove] = std::make_unique<NodeCreatorComMoveStraight>(