hpp-rbprm  4.12.0
Implementation of RB-PRM planner using hpp.
rbprm-path-validation.hh
Go to the documentation of this file.
1 // Copyright (c) 2014, LAAS-CNRS
2 // Authors: Steve Tonneau (steve.tonneau@laas.fr)
3 //
4 // This file is part of hpp-rbprm.
5 // hpp-rbprm 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-rbprm 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-rbprm. If not, see <http://www.gnu.org/licenses/>.
16 
17 #ifndef HPP_RBPRM_PATH_VALIDATION_HH
18 #define HPP_RBPRM_PATH_VALIDATION_HH
19 
20 #include <hpp/core/path-validation/discretized.hh>
21 #include <hpp/util/pointer.hh>
23 #include <hpp/rbprm/config.hh>
24 
25 namespace hpp {
26 namespace rbprm {
27 
28 // forward declaration
29 HPP_PREDEF_CLASS(RbPrmPathValidation);
30 // Planner objects are manipulated only via shared pointers
31 typedef std::shared_ptr<RbPrmPathValidation> RbPrmPathValidationPtr_t;
32 
33 class HPP_RBPRM_DLLAPI RbPrmPathValidation : public core::pathValidation::Discretized {
34  public:
36  static RbPrmPathValidationPtr_t create(const core::DevicePtr_t& robot, const core::value_type& stepSize);
37 
39  virtual bool validate(const core::PathPtr_t& path, bool reverse, core::PathPtr_t& validPart,
40  core::PathValidationReportPtr_t& report, const std::vector<std::string>& filter);
41 
42  virtual bool validate(const core::PathPtr_t& path, bool reverse, core::PathPtr_t& validPart,
43  core::PathValidationReportPtr_t& report) {
44  return core::pathValidation::Discretized::validate(path, reverse, validPart, report);
45  }
46 
48  virtual void add(const core::ConfigValidationPtr_t& configValidation);
49 
50  RbPrmValidationPtr_t getValidator() { return rbprmValidation_; }
51 
52  protected:
55  RbPrmPathValidation(const core::DevicePtr_t& robot, const core::value_type& stepSize);
56 
58 
59 }; // class RbPrmPlanner
60 } // namespace rbprm
61 } // namespace hpp
62 #endif // HPP_RBPRM_PATH_VALIDATION_HH
#define HPP_RBPRM_DLLAPI
Definition: config.hh:64
RbPrmValidationPtr_t rbprmValidation_
Definition: rbprm-path-validation.hh:57
virtual bool validate(const core::PathPtr_t &path, bool reverse, core::PathPtr_t &validPart, core::PathValidationReportPtr_t &report)
Definition: rbprm-path-validation.hh:42
Definition: algorithm.hh:27
RbPrmValidationPtr_t getValidator()
Definition: rbprm-path-validation.hh:50
HPP_PREDEF_CLASS(RbPrmFullBody)
std::shared_ptr< RbPrmPathValidation > RbPrmPathValidationPtr_t
Definition: rbprm-path-validation.hh:31
std::shared_ptr< RbPrmValidation > RbPrmValidationPtr_t
Definition: rbprm-validation.hh:34
Definition: rbprm-path-validation.hh:33