hpp-manipulation  4.9.0
Classes for manipulation planning.
guided-state-selector.hh
Go to the documentation of this file.
1 // Copyright (c) 2014, LAAS-CNRS
2 // Authors: Joseph Mirabel (joseph.mirabel@laas.fr)
3 //
4 // This file is part of hpp-manipulation.
5 // hpp-manipulation is free software: you can redistribute it
6 // and/or modify it under the terms of the GNU Lesser General Public
7 // License as published by the Free Software Foundation, either version
8 // 3 of the License, or (at your option) any later version.
9 //
10 // hpp-manipulation is distributed in the hope that it will be
11 // useful, but WITHOUT ANY WARRANTY; without even the implied warranty
12 // of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
13 // General Lesser Public License for more details. You should have
14 // received a copy of the GNU Lesser General Public License along with
15 // hpp-manipulation. If not, see <http://www.gnu.org/licenses/>.
16 
17 #ifndef HPP_MANIPULATION_GRAPH_GUIDED_STATE_SELECTOR_HH
18 # define HPP_MANIPULATION_GRAPH_GUIDED_STATE_SELECTOR_HH
19 
20 #include "hpp/manipulation/fwd.hh"
23 
24 namespace hpp {
25  namespace manipulation {
26  namespace graph {
27  class HPP_MANIPULATION_DLLAPI GuidedStateSelector : public StateSelector
28  {
29  public:
31  static GuidedStateSelectorPtr_t create(const std::string& name,
32  const core::RoadmapPtr_t& roadmap);
33 
35  void setStateList (const States_t& stateList);
36 
38  virtual EdgePtr_t chooseEdge(RoadmapNodePtr_t from) const;
39 
41  std::ostream& dotPrint (std::ostream& os, dot::DrawingAttributes da = dot::DrawingAttributes ()) const;
42 
43  protected:
45  void init (const GuidedStateSelectorPtr_t& weak);
46 
48  GuidedStateSelector (const std::string& name,
49  const core::RoadmapPtr_t roadmap) :
50  StateSelector (name), roadmap_ (roadmap)
51  {}
52 
54  std::ostream& print (std::ostream& os) const;
55 
56  private:
58  States_t stateList_;
59 
61  core::RoadmapPtr_t roadmap_;
62 
64  GuidedStateSelectorWkPtr_t wkPtr_;
65  }; // Class StateSelector
66  } // namespace graph
67  } // namespace manipulation
68 } // namespace hpp
69 
70 #endif // HPP_MANIPULATION_GRAPH_GUIDED_STATE_SELECTOR_HH
boost::shared_ptr< GuidedStateSelector > GuidedStateSelectorPtr_t
Definition: fwd.hh:42
Definition: state-selector.hh:30
Definition: guided-state-selector.hh:27
GuidedStateSelector(const std::string &name, const core::RoadmapPtr_t roadmap)
Constructor.
Definition: guided-state-selector.hh:48
void init(const ConfigurationShooterWkPtr_t &weak)
static GradientBasedPtr_t create(const Problem &problem)
boost::shared_ptr< Edge > EdgePtr_t
Definition: fwd.hh:37
boost::shared_ptr< Roadmap > RoadmapPtr_t
std::vector< StatePtr_t > States_t
Definition: fwd.hh:45
Definition: roadmap-node.hh:32