hpp-manipulation  4.12.0
Classes for manipulation planning.
problem.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_PROBLEM_HH
18 # define HPP_MANIPULATION_PROBLEM_HH
19 
20 # include <hpp/core/problem.hh>
21 # include <hpp/core/problem-solver.hh> // PathValidationBuilder_t
22 
23 # include <hpp/manipulation/fwd.hh>
26 
27 namespace hpp {
28  namespace manipulation {
31 
32  class HPP_MANIPULATION_DLLAPI Problem : public core::Problem
33  {
34  public:
35  typedef core::Problem Parent;
36 
39 
41  void constraintGraph (const graph::GraphPtr_t& graph);
42 
45  {
46  return graph_;
47  }
48 
50  virtual void checkProblem () const;
51 
54 
57  void pathValidation (const PathValidationPtr_t& pathValidation);
58 
61 
67 
69  const core::PathValidationBuilder_t& factory,
70  const value_type& tol);
71 
72  protected:
75 
76  void init (ProblemWkPtr_t wkPtr);
77 
78  private:
79  ProblemWkPtr_t wkPtr_;
80 
82  graph::GraphPtr_t graph_;
83 
84  core::PathValidationBuilder_t pvFactory_;
85  value_type pvTol_;
86  }; // class Problem
88  } // namespace manipulation
89 } // namespace hpp
90 
91 #endif // HPP_MANIPULATION_PROBLEM_HH
Definition: problem.hh:33
graph::GraphPtr_t constraintGraph() const
Get the graph of constraints.
Definition: problem.hh:44
void constraintGraph(const graph::GraphPtr_t &graph)
Set the graph of constraints.
Problem(DevicePtr_t robot)
Constructor.
void setPathValidationFactory(const core::PathValidationBuilder_t &factory, const value_type &tol)
static ProblemPtr_t create(DevicePtr_t robot)
Constructor.
PathValidationPtr_t pathValidationFactory() const
PathValidationPtr_t pathValidation() const
Expose parent method.
SteeringMethodPtr_t manipulationSteeringMethod() const
Get the steering method as a SteeringMethod.
void pathValidation(const PathValidationPtr_t &pathValidation)
core::Problem Parent
Definition: problem.hh:35
virtual void checkProblem() const
Check whether the problem is well formulated.
void init(ProblemWkPtr_t wkPtr)
#define HPP_MANIPULATION_DLLAPI
Definition: config.hh:64
shared_ptr< Graph > GraphPtr_t
Definition: fwd.hh:35
shared_ptr< Problem > ProblemPtr_t
Definition: fwd.hh:55
shared_ptr< SteeringMethod > SteeringMethodPtr_t
Definition: fwd.hh:93
core::PathValidationPtr_t PathValidationPtr_t
Definition: fwd.hh:121
core::value_type value_type
Definition: fwd.hh:82
shared_ptr< Device > DevicePtr_t
Definition: fwd.hh:29
Definition: main.hh:1