GCC Code Coverage Report


Directory: ./
File: include/coal/BVH/BVH_front.h
Date: 2025-04-01 09:23:31
Exec Total Coverage
Lines: 5 5 100.0%
Branches: 3 4 75.0%

Line Branch Exec Source
1 /*
2 * Software License Agreement (BSD License)
3 *
4 * Copyright (c) 2011-2014, Willow Garage, Inc.
5 * Copyright (c) 2014-2015, 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 #ifndef COAL_BVH_FRONT_H
39 #define COAL_BVH_FRONT_H
40
41 #include <list>
42
43 #include "coal/config.hh"
44
45 namespace coal {
46
47 /// @brief Front list acceleration for collision
48 /// Front list is a set of internal and leaf nodes in the BVTT hierarchy, where
49 /// the traversal terminates while performing a query during a given time
50 /// instance. The front list reflects the subset of a BVTT that is traversed for
51 /// that particular proximity query.
52 struct COAL_DLLAPI BVHFrontNode {
53 /// @brief The nodes to start in the future, i.e. the wave front of the
54 /// traversal tree.
55 unsigned int left, right;
56
57 /// @brief The front node is not valid when collision is detected on the front
58 /// node.
59 bool valid;
60
61 16907142 BVHFrontNode(unsigned int left_, unsigned int right_)
62 16907142 : left(left_), right(right_), valid(true) {}
63 };
64
65 /// @brief BVH front list is a list of front nodes.
66 typedef std::list<BVHFrontNode> BVHFrontList;
67
68 /// @brief Add new front node into the front list
69 30099135 inline void updateFrontList(BVHFrontList* front_list, unsigned int b1,
70 unsigned int b2) {
71
3/4
✓ Branch 0 taken 16907142 times.
✓ Branch 1 taken 13191993 times.
✓ Branch 4 taken 16907142 times.
✗ Branch 5 not taken.
30099135 if (front_list) front_list->push_back(BVHFrontNode(b1, b2));
72 30099135 }
73
74 } // namespace coal
75
76 #endif
77