hpp-core  6.0.0
Implement basic classes for canonical path planning for kinematic chains.
collision-validation-report.hh
Go to the documentation of this file.
1 //
2 // Copyright (c) 2014 CNRS
3 // Authors: Florent Lamiraux
4 //
5 
6 // Redistribution and use in source and binary forms, with or without
7 // modification, are permitted provided that the following conditions are
8 // met:
9 //
10 // 1. Redistributions of source code must retain the above copyright
11 // notice, this list of conditions and the following disclaimer.
12 //
13 // 2. Redistributions in binary form must reproduce the above copyright
14 // notice, this list of conditions and the following disclaimer in the
15 // documentation and/or other materials provided with the distribution.
16 //
17 // THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
18 // "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
19 // LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
20 // A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
21 // HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
22 // SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
23 // LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
24 // DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
25 // THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
26 // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
27 // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH
28 // DAMAGE.
29 
30 #ifndef HPP_CORE_COLLISION_VALIDATION_REPORT_HH
31 #define HPP_CORE_COLLISION_VALIDATION_REPORT_HH
32 
33 #include <coal/collision_data.h>
34 
37 #include <hpp/pinocchio/collision-object.hh>
38 #include <hpp/util/indent.hh>
39 
40 namespace hpp {
41 namespace core {
44 
49 
52  const coal::CollisionResult& r)
53  : object1(o1), object2(o2), result(r) {}
54 
56  const coal::CollisionResult& r)
57  : object1(pair.first), object2(pair.second), result(r) {}
58 
61  std::string objectName1;
64  std::string objectName2;
66  coal::CollisionResult result;
68  virtual std::ostream& print(std::ostream& os) const {
69  os << "Collision between object "
70  << (object1 ? object1->name() : objectName1) << " and "
71  << (object2 ? object2->name() : objectName2);
72  return os;
73  }
74  std::pair<std::string, std::string> getObjectNames() const {
75  return std::pair<std::string, std::string>(
76  object1 ? object1->name() : objectName1,
77  object2 ? object2->name() : objectName2);
78  }
79 }; // class CollisionValidationReport
80 
84  : public CollisionValidationReport {
86 
89  const coal::CollisionResult& r)
90  : CollisionValidationReport(o1, o2, r) {}
91 
93  const coal::CollisionResult& r)
94  : CollisionValidationReport(pair, r) {}
95 
96  std::vector<CollisionValidationReportPtr_t> collisionReports;
97  virtual std::ostream& print(std::ostream& os) const {
98  os << " Number of collisions : " << collisionReports.size() << "."
99  << incendl;
100  for (std::vector<CollisionValidationReportPtr_t>::const_iterator it =
101  collisionReports.begin();
102  it != collisionReports.end(); ++it) {
103  os << **it << iendl;
104  }
105  return os << decindent;
106  }
107 }; // class AllCollisionsValidationReport
109 } // namespace core
110 } // namespace hpp
111 
112 #endif // HPP_CORE_COLLISION_VALIDATION_REPORT_HH
Definition: validation-report.hh:47
#define HPP_CORE_DLLAPI
Definition: config.hh:88
pinocchio::CollisionObjectConstPtr_t CollisionObjectConstPtr_t
Definition: fwd.hh:100
Definition: bi-rrt-planner.hh:35
Definition: collision-validation-report.hh:84
virtual std::ostream & print(std::ostream &os) const
Write report in a stream.
Definition: collision-validation-report.hh:97
std::vector< CollisionValidationReportPtr_t > collisionReports
Definition: collision-validation-report.hh:96
AllCollisionsValidationReport(const CollisionPair_t &pair, const coal::CollisionResult &r)
Definition: collision-validation-report.hh:92
AllCollisionsValidationReport(CollisionObjectConstPtr_t o1, CollisionObjectConstPtr_t o2, const coal::CollisionResult &r)
Definition: collision-validation-report.hh:87
AllCollisionsValidationReport()
Definition: collision-validation-report.hh:85
Definition: collision-pair.hh:45
Definition: collision-validation-report.hh:47
virtual std::ostream & print(std::ostream &os) const
Write report in a stream.
Definition: collision-validation-report.hh:68
std::string objectName2
Definition: collision-validation-report.hh:64
CollisionValidationReport(CollisionObjectConstPtr_t o1, CollisionObjectConstPtr_t o2, const coal::CollisionResult &r)
Definition: collision-validation-report.hh:50
CollisionObjectConstPtr_t object1
First object in collision.
Definition: collision-validation-report.hh:60
CollisionValidationReport()
Definition: collision-validation-report.hh:48
CollisionValidationReport(const CollisionPair_t &pair, const coal::CollisionResult &r)
Definition: collision-validation-report.hh:55
std::string objectName1
Definition: collision-validation-report.hh:61
CollisionObjectConstPtr_t object2
Second object in collision.
Definition: collision-validation-report.hh:63
std::pair< std::string, std::string > getObjectNames() const
Definition: collision-validation-report.hh:74
coal::CollisionResult result
coal collision results
Definition: collision-validation-report.hh:66