GaitGeneration by Graph Search
読み取り中…
検索中…
一致する文字列を見つけられません
gpg_builder_flat.cpp
[詳解]
1
3
4// Copyright(c) 2023-2025 Design Engineering Laboratory, Saitama University
5// Released under the MIT license
6// https://opensource.org/licenses/mit-license.php
7
8#include "gpg_builder_flat.h"
9
10#include <utility>
11
12#include "cassert_define.h"
15#include "graph_tree_creator.h"
17
18namespace designlab {
19
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) {
27 assert(converter_ptr_ != nullptr);
28 assert(presenter_ptr_ != nullptr);
29 assert(checker_ptr_ != nullptr);
30}
31
32std::unique_ptr<IGaitPatternGenerator> GpgBuilderFlat::Build() const {
33 auto node_creator_builder = std::make_unique<NodeCreatorBuilderStraightMove>(
34 converter_ptr_, presenter_ptr_, checker_ptr_);
35 auto graph_tree_creator =
36 std::make_unique<GraphTreeCreator>(std::move(node_creator_builder));
37
38 auto graph_searcher =
39 std::make_unique<GraphSearcherStraightMove>(checker_ptr_);
40
41 auto gait_pattern_generator = std::make_unique<GaitPatternGeneratorBasic>(
42 std::move(graph_tree_creator), std::move(graph_searcher), 4, 50000000);
43
44 return std::move(gait_pattern_generator);
45}
46
47} // namespace designlab
std::unique_ptr< IGaitPatternGenerator > Build() const
GpgBuilderFlat(const std::shared_ptr< const IHexapodCoordinateConverter > &converter_ptr, const std::shared_ptr< const IHexapodStatePresenter > &presenter_ptr, const std::shared_ptr< const IHexapodPostureValidator > &checker_ptr)