GCC Code Coverage Report


Directory: ./
File: src/broadphase/broadphase_collision_manager.cpp
Date: 2025-04-01 09:23:31
Exec Total Coverage
Lines: 16 20 80.0%
Branches: 12 18 66.7%

Line Branch Exec Source
1 /*
2 * Software License Agreement (BSD License)
3 *
4 * Copyright (c) 2011-2014, Willow Garage, Inc.
5 * Copyright (c) 2014-2016, Open Source Robotics Foundation
6 * All rights reserved.
7 *
8 * Redistribution and use in source and binary forms, with or without
9 * modification, are permitted provided that the following conditions
10 * are met:
11 *
12 * * Redistributions of source code must retain the above copyright
13 * notice, this list of conditions and the following disclaimer.
14 * * Redistributions in binary form must reproduce the above
15 * copyright notice, this list of conditions and the following
16 * disclaimer in the documentation and/or other materials provided
17 * with the distribution.
18 * * Neither the name of Open Source Robotics Foundation nor the names of its
19 * contributors may be used to endorse or promote products derived
20 * from this software without specific prior written permission.
21 *
22 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
23 * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
24 * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
25 * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
26 * COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
27 * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
28 * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
29 * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
30 * CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
31 * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
32 * ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
33 * POSSIBILITY OF SUCH DAMAGE.
34 */
35
36 /** @author Jia Pan */
37
38 #include "coal/broadphase/broadphase_collision_manager.h"
39
40 namespace coal {
41
42 //==============================================================================
43 469 BroadPhaseCollisionManager::BroadPhaseCollisionManager()
44 469 : enable_tested_set_(false) {
45 // Do nothing
46 469 }
47
48 //==============================================================================
49 920 BroadPhaseCollisionManager::~BroadPhaseCollisionManager() {
50 // Do nothing
51 }
52
53 //==============================================================================
54 153 void BroadPhaseCollisionManager::registerObjects(
55 const std::vector<CollisionObject*>& other_objs) {
56
2/2
✓ Branch 3 taken 38013 times.
✓ Branch 4 taken 153 times.
38166 for (size_t i = 0; i < other_objs.size(); ++i) registerObject(other_objs[i]);
57 153 }
58
59 //==============================================================================
60 void BroadPhaseCollisionManager::update(CollisionObject* updated_obj) {
61 COAL_UNUSED_VARIABLE(updated_obj);
62
63 update();
64 }
65
66 //==============================================================================
67 void BroadPhaseCollisionManager::update(
68 const std::vector<CollisionObject*>& updated_objs) {
69 COAL_UNUSED_VARIABLE(updated_objs);
70
71 update();
72 }
73
74 //==============================================================================
75 69053 bool BroadPhaseCollisionManager::inTestedSet(CollisionObject* a,
76 CollisionObject* b) const {
77
2/2
✓ Branch 0 taken 34525 times.
✓ Branch 1 taken 34528 times.
69053 if (a < b)
78
2/4
✓ Branch 2 taken 34525 times.
✗ Branch 3 not taken.
✓ Branch 5 taken 34525 times.
✗ Branch 6 not taken.
34525 return tested_set.find(std::make_pair(a, b)) != tested_set.end();
79 else
80
2/4
✓ Branch 2 taken 34528 times.
✗ Branch 3 not taken.
✓ Branch 5 taken 34528 times.
✗ Branch 6 not taken.
34528 return tested_set.find(std::make_pair(b, a)) != tested_set.end();
81 }
82
83 //==============================================================================
84 22928 void BroadPhaseCollisionManager::insertTestedSet(CollisionObject* a,
85 CollisionObject* b) const {
86
2/2
✓ Branch 0 taken 11307 times.
✓ Branch 1 taken 11621 times.
22928 if (a < b)
87
1/2
✓ Branch 2 taken 11307 times.
✗ Branch 3 not taken.
11307 tested_set.insert(std::make_pair(a, b));
88 else
89
1/2
✓ Branch 2 taken 11621 times.
✗ Branch 3 not taken.
11621 tested_set.insert(std::make_pair(b, a));
90 22928 }
91
92 } // namespace coal
93