Collision Checker
broadphase_test.h
Go to the documentation of this file.
1 #ifndef TESTS_COLLISION_BROADPHASE_TEST_H_
2 #define TESTS_COLLISION_BROADPHASE_TEST_H_
3 
4 namespace collision {
5 class CollisionChecker;
6 class ShapeGroup;
7 } // namespace collision
8 
10 
11 #include <stdlib.h>
12 #include <vector>
13 
14 namespace collision {
15 namespace test {
16 
17 int in_diagnose_struct(const CollisionObject *obj);
19 
20 int log_broadphase_failure(CollisionObjectConstPtr co, const ShapeGroup *sg);
22  const CollisionChecker *cc);
23 int log_broadphase_failure(const ShapeGroup *sg1, const ShapeGroup *sg2);
24 
26  const CollisionChecker *cc);
27 int serialize_broadphase_failure_test(const CollisionChecker *cc,
28  const CollisionObject *obj);
29 int serialize_broadphase_failure_test(const CollisionObject *obj1,
30  const CollisionObject *obj2);
31 int serialize_narrowphase_failure(ShapeConstPtr co, const ShapeGroup *sg,
32  const std::vector<int> &failure_export);
34  const ShapeGroup *sg1, const ShapeGroup *sg2,
35  const std::vector<std::pair<int, int>> &failure_pair_export);
37  const CollisionChecker *cc,
38  const std::vector<int> &failure_export);
42  ShapeConstPtr obj2);
43 
45  const ShapeGroup *sg1, const ShapeGroup *sg2,
46  const std::vector<std::pair<int, int>> &failure_pair_export);
47 int log_narrowphase_failure(CollisionObjectConstPtr co, const ShapeGroup *sg,
48  const std::vector<int> &failure_export);
49 std::string get_free_file(std::string prefix, int max_files,
50  std::string directory);
51 
53  public:
55  const collision::CollisionChecker *cc);
57  const collision::CollisionChecker *cc);
59  const collision::CollisionChecker *cc);
60 
61  private:
62  // TODO: test collision_time
63  // CollisionChecker currently always uses FCL for elementary object-object
64  // checks
65 
66  bool test_collide(CollisionObjectConstPtr co,
67  const collision::CollisionChecker *cc);
68  bool test_collide_obstacle(CollisionObjectConstPtr co,
69  const collision::CollisionChecker *cc);
70  bool test_collide_obstacles(
72  std::vector<CollisionObjectConstPtr> &missed_obstacles,
73  std::vector<CollisionObjectConstPtr> &missed_obstacles_primit);
74  static bool cmp(const CollisionObjectConstPtr &a,
75  const CollisionObjectConstPtr &b);
76 
77  bool test_narrowphase(CollisionObjectConstPtr co, const CollisionChecker *cc,
78  std::vector<int> *failure_export);
79 };
80 
82  public:
84  bool run_test_collide(const ShapeGroup *sg1, const ShapeGroup *sg2);
85  bool test_overlap_map(
86  const ShapeGroup *sg1, const ShapeGroup *sg2,
87  std::vector<std::pair<int, int>> *missed_col_naive_out = 0);
88 
89  bool run_test_narrowphase(CollisionObjectConstPtr co, const ShapeGroup *sg);
90  bool run_test_narrowphase(const ShapeGroup *sg1, const ShapeGroup *sg2);
91 
92  private:
93  static bool cmp(const std::pair<int, int> &pair1,
94  const std::pair<int, int> &pair2);
95  bool test_collide(CollisionObjectConstPtr co, const ShapeGroup *sg);
96  bool test_collide(const ShapeGroup *sg1, const ShapeGroup *sg2);
97  bool test_narrowphase(CollisionObjectConstPtr co, const ShapeGroup *sg,
98  std::vector<int> *failure_export = 0);
99  bool test_narrowphase(
100  const ShapeGroup *sg1, const ShapeGroup *sg2,
101  std::vector<std::pair<int, int>> *failure_pair_export = 0);
102 };
103 } // namespace test
104 } // namespace collision
105 
106 #endif /* TESTS_COLLISION_BROADPHASE_TEST_H_ */
std::shared_ptr< const Shape > ShapeConstPtr
int serialize_narrowphase_failure_helper_obj(CollisionObjectConstPtr obj1, CollisionObjectConstPtr obj2)
int log_narrowphase_failure(const ShapeGroup *sg1, const ShapeGroup *sg2, const std::vector< std::pair< int, int >> &failure_pair_export)
int serialize_broadphase_failure_test(const CollisionChecker *cc, const CollisionObject *obj)
ShapeGroup can contain simple shapes.
Definition: shape_group.h:33
CollisionChecker can contain collision objects and their groups (such as ShapeGroup and TimeVariantCo...
std::string get_free_file(std::string prefix, int max_files, std::string directory)
std::shared_ptr< const CollisionObject > CollisionObjectConstPtr
int in_diagnose_struct(const CollisionObject *obj)
int serialize_narrowphase_failure(ShapeConstPtr co, const ShapeGroup *sg, const std::vector< int > &failure_export)
int serialize_narrowphase_failure_helper(ShapeConstPtr obj1, ShapeConstPtr obj2)
bool run_test_collide(CollisionObjectConstPtr co, const collision::CollisionChecker *cc)
bool run_test_collide_obstacle(CollisionObjectConstPtr co, const collision::CollisionChecker *cc)
bool test_tolerance_check(CollisionObjectConstPtr co, const CollisionChecker *cc)
int log_broadphase_failure(CollisionObjectConstPtr co, const ShapeGroup *sg)
bool run_test_collide_obstacles(CollisionObjectConstPtr co, const collision::CollisionChecker *cc)
int log_parentmap_failure(CollisionObjectConstPtr co)