Line | Branch | Exec | Source |
---|---|---|---|
1 | // Copyright Contributors to the OpenVDB Project | ||
2 | // SPDX-License-Identifier: MPL-2.0 | ||
3 | |||
4 | /// @file tree/Tree.h | ||
5 | |||
6 | #ifndef OPENVDB_TREE_TREE_HAS_BEEN_INCLUDED | ||
7 | #define OPENVDB_TREE_TREE_HAS_BEEN_INCLUDED | ||
8 | |||
9 | #include <openvdb/Types.h> | ||
10 | #include <openvdb/Metadata.h> | ||
11 | #include <openvdb/math/Math.h> | ||
12 | #include <openvdb/math/BBox.h> | ||
13 | #include <openvdb/tools/Count.h> // tools::countActiveVoxels(), tools::memUsage(), tools::minMax() | ||
14 | #include <openvdb/util/Formats.h> | ||
15 | #include <openvdb/util/logging.h> | ||
16 | #include <openvdb/Platform.h> | ||
17 | #include "RootNode.h" | ||
18 | #include "InternalNode.h" | ||
19 | #include "LeafNode.h" | ||
20 | #include "TreeIterator.h" | ||
21 | #include "ValueAccessor.h" | ||
22 | #include <tbb/concurrent_hash_map.h> | ||
23 | #include <cstdint> | ||
24 | #include <iostream> | ||
25 | #include <mutex> | ||
26 | #include <sstream> | ||
27 | #include <vector> | ||
28 | |||
29 | |||
30 | namespace openvdb { | ||
31 | OPENVDB_USE_VERSION_NAMESPACE | ||
32 | namespace OPENVDB_VERSION_NAME { | ||
33 | namespace tree { | ||
34 | |||
35 | /// @brief Base class for typed trees | ||
36 | class OPENVDB_API TreeBase | ||
37 | { | ||
38 | public: | ||
39 | using Ptr = SharedPtr<TreeBase>; | ||
40 | using ConstPtr = SharedPtr<const TreeBase>; | ||
41 | |||
42 | TreeBase() = default; | ||
43 | 5391 | TreeBase(const TreeBase&) = default; | |
44 | TreeBase& operator=(const TreeBase&) = delete; // disallow assignment | ||
45 | virtual ~TreeBase() = default; | ||
46 | |||
47 | /// Return the name of this tree's type. | ||
48 | virtual const Name& type() const = 0; | ||
49 | |||
50 | /// Return the name of the type of a voxel's value (e.g., "float" or "vec3d"). | ||
51 | virtual Name valueType() const = 0; | ||
52 | |||
53 | /// Return @c true if this tree is of the same type as the template parameter. | ||
54 | template<typename TreeType> | ||
55 | 2 | bool isType() const { return (this->type() == TreeType::treeType()); } | |
56 | |||
57 | /// Return a pointer to a deep copy of this tree | ||
58 | virtual TreeBase::Ptr copy() const = 0; | ||
59 | |||
60 | // | ||
61 | // Tree methods | ||
62 | // | ||
63 | /// @brief Return this tree's background value wrapped as metadata. | ||
64 | /// @note Query the metadata object for the value's type. | ||
65 | ✗ | virtual Metadata::Ptr getBackgroundValue() const { return Metadata::Ptr(); } | |
66 | |||
67 | /// @brief Return in @a bbox the axis-aligned bounding box of all | ||
68 | /// active tiles and leaf nodes with active values. | ||
69 | /// @details This is faster than calling evalActiveVoxelBoundingBox, | ||
70 | /// which visits the individual active voxels, and hence | ||
71 | /// evalLeafBoundingBox produces a less tight, i.e. approximate, bbox. | ||
72 | /// @return @c false if the bounding box is empty (in which case | ||
73 | /// the bbox is set to its default value). | ||
74 | virtual bool evalLeafBoundingBox(CoordBBox& bbox) const = 0; | ||
75 | |||
76 | /// @brief Return in @a dim the dimensions of the axis-aligned bounding box | ||
77 | /// of all leaf nodes. | ||
78 | /// @return @c false if the bounding box is empty. | ||
79 | virtual bool evalLeafDim(Coord& dim) const = 0; | ||
80 | |||
81 | /// @brief Return in @a bbox the axis-aligned bounding box of all | ||
82 | /// active voxels and tiles. | ||
83 | /// @details This method produces a more accurate, i.e. tighter, | ||
84 | /// bounding box than evalLeafBoundingBox which is approximate but | ||
85 | /// faster. | ||
86 | /// @return @c false if the bounding box is empty (in which case | ||
87 | /// the bbox is set to its default value). | ||
88 | virtual bool evalActiveVoxelBoundingBox(CoordBBox& bbox) const = 0; | ||
89 | |||
90 | /// @brief Return in @a dim the dimensions of the axis-aligned bounding box of all | ||
91 | /// active voxels. This is a tighter bounding box than the leaf node bounding box. | ||
92 | /// @return @c false if the bounding box is empty. | ||
93 | virtual bool evalActiveVoxelDim(Coord& dim) const = 0; | ||
94 | |||
95 | virtual void getIndexRange(CoordBBox& bbox) const = 0; | ||
96 | |||
97 | /// @brief Replace with background tiles any nodes whose voxel buffers | ||
98 | /// have not yet been allocated. | ||
99 | /// @details Typically, unallocated nodes are leaf nodes whose voxel buffers | ||
100 | /// are not yet resident in memory because delayed loading is in effect. | ||
101 | /// @sa readNonresidentBuffers, io::File::open | ||
102 | virtual void clipUnallocatedNodes() = 0; | ||
103 | /// Return the total number of unallocated leaf nodes residing in this tree. | ||
104 | virtual Index32 unallocatedLeafCount() const = 0; | ||
105 | |||
106 | |||
107 | // | ||
108 | // Statistics | ||
109 | // | ||
110 | /// @brief Return the depth of this tree. | ||
111 | /// | ||
112 | /// A tree with only a root node and leaf nodes has depth 2, for example. | ||
113 | virtual Index treeDepth() const = 0; | ||
114 | /// Return the number of leaf nodes. | ||
115 | virtual Index32 leafCount() const = 0; | ||
116 | /// Return a vector with node counts. The number of nodes of type NodeType | ||
117 | /// is given as element NodeType::LEVEL in the return vector. Thus, the size | ||
118 | /// of this vector corresponds to the height (or depth) of this tree. | ||
119 | virtual std::vector<Index32> nodeCount() const = 0; | ||
120 | /// Return the number of non-leaf nodes. | ||
121 | virtual Index32 nonLeafCount() const = 0; | ||
122 | /// Return the number of active voxels stored in leaf nodes. | ||
123 | virtual Index64 activeLeafVoxelCount() const = 0; | ||
124 | /// Return the number of inactive voxels stored in leaf nodes. | ||
125 | virtual Index64 inactiveLeafVoxelCount() const = 0; | ||
126 | /// Return the total number of active voxels. | ||
127 | virtual Index64 activeVoxelCount() const = 0; | ||
128 | /// Return the number of inactive voxels within the bounding box of all active voxels. | ||
129 | virtual Index64 inactiveVoxelCount() const = 0; | ||
130 | /// Return the total number of active tiles. | ||
131 | virtual Index64 activeTileCount() const = 0; | ||
132 | |||
133 | /// Return the total amount of memory in bytes occupied by this tree. | ||
134 | ✗ | virtual Index64 memUsage() const { return 0; } | |
135 | |||
136 | |||
137 | // | ||
138 | // I/O methods | ||
139 | // | ||
140 | /// @brief Read the tree topology from a stream. | ||
141 | /// | ||
142 | /// This will read the tree structure and tile values, but not voxel data. | ||
143 | virtual void readTopology(std::istream&, bool saveFloatAsHalf = false); | ||
144 | /// @brief Write the tree topology to a stream. | ||
145 | /// | ||
146 | /// This will write the tree structure and tile values, but not voxel data. | ||
147 | virtual void writeTopology(std::ostream&, bool saveFloatAsHalf = false) const; | ||
148 | |||
149 | /// Read all data buffers for this tree. | ||
150 | virtual void readBuffers(std::istream&, bool saveFloatAsHalf = false) = 0; | ||
151 | /// Read all of this tree's data buffers that intersect the given bounding box. | ||
152 | virtual void readBuffers(std::istream&, const CoordBBox&, bool saveFloatAsHalf = false) = 0; | ||
153 | /// @brief Read all of this tree's data buffers that are not yet resident in memory | ||
154 | /// (because delayed loading is in effect). | ||
155 | /// @details If this tree was read from a memory-mapped file, this operation | ||
156 | /// disconnects the tree from the file. | ||
157 | /// @sa clipUnallocatedNodes, io::File::open, io::MappedFile | ||
158 | virtual void readNonresidentBuffers() const = 0; | ||
159 | /// Write out all the data buffers for this tree. | ||
160 | virtual void writeBuffers(std::ostream&, bool saveFloatAsHalf = false) const = 0; | ||
161 | |||
162 | /// @brief Print statistics, memory usage and other information about this tree. | ||
163 | /// @param os a stream to which to write textual information | ||
164 | /// @param verboseLevel 1: print tree configuration only; | ||
165 | /// 2: include node and voxel statistics; | ||
166 | /// 3: include memory usage; | ||
167 | /// 4: include minimum and maximum voxel values | ||
168 | /// @warning @a verboseLevel 4 forces loading of any unallocated nodes. | ||
169 | virtual void print(std::ostream& os = std::cout, int verboseLevel = 1) const; | ||
170 | }; | ||
171 | |||
172 | |||
173 | //////////////////////////////////////// | ||
174 | |||
175 | |||
176 | template<typename _RootNodeType> | ||
177 | class Tree: public TreeBase | ||
178 | { | ||
179 | public: | ||
180 | using Ptr = SharedPtr<Tree>; | ||
181 | using ConstPtr = SharedPtr<const Tree>; | ||
182 | |||
183 | using RootNodeType = _RootNodeType; | ||
184 | using ValueType = typename RootNodeType::ValueType; | ||
185 | using BuildType = typename RootNodeType::BuildType; | ||
186 | using LeafNodeType = typename RootNodeType::LeafNodeType; | ||
187 | |||
188 | static const Index DEPTH = RootNodeType::LEVEL + 1; | ||
189 | |||
190 | /// @brief ValueConverter<T>::Type is the type of a tree having the same | ||
191 | /// hierarchy as this tree but a different value type, T. | ||
192 | /// | ||
193 | /// For example, FloatTree::ValueConverter<double>::Type is equivalent to DoubleTree. | ||
194 | /// @note If the source tree type is a template argument, it might be necessary | ||
195 | /// to write "typename SourceTree::template ValueConverter<T>::Type". | ||
196 | template<typename OtherValueType> | ||
197 | struct ValueConverter { | ||
198 | using Type = Tree<typename RootNodeType::template ValueConverter<OtherValueType>::Type>; | ||
199 | }; | ||
200 | |||
201 | |||
202 | 43572 | Tree() {} | |
203 | |||
204 | Tree& operator=(const Tree&) = delete; // disallow assignment | ||
205 | |||
206 | /// Deep copy constructor | ||
207 | 4556 | Tree(const Tree& other): TreeBase(other), mRoot(other.mRoot) | |
208 | { | ||
209 | 4556 | } | |
210 | |||
211 | /// @brief Value conversion deep copy constructor | ||
212 | /// | ||
213 | /// Deep copy a tree of the same configuration as this tree type but a different | ||
214 | /// ValueType, casting the other tree's values to this tree's ValueType. | ||
215 | /// @throw TypeError if the other tree's configuration doesn't match this tree's | ||
216 | /// or if this tree's ValueType is not constructible from the other tree's ValueType. | ||
217 | template<typename OtherRootType> | ||
218 | 752 | explicit Tree(const Tree<OtherRootType>& other): TreeBase(other), mRoot(other.root()) | |
219 | { | ||
220 | 748 | } | |
221 | |||
222 | /// @brief Topology copy constructor from a tree of a different type | ||
223 | /// | ||
224 | /// Copy the structure, i.e., the active states of tiles and voxels, of another | ||
225 | /// tree of a possibly different type, but don't copy any tile or voxel values. | ||
226 | /// Instead, initialize tiles and voxels with the given active and inactive values. | ||
227 | /// @param other a tree having (possibly) a different ValueType | ||
228 | /// @param inactiveValue background value for this tree, and the value to which | ||
229 | /// all inactive tiles and voxels are initialized | ||
230 | /// @param activeValue value to which active tiles and voxels are initialized | ||
231 | /// @throw TypeError if the other tree's configuration doesn't match this tree's. | ||
232 | template<typename OtherTreeType> | ||
233 | 21 | Tree(const OtherTreeType& other, | |
234 | const ValueType& inactiveValue, | ||
235 | const ValueType& activeValue, | ||
236 | TopologyCopy): | ||
237 | TreeBase(other), | ||
238 | 21 | mRoot(other.root(), inactiveValue, activeValue, TopologyCopy()) | |
239 | { | ||
240 | 21 | } | |
241 | |||
242 | /// @brief Topology copy constructor from a tree of a different type | ||
243 | /// | ||
244 | /// @note This topology copy constructor is generally faster than | ||
245 | /// the one that takes both a foreground and a background value. | ||
246 | /// | ||
247 | /// Copy the structure, i.e., the active states of tiles and voxels, of another | ||
248 | /// tree of a possibly different type, but don't copy any tile or voxel values. | ||
249 | /// Instead, initialize tiles and voxels with the given background value. | ||
250 | /// @param other a tree having (possibly) a different ValueType | ||
251 | /// @param background the value to which tiles and voxels are initialized | ||
252 | /// @throw TypeError if the other tree's configuration doesn't match this tree's. | ||
253 | template<typename OtherTreeType> | ||
254 | 3583 | Tree(const OtherTreeType& other, const ValueType& background, TopologyCopy): | |
255 | TreeBase(other), | ||
256 | 3583 | mRoot(other.root(), background, TopologyCopy()) | |
257 | { | ||
258 | 3583 | } | |
259 | |||
260 | /// Empty tree constructor | ||
261 | 47122 | Tree(const ValueType& background): mRoot(background) {} | |
262 | |||
263 | 196798 | ~Tree() override { this->clear(); releaseAllAccessors(); } | |
264 | |||
265 | /// Return a pointer to a deep copy of this tree | ||
266 |
1/2✓ Branch 2 taken 1997 times.
✗ Branch 3 not taken.
|
7988 | TreeBase::Ptr copy() const override { return TreeBase::Ptr(new Tree(*this)); } |
267 | |||
268 | /// Return the name of the type of a voxel's value (e.g., "float" or "vec3d") | ||
269 | 19930 | Name valueType() const override { return typeNameAsString<ValueType>(); } | |
270 | |||
271 | /// Return the name of this type of tree. | ||
272 | static const Name& treeType(); | ||
273 | /// Return the name of this type of tree. | ||
274 | 384 | const Name& type() const override { return this->treeType(); } | |
275 | |||
276 | bool operator==(const Tree&) const { OPENVDB_THROW(NotImplementedError, ""); } | ||
277 | bool operator!=(const Tree&) const { OPENVDB_THROW(NotImplementedError, ""); } | ||
278 | |||
279 | //@{ | ||
280 | /// Return this tree's root node. | ||
281 |
329/608✗ Branch 0 not taken.
✗ Branch 1 not taken.
✓ Branch 2 taken 1 times.
✓ Branch 3 taken 3256 times.
✓ Branch 4 taken 5 times.
✓ Branch 5 taken 16 times.
✗ Branch 6 not taken.
✓ Branch 7 taken 2 times.
✓ Branch 8 taken 1 times.
✓ Branch 9 taken 1 times.
✓ Branch 10 taken 219 times.
✓ Branch 11 taken 1 times.
✓ Branch 12 taken 84 times.
✓ Branch 13 taken 24 times.
✓ Branch 14 taken 1 times.
✓ Branch 15 taken 1287 times.
✗ Branch 16 not taken.
✓ Branch 17 taken 1 times.
✗ Branch 18 not taken.
✗ Branch 19 not taken.
✓ Branch 20 taken 1 times.
✓ Branch 21 taken 86 times.
✓ Branch 22 taken 7 times.
✓ Branch 23 taken 1 times.
✓ Branch 24 taken 126 times.
✓ Branch 25 taken 3 times.
✓ Branch 26 taken 1 times.
✓ Branch 27 taken 134 times.
✓ Branch 28 taken 39 times.
✓ Branch 29 taken 35 times.
✓ Branch 30 taken 120 times.
✓ Branch 31 taken 17 times.
✓ Branch 32 taken 2 times.
✓ Branch 33 taken 135 times.
✓ Branch 34 taken 16 times.
✓ Branch 35 taken 1 times.
✓ Branch 36 taken 126 times.
✓ Branch 37 taken 40 times.
✓ Branch 38 taken 3 times.
✓ Branch 39 taken 128 times.
✓ Branch 40 taken 28 times.
✓ Branch 41 taken 1 times.
✓ Branch 42 taken 134 times.
✓ Branch 43 taken 51 times.
✓ Branch 44 taken 6 times.
✓ Branch 45 taken 142 times.
✓ Branch 46 taken 56 times.
✓ Branch 47 taken 1 times.
✓ Branch 48 taken 223 times.
✗ Branch 49 not taken.
✓ Branch 50 taken 1 times.
✓ Branch 51 taken 256 times.
✗ Branch 52 not taken.
✓ Branch 53 taken 1 times.
✓ Branch 54 taken 94 times.
✗ Branch 55 not taken.
✓ Branch 56 taken 1 times.
✓ Branch 57 taken 94 times.
✗ Branch 58 not taken.
✓ Branch 59 taken 1 times.
✓ Branch 60 taken 94 times.
✗ Branch 61 not taken.
✓ Branch 62 taken 1 times.
✓ Branch 63 taken 887 times.
✓ Branch 64 taken 1 times.
✓ Branch 65 taken 5 times.
✓ Branch 66 taken 68 times.
✗ Branch 67 not taken.
✓ Branch 68 taken 9 times.
✓ Branch 69 taken 549 times.
✗ Branch 70 not taken.
✓ Branch 71 taken 1 times.
✓ Branch 72 taken 187 times.
✓ Branch 73 taken 1 times.
✓ Branch 74 taken 1 times.
✓ Branch 75 taken 556 times.
✗ Branch 76 not taken.
✓ Branch 77 taken 1 times.
✓ Branch 78 taken 786 times.
✗ Branch 79 not taken.
✓ Branch 80 taken 1 times.
✗ Branch 81 not taken.
✓ Branch 83 taken 1 times.
✗ Branch 84 not taken.
✓ Branch 86 taken 1 times.
✗ Branch 87 not taken.
✓ Branch 89 taken 1 times.
✗ Branch 90 not taken.
✓ Branch 92 taken 1 times.
✗ Branch 93 not taken.
✓ Branch 95 taken 1 times.
✗ Branch 96 not taken.
✓ Branch 98 taken 1 times.
✗ Branch 99 not taken.
✓ Branch 101 taken 1 times.
✗ Branch 102 not taken.
✓ Branch 104 taken 1 times.
✗ Branch 105 not taken.
✓ Branch 107 taken 1 times.
✗ Branch 108 not taken.
✓ Branch 110 taken 1 times.
✗ Branch 111 not taken.
✓ Branch 113 taken 1 times.
✗ Branch 114 not taken.
✓ Branch 116 taken 1 times.
✗ Branch 117 not taken.
✓ Branch 119 taken 1 times.
✗ Branch 120 not taken.
✓ Branch 122 taken 1 times.
✗ Branch 123 not taken.
✓ Branch 125 taken 1 times.
✗ Branch 126 not taken.
✓ Branch 128 taken 1 times.
✗ Branch 129 not taken.
✓ Branch 131 taken 1 times.
✗ Branch 132 not taken.
✓ Branch 134 taken 1 times.
✗ Branch 135 not taken.
✓ Branch 137 taken 1 times.
✗ Branch 138 not taken.
✓ Branch 140 taken 1 times.
✗ Branch 141 not taken.
✓ Branch 143 taken 1 times.
✗ Branch 144 not taken.
✓ Branch 146 taken 1 times.
✗ Branch 147 not taken.
✓ Branch 149 taken 1 times.
✗ Branch 150 not taken.
✓ Branch 152 taken 1 times.
✗ Branch 153 not taken.
✓ Branch 155 taken 1 times.
✗ Branch 156 not taken.
✓ Branch 158 taken 1 times.
✗ Branch 159 not taken.
✓ Branch 161 taken 1 times.
✗ Branch 162 not taken.
✓ Branch 164 taken 1 times.
✗ Branch 165 not taken.
✓ Branch 167 taken 1 times.
✗ Branch 168 not taken.
✓ Branch 170 taken 1 times.
✗ Branch 171 not taken.
✓ Branch 173 taken 1 times.
✗ Branch 174 not taken.
✓ Branch 176 taken 1 times.
✗ Branch 177 not taken.
✓ Branch 179 taken 1 times.
✗ Branch 180 not taken.
✓ Branch 182 taken 1 times.
✗ Branch 183 not taken.
✓ Branch 185 taken 1 times.
✗ Branch 186 not taken.
✓ Branch 188 taken 1 times.
✗ Branch 189 not taken.
✓ Branch 191 taken 1 times.
✗ Branch 192 not taken.
✓ Branch 194 taken 1 times.
✗ Branch 195 not taken.
✓ Branch 197 taken 1 times.
✗ Branch 198 not taken.
✓ Branch 200 taken 1 times.
✗ Branch 201 not taken.
✓ Branch 203 taken 1 times.
✗ Branch 204 not taken.
✓ Branch 206 taken 1 times.
✗ Branch 207 not taken.
✓ Branch 209 taken 1 times.
✗ Branch 210 not taken.
✓ Branch 212 taken 1 times.
✗ Branch 213 not taken.
✓ Branch 215 taken 1 times.
✗ Branch 216 not taken.
✓ Branch 218 taken 1 times.
✗ Branch 219 not taken.
✓ Branch 221 taken 1 times.
✗ Branch 222 not taken.
✓ Branch 224 taken 1 times.
✗ Branch 225 not taken.
✓ Branch 227 taken 1 times.
✗ Branch 228 not taken.
✓ Branch 230 taken 1 times.
✗ Branch 231 not taken.
✓ Branch 233 taken 1 times.
✗ Branch 234 not taken.
✓ Branch 236 taken 1 times.
✗ Branch 237 not taken.
✓ Branch 239 taken 1 times.
✗ Branch 240 not taken.
✓ Branch 242 taken 1 times.
✗ Branch 243 not taken.
✓ Branch 245 taken 1 times.
✗ Branch 246 not taken.
✓ Branch 248 taken 1 times.
✗ Branch 249 not taken.
✓ Branch 251 taken 1 times.
✗ Branch 252 not taken.
✓ Branch 254 taken 1 times.
✗ Branch 255 not taken.
✓ Branch 257 taken 1 times.
✗ Branch 258 not taken.
✓ Branch 260 taken 1 times.
✗ Branch 261 not taken.
✓ Branch 263 taken 1 times.
✗ Branch 264 not taken.
✓ Branch 267 taken 1 times.
✗ Branch 268 not taken.
✓ Branch 270 taken 1 times.
✗ Branch 271 not taken.
✓ Branch 273 taken 1 times.
✗ Branch 274 not taken.
✓ Branch 276 taken 1 times.
✗ Branch 277 not taken.
✓ Branch 279 taken 1 times.
✗ Branch 280 not taken.
✓ Branch 282 taken 1 times.
✗ Branch 283 not taken.
✓ Branch 285 taken 1 times.
✗ Branch 286 not taken.
✓ Branch 288 taken 1 times.
✗ Branch 289 not taken.
✓ Branch 291 taken 1 times.
✗ Branch 292 not taken.
✓ Branch 294 taken 1 times.
✗ Branch 295 not taken.
✓ Branch 297 taken 1 times.
✗ Branch 298 not taken.
✓ Branch 300 taken 1 times.
✗ Branch 301 not taken.
✓ Branch 304 taken 1 times.
✗ Branch 305 not taken.
✓ Branch 307 taken 1 times.
✗ Branch 308 not taken.
✓ Branch 310 taken 1 times.
✗ Branch 311 not taken.
✓ Branch 313 taken 1 times.
✗ Branch 314 not taken.
✓ Branch 316 taken 1 times.
✗ Branch 317 not taken.
✓ Branch 319 taken 1 times.
✗ Branch 320 not taken.
✓ Branch 323 taken 1 times.
✗ Branch 324 not taken.
✓ Branch 326 taken 1 times.
✗ Branch 327 not taken.
✓ Branch 329 taken 1 times.
✗ Branch 330 not taken.
✓ Branch 332 taken 1 times.
✗ Branch 333 not taken.
✓ Branch 335 taken 1 times.
✗ Branch 336 not taken.
✓ Branch 338 taken 1 times.
✗ Branch 339 not taken.
✓ Branch 342 taken 1 times.
✗ Branch 343 not taken.
✓ Branch 345 taken 1 times.
✗ Branch 346 not taken.
✓ Branch 348 taken 1 times.
✗ Branch 349 not taken.
✓ Branch 351 taken 1 times.
✗ Branch 352 not taken.
✓ Branch 354 taken 1 times.
✗ Branch 355 not taken.
✓ Branch 357 taken 1 times.
✗ Branch 358 not taken.
✓ Branch 361 taken 1 times.
✗ Branch 362 not taken.
✓ Branch 364 taken 1 times.
✗ Branch 365 not taken.
✓ Branch 367 taken 1 times.
✗ Branch 368 not taken.
✓ Branch 371 taken 1 times.
✗ Branch 372 not taken.
✓ Branch 374 taken 1 times.
✗ Branch 375 not taken.
✓ Branch 377 taken 1 times.
✗ Branch 378 not taken.
✓ Branch 381 taken 1 times.
✗ Branch 382 not taken.
✓ Branch 384 taken 1 times.
✗ Branch 385 not taken.
✓ Branch 387 taken 1 times.
✗ Branch 388 not taken.
✓ Branch 391 taken 1 times.
✗ Branch 392 not taken.
✓ Branch 394 taken 1 times.
✗ Branch 395 not taken.
✓ Branch 397 taken 1 times.
✗ Branch 398 not taken.
✓ Branch 400 taken 1 times.
✗ Branch 401 not taken.
✓ Branch 403 taken 1 times.
✗ Branch 404 not taken.
✓ Branch 406 taken 1 times.
✗ Branch 407 not taken.
✓ Branch 409 taken 1 times.
✗ Branch 410 not taken.
✓ Branch 412 taken 1 times.
✗ Branch 413 not taken.
✓ Branch 415 taken 1 times.
✗ Branch 416 not taken.
✓ Branch 418 taken 1 times.
✗ Branch 419 not taken.
✓ Branch 421 taken 1 times.
✗ Branch 422 not taken.
✓ Branch 424 taken 1 times.
✗ Branch 425 not taken.
✓ Branch 427 taken 1 times.
✗ Branch 428 not taken.
✓ Branch 430 taken 1 times.
✗ Branch 431 not taken.
✓ Branch 433 taken 1 times.
✗ Branch 434 not taken.
✓ Branch 436 taken 1 times.
✗ Branch 437 not taken.
✓ Branch 439 taken 1 times.
✗ Branch 440 not taken.
✓ Branch 442 taken 1 times.
✗ Branch 443 not taken.
✓ Branch 445 taken 1 times.
✗ Branch 446 not taken.
✓ Branch 448 taken 1 times.
✗ Branch 449 not taken.
✓ Branch 451 taken 1 times.
✗ Branch 452 not taken.
✓ Branch 454 taken 1 times.
✗ Branch 455 not taken.
✓ Branch 457 taken 1 times.
✗ Branch 458 not taken.
✓ Branch 460 taken 1 times.
✗ Branch 461 not taken.
✓ Branch 463 taken 1 times.
✗ Branch 464 not taken.
✓ Branch 466 taken 1 times.
✗ Branch 467 not taken.
✓ Branch 469 taken 1 times.
✗ Branch 470 not taken.
✓ Branch 472 taken 1 times.
✗ Branch 473 not taken.
✓ Branch 475 taken 1 times.
✗ Branch 476 not taken.
✓ Branch 478 taken 1 times.
✗ Branch 479 not taken.
✓ Branch 481 taken 1 times.
✗ Branch 482 not taken.
✓ Branch 484 taken 1 times.
✗ Branch 485 not taken.
✓ Branch 487 taken 1 times.
✗ Branch 488 not taken.
✓ Branch 490 taken 1 times.
✗ Branch 491 not taken.
✓ Branch 493 taken 1 times.
✗ Branch 494 not taken.
✓ Branch 496 taken 1 times.
✗ Branch 497 not taken.
✓ Branch 499 taken 1 times.
✗ Branch 500 not taken.
✓ Branch 502 taken 1 times.
✗ Branch 503 not taken.
✓ Branch 505 taken 1 times.
✗ Branch 506 not taken.
✓ Branch 508 taken 1 times.
✗ Branch 509 not taken.
✓ Branch 511 taken 1 times.
✗ Branch 512 not taken.
✓ Branch 514 taken 1 times.
✗ Branch 515 not taken.
✓ Branch 517 taken 1 times.
✗ Branch 518 not taken.
✓ Branch 520 taken 1 times.
✗ Branch 521 not taken.
✓ Branch 523 taken 1 times.
✗ Branch 524 not taken.
✓ Branch 526 taken 1 times.
✗ Branch 527 not taken.
✓ Branch 529 taken 1 times.
✗ Branch 530 not taken.
✓ Branch 532 taken 1 times.
✗ Branch 533 not taken.
✓ Branch 535 taken 1 times.
✗ Branch 536 not taken.
✓ Branch 538 taken 1 times.
✗ Branch 539 not taken.
✓ Branch 541 taken 1 times.
✗ Branch 542 not taken.
✓ Branch 544 taken 1 times.
✗ Branch 545 not taken.
✓ Branch 547 taken 1 times.
✗ Branch 548 not taken.
✓ Branch 550 taken 1 times.
✗ Branch 551 not taken.
✓ Branch 553 taken 1 times.
✗ Branch 554 not taken.
✓ Branch 556 taken 1 times.
✗ Branch 557 not taken.
✓ Branch 559 taken 1 times.
✗ Branch 560 not taken.
✓ Branch 563 taken 1 times.
✗ Branch 564 not taken.
✓ Branch 566 taken 1 times.
✗ Branch 567 not taken.
✓ Branch 570 taken 1 times.
✗ Branch 571 not taken.
✓ Branch 573 taken 1 times.
✗ Branch 574 not taken.
✓ Branch 577 taken 1 times.
✗ Branch 578 not taken.
✓ Branch 580 taken 1 times.
✗ Branch 581 not taken.
✓ Branch 584 taken 1 times.
✗ Branch 585 not taken.
✓ Branch 587 taken 1 times.
✗ Branch 588 not taken.
✓ Branch 591 taken 1 times.
✗ Branch 592 not taken.
✓ Branch 594 taken 1 times.
✗ Branch 595 not taken.
✓ Branch 598 taken 1 times.
✗ Branch 599 not taken.
✓ Branch 601 taken 1 times.
✗ Branch 602 not taken.
✓ Branch 605 taken 1 times.
✗ Branch 606 not taken.
✓ Branch 608 taken 1 times.
✗ Branch 609 not taken.
✓ Branch 612 taken 1 times.
✗ Branch 613 not taken.
✓ Branch 615 taken 1 times.
✗ Branch 616 not taken.
✓ Branch 619 taken 1 times.
✗ Branch 620 not taken.
✓ Branch 622 taken 1 times.
✗ Branch 623 not taken.
✓ Branch 625 taken 1 times.
✗ Branch 626 not taken.
✓ Branch 628 taken 1 times.
✗ Branch 629 not taken.
✓ Branch 631 taken 1 times.
✗ Branch 632 not taken.
✓ Branch 634 taken 1 times.
✗ Branch 635 not taken.
✓ Branch 638 taken 1 times.
✗ Branch 639 not taken.
✓ Branch 641 taken 1 times.
✗ Branch 642 not taken.
✓ Branch 644 taken 1 times.
✗ Branch 645 not taken.
✓ Branch 648 taken 1 times.
✗ Branch 649 not taken.
✓ Branch 651 taken 1 times.
✗ Branch 652 not taken.
✓ Branch 654 taken 1 times.
✗ Branch 655 not taken.
✓ Branch 658 taken 1 times.
✗ Branch 659 not taken.
✓ Branch 661 taken 1 times.
✗ Branch 662 not taken.
✓ Branch 664 taken 1 times.
✗ Branch 665 not taken.
✓ Branch 667 taken 1 times.
✗ Branch 668 not taken.
✓ Branch 670 taken 1 times.
✗ Branch 671 not taken.
✓ Branch 673 taken 1 times.
✗ Branch 674 not taken.
✓ Branch 677 taken 1 times.
✗ Branch 678 not taken.
✓ Branch 680 taken 1 times.
✗ Branch 681 not taken.
✓ Branch 683 taken 1 times.
✗ Branch 684 not taken.
✓ Branch 687 taken 1 times.
✗ Branch 688 not taken.
✓ Branch 690 taken 1 times.
✗ Branch 691 not taken.
✓ Branch 693 taken 1 times.
✗ Branch 694 not taken.
✓ Branch 697 taken 1 times.
✗ Branch 698 not taken.
✓ Branch 700 taken 1 times.
✗ Branch 701 not taken.
✓ Branch 703 taken 1 times.
✗ Branch 704 not taken.
✓ Branch 707 taken 1 times.
✗ Branch 708 not taken.
✓ Branch 710 taken 1 times.
✗ Branch 711 not taken.
✓ Branch 713 taken 1 times.
✗ Branch 714 not taken.
✓ Branch 717 taken 1 times.
✗ Branch 718 not taken.
✓ Branch 720 taken 1 times.
✗ Branch 721 not taken.
✓ Branch 723 taken 1 times.
✗ Branch 724 not taken.
✓ Branch 727 taken 1 times.
✗ Branch 728 not taken.
✓ Branch 730 taken 1 times.
✗ Branch 731 not taken.
✓ Branch 733 taken 1 times.
✗ Branch 734 not taken.
✓ Branch 737 taken 1 times.
✗ Branch 738 not taken.
✓ Branch 740 taken 1 times.
✗ Branch 741 not taken.
✓ Branch 743 taken 1 times.
✗ Branch 744 not taken.
✓ Branch 747 taken 1 times.
✗ Branch 748 not taken.
✓ Branch 750 taken 1 times.
✗ Branch 751 not taken.
✓ Branch 753 taken 1 times.
✗ Branch 754 not taken.
✓ Branch 757 taken 1 times.
✗ Branch 758 not taken.
✓ Branch 760 taken 1 times.
✗ Branch 761 not taken.
✓ Branch 763 taken 1 times.
✗ Branch 764 not taken.
✓ Branch 767 taken 1 times.
✗ Branch 768 not taken.
✓ Branch 770 taken 1 times.
✗ Branch 771 not taken.
✓ Branch 773 taken 1 times.
✗ Branch 774 not taken.
✓ Branch 777 taken 1 times.
✗ Branch 778 not taken.
✓ Branch 780 taken 1 times.
✗ Branch 781 not taken.
✓ Branch 783 taken 1 times.
✗ Branch 784 not taken.
✓ Branch 786 taken 1 times.
✗ Branch 787 not taken.
✓ Branch 789 taken 1 times.
✗ Branch 790 not taken.
✓ Branch 792 taken 1 times.
✗ Branch 793 not taken.
✓ Branch 795 taken 1 times.
✗ Branch 796 not taken.
✓ Branch 798 taken 1 times.
✗ Branch 799 not taken.
✓ Branch 801 taken 1 times.
✗ Branch 802 not taken.
✓ Branch 804 taken 1 times.
✗ Branch 805 not taken.
✓ Branch 807 taken 1 times.
✗ Branch 808 not taken.
✓ Branch 810 taken 1 times.
✗ Branch 811 not taken.
✓ Branch 813 taken 1 times.
✗ Branch 814 not taken.
✓ Branch 816 taken 1 times.
✗ Branch 817 not taken.
✓ Branch 819 taken 1 times.
✗ Branch 820 not taken.
✓ Branch 822 taken 1 times.
✗ Branch 823 not taken.
✓ Branch 825 taken 1 times.
✗ Branch 826 not taken.
✓ Branch 828 taken 1 times.
✗ Branch 829 not taken.
✓ Branch 832 taken 1 times.
✗ Branch 833 not taken.
✓ Branch 835 taken 1 times.
✗ Branch 836 not taken.
✓ Branch 839 taken 1 times.
✗ Branch 840 not taken.
✓ Branch 842 taken 1 times.
✗ Branch 843 not taken.
✓ Branch 845 taken 1 times.
✗ Branch 846 not taken.
✓ Branch 848 taken 1 times.
✗ Branch 849 not taken.
✓ Branch 851 taken 1 times.
✗ Branch 852 not taken.
✓ Branch 854 taken 1 times.
✗ Branch 855 not taken.
✓ Branch 857 taken 1 times.
✗ Branch 858 not taken.
✓ Branch 860 taken 1 times.
✗ Branch 861 not taken.
✓ Branch 863 taken 1 times.
✗ Branch 864 not taken.
✓ Branch 866 taken 1 times.
✗ Branch 867 not taken.
✓ Branch 869 taken 1 times.
✗ Branch 870 not taken.
✓ Branch 872 taken 1 times.
✗ Branch 873 not taken.
✓ Branch 875 taken 1 times.
✗ Branch 876 not taken.
✓ Branch 878 taken 1 times.
✗ Branch 879 not taken.
✓ Branch 881 taken 1 times.
✗ Branch 882 not taken.
✓ Branch 884 taken 1 times.
✗ Branch 885 not taken.
✓ Branch 887 taken 1 times.
✗ Branch 888 not taken.
✓ Branch 890 taken 1 times.
✗ Branch 891 not taken.
✓ Branch 893 taken 1 times.
✗ Branch 894 not taken.
✓ Branch 896 taken 1 times.
✗ Branch 897 not taken.
✓ Branch 899 taken 1 times.
✗ Branch 900 not taken.
✓ Branch 902 taken 1 times.
✗ Branch 903 not taken.
|
26735959 | RootNodeType& root() { return mRoot; } |
282 |
41/351✗ Branch 1 not taken.
✗ Branch 2 not taken.
✗ Branch 3 not taken.
✗ Branch 4 not taken.
✓ Branch 5 taken 15 times.
✓ Branch 6 taken 1 times.
✗ Branch 7 not taken.
✓ Branch 8 taken 102 times.
✓ Branch 9 taken 24 times.
✗ Branch 10 not taken.
✓ Branch 11 taken 119 times.
✗ Branch 12 not taken.
✗ Branch 13 not taken.
✓ Branch 14 taken 39 times.
✓ Branch 15 taken 15 times.
✗ Branch 16 not taken.
✓ Branch 17 taken 5567 times.
✗ Branch 18 not taken.
✗ Branch 19 not taken.
✓ Branch 20 taken 23 times.
✓ Branch 21 taken 31 times.
✗ Branch 22 not taken.
✓ Branch 23 taken 28 times.
✓ Branch 24 taken 3 times.
✗ Branch 25 not taken.
✓ Branch 26 taken 6 times.
✗ Branch 27 not taken.
✓ Branch 28 taken 1 times.
✗ Branch 29 not taken.
✓ Branch 30 taken 67 times.
✗ Branch 31 not taken.
✓ Branch 32 taken 85 times.
✗ Branch 33 not taken.
✓ Branch 34 taken 2 times.
✓ Branch 35 taken 6 times.
✗ Branch 36 not taken.
✓ Branch 37 taken 2 times.
✓ Branch 38 taken 6 times.
✗ Branch 39 not taken.
✗ Branch 40 not taken.
✓ Branch 41 taken 5 times.
✗ Branch 42 not taken.
✗ Branch 43 not taken.
✓ Branch 44 taken 1 times.
✗ Branch 45 not taken.
✗ Branch 46 not taken.
✓ Branch 47 taken 4 times.
✗ Branch 48 not taken.
✗ Branch 49 not taken.
✓ Branch 50 taken 6 times.
✗ Branch 51 not taken.
✗ Branch 52 not taken.
✓ Branch 53 taken 68 times.
✗ Branch 54 not taken.
✗ Branch 55 not taken.
✓ Branch 56 taken 2 times.
✗ Branch 57 not taken.
✗ Branch 58 not taken.
✓ Branch 59 taken 5126 times.
✗ Branch 60 not taken.
✗ Branch 61 not taken.
✓ Branch 62 taken 67 times.
✗ Branch 63 not taken.
✗ Branch 64 not taken.
✓ Branch 65 taken 2 times.
✓ Branch 66 taken 1 times.
✓ Branch 67 taken 6 times.
✗ Branch 68 not taken.
✓ Branch 69 taken 1 times.
✗ Branch 70 not taken.
✗ Branch 71 not taken.
✗ Branch 72 not taken.
✗ Branch 73 not taken.
✓ Branch 74 taken 1 times.
✗ Branch 75 not taken.
✗ Branch 76 not taken.
✓ Branch 77 taken 3233 times.
✗ Branch 78 not taken.
✓ Branch 79 taken 3 times.
✗ Branch 80 not taken.
✗ Branch 81 not taken.
✗ Branch 82 not taken.
✗ Branch 83 not taken.
✗ Branch 84 not taken.
✓ Branch 85 taken 2 times.
✗ Branch 86 not taken.
✗ Branch 87 not taken.
✗ Branch 88 not taken.
✗ Branch 89 not taken.
✗ Branch 90 not taken.
✓ Branch 91 taken 3 times.
✗ Branch 92 not taken.
✗ Branch 93 not taken.
✗ Branch 94 not taken.
✗ Branch 95 not taken.
✗ Branch 96 not taken.
✗ Branch 97 not taken.
✗ Branch 98 not taken.
✗ Branch 99 not taken.
✗ Branch 100 not taken.
✗ Branch 101 not taken.
✗ Branch 102 not taken.
✓ Branch 103 taken 16 times.
✗ Branch 104 not taken.
✗ Branch 105 not taken.
✗ Branch 106 not taken.
✗ Branch 107 not taken.
✗ Branch 108 not taken.
✓ Branch 109 taken 10 times.
✗ Branch 110 not taken.
✗ Branch 111 not taken.
✗ Branch 112 not taken.
✗ Branch 113 not taken.
✗ Branch 114 not taken.
✗ Branch 115 not taken.
✗ Branch 116 not taken.
✗ Branch 117 not taken.
✗ Branch 118 not taken.
✗ Branch 119 not taken.
✗ Branch 120 not taken.
✗ Branch 121 not taken.
✗ Branch 122 not taken.
✗ Branch 123 not taken.
✓ Branch 124 taken 7 times.
✗ Branch 125 not taken.
✗ Branch 126 not taken.
✗ Branch 127 not taken.
✗ Branch 128 not taken.
✗ Branch 129 not taken.
✗ Branch 130 not taken.
✗ Branch 131 not taken.
✗ Branch 132 not taken.
✗ Branch 133 not taken.
✗ Branch 134 not taken.
✗ Branch 135 not taken.
✗ Branch 136 not taken.
✗ Branch 137 not taken.
✗ Branch 138 not taken.
✗ Branch 139 not taken.
✗ Branch 140 not taken.
✗ Branch 141 not taken.
✗ Branch 142 not taken.
✗ Branch 143 not taken.
✗ Branch 144 not taken.
✗ Branch 145 not taken.
✗ Branch 146 not taken.
✗ Branch 147 not taken.
✗ Branch 148 not taken.
✗ Branch 149 not taken.
✗ Branch 150 not taken.
✗ Branch 151 not taken.
✗ Branch 152 not taken.
✗ Branch 153 not taken.
✗ Branch 154 not taken.
✗ Branch 155 not taken.
✗ Branch 156 not taken.
✗ Branch 157 not taken.
✗ Branch 158 not taken.
✗ Branch 159 not taken.
✗ Branch 160 not taken.
✗ Branch 161 not taken.
✗ Branch 162 not taken.
✗ Branch 163 not taken.
✗ Branch 164 not taken.
✗ Branch 165 not taken.
✗ Branch 166 not taken.
✗ Branch 167 not taken.
✗ Branch 168 not taken.
✗ Branch 169 not taken.
✗ Branch 170 not taken.
✗ Branch 171 not taken.
✗ Branch 172 not taken.
✗ Branch 173 not taken.
✗ Branch 174 not taken.
✗ Branch 175 not taken.
✗ Branch 176 not taken.
✓ Branch 177 taken 6 times.
✗ Branch 178 not taken.
✗ Branch 179 not taken.
✗ Branch 180 not taken.
✗ Branch 181 not taken.
✗ Branch 182 not taken.
✗ Branch 183 not taken.
✗ Branch 184 not taken.
✗ Branch 185 not taken.
✗ Branch 186 not taken.
✗ Branch 187 not taken.
✗ Branch 188 not taken.
✗ Branch 189 not taken.
✗ Branch 190 not taken.
✗ Branch 191 not taken.
✗ Branch 192 not taken.
✗ Branch 193 not taken.
✗ Branch 194 not taken.
✗ Branch 195 not taken.
✗ Branch 196 not taken.
✗ Branch 197 not taken.
✗ Branch 198 not taken.
✗ Branch 199 not taken.
✗ Branch 200 not taken.
✗ Branch 201 not taken.
✗ Branch 202 not taken.
✗ Branch 203 not taken.
✗ Branch 204 not taken.
✗ Branch 205 not taken.
✗ Branch 206 not taken.
✗ Branch 207 not taken.
✗ Branch 208 not taken.
✗ Branch 209 not taken.
✗ Branch 210 not taken.
✗ Branch 211 not taken.
✗ Branch 212 not taken.
✗ Branch 213 not taken.
✗ Branch 214 not taken.
✗ Branch 215 not taken.
✗ Branch 216 not taken.
✗ Branch 217 not taken.
✗ Branch 218 not taken.
✗ Branch 219 not taken.
✗ Branch 220 not taken.
✗ Branch 221 not taken.
✗ Branch 222 not taken.
✗ Branch 223 not taken.
✗ Branch 224 not taken.
✗ Branch 225 not taken.
✗ Branch 226 not taken.
✗ Branch 227 not taken.
✗ Branch 228 not taken.
✗ Branch 229 not taken.
✗ Branch 230 not taken.
✗ Branch 231 not taken.
✗ Branch 232 not taken.
✗ Branch 233 not taken.
✗ Branch 234 not taken.
✗ Branch 235 not taken.
✗ Branch 236 not taken.
✗ Branch 237 not taken.
✗ Branch 238 not taken.
✗ Branch 239 not taken.
✗ Branch 240 not taken.
✗ Branch 241 not taken.
✗ Branch 242 not taken.
✗ Branch 243 not taken.
✗ Branch 244 not taken.
✗ Branch 245 not taken.
✗ Branch 246 not taken.
✗ Branch 247 not taken.
✗ Branch 248 not taken.
✗ Branch 249 not taken.
✗ Branch 250 not taken.
✗ Branch 251 not taken.
✗ Branch 252 not taken.
✗ Branch 253 not taken.
✗ Branch 254 not taken.
✗ Branch 255 not taken.
✗ Branch 256 not taken.
✗ Branch 257 not taken.
✗ Branch 258 not taken.
✗ Branch 259 not taken.
✗ Branch 260 not taken.
✗ Branch 261 not taken.
✗ Branch 262 not taken.
✗ Branch 263 not taken.
✗ Branch 264 not taken.
✗ Branch 265 not taken.
✗ Branch 266 not taken.
✗ Branch 267 not taken.
✗ Branch 268 not taken.
✗ Branch 269 not taken.
✗ Branch 270 not taken.
✗ Branch 271 not taken.
✗ Branch 272 not taken.
✗ Branch 273 not taken.
✗ Branch 274 not taken.
✗ Branch 275 not taken.
✗ Branch 276 not taken.
✗ Branch 277 not taken.
✗ Branch 278 not taken.
✗ Branch 279 not taken.
✗ Branch 280 not taken.
✗ Branch 281 not taken.
✗ Branch 282 not taken.
✗ Branch 283 not taken.
✗ Branch 284 not taken.
✗ Branch 285 not taken.
✗ Branch 286 not taken.
✗ Branch 287 not taken.
✗ Branch 288 not taken.
✗ Branch 289 not taken.
✗ Branch 290 not taken.
✗ Branch 291 not taken.
✗ Branch 292 not taken.
✗ Branch 293 not taken.
✗ Branch 294 not taken.
✗ Branch 295 not taken.
✗ Branch 296 not taken.
✗ Branch 297 not taken.
✗ Branch 298 not taken.
✗ Branch 299 not taken.
✗ Branch 300 not taken.
✗ Branch 301 not taken.
✗ Branch 302 not taken.
✗ Branch 303 not taken.
✗ Branch 304 not taken.
✗ Branch 305 not taken.
✗ Branch 306 not taken.
✗ Branch 307 not taken.
✗ Branch 308 not taken.
✗ Branch 309 not taken.
✗ Branch 310 not taken.
✗ Branch 311 not taken.
✗ Branch 312 not taken.
✗ Branch 313 not taken.
✗ Branch 314 not taken.
✗ Branch 315 not taken.
✗ Branch 316 not taken.
✗ Branch 317 not taken.
✗ Branch 318 not taken.
✗ Branch 319 not taken.
✗ Branch 320 not taken.
✗ Branch 321 not taken.
✗ Branch 323 not taken.
✗ Branch 324 not taken.
✗ Branch 326 not taken.
✗ Branch 327 not taken.
✗ Branch 329 not taken.
✗ Branch 330 not taken.
✗ Branch 332 not taken.
✗ Branch 333 not taken.
✗ Branch 335 not taken.
✗ Branch 336 not taken.
✗ Branch 338 not taken.
✗ Branch 339 not taken.
✗ Branch 341 not taken.
✗ Branch 342 not taken.
✗ Branch 344 not taken.
✗ Branch 345 not taken.
✗ Branch 347 not taken.
✗ Branch 348 not taken.
✗ Branch 350 not taken.
✗ Branch 351 not taken.
✗ Branch 353 not taken.
✗ Branch 354 not taken.
✗ Branch 356 not taken.
✗ Branch 357 not taken.
✗ Branch 359 not taken.
✗ Branch 360 not taken.
✗ Branch 362 not taken.
✗ Branch 363 not taken.
✗ Branch 365 not taken.
✗ Branch 366 not taken.
|
706956794 | const RootNodeType& root() const { return mRoot; } |
283 | //@} | ||
284 | |||
285 | |||
286 | // | ||
287 | // Tree methods | ||
288 | // | ||
289 | /// @brief Return @c true if the given tree has the same node and active value | ||
290 | /// topology as this tree, whether or not it has the same @c ValueType. | ||
291 | template<typename OtherRootNodeType> | ||
292 | bool hasSameTopology(const Tree<OtherRootNodeType>& other) const; | ||
293 | |||
294 | bool evalLeafBoundingBox(CoordBBox& bbox) const override; | ||
295 | bool evalActiveVoxelBoundingBox(CoordBBox& bbox) const override; | ||
296 | bool evalActiveVoxelDim(Coord& dim) const override; | ||
297 | bool evalLeafDim(Coord& dim) const override; | ||
298 | |||
299 | /// @brief Traverse the type hierarchy of nodes, and return, in @a dims, a list | ||
300 | /// of the Log2Dims of nodes in order from RootNode to LeafNode. | ||
301 | /// @note Because RootNodes are resizable, the RootNode Log2Dim is 0 for all trees. | ||
302 | static void getNodeLog2Dims(std::vector<Index>& dims); | ||
303 | |||
304 | |||
305 | // | ||
306 | // I/O methods | ||
307 | // | ||
308 | /// @brief Read the tree topology from a stream. | ||
309 | /// | ||
310 | /// This will read the tree structure and tile values, but not voxel data. | ||
311 | void readTopology(std::istream&, bool saveFloatAsHalf = false) override; | ||
312 | /// @brief Write the tree topology to a stream. | ||
313 | /// | ||
314 | /// This will write the tree structure and tile values, but not voxel data. | ||
315 | void writeTopology(std::ostream&, bool saveFloatAsHalf = false) const override; | ||
316 | /// Read all data buffers for this tree. | ||
317 | void readBuffers(std::istream&, bool saveFloatAsHalf = false) override; | ||
318 | /// Read all of this tree's data buffers that intersect the given bounding box. | ||
319 | void readBuffers(std::istream&, const CoordBBox&, bool saveFloatAsHalf = false) override; | ||
320 | /// @brief Read all of this tree's data buffers that are not yet resident in memory | ||
321 | /// (because delayed loading is in effect). | ||
322 | /// @details If this tree was read from a memory-mapped file, this operation | ||
323 | /// disconnects the tree from the file. | ||
324 | /// @sa clipUnallocatedNodes, io::File::open, io::MappedFile | ||
325 | void readNonresidentBuffers() const override; | ||
326 | /// Write out all data buffers for this tree. | ||
327 | void writeBuffers(std::ostream&, bool saveFloatAsHalf = false) const override; | ||
328 | |||
329 | void print(std::ostream& os = std::cout, int verboseLevel = 1) const override; | ||
330 | |||
331 | |||
332 | // | ||
333 | // Statistics | ||
334 | // | ||
335 | /// @brief Return the depth of this tree. | ||
336 | /// | ||
337 | /// A tree with only a root node and leaf nodes has depth 2, for example. | ||
338 | 18 | Index treeDepth() const override { return DEPTH; } | |
339 | /// Return the number of leaf nodes. | ||
340 |
152/283✓ Branch 1 taken 12 times.
✓ Branch 2 taken 1 times.
✗ Branch 3 not taken.
✓ Branch 4 taken 10 times.
✓ Branch 5 taken 1 times.
✓ Branch 6 taken 65 times.
✓ Branch 7 taken 8 times.
✓ Branch 8 taken 1 times.
✗ Branch 9 not taken.
✓ Branch 10 taken 8 times.
✓ Branch 11 taken 1 times.
✗ Branch 12 not taken.
✓ Branch 13 taken 7 times.
✓ Branch 14 taken 1 times.
✗ Branch 15 not taken.
✓ Branch 16 taken 8 times.
✓ Branch 17 taken 1 times.
✗ Branch 18 not taken.
✓ Branch 19 taken 8 times.
✓ Branch 20 taken 1 times.
✗ Branch 21 not taken.
✓ Branch 22 taken 6 times.
✓ Branch 23 taken 1 times.
✗ Branch 24 not taken.
✓ Branch 25 taken 6 times.
✓ Branch 26 taken 1 times.
✗ Branch 27 not taken.
✓ Branch 28 taken 6 times.
✓ Branch 29 taken 1 times.
✗ Branch 30 not taken.
✓ Branch 31 taken 6 times.
✓ Branch 32 taken 1 times.
✗ Branch 33 not taken.
✓ Branch 34 taken 5 times.
✓ Branch 35 taken 1 times.
✗ Branch 36 not taken.
✓ Branch 37 taken 5 times.
✓ Branch 38 taken 1 times.
✗ Branch 39 not taken.
✓ Branch 40 taken 5 times.
✓ Branch 41 taken 1 times.
✗ Branch 42 not taken.
✓ Branch 43 taken 5 times.
✓ Branch 44 taken 1 times.
✗ Branch 45 not taken.
✓ Branch 46 taken 5 times.
✓ Branch 47 taken 1 times.
✗ Branch 48 not taken.
✓ Branch 49 taken 5 times.
✓ Branch 50 taken 1 times.
✗ Branch 51 not taken.
✓ Branch 52 taken 5 times.
✓ Branch 53 taken 1 times.
✗ Branch 54 not taken.
✓ Branch 55 taken 12 times.
✓ Branch 56 taken 1 times.
✗ Branch 57 not taken.
✓ Branch 58 taken 12 times.
✗ Branch 59 not taken.
✓ Branch 61 taken 12 times.
✗ Branch 62 not taken.
✓ Branch 64 taken 12 times.
✗ Branch 65 not taken.
✓ Branch 67 taken 2 times.
✗ Branch 68 not taken.
✓ Branch 70 taken 2 times.
✗ Branch 71 not taken.
✓ Branch 73 taken 2 times.
✗ Branch 74 not taken.
✓ Branch 76 taken 2 times.
✗ Branch 77 not taken.
✓ Branch 79 taken 2 times.
✗ Branch 80 not taken.
✓ Branch 82 taken 2 times.
✗ Branch 83 not taken.
✓ Branch 85 taken 2 times.
✗ Branch 86 not taken.
✓ Branch 88 taken 2 times.
✗ Branch 89 not taken.
✓ Branch 91 taken 2 times.
✗ Branch 92 not taken.
✓ Branch 94 taken 2 times.
✗ Branch 95 not taken.
✓ Branch 97 taken 2 times.
✗ Branch 98 not taken.
✓ Branch 100 taken 2 times.
✗ Branch 101 not taken.
✓ Branch 103 taken 2 times.
✗ Branch 104 not taken.
✓ Branch 106 taken 2 times.
✗ Branch 107 not taken.
✓ Branch 109 taken 2 times.
✗ Branch 110 not taken.
✓ Branch 112 taken 2 times.
✗ Branch 113 not taken.
✓ Branch 115 taken 2 times.
✗ Branch 116 not taken.
✓ Branch 118 taken 2 times.
✗ Branch 119 not taken.
✓ Branch 121 taken 11 times.
✗ Branch 122 not taken.
✓ Branch 124 taken 11 times.
✗ Branch 125 not taken.
✓ Branch 127 taken 12 times.
✗ Branch 128 not taken.
✓ Branch 130 taken 12 times.
✗ Branch 131 not taken.
✓ Branch 133 taken 2 times.
✗ Branch 134 not taken.
✓ Branch 136 taken 2 times.
✗ Branch 137 not taken.
✓ Branch 139 taken 2 times.
✗ Branch 140 not taken.
✓ Branch 142 taken 2 times.
✗ Branch 143 not taken.
✓ Branch 145 taken 2 times.
✗ Branch 146 not taken.
✓ Branch 148 taken 2 times.
✗ Branch 149 not taken.
✓ Branch 151 taken 2 times.
✗ Branch 152 not taken.
✓ Branch 154 taken 2 times.
✗ Branch 155 not taken.
✓ Branch 157 taken 2 times.
✗ Branch 158 not taken.
✓ Branch 160 taken 2 times.
✗ Branch 161 not taken.
✓ Branch 163 taken 2 times.
✗ Branch 164 not taken.
✓ Branch 166 taken 2 times.
✗ Branch 167 not taken.
✓ Branch 169 taken 2 times.
✗ Branch 170 not taken.
✓ Branch 172 taken 2 times.
✗ Branch 173 not taken.
✓ Branch 175 taken 2 times.
✗ Branch 176 not taken.
✓ Branch 178 taken 2 times.
✗ Branch 179 not taken.
✓ Branch 181 taken 2 times.
✗ Branch 182 not taken.
✓ Branch 184 taken 2 times.
✗ Branch 185 not taken.
✓ Branch 187 taken 11 times.
✗ Branch 188 not taken.
✓ Branch 190 taken 11 times.
✗ Branch 191 not taken.
✓ Branch 193 taken 12 times.
✗ Branch 194 not taken.
✓ Branch 196 taken 12 times.
✗ Branch 197 not taken.
✓ Branch 199 taken 2 times.
✗ Branch 200 not taken.
✓ Branch 202 taken 2 times.
✗ Branch 203 not taken.
✓ Branch 205 taken 2 times.
✗ Branch 206 not taken.
✓ Branch 208 taken 2 times.
✗ Branch 209 not taken.
✓ Branch 211 taken 2 times.
✗ Branch 212 not taken.
✓ Branch 214 taken 2 times.
✗ Branch 215 not taken.
✓ Branch 217 taken 2 times.
✗ Branch 218 not taken.
✓ Branch 220 taken 2 times.
✗ Branch 221 not taken.
✓ Branch 223 taken 2 times.
✗ Branch 224 not taken.
✓ Branch 226 taken 2 times.
✗ Branch 227 not taken.
✓ Branch 229 taken 2 times.
✗ Branch 230 not taken.
✓ Branch 232 taken 2 times.
✗ Branch 233 not taken.
✓ Branch 235 taken 2 times.
✗ Branch 236 not taken.
✓ Branch 238 taken 2 times.
✗ Branch 239 not taken.
✓ Branch 241 taken 2 times.
✗ Branch 242 not taken.
✓ Branch 244 taken 2 times.
✗ Branch 245 not taken.
✓ Branch 247 taken 2 times.
✗ Branch 248 not taken.
✓ Branch 250 taken 2 times.
✗ Branch 251 not taken.
✓ Branch 253 taken 11 times.
✗ Branch 254 not taken.
✓ Branch 256 taken 11 times.
✗ Branch 257 not taken.
✓ Branch 259 taken 12 times.
✗ Branch 260 not taken.
✓ Branch 262 taken 12 times.
✗ Branch 263 not taken.
✓ Branch 265 taken 2 times.
✗ Branch 266 not taken.
✓ Branch 268 taken 2 times.
✗ Branch 269 not taken.
✓ Branch 271 taken 2 times.
✗ Branch 272 not taken.
✓ Branch 274 taken 2 times.
✗ Branch 275 not taken.
✓ Branch 277 taken 2 times.
✗ Branch 278 not taken.
✓ Branch 280 taken 2 times.
✗ Branch 281 not taken.
✓ Branch 283 taken 2 times.
✗ Branch 284 not taken.
✓ Branch 286 taken 2 times.
✗ Branch 287 not taken.
✓ Branch 289 taken 2 times.
✗ Branch 290 not taken.
✓ Branch 292 taken 2 times.
✗ Branch 293 not taken.
✓ Branch 295 taken 1 times.
✗ Branch 296 not taken.
✓ Branch 298 taken 1 times.
✗ Branch 299 not taken.
✓ Branch 301 taken 1 times.
✗ Branch 302 not taken.
✓ Branch 304 taken 1 times.
✗ Branch 305 not taken.
✓ Branch 307 taken 1 times.
✗ Branch 308 not taken.
✓ Branch 310 taken 1 times.
✗ Branch 311 not taken.
✓ Branch 313 taken 1 times.
✗ Branch 314 not taken.
✓ Branch 316 taken 1 times.
✗ Branch 317 not taken.
✓ Branch 319 taken 10 times.
✗ Branch 320 not taken.
✓ Branch 322 taken 10 times.
✗ Branch 323 not taken.
✓ Branch 325 taken 11 times.
✗ Branch 326 not taken.
✓ Branch 328 taken 11 times.
✗ Branch 329 not taken.
✓ Branch 331 taken 1 times.
✗ Branch 332 not taken.
✓ Branch 334 taken 1 times.
✗ Branch 335 not taken.
✓ Branch 337 taken 1 times.
✗ Branch 338 not taken.
✓ Branch 340 taken 1 times.
✗ Branch 341 not taken.
✓ Branch 343 taken 1 times.
✗ Branch 344 not taken.
✓ Branch 346 taken 1 times.
✗ Branch 347 not taken.
✓ Branch 349 taken 1 times.
✗ Branch 350 not taken.
✓ Branch 352 taken 1 times.
✗ Branch 353 not taken.
✓ Branch 355 taken 1 times.
✗ Branch 356 not taken.
✓ Branch 358 taken 1 times.
✗ Branch 359 not taken.
✓ Branch 361 taken 1 times.
✗ Branch 362 not taken.
✓ Branch 364 taken 1 times.
✗ Branch 365 not taken.
✓ Branch 367 taken 1 times.
✗ Branch 368 not taken.
✓ Branch 370 taken 1 times.
✗ Branch 371 not taken.
✓ Branch 373 taken 1 times.
✗ Branch 374 not taken.
✓ Branch 376 taken 1 times.
✗ Branch 377 not taken.
✓ Branch 379 taken 1 times.
✗ Branch 380 not taken.
✓ Branch 382 taken 1 times.
✗ Branch 383 not taken.
✓ Branch 385 taken 10 times.
✗ Branch 386 not taken.
✓ Branch 388 taken 10 times.
✗ Branch 389 not taken.
✓ Branch 391 taken 11 times.
✗ Branch 392 not taken.
✓ Branch 394 taken 11 times.
✗ Branch 395 not taken.
|
60270 | Index32 leafCount() const override { return mRoot.leafCount(); } |
341 | /// Return a vector with node counts. The number of nodes of type NodeType | ||
342 | /// is given as element NodeType::LEVEL in the return vector. Thus, the size | ||
343 | /// of this vector corresponds to the height (or depth) of this tree. | ||
344 | 6 | std::vector<Index32> nodeCount() const override | |
345 | { | ||
346 | 6 | std::vector<Index32> vec(DEPTH, 0); | |
347 |
1/2✓ Branch 1 taken 3 times.
✗ Branch 2 not taken.
|
6 | mRoot.nodeCount( vec ); |
348 | 6 | return vec;// Named Return Value Optimization | |
349 | } | ||
350 | /// Return the number of non-leaf nodes. | ||
351 |
49/79✓ Branch 1 taken 7 times.
✓ Branch 2 taken 1 times.
✗ Branch 3 not taken.
✓ Branch 4 taken 15 times.
✓ Branch 5 taken 1 times.
✗ Branch 6 not taken.
✓ Branch 7 taken 13 times.
✓ Branch 8 taken 1 times.
✗ Branch 9 not taken.
✓ Branch 10 taken 14 times.
✓ Branch 11 taken 1 times.
✗ Branch 12 not taken.
✓ Branch 13 taken 14 times.
✓ Branch 14 taken 1 times.
✗ Branch 15 not taken.
✓ Branch 16 taken 5 times.
✓ Branch 17 taken 1 times.
✗ Branch 18 not taken.
✓ Branch 19 taken 14 times.
✓ Branch 20 taken 1 times.
✗ Branch 21 not taken.
✓ Branch 22 taken 12 times.
✓ Branch 23 taken 1 times.
✗ Branch 24 not taken.
✓ Branch 25 taken 13 times.
✓ Branch 26 taken 1 times.
✗ Branch 27 not taken.
✓ Branch 28 taken 13 times.
✓ Branch 29 taken 1 times.
✗ Branch 30 not taken.
✓ Branch 31 taken 3 times.
✓ Branch 32 taken 1 times.
✗ Branch 33 not taken.
✓ Branch 34 taken 12 times.
✓ Branch 35 taken 1 times.
✗ Branch 36 not taken.
✓ Branch 37 taken 12 times.
✓ Branch 38 taken 1 times.
✗ Branch 39 not taken.
✓ Branch 40 taken 13 times.
✓ Branch 41 taken 1 times.
✗ Branch 42 not taken.
✓ Branch 43 taken 13 times.
✓ Branch 44 taken 1 times.
✗ Branch 45 not taken.
✓ Branch 46 taken 3 times.
✓ Branch 47 taken 1 times.
✗ Branch 48 not taken.
✓ Branch 49 taken 12 times.
✓ Branch 50 taken 1 times.
✗ Branch 51 not taken.
✓ Branch 52 taken 12 times.
✓ Branch 53 taken 1 times.
✗ Branch 54 not taken.
✓ Branch 55 taken 13 times.
✓ Branch 56 taken 1 times.
✗ Branch 57 not taken.
✓ Branch 58 taken 13 times.
✗ Branch 59 not taken.
✓ Branch 61 taken 3 times.
✗ Branch 62 not taken.
✓ Branch 64 taken 12 times.
✗ Branch 65 not taken.
✓ Branch 67 taken 12 times.
✗ Branch 68 not taken.
✓ Branch 70 taken 12 times.
✗ Branch 71 not taken.
✓ Branch 73 taken 12 times.
✗ Branch 74 not taken.
✓ Branch 76 taken 1 times.
✗ Branch 77 not taken.
✓ Branch 79 taken 10 times.
✗ Branch 80 not taken.
✓ Branch 82 taken 10 times.
✗ Branch 83 not taken.
✓ Branch 85 taken 11 times.
✗ Branch 86 not taken.
✓ Branch 88 taken 11 times.
✗ Branch 89 not taken.
|
357 | Index32 nonLeafCount() const override { return mRoot.nonLeafCount(); } |
352 | /// Return the number of active voxels stored in leaf nodes. | ||
353 |
8/16✓ Branch 1 taken 6 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
✓ Branch 7 taken 1 times.
✗ Branch 8 not taken.
✓ Branch 10 taken 1 times.
✗ Branch 11 not taken.
✓ Branch 13 taken 1 times.
✗ Branch 14 not taken.
✓ Branch 16 taken 1 times.
✗ Branch 17 not taken.
✓ Branch 19 taken 1 times.
✗ Branch 20 not taken.
✓ Branch 22 taken 1 times.
✗ Branch 23 not taken.
|
15 | Index64 activeLeafVoxelCount() const override { return tools::countActiveLeafVoxels(*this); } |
354 | /// Return the number of inactive voxels stored in leaf nodes. | ||
355 |
8/16✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
✓ Branch 7 taken 1 times.
✗ Branch 8 not taken.
✓ Branch 10 taken 1 times.
✗ Branch 11 not taken.
✓ Branch 13 taken 1 times.
✗ Branch 14 not taken.
✓ Branch 16 taken 1 times.
✗ Branch 17 not taken.
✓ Branch 19 taken 1 times.
✗ Branch 20 not taken.
✓ Branch 22 taken 1 times.
✗ Branch 23 not taken.
|
4 | Index64 inactiveLeafVoxelCount() const override { return tools::countInactiveLeafVoxels(*this); } |
356 | /// Return the total number of active voxels. | ||
357 |
279/537✓ Branch 1 taken 13 times.
✓ Branch 2 taken 1 times.
✗ Branch 3 not taken.
✓ Branch 4 taken 8 times.
✓ Branch 5 taken 1 times.
✗ Branch 6 not taken.
✓ Branch 7 taken 5 times.
✓ Branch 8 taken 1 times.
✗ Branch 9 not taken.
✓ Branch 10 taken 4 times.
✓ Branch 11 taken 1 times.
✗ Branch 12 not taken.
✓ Branch 13 taken 2 times.
✓ Branch 14 taken 1 times.
✗ Branch 15 not taken.
✓ Branch 16 taken 4 times.
✓ Branch 17 taken 1 times.
✗ Branch 18 not taken.
✓ Branch 19 taken 4 times.
✓ Branch 20 taken 1 times.
✗ Branch 21 not taken.
✓ Branch 22 taken 2 times.
✓ Branch 23 taken 1 times.
✗ Branch 24 not taken.
✓ Branch 25 taken 2 times.
✓ Branch 26 taken 1 times.
✗ Branch 27 not taken.
✓ Branch 28 taken 2 times.
✓ Branch 29 taken 1 times.
✗ Branch 30 not taken.
✓ Branch 31 taken 2 times.
✓ Branch 32 taken 1 times.
✗ Branch 33 not taken.
✓ Branch 34 taken 2 times.
✓ Branch 35 taken 1 times.
✗ Branch 36 not taken.
✓ Branch 37 taken 2 times.
✓ Branch 38 taken 1 times.
✗ Branch 39 not taken.
✓ Branch 40 taken 2 times.
✓ Branch 41 taken 1 times.
✗ Branch 42 not taken.
✓ Branch 43 taken 2 times.
✓ Branch 44 taken 1 times.
✗ Branch 45 not taken.
✓ Branch 46 taken 2 times.
✓ Branch 47 taken 1 times.
✗ Branch 48 not taken.
✓ Branch 49 taken 2 times.
✓ Branch 50 taken 1 times.
✗ Branch 51 not taken.
✓ Branch 52 taken 2 times.
✓ Branch 53 taken 2 times.
✗ Branch 54 not taken.
✓ Branch 55 taken 2 times.
✓ Branch 56 taken 2 times.
✗ Branch 57 not taken.
✓ Branch 58 taken 2 times.
✓ Branch 59 taken 2 times.
✗ Branch 60 not taken.
✓ Branch 61 taken 2 times.
✓ Branch 62 taken 2 times.
✗ Branch 63 not taken.
✓ Branch 64 taken 9 times.
✗ Branch 65 not taken.
✓ Branch 67 taken 9 times.
✗ Branch 68 not taken.
✓ Branch 70 taken 9 times.
✗ Branch 71 not taken.
✓ Branch 73 taken 2 times.
✗ Branch 74 not taken.
✓ Branch 76 taken 2 times.
✗ Branch 77 not taken.
✓ Branch 79 taken 2 times.
✗ Branch 80 not taken.
✓ Branch 82 taken 2 times.
✗ Branch 83 not taken.
✓ Branch 85 taken 11 times.
✗ Branch 86 not taken.
✓ Branch 88 taken 11 times.
✗ Branch 89 not taken.
✓ Branch 91 taken 12 times.
✗ Branch 92 not taken.
✓ Branch 94 taken 12 times.
✗ Branch 95 not taken.
✓ Branch 97 taken 2 times.
✗ Branch 98 not taken.
✓ Branch 100 taken 2 times.
✗ Branch 101 not taken.
✓ Branch 103 taken 2 times.
✗ Branch 104 not taken.
✓ Branch 106 taken 2 times.
✗ Branch 107 not taken.
✓ Branch 109 taken 2 times.
✗ Branch 110 not taken.
✓ Branch 112 taken 2 times.
✗ Branch 113 not taken.
✓ Branch 115 taken 2 times.
✗ Branch 116 not taken.
✓ Branch 118 taken 2 times.
✗ Branch 119 not taken.
✓ Branch 121 taken 513 times.
✗ Branch 122 not taken.
✓ Branch 124 taken 513 times.
✗ Branch 125 not taken.
✓ Branch 127 taken 513 times.
✗ Branch 128 not taken.
✓ Branch 130 taken 2 times.
✗ Branch 131 not taken.
✓ Branch 133 taken 2 times.
✗ Branch 134 not taken.
✓ Branch 136 taken 2 times.
✗ Branch 137 not taken.
✓ Branch 139 taken 2 times.
✗ Branch 140 not taken.
✓ Branch 142 taken 2 times.
✗ Branch 143 not taken.
✓ Branch 145 taken 2 times.
✗ Branch 146 not taken.
✓ Branch 148 taken 2 times.
✗ Branch 149 not taken.
✓ Branch 151 taken 2 times.
✗ Branch 152 not taken.
✓ Branch 154 taken 2 times.
✗ Branch 155 not taken.
✓ Branch 157 taken 2 times.
✗ Branch 158 not taken.
✓ Branch 160 taken 2 times.
✗ Branch 161 not taken.
✓ Branch 163 taken 2 times.
✗ Branch 164 not taken.
✓ Branch 166 taken 2 times.
✗ Branch 167 not taken.
✓ Branch 169 taken 2 times.
✗ Branch 170 not taken.
✓ Branch 172 taken 2 times.
✗ Branch 173 not taken.
✓ Branch 175 taken 2 times.
✗ Branch 176 not taken.
✓ Branch 178 taken 2 times.
✗ Branch 179 not taken.
✓ Branch 181 taken 2 times.
✗ Branch 182 not taken.
✓ Branch 184 taken 2 times.
✗ Branch 185 not taken.
✓ Branch 187 taken 2 times.
✗ Branch 188 not taken.
✓ Branch 190 taken 2 times.
✗ Branch 191 not taken.
✓ Branch 193 taken 9 times.
✗ Branch 194 not taken.
✓ Branch 196 taken 9 times.
✗ Branch 197 not taken.
✓ Branch 199 taken 9 times.
✗ Branch 200 not taken.
✓ Branch 202 taken 2 times.
✗ Branch 203 not taken.
✓ Branch 205 taken 2 times.
✗ Branch 206 not taken.
✓ Branch 208 taken 2 times.
✗ Branch 209 not taken.
✓ Branch 211 taken 2 times.
✗ Branch 212 not taken.
✓ Branch 214 taken 11 times.
✗ Branch 215 not taken.
✓ Branch 217 taken 11 times.
✗ Branch 218 not taken.
✓ Branch 220 taken 12 times.
✗ Branch 221 not taken.
✓ Branch 223 taken 12 times.
✗ Branch 224 not taken.
✓ Branch 226 taken 2 times.
✗ Branch 227 not taken.
✓ Branch 229 taken 2 times.
✗ Branch 230 not taken.
✓ Branch 232 taken 2 times.
✗ Branch 233 not taken.
✓ Branch 235 taken 2 times.
✗ Branch 236 not taken.
✓ Branch 238 taken 2 times.
✗ Branch 239 not taken.
✓ Branch 241 taken 2 times.
✗ Branch 242 not taken.
✓ Branch 244 taken 2 times.
✗ Branch 245 not taken.
✓ Branch 247 taken 1 times.
✗ Branch 248 not taken.
✓ Branch 250 taken 512 times.
✗ Branch 251 not taken.
✓ Branch 253 taken 512 times.
✗ Branch 254 not taken.
✓ Branch 256 taken 512 times.
✗ Branch 257 not taken.
✓ Branch 259 taken 1 times.
✗ Branch 260 not taken.
✓ Branch 262 taken 1 times.
✗ Branch 263 not taken.
✓ Branch 265 taken 1 times.
✗ Branch 266 not taken.
✓ Branch 268 taken 1 times.
✗ Branch 269 not taken.
✓ Branch 271 taken 1 times.
✗ Branch 272 not taken.
✓ Branch 274 taken 1 times.
✗ Branch 275 not taken.
✓ Branch 277 taken 1 times.
✗ Branch 278 not taken.
✓ Branch 280 taken 1 times.
✗ Branch 281 not taken.
✓ Branch 283 taken 1 times.
✗ Branch 284 not taken.
✓ Branch 286 taken 1 times.
✗ Branch 287 not taken.
✓ Branch 289 taken 1 times.
✗ Branch 290 not taken.
✓ Branch 292 taken 1 times.
✗ Branch 293 not taken.
✓ Branch 295 taken 1 times.
✗ Branch 296 not taken.
✓ Branch 298 taken 1 times.
✗ Branch 299 not taken.
✓ Branch 301 taken 1 times.
✗ Branch 302 not taken.
✓ Branch 304 taken 1 times.
✗ Branch 305 not taken.
✓ Branch 307 taken 1 times.
✗ Branch 308 not taken.
✓ Branch 310 taken 1 times.
✗ Branch 311 not taken.
✓ Branch 313 taken 1 times.
✗ Branch 314 not taken.
✓ Branch 316 taken 1 times.
✗ Branch 317 not taken.
✓ Branch 319 taken 1 times.
✗ Branch 320 not taken.
✓ Branch 322 taken 8 times.
✗ Branch 323 not taken.
✓ Branch 325 taken 8 times.
✗ Branch 326 not taken.
✓ Branch 328 taken 8 times.
✗ Branch 329 not taken.
✓ Branch 331 taken 1 times.
✗ Branch 332 not taken.
✓ Branch 334 taken 1 times.
✗ Branch 335 not taken.
✓ Branch 337 taken 1 times.
✗ Branch 338 not taken.
✓ Branch 340 taken 1 times.
✗ Branch 341 not taken.
✓ Branch 343 taken 10 times.
✗ Branch 344 not taken.
✓ Branch 346 taken 10 times.
✗ Branch 347 not taken.
✓ Branch 349 taken 11 times.
✗ Branch 350 not taken.
✓ Branch 352 taken 11 times.
✗ Branch 353 not taken.
✓ Branch 355 taken 1 times.
✗ Branch 356 not taken.
✓ Branch 358 taken 1 times.
✗ Branch 359 not taken.
✓ Branch 361 taken 1 times.
✗ Branch 362 not taken.
✓ Branch 364 taken 1 times.
✗ Branch 365 not taken.
✓ Branch 367 taken 1 times.
✗ Branch 368 not taken.
✓ Branch 370 taken 1 times.
✗ Branch 371 not taken.
✓ Branch 373 taken 1 times.
✗ Branch 374 not taken.
✓ Branch 376 taken 1 times.
✗ Branch 377 not taken.
✓ Branch 379 taken 512 times.
✗ Branch 380 not taken.
✓ Branch 382 taken 512 times.
✗ Branch 383 not taken.
✓ Branch 385 taken 512 times.
✗ Branch 386 not taken.
✓ Branch 388 taken 1 times.
✗ Branch 389 not taken.
✓ Branch 391 taken 1 times.
✗ Branch 392 not taken.
✓ Branch 394 taken 1 times.
✗ Branch 395 not taken.
✓ Branch 397 taken 1 times.
✗ Branch 398 not taken.
✓ Branch 400 taken 1 times.
✗ Branch 401 not taken.
✓ Branch 403 taken 1 times.
✗ Branch 404 not taken.
✓ Branch 406 taken 1 times.
✗ Branch 407 not taken.
✓ Branch 409 taken 1 times.
✗ Branch 410 not taken.
✓ Branch 412 taken 1 times.
✗ Branch 413 not taken.
✓ Branch 415 taken 1 times.
✗ Branch 416 not taken.
✓ Branch 418 taken 1 times.
✗ Branch 419 not taken.
✓ Branch 421 taken 1 times.
✗ Branch 422 not taken.
✓ Branch 424 taken 1 times.
✗ Branch 425 not taken.
✓ Branch 427 taken 1 times.
✗ Branch 428 not taken.
✓ Branch 430 taken 1 times.
✗ Branch 431 not taken.
✓ Branch 433 taken 1 times.
✗ Branch 434 not taken.
✓ Branch 436 taken 1 times.
✗ Branch 437 not taken.
✓ Branch 439 taken 1 times.
✗ Branch 440 not taken.
✓ Branch 442 taken 1 times.
✗ Branch 443 not taken.
✓ Branch 445 taken 1 times.
✗ Branch 446 not taken.
✓ Branch 448 taken 1 times.
✗ Branch 449 not taken.
✓ Branch 451 taken 8 times.
✗ Branch 452 not taken.
✓ Branch 454 taken 8 times.
✗ Branch 455 not taken.
✓ Branch 457 taken 8 times.
✗ Branch 458 not taken.
✓ Branch 460 taken 1 times.
✗ Branch 461 not taken.
✓ Branch 463 taken 1 times.
✗ Branch 464 not taken.
✓ Branch 466 taken 1 times.
✗ Branch 467 not taken.
✓ Branch 469 taken 1 times.
✗ Branch 470 not taken.
✓ Branch 472 taken 10 times.
✗ Branch 473 not taken.
✓ Branch 475 taken 10 times.
✗ Branch 476 not taken.
✓ Branch 478 taken 11 times.
✗ Branch 479 not taken.
✓ Branch 481 taken 11 times.
✗ Branch 482 not taken.
✓ Branch 484 taken 1 times.
✗ Branch 485 not taken.
✓ Branch 487 taken 1 times.
✗ Branch 488 not taken.
✓ Branch 490 taken 1 times.
✗ Branch 491 not taken.
✓ Branch 493 taken 1 times.
✗ Branch 494 not taken.
✓ Branch 496 taken 1 times.
✗ Branch 497 not taken.
✓ Branch 499 taken 1 times.
✗ Branch 500 not taken.
✓ Branch 502 taken 1 times.
✗ Branch 503 not taken.
✓ Branch 505 taken 1 times.
✗ Branch 506 not taken.
✓ Branch 508 taken 512 times.
✗ Branch 509 not taken.
✓ Branch 511 taken 512 times.
✗ Branch 512 not taken.
✓ Branch 514 taken 512 times.
✗ Branch 515 not taken.
✓ Branch 517 taken 1 times.
✗ Branch 518 not taken.
✓ Branch 520 taken 1 times.
✗ Branch 521 not taken.
✓ Branch 523 taken 1 times.
✗ Branch 524 not taken.
✓ Branch 526 taken 1 times.
✗ Branch 527 not taken.
✓ Branch 529 taken 1 times.
✗ Branch 530 not taken.
✓ Branch 532 taken 1 times.
✗ Branch 533 not taken.
✓ Branch 535 taken 1 times.
✗ Branch 536 not taken.
✓ Branch 538 taken 1 times.
✗ Branch 539 not taken.
✓ Branch 541 taken 1 times.
✗ Branch 542 not taken.
✓ Branch 544 taken 1 times.
✗ Branch 545 not taken.
✓ Branch 547 taken 1 times.
✗ Branch 548 not taken.
✓ Branch 550 taken 1 times.
✗ Branch 551 not taken.
✓ Branch 553 taken 1 times.
✗ Branch 554 not taken.
✓ Branch 556 taken 1 times.
✗ Branch 557 not taken.
✓ Branch 559 taken 1 times.
✗ Branch 560 not taken.
✓ Branch 562 taken 1 times.
✗ Branch 563 not taken.
✓ Branch 565 taken 1 times.
✗ Branch 566 not taken.
✓ Branch 568 taken 1 times.
✗ Branch 569 not taken.
✓ Branch 571 taken 1 times.
✗ Branch 572 not taken.
✓ Branch 574 taken 1 times.
✗ Branch 575 not taken.
✓ Branch 577 taken 1 times.
✗ Branch 578 not taken.
✓ Branch 580 taken 8 times.
✗ Branch 581 not taken.
✓ Branch 583 taken 8 times.
✗ Branch 584 not taken.
✓ Branch 586 taken 8 times.
✗ Branch 587 not taken.
✓ Branch 589 taken 1 times.
✗ Branch 590 not taken.
✓ Branch 592 taken 1 times.
✗ Branch 593 not taken.
✓ Branch 595 taken 1 times.
✗ Branch 596 not taken.
✓ Branch 598 taken 1 times.
✗ Branch 599 not taken.
✓ Branch 601 taken 10 times.
✗ Branch 602 not taken.
✓ Branch 604 taken 10 times.
✗ Branch 605 not taken.
✓ Branch 607 taken 11 times.
✗ Branch 608 not taken.
✓ Branch 610 taken 11 times.
✗ Branch 611 not taken.
✓ Branch 613 taken 1 times.
✗ Branch 614 not taken.
✓ Branch 616 taken 1 times.
✗ Branch 617 not taken.
✓ Branch 619 taken 1 times.
✗ Branch 620 not taken.
✓ Branch 622 taken 1 times.
✗ Branch 623 not taken.
✓ Branch 625 taken 1 times.
✗ Branch 626 not taken.
✓ Branch 628 taken 1 times.
✗ Branch 629 not taken.
✓ Branch 631 taken 1 times.
✗ Branch 632 not taken.
✓ Branch 634 taken 1 times.
✗ Branch 635 not taken.
✓ Branch 637 taken 512 times.
✗ Branch 638 not taken.
✓ Branch 640 taken 512 times.
✗ Branch 641 not taken.
✓ Branch 643 taken 512 times.
✗ Branch 644 not taken.
✓ Branch 646 taken 1 times.
✗ Branch 647 not taken.
✓ Branch 649 taken 1 times.
✗ Branch 650 not taken.
✓ Branch 652 taken 1 times.
✗ Branch 653 not taken.
✓ Branch 655 taken 1 times.
✗ Branch 656 not taken.
✓ Branch 658 taken 1 times.
✗ Branch 659 not taken.
✓ Branch 661 taken 1 times.
✗ Branch 662 not taken.
✓ Branch 664 taken 1 times.
✗ Branch 665 not taken.
✓ Branch 667 taken 1 times.
✗ Branch 668 not taken.
✓ Branch 670 taken 1 times.
✗ Branch 671 not taken.
✓ Branch 673 taken 1 times.
✗ Branch 674 not taken.
✓ Branch 676 taken 1 times.
✗ Branch 677 not taken.
✓ Branch 679 taken 1 times.
✗ Branch 680 not taken.
✓ Branch 682 taken 1 times.
✗ Branch 683 not taken.
✓ Branch 685 taken 1 times.
✗ Branch 686 not taken.
✓ Branch 688 taken 1 times.
✗ Branch 689 not taken.
✓ Branch 691 taken 1 times.
✗ Branch 692 not taken.
✓ Branch 694 taken 1 times.
✗ Branch 695 not taken.
✓ Branch 697 taken 1 times.
✗ Branch 698 not taken.
✓ Branch 700 taken 1 times.
✗ Branch 701 not taken.
✓ Branch 703 taken 1 times.
✗ Branch 704 not taken.
✓ Branch 706 taken 1 times.
✗ Branch 707 not taken.
✓ Branch 709 taken 8 times.
✗ Branch 710 not taken.
✓ Branch 712 taken 8 times.
✗ Branch 713 not taken.
✓ Branch 715 taken 8 times.
✗ Branch 716 not taken.
✓ Branch 718 taken 1 times.
✗ Branch 719 not taken.
✓ Branch 721 taken 1 times.
✗ Branch 722 not taken.
✓ Branch 724 taken 1 times.
✗ Branch 725 not taken.
✓ Branch 727 taken 1 times.
✗ Branch 728 not taken.
✓ Branch 730 taken 10 times.
✗ Branch 731 not taken.
✓ Branch 733 taken 10 times.
✗ Branch 734 not taken.
✓ Branch 736 taken 11 times.
✗ Branch 737 not taken.
✓ Branch 739 taken 11 times.
✗ Branch 740 not taken.
✓ Branch 742 taken 1 times.
✗ Branch 743 not taken.
✓ Branch 745 taken 1 times.
✗ Branch 746 not taken.
✓ Branch 748 taken 1 times.
✗ Branch 749 not taken.
✓ Branch 751 taken 1 times.
✗ Branch 752 not taken.
✓ Branch 754 taken 1 times.
✗ Branch 755 not taken.
✓ Branch 757 taken 1 times.
✗ Branch 758 not taken.
✓ Branch 760 taken 1 times.
✗ Branch 761 not taken.
✓ Branch 763 taken 1 times.
✗ Branch 764 not taken.
✓ Branch 766 taken 512 times.
✗ Branch 767 not taken.
✓ Branch 769 taken 512 times.
✗ Branch 770 not taken.
✓ Branch 772 taken 512 times.
✗ Branch 773 not taken.
|
12064 | Index64 activeVoxelCount() const override { return tools::countActiveVoxels(*this); } |
358 | /// Return the number of inactive voxels within the bounding box of all active voxels. | ||
359 |
8/16✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
✓ Branch 7 taken 1 times.
✗ Branch 8 not taken.
✓ Branch 10 taken 1 times.
✗ Branch 11 not taken.
✓ Branch 13 taken 1 times.
✗ Branch 14 not taken.
✓ Branch 16 taken 1 times.
✗ Branch 17 not taken.
✓ Branch 19 taken 1 times.
✗ Branch 20 not taken.
✓ Branch 22 taken 1 times.
✗ Branch 23 not taken.
|
4 | Index64 inactiveVoxelCount() const override { return tools::countInactiveVoxels(*this); } |
360 | /// Return the total number of active tiles. | ||
361 |
118/232✓ Branch 1 taken 3 times.
✓ Branch 2 taken 1 times.
✗ Branch 3 not taken.
✓ Branch 4 taken 3 times.
✓ Branch 5 taken 1 times.
✗ Branch 6 not taken.
✓ Branch 7 taken 3 times.
✓ Branch 8 taken 1 times.
✗ Branch 9 not taken.
✓ Branch 10 taken 3 times.
✓ Branch 11 taken 1 times.
✗ Branch 12 not taken.
✓ Branch 13 taken 3 times.
✗ Branch 14 not taken.
✓ Branch 16 taken 2 times.
✗ Branch 17 not taken.
✓ Branch 19 taken 2 times.
✗ Branch 20 not taken.
✓ Branch 22 taken 2 times.
✗ Branch 23 not taken.
✓ Branch 25 taken 2 times.
✗ Branch 26 not taken.
✓ Branch 28 taken 2 times.
✗ Branch 29 not taken.
✓ Branch 31 taken 2 times.
✗ Branch 32 not taken.
✓ Branch 34 taken 2 times.
✗ Branch 35 not taken.
✓ Branch 37 taken 2 times.
✗ Branch 38 not taken.
✓ Branch 40 taken 2 times.
✗ Branch 41 not taken.
✓ Branch 43 taken 2 times.
✗ Branch 44 not taken.
✓ Branch 46 taken 2 times.
✗ Branch 47 not taken.
✓ Branch 49 taken 2 times.
✗ Branch 50 not taken.
✓ Branch 52 taken 2 times.
✗ Branch 53 not taken.
✓ Branch 55 taken 1 times.
✗ Branch 56 not taken.
✓ Branch 58 taken 1 times.
✗ Branch 59 not taken.
✓ Branch 61 taken 1 times.
✗ Branch 62 not taken.
✓ Branch 64 taken 1 times.
✗ Branch 65 not taken.
✓ Branch 67 taken 1 times.
✗ Branch 68 not taken.
✓ Branch 70 taken 1 times.
✗ Branch 71 not taken.
✓ Branch 73 taken 1 times.
✗ Branch 74 not taken.
✓ Branch 76 taken 1 times.
✗ Branch 77 not taken.
✓ Branch 79 taken 1 times.
✗ Branch 80 not taken.
✓ Branch 82 taken 1 times.
✗ Branch 83 not taken.
✓ Branch 85 taken 1 times.
✗ Branch 86 not taken.
✓ Branch 88 taken 1 times.
✗ Branch 89 not taken.
✓ Branch 91 taken 1 times.
✗ Branch 92 not taken.
✓ Branch 94 taken 1 times.
✗ Branch 95 not taken.
✓ Branch 97 taken 1 times.
✗ Branch 98 not taken.
✓ Branch 100 taken 1 times.
✗ Branch 101 not taken.
✓ Branch 103 taken 1 times.
✗ Branch 104 not taken.
✓ Branch 106 taken 1 times.
✗ Branch 107 not taken.
✓ Branch 109 taken 1 times.
✗ Branch 110 not taken.
✓ Branch 112 taken 1 times.
✗ Branch 113 not taken.
✓ Branch 115 taken 1 times.
✗ Branch 116 not taken.
✓ Branch 118 taken 1 times.
✗ Branch 119 not taken.
✓ Branch 121 taken 1 times.
✗ Branch 122 not taken.
✓ Branch 124 taken 1 times.
✗ Branch 125 not taken.
✓ Branch 127 taken 1 times.
✗ Branch 128 not taken.
✓ Branch 130 taken 1 times.
✗ Branch 131 not taken.
✓ Branch 133 taken 1 times.
✗ Branch 134 not taken.
✓ Branch 136 taken 1 times.
✗ Branch 137 not taken.
✓ Branch 139 taken 1 times.
✗ Branch 140 not taken.
✓ Branch 142 taken 1 times.
✗ Branch 143 not taken.
✓ Branch 145 taken 1 times.
✗ Branch 146 not taken.
✓ Branch 148 taken 1 times.
✗ Branch 149 not taken.
✓ Branch 151 taken 1 times.
✗ Branch 152 not taken.
✓ Branch 154 taken 1 times.
✗ Branch 155 not taken.
✓ Branch 157 taken 1 times.
✗ Branch 158 not taken.
✓ Branch 160 taken 1 times.
✗ Branch 161 not taken.
✓ Branch 163 taken 1 times.
✗ Branch 164 not taken.
✓ Branch 166 taken 1 times.
✗ Branch 167 not taken.
✓ Branch 169 taken 1 times.
✗ Branch 170 not taken.
✓ Branch 172 taken 1 times.
✗ Branch 173 not taken.
✓ Branch 175 taken 1 times.
✗ Branch 176 not taken.
✓ Branch 178 taken 1 times.
✗ Branch 179 not taken.
✓ Branch 181 taken 1 times.
✗ Branch 182 not taken.
✓ Branch 184 taken 1 times.
✗ Branch 185 not taken.
✓ Branch 187 taken 1 times.
✗ Branch 188 not taken.
✓ Branch 190 taken 1 times.
✗ Branch 191 not taken.
✓ Branch 193 taken 1 times.
✗ Branch 194 not taken.
✓ Branch 196 taken 1 times.
✗ Branch 197 not taken.
✓ Branch 199 taken 1 times.
✗ Branch 200 not taken.
✓ Branch 202 taken 1 times.
✗ Branch 203 not taken.
✓ Branch 205 taken 1 times.
✗ Branch 206 not taken.
✓ Branch 208 taken 1 times.
✗ Branch 209 not taken.
✓ Branch 211 taken 1 times.
✗ Branch 212 not taken.
✓ Branch 214 taken 1 times.
✗ Branch 215 not taken.
✓ Branch 217 taken 1 times.
✗ Branch 218 not taken.
✓ Branch 220 taken 1 times.
✗ Branch 221 not taken.
✓ Branch 223 taken 1 times.
✗ Branch 224 not taken.
✓ Branch 226 taken 1 times.
✗ Branch 227 not taken.
✓ Branch 229 taken 1 times.
✗ Branch 230 not taken.
✓ Branch 232 taken 1 times.
✗ Branch 233 not taken.
✓ Branch 235 taken 1 times.
✗ Branch 236 not taken.
✓ Branch 238 taken 1 times.
✗ Branch 239 not taken.
✓ Branch 241 taken 1 times.
✗ Branch 242 not taken.
✓ Branch 244 taken 1 times.
✗ Branch 245 not taken.
✓ Branch 247 taken 1 times.
✗ Branch 248 not taken.
✓ Branch 250 taken 1 times.
✗ Branch 251 not taken.
✓ Branch 253 taken 1 times.
✗ Branch 254 not taken.
✓ Branch 256 taken 1 times.
✗ Branch 257 not taken.
✓ Branch 259 taken 1 times.
✗ Branch 260 not taken.
✓ Branch 262 taken 1 times.
✗ Branch 263 not taken.
✓ Branch 265 taken 1 times.
✗ Branch 266 not taken.
✓ Branch 268 taken 1 times.
✗ Branch 269 not taken.
✓ Branch 271 taken 1 times.
✗ Branch 272 not taken.
✓ Branch 274 taken 1 times.
✗ Branch 275 not taken.
✓ Branch 277 taken 1 times.
✗ Branch 278 not taken.
✓ Branch 280 taken 1 times.
✗ Branch 281 not taken.
✓ Branch 283 taken 1 times.
✗ Branch 284 not taken.
✓ Branch 286 taken 1 times.
✗ Branch 287 not taken.
✓ Branch 289 taken 1 times.
✗ Branch 290 not taken.
✓ Branch 292 taken 1 times.
✗ Branch 293 not taken.
✓ Branch 295 taken 1 times.
✗ Branch 296 not taken.
✓ Branch 298 taken 1 times.
✗ Branch 299 not taken.
✓ Branch 301 taken 1 times.
✗ Branch 302 not taken.
✓ Branch 304 taken 1 times.
✗ Branch 305 not taken.
✓ Branch 307 taken 1 times.
✗ Branch 308 not taken.
✓ Branch 310 taken 1 times.
✗ Branch 311 not taken.
✓ Branch 313 taken 1 times.
✗ Branch 314 not taken.
✓ Branch 316 taken 1 times.
✗ Branch 317 not taken.
✓ Branch 319 taken 1 times.
✗ Branch 320 not taken.
✓ Branch 322 taken 1 times.
✗ Branch 323 not taken.
✓ Branch 325 taken 1 times.
✗ Branch 326 not taken.
✓ Branch 328 taken 1 times.
✗ Branch 329 not taken.
✓ Branch 331 taken 1 times.
✗ Branch 332 not taken.
✓ Branch 334 taken 1 times.
✗ Branch 335 not taken.
✓ Branch 337 taken 1 times.
✗ Branch 338 not taken.
✓ Branch 340 taken 1 times.
✗ Branch 341 not taken.
|
301 | Index64 activeTileCount() const override { return tools::countActiveTiles(*this); } |
362 | |||
363 | /// Return the minimum and maximum active values in this tree. | ||
364 | OPENVDB_DEPRECATED_MESSAGE("Switch to tools::minMax. Use threaded = false for serial execution") | ||
365 | void evalMinMax(ValueType &min, ValueType &max) const; | ||
366 | |||
367 | 350 | Index64 memUsage() const override { return tools::memUsage(*this); } | |
368 | |||
369 | |||
370 | // | ||
371 | // Voxel access methods (using signed indexing) | ||
372 | // | ||
373 | /// Return the value of the voxel at the given coordinates. | ||
374 | const ValueType& getValue(const Coord& xyz) const; | ||
375 | /// @brief Return the value of the voxel at the given coordinates | ||
376 | /// and update the given accessor's node cache. | ||
377 | template<typename AccessT> const ValueType& getValue(const Coord& xyz, AccessT&) const; | ||
378 | |||
379 | /// @brief Return the tree depth (0 = root) at which the value of voxel (x, y, z) resides. | ||
380 | /// @details If (x, y, z) isn't explicitly represented in the tree (i.e., it is | ||
381 | /// implicitly a background voxel), return -1. | ||
382 | int getValueDepth(const Coord& xyz) const; | ||
383 | |||
384 | /// Set the active state of the voxel at the given coordinates but don't change its value. | ||
385 | void setActiveState(const Coord& xyz, bool on); | ||
386 | /// Set the value of the voxel at the given coordinates but don't change its active state. | ||
387 | void setValueOnly(const Coord& xyz, const ValueType& value); | ||
388 | /// Mark the voxel at the given coordinates as active but don't change its value. | ||
389 | void setValueOn(const Coord& xyz); | ||
390 | /// Set the value of the voxel at the given coordinates and mark the voxel as active. | ||
391 | void setValueOn(const Coord& xyz, const ValueType& value); | ||
392 | /// Set the value of the voxel at the given coordinates and mark the voxel as active. | ||
393 | void setValue(const Coord& xyz, const ValueType& value); | ||
394 | /// @brief Set the value of the voxel at the given coordinates, mark the voxel as active, | ||
395 | /// and update the given accessor's node cache. | ||
396 | template<typename AccessT> void setValue(const Coord& xyz, const ValueType& value, AccessT&); | ||
397 | /// Mark the voxel at the given coordinates as inactive but don't change its value. | ||
398 | void setValueOff(const Coord& xyz); | ||
399 | /// Set the value of the voxel at the given coordinates and mark the voxel as inactive. | ||
400 | void setValueOff(const Coord& xyz, const ValueType& value); | ||
401 | |||
402 | /// @brief Apply a functor to the value of the voxel at the given coordinates | ||
403 | /// and mark the voxel as active. | ||
404 | /// @details Provided that the functor can be inlined, this is typically | ||
405 | /// significantly faster than calling getValue() followed by setValueOn(). | ||
406 | /// @param xyz the coordinates of a voxel whose value is to be modified | ||
407 | /// @param op a functor of the form <tt>void op(ValueType&) const</tt> that modifies | ||
408 | /// its argument in place | ||
409 | /// @par Example: | ||
410 | /// @code | ||
411 | /// Coord xyz(1, 0, -2); | ||
412 | /// // Multiply the value of a voxel by a constant and mark the voxel as active. | ||
413 | /// floatTree.modifyValue(xyz, [](float& f) { f *= 0.25; }); // C++11 | ||
414 | /// // Set the value of a voxel to the maximum of its current value and 0.25, | ||
415 | /// // and mark the voxel as active. | ||
416 | /// floatTree.modifyValue(xyz, [](float& f) { f = std::max(f, 0.25f); }); // C++11 | ||
417 | /// @endcode | ||
418 | /// @note The functor is not guaranteed to be called only once. | ||
419 | /// @see tools::foreach() | ||
420 | template<typename ModifyOp> | ||
421 | void modifyValue(const Coord& xyz, const ModifyOp& op); | ||
422 | |||
423 | /// @brief Apply a functor to the voxel at the given coordinates. | ||
424 | /// @details Provided that the functor can be inlined, this is typically | ||
425 | /// significantly faster than calling getValue() followed by setValue(). | ||
426 | /// @param xyz the coordinates of a voxel to be modified | ||
427 | /// @param op a functor of the form <tt>void op(ValueType&, bool&) const</tt> that | ||
428 | /// modifies its arguments, a voxel's value and active state, in place | ||
429 | /// @par Example: | ||
430 | /// @code | ||
431 | /// Coord xyz(1, 0, -2); | ||
432 | /// // Multiply the value of a voxel by a constant and mark the voxel as inactive. | ||
433 | /// floatTree.modifyValueAndActiveState(xyz, | ||
434 | /// [](float& f, bool& b) { f *= 0.25; b = false; }); // C++11 | ||
435 | /// // Set the value of a voxel to the maximum of its current value and 0.25, | ||
436 | /// // but don't change the voxel's active state. | ||
437 | /// floatTree.modifyValueAndActiveState(xyz, | ||
438 | /// [](float& f, bool&) { f = std::max(f, 0.25f); }); // C++11 | ||
439 | /// @endcode | ||
440 | /// @note The functor is not guaranteed to be called only once. | ||
441 | /// @see tools::foreach() | ||
442 | template<typename ModifyOp> | ||
443 | void modifyValueAndActiveState(const Coord& xyz, const ModifyOp& op); | ||
444 | |||
445 | /// @brief Get the value of the voxel at the given coordinates. | ||
446 | /// @return @c true if the value is active. | ||
447 | bool probeValue(const Coord& xyz, ValueType& value) const; | ||
448 | |||
449 | /// Return @c true if the value at the given coordinates is active. | ||
450 | 32744488 | bool isValueOn(const Coord& xyz) const { return mRoot.isValueOn(xyz); } | |
451 | /// Return @c true if the value at the given coordinates is inactive. | ||
452 |
40/80✗ Branch 0 not taken.
✓ Branch 1 taken 56470 times.
✗ Branch 2 not taken.
✓ Branch 3 taken 83450 times.
✗ Branch 4 not taken.
✓ Branch 5 taken 3444 times.
✗ Branch 6 not taken.
✓ Branch 7 taken 13845 times.
✗ Branch 8 not taken.
✓ Branch 9 taken 51891 times.
✗ Branch 10 not taken.
✓ Branch 11 taken 3404 times.
✗ Branch 12 not taken.
✓ Branch 13 taken 2 times.
✗ Branch 14 not taken.
✓ Branch 15 taken 2 times.
✗ Branch 16 not taken.
✓ Branch 17 taken 2 times.
✗ Branch 18 not taken.
✓ Branch 19 taken 2 times.
✗ Branch 20 not taken.
✓ Branch 21 taken 2 times.
✗ Branch 22 not taken.
✓ Branch 23 taken 2 times.
✗ Branch 24 not taken.
✓ Branch 25 taken 2 times.
✗ Branch 26 not taken.
✓ Branch 27 taken 2 times.
✗ Branch 28 not taken.
✓ Branch 29 taken 2 times.
✗ Branch 30 not taken.
✓ Branch 31 taken 2 times.
✗ Branch 32 not taken.
✓ Branch 33 taken 8 times.
✗ Branch 34 not taken.
✓ Branch 35 taken 8 times.
✗ Branch 36 not taken.
✓ Branch 37 taken 8 times.
✗ Branch 38 not taken.
✓ Branch 39 taken 8 times.
✗ Branch 40 not taken.
✓ Branch 41 taken 8 times.
✗ Branch 42 not taken.
✓ Branch 43 taken 8 times.
✗ Branch 44 not taken.
✓ Branch 45 taken 7 times.
✗ Branch 46 not taken.
✓ Branch 47 taken 7 times.
✗ Branch 48 not taken.
✓ Branch 49 taken 7 times.
✗ Branch 50 not taken.
✓ Branch 51 taken 7 times.
✗ Branch 52 not taken.
✓ Branch 53 taken 7 times.
✗ Branch 54 not taken.
✓ Branch 55 taken 7 times.
✗ Branch 56 not taken.
✓ Branch 57 taken 7 times.
✗ Branch 58 not taken.
✓ Branch 59 taken 7 times.
✗ Branch 60 not taken.
✓ Branch 61 taken 7 times.
✗ Branch 62 not taken.
✓ Branch 63 taken 7 times.
✗ Branch 64 not taken.
✓ Branch 65 taken 1 times.
✗ Branch 66 not taken.
✓ Branch 67 taken 1 times.
✗ Branch 68 not taken.
✓ Branch 69 taken 1 times.
✗ Branch 70 not taken.
✓ Branch 71 taken 1 times.
✗ Branch 72 not taken.
✓ Branch 73 taken 1 times.
✗ Branch 74 not taken.
✓ Branch 75 taken 1 times.
✗ Branch 76 not taken.
✓ Branch 77 taken 1 times.
✗ Branch 78 not taken.
✓ Branch 79 taken 1 times.
|
212650 | bool isValueOff(const Coord& xyz) const { return !this->isValueOn(xyz); } |
453 | /// Return @c true if this tree has any active tiles. | ||
454 |
17/86✓ Branch 1 taken 16 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 3 times.
✗ Branch 5 not taken.
✓ Branch 7 taken 3 times.
✗ Branch 8 not taken.
✓ Branch 9 taken 1 times.
✓ Branch 10 taken 2 times.
✗ Branch 11 not taken.
✓ Branch 12 taken 1 times.
✗ Branch 13 not taken.
✗ Branch 14 not taken.
✓ Branch 15 taken 1 times.
✓ Branch 16 taken 3 times.
✗ Branch 17 not taken.
✓ Branch 18 taken 1 times.
✓ Branch 19 taken 4 times.
✗ Branch 20 not taken.
✓ Branch 21 taken 1 times.
✗ Branch 22 not taken.
✗ Branch 23 not taken.
✓ Branch 24 taken 1 times.
✓ Branch 25 taken 3 times.
✗ Branch 26 not taken.
✓ Branch 28 taken 22 times.
✗ Branch 29 not taken.
✗ Branch 31 not taken.
✗ Branch 32 not taken.
✗ Branch 34 not taken.
✗ Branch 35 not taken.
✗ Branch 37 not taken.
✗ Branch 38 not taken.
✗ Branch 40 not taken.
✗ Branch 41 not taken.
✗ Branch 43 not taken.
✗ Branch 44 not taken.
✗ Branch 46 not taken.
✗ Branch 47 not taken.
✗ Branch 49 not taken.
✗ Branch 50 not taken.
✗ Branch 52 not taken.
✗ Branch 53 not taken.
✗ Branch 55 not taken.
✗ Branch 56 not taken.
✗ Branch 58 not taken.
✗ Branch 59 not taken.
✗ Branch 61 not taken.
✗ Branch 62 not taken.
✗ Branch 64 not taken.
✗ Branch 65 not taken.
✗ Branch 67 not taken.
✗ Branch 68 not taken.
✗ Branch 70 not taken.
✗ Branch 71 not taken.
✗ Branch 73 not taken.
✗ Branch 74 not taken.
✗ Branch 76 not taken.
✗ Branch 77 not taken.
✗ Branch 79 not taken.
✗ Branch 80 not taken.
✗ Branch 82 not taken.
✗ Branch 83 not taken.
✓ Branch 85 taken 4 times.
✗ Branch 86 not taken.
✓ Branch 88 taken 1 times.
✗ Branch 89 not taken.
✗ Branch 91 not taken.
✗ Branch 92 not taken.
✗ Branch 94 not taken.
✗ Branch 95 not taken.
✗ Branch 97 not taken.
✗ Branch 98 not taken.
✗ Branch 100 not taken.
✗ Branch 101 not taken.
✓ Branch 103 taken 3 times.
✗ Branch 104 not taken.
✗ Branch 106 not taken.
✗ Branch 107 not taken.
✗ Branch 109 not taken.
✗ Branch 110 not taken.
✗ Branch 112 not taken.
✗ Branch 113 not taken.
✗ Branch 115 not taken.
✗ Branch 116 not taken.
✗ Branch 118 not taken.
✗ Branch 119 not taken.
|
9085 | bool hasActiveTiles() const { return mRoot.hasActiveTiles(); } |
455 | |||
456 | /// Set all voxels that lie outside the given axis-aligned box to the background. | ||
457 | void clip(const CoordBBox&); | ||
458 | /// @brief Replace with background tiles any nodes whose voxel buffers | ||
459 | /// have not yet been allocated. | ||
460 | /// @details Typically, unallocated nodes are leaf nodes whose voxel buffers | ||
461 | /// are not yet resident in memory because delayed loading is in effect. | ||
462 | /// @sa readNonresidentBuffers, io::File::open | ||
463 | void clipUnallocatedNodes() override; | ||
464 | |||
465 | /// Return the total number of unallocated leaf nodes residing in this tree. | ||
466 | Index32 unallocatedLeafCount() const override; | ||
467 | |||
468 | //@{ | ||
469 | /// @brief Set all voxels within a given axis-aligned box to a constant value. | ||
470 | /// @param bbox inclusive coordinates of opposite corners of an axis-aligned box | ||
471 | /// @param value the value to which to set voxels within the box | ||
472 | /// @param active if true, mark voxels within the box as active, | ||
473 | /// otherwise mark them as inactive | ||
474 | /// @note This operation generates a sparse, but not always optimally sparse, | ||
475 | /// representation of the filled box. Follow fill operations with a prune() | ||
476 | /// operation for optimal sparseness. | ||
477 | void sparseFill(const CoordBBox& bbox, const ValueType& value, bool active = true); | ||
478 | void fill(const CoordBBox& bbox, const ValueType& value, bool active = true) | ||
479 | { | ||
480 | this->sparseFill(bbox, value, active); | ||
481 | 183 | } | |
482 | //@} | ||
483 | |||
484 | /// @brief Set all voxels within a given axis-aligned box to a constant value | ||
485 | /// and ensure that those voxels are all represented at the leaf level. | ||
486 | /// @param bbox inclusive coordinates of opposite corners of an axis-aligned box. | ||
487 | /// @param value the value to which to set voxels within the box. | ||
488 | /// @param active if true, mark voxels within the box as active, | ||
489 | /// otherwise mark them as inactive. | ||
490 | /// @sa voxelizeActiveTiles() | ||
491 | void denseFill(const CoordBBox& bbox, const ValueType& value, bool active = true); | ||
492 | |||
493 | /// @brief Densify active tiles, i.e., replace them with leaf-level active voxels. | ||
494 | /// | ||
495 | /// @param threaded if true, this operation is multi-threaded (over the internal nodes). | ||
496 | /// | ||
497 | /// @warning This method can explode the tree's memory footprint, especially if it | ||
498 | /// contains active tiles at the upper levels (in particular the root level)! | ||
499 | /// | ||
500 | /// @sa denseFill() | ||
501 | void voxelizeActiveTiles(bool threaded = true); | ||
502 | |||
503 | /// @brief Reduce the memory footprint of this tree by replacing with tiles | ||
504 | /// any nodes whose values are all the same (optionally to within a tolerance) | ||
505 | /// and have the same active state. | ||
506 | /// @warning Will soon be deprecated! | ||
507 | 23 | void prune(const ValueType& tolerance = zeroVal<ValueType>()) | |
508 | { | ||
509 |
13/962✗ Branch 3 not taken.
✗ Branch 4 not taken.
✗ Branch 5 not taken.
✗ Branch 7 not taken.
✗ Branch 8 not taken.
✗ Branch 9 not taken.
✗ Branch 10 not taken.
✗ Branch 11 not taken.
✗ Branch 12 not taken.
✗ Branch 13 not taken.
✗ Branch 14 not taken.
✗ Branch 15 not taken.
✗ Branch 16 not taken.
✗ Branch 17 not taken.
✗ Branch 18 not taken.
✗ Branch 19 not taken.
✗ Branch 20 not taken.
✗ Branch 21 not taken.
✗ Branch 22 not taken.
✗ Branch 23 not taken.
✗ Branch 24 not taken.
✗ Branch 25 not taken.
✗ Branch 26 not taken.
✗ Branch 27 not taken.
✗ Branch 28 not taken.
✗ Branch 29 not taken.
✗ Branch 30 not taken.
✗ Branch 31 not taken.
✗ Branch 32 not taken.
✗ Branch 33 not taken.
✗ Branch 34 not taken.
✗ Branch 35 not taken.
✗ Branch 36 not taken.
✗ Branch 37 not taken.
✗ Branch 38 not taken.
✗ Branch 39 not taken.
✗ Branch 40 not taken.
✗ Branch 41 not taken.
✗ Branch 42 not taken.
✗ Branch 43 not taken.
✗ Branch 44 not taken.
✗ Branch 45 not taken.
✗ Branch 46 not taken.
✗ Branch 47 not taken.
✗ Branch 48 not taken.
✗ Branch 49 not taken.
✗ Branch 50 not taken.
✗ Branch 51 not taken.
✗ Branch 52 not taken.
✗ Branch 53 not taken.
✗ Branch 54 not taken.
✗ Branch 55 not taken.
✗ Branch 56 not taken.
✗ Branch 57 not taken.
✗ Branch 58 not taken.
✗ Branch 59 not taken.
✗ Branch 60 not taken.
✗ Branch 61 not taken.
✗ Branch 62 not taken.
✗ Branch 63 not taken.
✗ Branch 64 not taken.
✗ Branch 65 not taken.
✗ Branch 66 not taken.
✗ Branch 67 not taken.
✗ Branch 68 not taken.
✗ Branch 69 not taken.
✗ Branch 70 not taken.
✗ Branch 71 not taken.
✗ Branch 72 not taken.
✗ Branch 73 not taken.
✗ Branch 74 not taken.
✗ Branch 75 not taken.
✗ Branch 76 not taken.
✗ Branch 77 not taken.
✗ Branch 78 not taken.
✗ Branch 79 not taken.
✗ Branch 80 not taken.
✗ Branch 81 not taken.
✗ Branch 82 not taken.
✗ Branch 83 not taken.
✗ Branch 84 not taken.
✗ Branch 85 not taken.
✗ Branch 86 not taken.
✗ Branch 87 not taken.
✗ Branch 88 not taken.
✗ Branch 89 not taken.
✗ Branch 90 not taken.
✗ Branch 91 not taken.
✗ Branch 92 not taken.
✗ Branch 93 not taken.
✗ Branch 94 not taken.
✗ Branch 95 not taken.
✗ Branch 96 not taken.
✗ Branch 97 not taken.
✗ Branch 98 not taken.
✗ Branch 99 not taken.
✗ Branch 101 not taken.
✗ Branch 102 not taken.
✗ Branch 104 not taken.
✗ Branch 105 not taken.
✗ Branch 107 not taken.
✗ Branch 108 not taken.
✗ Branch 110 not taken.
✗ Branch 111 not taken.
✗ Branch 113 not taken.
✗ Branch 114 not taken.
✗ Branch 116 not taken.
✗ Branch 117 not taken.
✗ Branch 119 not taken.
✗ Branch 120 not taken.
✗ Branch 122 not taken.
✗ Branch 123 not taken.
✗ Branch 125 not taken.
✗ Branch 126 not taken.
✗ Branch 128 not taken.
✗ Branch 129 not taken.
✗ Branch 131 not taken.
✗ Branch 132 not taken.
✗ Branch 134 not taken.
✗ Branch 135 not taken.
✗ Branch 137 not taken.
✗ Branch 138 not taken.
✗ Branch 140 not taken.
✗ Branch 141 not taken.
✗ Branch 143 not taken.
✗ Branch 144 not taken.
✗ Branch 146 not taken.
✗ Branch 147 not taken.
✗ Branch 149 not taken.
✗ Branch 150 not taken.
✗ Branch 152 not taken.
✗ Branch 153 not taken.
✗ Branch 155 not taken.
✗ Branch 156 not taken.
✗ Branch 158 not taken.
✗ Branch 159 not taken.
✗ Branch 161 not taken.
✗ Branch 162 not taken.
✗ Branch 164 not taken.
✗ Branch 165 not taken.
✗ Branch 167 not taken.
✗ Branch 168 not taken.
✗ Branch 170 not taken.
✗ Branch 171 not taken.
✗ Branch 173 not taken.
✗ Branch 174 not taken.
✗ Branch 176 not taken.
✗ Branch 177 not taken.
✗ Branch 179 not taken.
✗ Branch 180 not taken.
✗ Branch 182 not taken.
✗ Branch 183 not taken.
✗ Branch 185 not taken.
✗ Branch 186 not taken.
✗ Branch 188 not taken.
✗ Branch 189 not taken.
✗ Branch 191 not taken.
✗ Branch 192 not taken.
✗ Branch 194 not taken.
✗ Branch 195 not taken.
✗ Branch 197 not taken.
✗ Branch 198 not taken.
✗ Branch 200 not taken.
✗ Branch 201 not taken.
✗ Branch 203 not taken.
✗ Branch 204 not taken.
✗ Branch 206 not taken.
✗ Branch 207 not taken.
✗ Branch 209 not taken.
✗ Branch 210 not taken.
✗ Branch 212 not taken.
✗ Branch 213 not taken.
✗ Branch 215 not taken.
✗ Branch 216 not taken.
✗ Branch 218 not taken.
✗ Branch 219 not taken.
✗ Branch 221 not taken.
✗ Branch 222 not taken.
✗ Branch 224 not taken.
✗ Branch 225 not taken.
✗ Branch 227 not taken.
✗ Branch 228 not taken.
✗ Branch 230 not taken.
✗ Branch 231 not taken.
✗ Branch 233 not taken.
✗ Branch 234 not taken.
✗ Branch 236 not taken.
✗ Branch 237 not taken.
✗ Branch 239 not taken.
✗ Branch 240 not taken.
✗ Branch 242 not taken.
✗ Branch 243 not taken.
✗ Branch 245 not taken.
✗ Branch 246 not taken.
✗ Branch 248 not taken.
✗ Branch 249 not taken.
✗ Branch 251 not taken.
✗ Branch 252 not taken.
✗ Branch 254 not taken.
✗ Branch 255 not taken.
✗ Branch 257 not taken.
✗ Branch 258 not taken.
✗ Branch 260 not taken.
✗ Branch 261 not taken.
✗ Branch 263 not taken.
✗ Branch 264 not taken.
✗ Branch 266 not taken.
✗ Branch 267 not taken.
✗ Branch 269 not taken.
✗ Branch 270 not taken.
✗ Branch 272 not taken.
✗ Branch 273 not taken.
✗ Branch 275 not taken.
✗ Branch 276 not taken.
✗ Branch 278 not taken.
✗ Branch 279 not taken.
✗ Branch 281 not taken.
✗ Branch 282 not taken.
✗ Branch 284 not taken.
✗ Branch 285 not taken.
✗ Branch 287 not taken.
✗ Branch 288 not taken.
✗ Branch 290 not taken.
✗ Branch 291 not taken.
✗ Branch 293 not taken.
✗ Branch 294 not taken.
✗ Branch 296 not taken.
✗ Branch 297 not taken.
✗ Branch 299 not taken.
✗ Branch 300 not taken.
✗ Branch 302 not taken.
✗ Branch 303 not taken.
✗ Branch 305 not taken.
✗ Branch 306 not taken.
✗ Branch 308 not taken.
✗ Branch 309 not taken.
✗ Branch 311 not taken.
✗ Branch 312 not taken.
✗ Branch 314 not taken.
✗ Branch 315 not taken.
✗ Branch 317 not taken.
✗ Branch 318 not taken.
✗ Branch 320 not taken.
✗ Branch 321 not taken.
✗ Branch 323 not taken.
✗ Branch 324 not taken.
✗ Branch 326 not taken.
✗ Branch 327 not taken.
✗ Branch 329 not taken.
✗ Branch 330 not taken.
✗ Branch 332 not taken.
✗ Branch 333 not taken.
✗ Branch 335 not taken.
✗ Branch 336 not taken.
✗ Branch 338 not taken.
✗ Branch 339 not taken.
✓ Branch 341 taken 1 times.
✗ Branch 342 not taken.
✗ Branch 344 not taken.
✗ Branch 345 not taken.
✗ Branch 347 not taken.
✗ Branch 348 not taken.
✗ Branch 350 not taken.
✗ Branch 351 not taken.
✗ Branch 353 not taken.
✗ Branch 354 not taken.
✗ Branch 356 not taken.
✗ Branch 357 not taken.
✗ Branch 359 not taken.
✗ Branch 360 not taken.
✗ Branch 362 not taken.
✗ Branch 363 not taken.
✗ Branch 365 not taken.
✗ Branch 366 not taken.
✗ Branch 368 not taken.
✗ Branch 369 not taken.
✗ Branch 371 not taken.
✗ Branch 372 not taken.
✗ Branch 374 not taken.
✗ Branch 375 not taken.
✗ Branch 377 not taken.
✗ Branch 378 not taken.
✗ Branch 380 not taken.
✗ Branch 381 not taken.
✗ Branch 383 not taken.
✗ Branch 384 not taken.
✗ Branch 386 not taken.
✗ Branch 387 not taken.
✗ Branch 389 not taken.
✗ Branch 390 not taken.
✗ Branch 392 not taken.
✗ Branch 393 not taken.
✗ Branch 395 not taken.
✗ Branch 396 not taken.
✗ Branch 398 not taken.
✗ Branch 399 not taken.
✗ Branch 401 not taken.
✗ Branch 402 not taken.
✗ Branch 404 not taken.
✗ Branch 405 not taken.
✗ Branch 407 not taken.
✗ Branch 408 not taken.
✗ Branch 410 not taken.
✗ Branch 411 not taken.
✗ Branch 413 not taken.
✗ Branch 414 not taken.
✗ Branch 416 not taken.
✗ Branch 417 not taken.
✗ Branch 419 not taken.
✗ Branch 420 not taken.
✗ Branch 422 not taken.
✗ Branch 423 not taken.
✗ Branch 425 not taken.
✗ Branch 426 not taken.
✗ Branch 428 not taken.
✗ Branch 429 not taken.
✗ Branch 431 not taken.
✗ Branch 432 not taken.
✗ Branch 434 not taken.
✗ Branch 435 not taken.
✓ Branch 437 taken 1 times.
✗ Branch 438 not taken.
✗ Branch 440 not taken.
✗ Branch 441 not taken.
✗ Branch 443 not taken.
✗ Branch 444 not taken.
✗ Branch 446 not taken.
✗ Branch 447 not taken.
✗ Branch 449 not taken.
✗ Branch 450 not taken.
✗ Branch 452 not taken.
✗ Branch 453 not taken.
✗ Branch 455 not taken.
✗ Branch 456 not taken.
✗ Branch 458 not taken.
✗ Branch 459 not taken.
✗ Branch 461 not taken.
✗ Branch 462 not taken.
✗ Branch 464 not taken.
✗ Branch 465 not taken.
✗ Branch 467 not taken.
✗ Branch 468 not taken.
✗ Branch 470 not taken.
✗ Branch 471 not taken.
✗ Branch 473 not taken.
✗ Branch 474 not taken.
✗ Branch 476 not taken.
✗ Branch 477 not taken.
✗ Branch 479 not taken.
✗ Branch 480 not taken.
✗ Branch 482 not taken.
✗ Branch 483 not taken.
✗ Branch 485 not taken.
✗ Branch 486 not taken.
✗ Branch 488 not taken.
✗ Branch 489 not taken.
✗ Branch 491 not taken.
✗ Branch 492 not taken.
✗ Branch 494 not taken.
✗ Branch 495 not taken.
✗ Branch 497 not taken.
✗ Branch 498 not taken.
✗ Branch 500 not taken.
✗ Branch 501 not taken.
✗ Branch 503 not taken.
✗ Branch 504 not taken.
✗ Branch 506 not taken.
✗ Branch 507 not taken.
✓ Branch 509 taken 1 times.
✗ Branch 510 not taken.
✗ Branch 512 not taken.
✗ Branch 513 not taken.
✗ Branch 515 not taken.
✗ Branch 516 not taken.
✗ Branch 518 not taken.
✗ Branch 519 not taken.
✗ Branch 521 not taken.
✗ Branch 522 not taken.
✗ Branch 524 not taken.
✗ Branch 525 not taken.
✗ Branch 527 not taken.
✗ Branch 528 not taken.
✗ Branch 530 not taken.
✗ Branch 531 not taken.
✓ Branch 533 taken 2 times.
✗ Branch 534 not taken.
✗ Branch 536 not taken.
✗ Branch 537 not taken.
✗ Branch 539 not taken.
✗ Branch 540 not taken.
✗ Branch 542 not taken.
✗ Branch 543 not taken.
✗ Branch 545 not taken.
✗ Branch 546 not taken.
✗ Branch 548 not taken.
✗ Branch 549 not taken.
✗ Branch 551 not taken.
✗ Branch 552 not taken.
✗ Branch 554 not taken.
✗ Branch 555 not taken.
✗ Branch 557 not taken.
✗ Branch 558 not taken.
✗ Branch 560 not taken.
✗ Branch 561 not taken.
✗ Branch 563 not taken.
✗ Branch 564 not taken.
✗ Branch 566 not taken.
✗ Branch 567 not taken.
✗ Branch 569 not taken.
✗ Branch 570 not taken.
✗ Branch 572 not taken.
✗ Branch 573 not taken.
✗ Branch 575 not taken.
✗ Branch 576 not taken.
✗ Branch 578 not taken.
✗ Branch 579 not taken.
✗ Branch 581 not taken.
✗ Branch 582 not taken.
✗ Branch 584 not taken.
✗ Branch 585 not taken.
✗ Branch 587 not taken.
✗ Branch 588 not taken.
✗ Branch 590 not taken.
✗ Branch 591 not taken.
✗ Branch 593 not taken.
✗ Branch 594 not taken.
✗ Branch 596 not taken.
✗ Branch 597 not taken.
✗ Branch 599 not taken.
✗ Branch 600 not taken.
✗ Branch 602 not taken.
✗ Branch 603 not taken.
✗ Branch 605 not taken.
✗ Branch 606 not taken.
✗ Branch 608 not taken.
✗ Branch 609 not taken.
✗ Branch 611 not taken.
✗ Branch 612 not taken.
✗ Branch 614 not taken.
✗ Branch 615 not taken.
✗ Branch 617 not taken.
✗ Branch 618 not taken.
✗ Branch 620 not taken.
✗ Branch 621 not taken.
✗ Branch 623 not taken.
✗ Branch 624 not taken.
✗ Branch 626 not taken.
✗ Branch 627 not taken.
✓ Branch 629 taken 1 times.
✗ Branch 630 not taken.
✗ Branch 632 not taken.
✗ Branch 633 not taken.
✗ Branch 635 not taken.
✗ Branch 636 not taken.
✗ Branch 638 not taken.
✗ Branch 639 not taken.
✗ Branch 641 not taken.
✗ Branch 642 not taken.
✗ Branch 644 not taken.
✗ Branch 645 not taken.
✗ Branch 647 not taken.
✗ Branch 648 not taken.
✗ Branch 650 not taken.
✗ Branch 651 not taken.
✗ Branch 653 not taken.
✗ Branch 654 not taken.
✗ Branch 656 not taken.
✗ Branch 657 not taken.
✗ Branch 659 not taken.
✗ Branch 660 not taken.
✗ Branch 662 not taken.
✗ Branch 663 not taken.
✗ Branch 665 not taken.
✗ Branch 666 not taken.
✗ Branch 668 not taken.
✗ Branch 669 not taken.
✗ Branch 671 not taken.
✗ Branch 672 not taken.
✗ Branch 674 not taken.
✗ Branch 675 not taken.
✗ Branch 677 not taken.
✗ Branch 678 not taken.
✗ Branch 680 not taken.
✗ Branch 681 not taken.
✗ Branch 683 not taken.
✗ Branch 684 not taken.
✗ Branch 686 not taken.
✗ Branch 687 not taken.
✗ Branch 689 not taken.
✗ Branch 690 not taken.
✗ Branch 692 not taken.
✗ Branch 693 not taken.
✗ Branch 695 not taken.
✗ Branch 696 not taken.
✗ Branch 698 not taken.
✗ Branch 699 not taken.
✗ Branch 701 not taken.
✗ Branch 702 not taken.
✗ Branch 704 not taken.
✗ Branch 705 not taken.
✗ Branch 707 not taken.
✗ Branch 708 not taken.
✗ Branch 710 not taken.
✗ Branch 711 not taken.
✗ Branch 713 not taken.
✗ Branch 714 not taken.
✗ Branch 716 not taken.
✗ Branch 717 not taken.
✗ Branch 719 not taken.
✗ Branch 720 not taken.
✗ Branch 722 not taken.
✗ Branch 723 not taken.
✓ Branch 725 taken 1 times.
✗ Branch 726 not taken.
✗ Branch 728 not taken.
✗ Branch 729 not taken.
✗ Branch 731 not taken.
✗ Branch 732 not taken.
✗ Branch 734 not taken.
✗ Branch 735 not taken.
✗ Branch 737 not taken.
✗ Branch 738 not taken.
✗ Branch 740 not taken.
✗ Branch 741 not taken.
✗ Branch 743 not taken.
✗ Branch 744 not taken.
✗ Branch 746 not taken.
✗ Branch 747 not taken.
✓ Branch 749 taken 4 times.
✗ Branch 750 not taken.
✗ Branch 752 not taken.
✗ Branch 753 not taken.
✗ Branch 755 not taken.
✗ Branch 756 not taken.
✗ Branch 758 not taken.
✗ Branch 759 not taken.
✗ Branch 761 not taken.
✗ Branch 762 not taken.
✗ Branch 764 not taken.
✗ Branch 765 not taken.
✗ Branch 767 not taken.
✗ Branch 768 not taken.
✗ Branch 770 not taken.
✗ Branch 771 not taken.
✓ Branch 773 taken 12 times.
✗ Branch 774 not taken.
✗ Branch 776 not taken.
✗ Branch 777 not taken.
✗ Branch 779 not taken.
✗ Branch 780 not taken.
✗ Branch 782 not taken.
✗ Branch 783 not taken.
✗ Branch 785 not taken.
✗ Branch 786 not taken.
✗ Branch 788 not taken.
✗ Branch 789 not taken.
✗ Branch 791 not taken.
✗ Branch 792 not taken.
✗ Branch 794 not taken.
✗ Branch 795 not taken.
✗ Branch 797 not taken.
✗ Branch 798 not taken.
✗ Branch 800 not taken.
✗ Branch 801 not taken.
✗ Branch 803 not taken.
✗ Branch 804 not taken.
✗ Branch 806 not taken.
✗ Branch 807 not taken.
✗ Branch 809 not taken.
✗ Branch 810 not taken.
✗ Branch 812 not taken.
✗ Branch 813 not taken.
✗ Branch 815 not taken.
✗ Branch 816 not taken.
✗ Branch 818 not taken.
✗ Branch 819 not taken.
✗ Branch 821 not taken.
✗ Branch 822 not taken.
✗ Branch 824 not taken.
✗ Branch 825 not taken.
✗ Branch 827 not taken.
✗ Branch 828 not taken.
✗ Branch 830 not taken.
✗ Branch 831 not taken.
✗ Branch 833 not taken.
✗ Branch 834 not taken.
✗ Branch 836 not taken.
✗ Branch 837 not taken.
✗ Branch 839 not taken.
✗ Branch 840 not taken.
✗ Branch 842 not taken.
✗ Branch 843 not taken.
✗ Branch 845 not taken.
✗ Branch 846 not taken.
✗ Branch 848 not taken.
✗ Branch 849 not taken.
✗ Branch 851 not taken.
✗ Branch 852 not taken.
✗ Branch 854 not taken.
✗ Branch 855 not taken.
✗ Branch 857 not taken.
✗ Branch 858 not taken.
✗ Branch 860 not taken.
✗ Branch 861 not taken.
✗ Branch 863 not taken.
✗ Branch 864 not taken.
✗ Branch 866 not taken.
✗ Branch 867 not taken.
✗ Branch 869 not taken.
✗ Branch 870 not taken.
✗ Branch 872 not taken.
✗ Branch 873 not taken.
✗ Branch 875 not taken.
✗ Branch 876 not taken.
✗ Branch 878 not taken.
✗ Branch 879 not taken.
✗ Branch 881 not taken.
✗ Branch 882 not taken.
✗ Branch 884 not taken.
✗ Branch 885 not taken.
✗ Branch 887 not taken.
✗ Branch 888 not taken.
✗ Branch 890 not taken.
✗ Branch 891 not taken.
✓ Branch 893 taken 2 times.
✗ Branch 894 not taken.
✗ Branch 896 not taken.
✗ Branch 897 not taken.
✗ Branch 899 not taken.
✗ Branch 900 not taken.
✗ Branch 902 not taken.
✗ Branch 903 not taken.
✗ Branch 905 not taken.
✗ Branch 906 not taken.
✗ Branch 908 not taken.
✗ Branch 909 not taken.
✗ Branch 911 not taken.
✗ Branch 912 not taken.
✗ Branch 914 not taken.
✗ Branch 915 not taken.
✗ Branch 917 not taken.
✗ Branch 918 not taken.
✗ Branch 920 not taken.
✗ Branch 921 not taken.
✗ Branch 923 not taken.
✗ Branch 924 not taken.
✗ Branch 926 not taken.
✗ Branch 927 not taken.
✗ Branch 929 not taken.
✗ Branch 930 not taken.
✗ Branch 932 not taken.
✗ Branch 933 not taken.
✗ Branch 935 not taken.
✗ Branch 936 not taken.
✗ Branch 938 not taken.
✗ Branch 939 not taken.
✗ Branch 941 not taken.
✗ Branch 942 not taken.
✗ Branch 944 not taken.
✗ Branch 945 not taken.
✗ Branch 947 not taken.
✗ Branch 948 not taken.
✗ Branch 950 not taken.
✗ Branch 951 not taken.
✗ Branch 953 not taken.
✗ Branch 954 not taken.
✗ Branch 956 not taken.
✗ Branch 957 not taken.
✗ Branch 959 not taken.
✗ Branch 960 not taken.
✗ Branch 962 not taken.
✗ Branch 963 not taken.
✗ Branch 965 not taken.
✗ Branch 966 not taken.
✗ Branch 968 not taken.
✗ Branch 969 not taken.
✗ Branch 971 not taken.
✗ Branch 972 not taken.
✗ Branch 974 not taken.
✗ Branch 975 not taken.
✗ Branch 977 not taken.
✗ Branch 978 not taken.
✗ Branch 980 not taken.
✗ Branch 981 not taken.
✗ Branch 983 not taken.
✗ Branch 984 not taken.
✗ Branch 986 not taken.
✗ Branch 987 not taken.
✗ Branch 989 not taken.
✗ Branch 990 not taken.
✗ Branch 992 not taken.
✗ Branch 993 not taken.
✗ Branch 995 not taken.
✗ Branch 996 not taken.
✗ Branch 998 not taken.
✗ Branch 999 not taken.
✗ Branch 1001 not taken.
✗ Branch 1002 not taken.
✗ Branch 1004 not taken.
✗ Branch 1005 not taken.
✗ Branch 1007 not taken.
✗ Branch 1008 not taken.
✗ Branch 1010 not taken.
✗ Branch 1011 not taken.
✗ Branch 1013 not taken.
✗ Branch 1014 not taken.
✗ Branch 1016 not taken.
✗ Branch 1017 not taken.
✗ Branch 1019 not taken.
✗ Branch 1020 not taken.
✗ Branch 1022 not taken.
✗ Branch 1023 not taken.
✗ Branch 1025 not taken.
✗ Branch 1026 not taken.
✗ Branch 1028 not taken.
✗ Branch 1029 not taken.
✗ Branch 1031 not taken.
✗ Branch 1032 not taken.
✗ Branch 1034 not taken.
✗ Branch 1035 not taken.
✓ Branch 1037 taken 1 times.
✗ Branch 1038 not taken.
✗ Branch 1040 not taken.
✗ Branch 1041 not taken.
✗ Branch 1043 not taken.
✗ Branch 1044 not taken.
✗ Branch 1046 not taken.
✗ Branch 1047 not taken.
✗ Branch 1049 not taken.
✗ Branch 1050 not taken.
✗ Branch 1052 not taken.
✗ Branch 1053 not taken.
✗ Branch 1055 not taken.
✗ Branch 1056 not taken.
✗ Branch 1058 not taken.
✗ Branch 1059 not taken.
✓ Branch 1061 taken 1 times.
✗ Branch 1062 not taken.
✗ Branch 1064 not taken.
✗ Branch 1065 not taken.
✗ Branch 1067 not taken.
✗ Branch 1068 not taken.
✗ Branch 1070 not taken.
✗ Branch 1071 not taken.
✗ Branch 1073 not taken.
✗ Branch 1074 not taken.
✗ Branch 1076 not taken.
✗ Branch 1077 not taken.
✗ Branch 1079 not taken.
✗ Branch 1080 not taken.
✗ Branch 1082 not taken.
✗ Branch 1083 not taken.
✗ Branch 1085 not taken.
✗ Branch 1086 not taken.
✗ Branch 1088 not taken.
✗ Branch 1089 not taken.
✗ Branch 1091 not taken.
✗ Branch 1092 not taken.
✗ Branch 1094 not taken.
✗ Branch 1095 not taken.
✗ Branch 1097 not taken.
✗ Branch 1098 not taken.
✗ Branch 1100 not taken.
✗ Branch 1101 not taken.
✗ Branch 1103 not taken.
✗ Branch 1104 not taken.
✗ Branch 1106 not taken.
✗ Branch 1107 not taken.
✗ Branch 1109 not taken.
✗ Branch 1110 not taken.
✗ Branch 1112 not taken.
✗ Branch 1113 not taken.
✗ Branch 1115 not taken.
✗ Branch 1116 not taken.
✗ Branch 1118 not taken.
✗ Branch 1119 not taken.
✗ Branch 1121 not taken.
✗ Branch 1122 not taken.
✗ Branch 1124 not taken.
✗ Branch 1125 not taken.
✗ Branch 1127 not taken.
✗ Branch 1128 not taken.
✗ Branch 1130 not taken.
✗ Branch 1131 not taken.
✓ Branch 1133 taken 1 times.
✗ Branch 1134 not taken.
✗ Branch 1136 not taken.
✗ Branch 1137 not taken.
✗ Branch 1139 not taken.
✗ Branch 1140 not taken.
✗ Branch 1142 not taken.
✗ Branch 1143 not taken.
✗ Branch 1145 not taken.
✗ Branch 1146 not taken.
✗ Branch 1148 not taken.
✗ Branch 1149 not taken.
✗ Branch 1151 not taken.
✗ Branch 1152 not taken.
✗ Branch 1154 not taken.
✗ Branch 1155 not taken.
✗ Branch 1157 not taken.
✗ Branch 1158 not taken.
✗ Branch 1160 not taken.
✗ Branch 1161 not taken.
✗ Branch 1163 not taken.
✗ Branch 1164 not taken.
✗ Branch 1166 not taken.
✗ Branch 1167 not taken.
✗ Branch 1169 not taken.
✗ Branch 1170 not taken.
✗ Branch 1172 not taken.
✗ Branch 1173 not taken.
✗ Branch 1175 not taken.
✗ Branch 1176 not taken.
✗ Branch 1178 not taken.
✗ Branch 1179 not taken.
✗ Branch 1181 not taken.
✗ Branch 1182 not taken.
✗ Branch 1184 not taken.
✗ Branch 1185 not taken.
✗ Branch 1187 not taken.
✗ Branch 1188 not taken.
✗ Branch 1190 not taken.
✗ Branch 1191 not taken.
✗ Branch 1193 not taken.
✗ Branch 1194 not taken.
✗ Branch 1196 not taken.
✗ Branch 1197 not taken.
✗ Branch 1199 not taken.
✗ Branch 1200 not taken.
✗ Branch 1202 not taken.
✗ Branch 1203 not taken.
✓ Branch 1205 taken 5 times.
✗ Branch 1206 not taken.
✗ Branch 1208 not taken.
✗ Branch 1209 not taken.
✗ Branch 1211 not taken.
✗ Branch 1212 not taken.
✗ Branch 1214 not taken.
✗ Branch 1215 not taken.
✗ Branch 1217 not taken.
✗ Branch 1218 not taken.
✗ Branch 1220 not taken.
✗ Branch 1221 not taken.
✗ Branch 1223 not taken.
✗ Branch 1224 not taken.
✗ Branch 1226 not taken.
✗ Branch 1227 not taken.
✗ Branch 1229 not taken.
✗ Branch 1230 not taken.
✗ Branch 1232 not taken.
✗ Branch 1233 not taken.
✗ Branch 1235 not taken.
✗ Branch 1236 not taken.
✗ Branch 1238 not taken.
✗ Branch 1239 not taken.
✗ Branch 1241 not taken.
✗ Branch 1242 not taken.
✗ Branch 1244 not taken.
✗ Branch 1245 not taken.
✗ Branch 1247 not taken.
✗ Branch 1248 not taken.
✗ Branch 1250 not taken.
✗ Branch 1251 not taken.
✗ Branch 1253 not taken.
✗ Branch 1254 not taken.
✗ Branch 1256 not taken.
✗ Branch 1257 not taken.
✗ Branch 1259 not taken.
✗ Branch 1260 not taken.
✗ Branch 1262 not taken.
✗ Branch 1263 not taken.
✗ Branch 1265 not taken.
✗ Branch 1266 not taken.
✗ Branch 1268 not taken.
✗ Branch 1269 not taken.
✗ Branch 1271 not taken.
✗ Branch 1272 not taken.
✗ Branch 1274 not taken.
✗ Branch 1275 not taken.
✗ Branch 1277 not taken.
✗ Branch 1278 not taken.
✗ Branch 1280 not taken.
✗ Branch 1281 not taken.
✗ Branch 1283 not taken.
✗ Branch 1284 not taken.
✗ Branch 1286 not taken.
✗ Branch 1287 not taken.
✗ Branch 1289 not taken.
✗ Branch 1290 not taken.
✗ Branch 1292 not taken.
✗ Branch 1293 not taken.
✗ Branch 1295 not taken.
✗ Branch 1296 not taken.
✗ Branch 1298 not taken.
✗ Branch 1299 not taken.
✗ Branch 1301 not taken.
✗ Branch 1302 not taken.
✗ Branch 1304 not taken.
✗ Branch 1305 not taken.
✗ Branch 1307 not taken.
✗ Branch 1308 not taken.
✗ Branch 1310 not taken.
✗ Branch 1311 not taken.
✗ Branch 1313 not taken.
✗ Branch 1314 not taken.
✗ Branch 1316 not taken.
✗ Branch 1317 not taken.
✗ Branch 1319 not taken.
✗ Branch 1320 not taken.
✗ Branch 1322 not taken.
✗ Branch 1323 not taken.
✗ Branch 1325 not taken.
✗ Branch 1326 not taken.
✗ Branch 1328 not taken.
✗ Branch 1329 not taken.
✗ Branch 1331 not taken.
✗ Branch 1332 not taken.
✗ Branch 1334 not taken.
✗ Branch 1335 not taken.
✗ Branch 1337 not taken.
✗ Branch 1338 not taken.
✗ Branch 1340 not taken.
✗ Branch 1341 not taken.
✗ Branch 1343 not taken.
✗ Branch 1344 not taken.
✗ Branch 1346 not taken.
✗ Branch 1347 not taken.
✗ Branch 1349 not taken.
✗ Branch 1350 not taken.
✗ Branch 1352 not taken.
✗ Branch 1353 not taken.
✗ Branch 1355 not taken.
✗ Branch 1356 not taken.
✗ Branch 1358 not taken.
✗ Branch 1359 not taken.
✗ Branch 1361 not taken.
✗ Branch 1362 not taken.
✗ Branch 1364 not taken.
✗ Branch 1365 not taken.
✗ Branch 1367 not taken.
✗ Branch 1368 not taken.
✗ Branch 1370 not taken.
✗ Branch 1371 not taken.
✗ Branch 1373 not taken.
✗ Branch 1374 not taken.
✗ Branch 1376 not taken.
✗ Branch 1377 not taken.
✗ Branch 1379 not taken.
✗ Branch 1380 not taken.
✗ Branch 1382 not taken.
✗ Branch 1383 not taken.
✗ Branch 1385 not taken.
✗ Branch 1386 not taken.
✗ Branch 1388 not taken.
✗ Branch 1389 not taken.
✗ Branch 1391 not taken.
✗ Branch 1392 not taken.
✗ Branch 1394 not taken.
✗ Branch 1395 not taken.
✗ Branch 1397 not taken.
✗ Branch 1398 not taken.
|
35 | this->clearAllAccessors(); |
510 |
13/962✗ Branch 3 not taken.
✗ Branch 4 not taken.
✗ Branch 5 not taken.
✗ Branch 7 not taken.
✗ Branch 8 not taken.
✗ Branch 9 not taken.
✗ Branch 10 not taken.
✗ Branch 11 not taken.
✗ Branch 12 not taken.
✗ Branch 13 not taken.
✗ Branch 14 not taken.
✗ Branch 15 not taken.
✗ Branch 16 not taken.
✗ Branch 17 not taken.
✗ Branch 18 not taken.
✗ Branch 19 not taken.
✗ Branch 20 not taken.
✗ Branch 21 not taken.
✗ Branch 22 not taken.
✗ Branch 23 not taken.
✗ Branch 24 not taken.
✗ Branch 25 not taken.
✗ Branch 26 not taken.
✗ Branch 27 not taken.
✗ Branch 28 not taken.
✗ Branch 29 not taken.
✗ Branch 30 not taken.
✗ Branch 31 not taken.
✗ Branch 32 not taken.
✗ Branch 33 not taken.
✗ Branch 34 not taken.
✗ Branch 35 not taken.
✗ Branch 36 not taken.
✗ Branch 37 not taken.
✗ Branch 38 not taken.
✗ Branch 39 not taken.
✗ Branch 40 not taken.
✗ Branch 41 not taken.
✗ Branch 42 not taken.
✗ Branch 43 not taken.
✗ Branch 44 not taken.
✗ Branch 45 not taken.
✗ Branch 46 not taken.
✗ Branch 47 not taken.
✗ Branch 48 not taken.
✗ Branch 49 not taken.
✗ Branch 50 not taken.
✗ Branch 51 not taken.
✗ Branch 52 not taken.
✗ Branch 53 not taken.
✗ Branch 54 not taken.
✗ Branch 55 not taken.
✗ Branch 56 not taken.
✗ Branch 57 not taken.
✗ Branch 58 not taken.
✗ Branch 59 not taken.
✗ Branch 60 not taken.
✗ Branch 61 not taken.
✗ Branch 62 not taken.
✗ Branch 63 not taken.
✗ Branch 64 not taken.
✗ Branch 65 not taken.
✗ Branch 66 not taken.
✗ Branch 67 not taken.
✗ Branch 68 not taken.
✗ Branch 69 not taken.
✗ Branch 70 not taken.
✗ Branch 71 not taken.
✗ Branch 72 not taken.
✗ Branch 73 not taken.
✗ Branch 74 not taken.
✗ Branch 75 not taken.
✗ Branch 76 not taken.
✗ Branch 77 not taken.
✗ Branch 78 not taken.
✗ Branch 79 not taken.
✗ Branch 80 not taken.
✗ Branch 81 not taken.
✗ Branch 82 not taken.
✗ Branch 83 not taken.
✗ Branch 84 not taken.
✗ Branch 85 not taken.
✗ Branch 86 not taken.
✗ Branch 87 not taken.
✗ Branch 88 not taken.
✗ Branch 89 not taken.
✗ Branch 90 not taken.
✗ Branch 91 not taken.
✗ Branch 92 not taken.
✗ Branch 93 not taken.
✗ Branch 94 not taken.
✗ Branch 95 not taken.
✗ Branch 96 not taken.
✗ Branch 97 not taken.
✗ Branch 98 not taken.
✗ Branch 99 not taken.
✗ Branch 101 not taken.
✗ Branch 102 not taken.
✗ Branch 104 not taken.
✗ Branch 105 not taken.
✗ Branch 107 not taken.
✗ Branch 108 not taken.
✗ Branch 110 not taken.
✗ Branch 111 not taken.
✗ Branch 113 not taken.
✗ Branch 114 not taken.
✗ Branch 116 not taken.
✗ Branch 117 not taken.
✗ Branch 119 not taken.
✗ Branch 120 not taken.
✗ Branch 122 not taken.
✗ Branch 123 not taken.
✗ Branch 125 not taken.
✗ Branch 126 not taken.
✗ Branch 128 not taken.
✗ Branch 129 not taken.
✗ Branch 131 not taken.
✗ Branch 132 not taken.
✗ Branch 134 not taken.
✗ Branch 135 not taken.
✗ Branch 137 not taken.
✗ Branch 138 not taken.
✗ Branch 140 not taken.
✗ Branch 141 not taken.
✗ Branch 143 not taken.
✗ Branch 144 not taken.
✗ Branch 146 not taken.
✗ Branch 147 not taken.
✗ Branch 149 not taken.
✗ Branch 150 not taken.
✗ Branch 152 not taken.
✗ Branch 153 not taken.
✗ Branch 155 not taken.
✗ Branch 156 not taken.
✗ Branch 158 not taken.
✗ Branch 159 not taken.
✗ Branch 161 not taken.
✗ Branch 162 not taken.
✗ Branch 164 not taken.
✗ Branch 165 not taken.
✗ Branch 167 not taken.
✗ Branch 168 not taken.
✗ Branch 170 not taken.
✗ Branch 171 not taken.
✗ Branch 173 not taken.
✗ Branch 174 not taken.
✗ Branch 176 not taken.
✗ Branch 177 not taken.
✗ Branch 179 not taken.
✗ Branch 180 not taken.
✗ Branch 182 not taken.
✗ Branch 183 not taken.
✗ Branch 185 not taken.
✗ Branch 186 not taken.
✗ Branch 188 not taken.
✗ Branch 189 not taken.
✗ Branch 191 not taken.
✗ Branch 192 not taken.
✗ Branch 194 not taken.
✗ Branch 195 not taken.
✗ Branch 197 not taken.
✗ Branch 198 not taken.
✗ Branch 200 not taken.
✗ Branch 201 not taken.
✗ Branch 203 not taken.
✗ Branch 204 not taken.
✗ Branch 206 not taken.
✗ Branch 207 not taken.
✗ Branch 209 not taken.
✗ Branch 210 not taken.
✗ Branch 212 not taken.
✗ Branch 213 not taken.
✗ Branch 215 not taken.
✗ Branch 216 not taken.
✗ Branch 218 not taken.
✗ Branch 219 not taken.
✗ Branch 221 not taken.
✗ Branch 222 not taken.
✗ Branch 224 not taken.
✗ Branch 225 not taken.
✗ Branch 227 not taken.
✗ Branch 228 not taken.
✗ Branch 230 not taken.
✗ Branch 231 not taken.
✗ Branch 233 not taken.
✗ Branch 234 not taken.
✗ Branch 236 not taken.
✗ Branch 237 not taken.
✗ Branch 239 not taken.
✗ Branch 240 not taken.
✗ Branch 242 not taken.
✗ Branch 243 not taken.
✗ Branch 245 not taken.
✗ Branch 246 not taken.
✗ Branch 248 not taken.
✗ Branch 249 not taken.
✗ Branch 251 not taken.
✗ Branch 252 not taken.
✗ Branch 254 not taken.
✗ Branch 255 not taken.
✗ Branch 257 not taken.
✗ Branch 258 not taken.
✗ Branch 260 not taken.
✗ Branch 261 not taken.
✗ Branch 263 not taken.
✗ Branch 264 not taken.
✗ Branch 266 not taken.
✗ Branch 267 not taken.
✗ Branch 269 not taken.
✗ Branch 270 not taken.
✗ Branch 272 not taken.
✗ Branch 273 not taken.
✗ Branch 275 not taken.
✗ Branch 276 not taken.
✗ Branch 278 not taken.
✗ Branch 279 not taken.
✗ Branch 281 not taken.
✗ Branch 282 not taken.
✗ Branch 284 not taken.
✗ Branch 285 not taken.
✗ Branch 287 not taken.
✗ Branch 288 not taken.
✗ Branch 290 not taken.
✗ Branch 291 not taken.
✗ Branch 293 not taken.
✗ Branch 294 not taken.
✗ Branch 296 not taken.
✗ Branch 297 not taken.
✗ Branch 299 not taken.
✗ Branch 300 not taken.
✗ Branch 302 not taken.
✗ Branch 303 not taken.
✗ Branch 305 not taken.
✗ Branch 306 not taken.
✗ Branch 308 not taken.
✗ Branch 309 not taken.
✗ Branch 311 not taken.
✗ Branch 312 not taken.
✗ Branch 314 not taken.
✗ Branch 315 not taken.
✗ Branch 317 not taken.
✗ Branch 318 not taken.
✗ Branch 320 not taken.
✗ Branch 321 not taken.
✗ Branch 323 not taken.
✗ Branch 324 not taken.
✗ Branch 326 not taken.
✗ Branch 327 not taken.
✗ Branch 329 not taken.
✗ Branch 330 not taken.
✗ Branch 332 not taken.
✗ Branch 333 not taken.
✗ Branch 335 not taken.
✗ Branch 336 not taken.
✗ Branch 338 not taken.
✗ Branch 339 not taken.
✓ Branch 341 taken 1 times.
✗ Branch 342 not taken.
✗ Branch 344 not taken.
✗ Branch 345 not taken.
✗ Branch 347 not taken.
✗ Branch 348 not taken.
✗ Branch 350 not taken.
✗ Branch 351 not taken.
✗ Branch 353 not taken.
✗ Branch 354 not taken.
✗ Branch 356 not taken.
✗ Branch 357 not taken.
✗ Branch 359 not taken.
✗ Branch 360 not taken.
✗ Branch 362 not taken.
✗ Branch 363 not taken.
✗ Branch 365 not taken.
✗ Branch 366 not taken.
✗ Branch 368 not taken.
✗ Branch 369 not taken.
✗ Branch 371 not taken.
✗ Branch 372 not taken.
✗ Branch 374 not taken.
✗ Branch 375 not taken.
✗ Branch 377 not taken.
✗ Branch 378 not taken.
✗ Branch 380 not taken.
✗ Branch 381 not taken.
✗ Branch 383 not taken.
✗ Branch 384 not taken.
✗ Branch 386 not taken.
✗ Branch 387 not taken.
✗ Branch 389 not taken.
✗ Branch 390 not taken.
✗ Branch 392 not taken.
✗ Branch 393 not taken.
✗ Branch 395 not taken.
✗ Branch 396 not taken.
✗ Branch 398 not taken.
✗ Branch 399 not taken.
✗ Branch 401 not taken.
✗ Branch 402 not taken.
✗ Branch 404 not taken.
✗ Branch 405 not taken.
✗ Branch 407 not taken.
✗ Branch 408 not taken.
✗ Branch 410 not taken.
✗ Branch 411 not taken.
✗ Branch 413 not taken.
✗ Branch 414 not taken.
✗ Branch 416 not taken.
✗ Branch 417 not taken.
✗ Branch 419 not taken.
✗ Branch 420 not taken.
✗ Branch 422 not taken.
✗ Branch 423 not taken.
✗ Branch 425 not taken.
✗ Branch 426 not taken.
✗ Branch 428 not taken.
✗ Branch 429 not taken.
✗ Branch 431 not taken.
✗ Branch 432 not taken.
✗ Branch 434 not taken.
✗ Branch 435 not taken.
✓ Branch 437 taken 1 times.
✗ Branch 438 not taken.
✗ Branch 440 not taken.
✗ Branch 441 not taken.
✗ Branch 443 not taken.
✗ Branch 444 not taken.
✗ Branch 446 not taken.
✗ Branch 447 not taken.
✗ Branch 449 not taken.
✗ Branch 450 not taken.
✗ Branch 452 not taken.
✗ Branch 453 not taken.
✗ Branch 455 not taken.
✗ Branch 456 not taken.
✗ Branch 458 not taken.
✗ Branch 459 not taken.
✗ Branch 461 not taken.
✗ Branch 462 not taken.
✗ Branch 464 not taken.
✗ Branch 465 not taken.
✗ Branch 467 not taken.
✗ Branch 468 not taken.
✗ Branch 470 not taken.
✗ Branch 471 not taken.
✗ Branch 473 not taken.
✗ Branch 474 not taken.
✗ Branch 476 not taken.
✗ Branch 477 not taken.
✗ Branch 479 not taken.
✗ Branch 480 not taken.
✗ Branch 482 not taken.
✗ Branch 483 not taken.
✗ Branch 485 not taken.
✗ Branch 486 not taken.
✗ Branch 488 not taken.
✗ Branch 489 not taken.
✗ Branch 491 not taken.
✗ Branch 492 not taken.
✗ Branch 494 not taken.
✗ Branch 495 not taken.
✗ Branch 497 not taken.
✗ Branch 498 not taken.
✗ Branch 500 not taken.
✗ Branch 501 not taken.
✗ Branch 503 not taken.
✗ Branch 504 not taken.
✗ Branch 506 not taken.
✗ Branch 507 not taken.
✓ Branch 509 taken 1 times.
✗ Branch 510 not taken.
✗ Branch 512 not taken.
✗ Branch 513 not taken.
✗ Branch 515 not taken.
✗ Branch 516 not taken.
✗ Branch 518 not taken.
✗ Branch 519 not taken.
✗ Branch 521 not taken.
✗ Branch 522 not taken.
✗ Branch 524 not taken.
✗ Branch 525 not taken.
✗ Branch 527 not taken.
✗ Branch 528 not taken.
✗ Branch 530 not taken.
✗ Branch 531 not taken.
✓ Branch 533 taken 2 times.
✗ Branch 534 not taken.
✗ Branch 536 not taken.
✗ Branch 537 not taken.
✗ Branch 539 not taken.
✗ Branch 540 not taken.
✗ Branch 542 not taken.
✗ Branch 543 not taken.
✗ Branch 545 not taken.
✗ Branch 546 not taken.
✗ Branch 548 not taken.
✗ Branch 549 not taken.
✗ Branch 551 not taken.
✗ Branch 552 not taken.
✗ Branch 554 not taken.
✗ Branch 555 not taken.
✗ Branch 557 not taken.
✗ Branch 558 not taken.
✗ Branch 560 not taken.
✗ Branch 561 not taken.
✗ Branch 563 not taken.
✗ Branch 564 not taken.
✗ Branch 566 not taken.
✗ Branch 567 not taken.
✗ Branch 569 not taken.
✗ Branch 570 not taken.
✗ Branch 572 not taken.
✗ Branch 573 not taken.
✗ Branch 575 not taken.
✗ Branch 576 not taken.
✗ Branch 578 not taken.
✗ Branch 579 not taken.
✗ Branch 581 not taken.
✗ Branch 582 not taken.
✗ Branch 584 not taken.
✗ Branch 585 not taken.
✗ Branch 587 not taken.
✗ Branch 588 not taken.
✗ Branch 590 not taken.
✗ Branch 591 not taken.
✗ Branch 593 not taken.
✗ Branch 594 not taken.
✗ Branch 596 not taken.
✗ Branch 597 not taken.
✗ Branch 599 not taken.
✗ Branch 600 not taken.
✗ Branch 602 not taken.
✗ Branch 603 not taken.
✗ Branch 605 not taken.
✗ Branch 606 not taken.
✗ Branch 608 not taken.
✗ Branch 609 not taken.
✗ Branch 611 not taken.
✗ Branch 612 not taken.
✗ Branch 614 not taken.
✗ Branch 615 not taken.
✗ Branch 617 not taken.
✗ Branch 618 not taken.
✗ Branch 620 not taken.
✗ Branch 621 not taken.
✗ Branch 623 not taken.
✗ Branch 624 not taken.
✗ Branch 626 not taken.
✗ Branch 627 not taken.
✓ Branch 629 taken 1 times.
✗ Branch 630 not taken.
✗ Branch 632 not taken.
✗ Branch 633 not taken.
✗ Branch 635 not taken.
✗ Branch 636 not taken.
✗ Branch 638 not taken.
✗ Branch 639 not taken.
✗ Branch 641 not taken.
✗ Branch 642 not taken.
✗ Branch 644 not taken.
✗ Branch 645 not taken.
✗ Branch 647 not taken.
✗ Branch 648 not taken.
✗ Branch 650 not taken.
✗ Branch 651 not taken.
✗ Branch 653 not taken.
✗ Branch 654 not taken.
✗ Branch 656 not taken.
✗ Branch 657 not taken.
✗ Branch 659 not taken.
✗ Branch 660 not taken.
✗ Branch 662 not taken.
✗ Branch 663 not taken.
✗ Branch 665 not taken.
✗ Branch 666 not taken.
✗ Branch 668 not taken.
✗ Branch 669 not taken.
✗ Branch 671 not taken.
✗ Branch 672 not taken.
✗ Branch 674 not taken.
✗ Branch 675 not taken.
✗ Branch 677 not taken.
✗ Branch 678 not taken.
✗ Branch 680 not taken.
✗ Branch 681 not taken.
✗ Branch 683 not taken.
✗ Branch 684 not taken.
✗ Branch 686 not taken.
✗ Branch 687 not taken.
✗ Branch 689 not taken.
✗ Branch 690 not taken.
✗ Branch 692 not taken.
✗ Branch 693 not taken.
✗ Branch 695 not taken.
✗ Branch 696 not taken.
✗ Branch 698 not taken.
✗ Branch 699 not taken.
✗ Branch 701 not taken.
✗ Branch 702 not taken.
✗ Branch 704 not taken.
✗ Branch 705 not taken.
✗ Branch 707 not taken.
✗ Branch 708 not taken.
✗ Branch 710 not taken.
✗ Branch 711 not taken.
✗ Branch 713 not taken.
✗ Branch 714 not taken.
✗ Branch 716 not taken.
✗ Branch 717 not taken.
✗ Branch 719 not taken.
✗ Branch 720 not taken.
✗ Branch 722 not taken.
✗ Branch 723 not taken.
✓ Branch 725 taken 1 times.
✗ Branch 726 not taken.
✗ Branch 728 not taken.
✗ Branch 729 not taken.
✗ Branch 731 not taken.
✗ Branch 732 not taken.
✗ Branch 734 not taken.
✗ Branch 735 not taken.
✗ Branch 737 not taken.
✗ Branch 738 not taken.
✗ Branch 740 not taken.
✗ Branch 741 not taken.
✗ Branch 743 not taken.
✗ Branch 744 not taken.
✗ Branch 746 not taken.
✗ Branch 747 not taken.
✓ Branch 749 taken 4 times.
✗ Branch 750 not taken.
✗ Branch 752 not taken.
✗ Branch 753 not taken.
✗ Branch 755 not taken.
✗ Branch 756 not taken.
✗ Branch 758 not taken.
✗ Branch 759 not taken.
✗ Branch 761 not taken.
✗ Branch 762 not taken.
✗ Branch 764 not taken.
✗ Branch 765 not taken.
✗ Branch 767 not taken.
✗ Branch 768 not taken.
✗ Branch 770 not taken.
✗ Branch 771 not taken.
✓ Branch 773 taken 12 times.
✗ Branch 774 not taken.
✗ Branch 776 not taken.
✗ Branch 777 not taken.
✗ Branch 779 not taken.
✗ Branch 780 not taken.
✗ Branch 782 not taken.
✗ Branch 783 not taken.
✗ Branch 785 not taken.
✗ Branch 786 not taken.
✗ Branch 788 not taken.
✗ Branch 789 not taken.
✗ Branch 791 not taken.
✗ Branch 792 not taken.
✗ Branch 794 not taken.
✗ Branch 795 not taken.
✗ Branch 797 not taken.
✗ Branch 798 not taken.
✗ Branch 800 not taken.
✗ Branch 801 not taken.
✗ Branch 803 not taken.
✗ Branch 804 not taken.
✗ Branch 806 not taken.
✗ Branch 807 not taken.
✗ Branch 809 not taken.
✗ Branch 810 not taken.
✗ Branch 812 not taken.
✗ Branch 813 not taken.
✗ Branch 815 not taken.
✗ Branch 816 not taken.
✗ Branch 818 not taken.
✗ Branch 819 not taken.
✗ Branch 821 not taken.
✗ Branch 822 not taken.
✗ Branch 824 not taken.
✗ Branch 825 not taken.
✗ Branch 827 not taken.
✗ Branch 828 not taken.
✗ Branch 830 not taken.
✗ Branch 831 not taken.
✗ Branch 833 not taken.
✗ Branch 834 not taken.
✗ Branch 836 not taken.
✗ Branch 837 not taken.
✗ Branch 839 not taken.
✗ Branch 840 not taken.
✗ Branch 842 not taken.
✗ Branch 843 not taken.
✗ Branch 845 not taken.
✗ Branch 846 not taken.
✗ Branch 848 not taken.
✗ Branch 849 not taken.
✗ Branch 851 not taken.
✗ Branch 852 not taken.
✗ Branch 854 not taken.
✗ Branch 855 not taken.
✗ Branch 857 not taken.
✗ Branch 858 not taken.
✗ Branch 860 not taken.
✗ Branch 861 not taken.
✗ Branch 863 not taken.
✗ Branch 864 not taken.
✗ Branch 866 not taken.
✗ Branch 867 not taken.
✗ Branch 869 not taken.
✗ Branch 870 not taken.
✗ Branch 872 not taken.
✗ Branch 873 not taken.
✗ Branch 875 not taken.
✗ Branch 876 not taken.
✗ Branch 878 not taken.
✗ Branch 879 not taken.
✗ Branch 881 not taken.
✗ Branch 882 not taken.
✗ Branch 884 not taken.
✗ Branch 885 not taken.
✗ Branch 887 not taken.
✗ Branch 888 not taken.
✗ Branch 890 not taken.
✗ Branch 891 not taken.
✓ Branch 893 taken 2 times.
✗ Branch 894 not taken.
✗ Branch 896 not taken.
✗ Branch 897 not taken.
✗ Branch 899 not taken.
✗ Branch 900 not taken.
✗ Branch 902 not taken.
✗ Branch 903 not taken.
✗ Branch 905 not taken.
✗ Branch 906 not taken.
✗ Branch 908 not taken.
✗ Branch 909 not taken.
✗ Branch 911 not taken.
✗ Branch 912 not taken.
✗ Branch 914 not taken.
✗ Branch 915 not taken.
✗ Branch 917 not taken.
✗ Branch 918 not taken.
✗ Branch 920 not taken.
✗ Branch 921 not taken.
✗ Branch 923 not taken.
✗ Branch 924 not taken.
✗ Branch 926 not taken.
✗ Branch 927 not taken.
✗ Branch 929 not taken.
✗ Branch 930 not taken.
✗ Branch 932 not taken.
✗ Branch 933 not taken.
✗ Branch 935 not taken.
✗ Branch 936 not taken.
✗ Branch 938 not taken.
✗ Branch 939 not taken.
✗ Branch 941 not taken.
✗ Branch 942 not taken.
✗ Branch 944 not taken.
✗ Branch 945 not taken.
✗ Branch 947 not taken.
✗ Branch 948 not taken.
✗ Branch 950 not taken.
✗ Branch 951 not taken.
✗ Branch 953 not taken.
✗ Branch 954 not taken.
✗ Branch 956 not taken.
✗ Branch 957 not taken.
✗ Branch 959 not taken.
✗ Branch 960 not taken.
✗ Branch 962 not taken.
✗ Branch 963 not taken.
✗ Branch 965 not taken.
✗ Branch 966 not taken.
✗ Branch 968 not taken.
✗ Branch 969 not taken.
✗ Branch 971 not taken.
✗ Branch 972 not taken.
✗ Branch 974 not taken.
✗ Branch 975 not taken.
✗ Branch 977 not taken.
✗ Branch 978 not taken.
✗ Branch 980 not taken.
✗ Branch 981 not taken.
✗ Branch 983 not taken.
✗ Branch 984 not taken.
✗ Branch 986 not taken.
✗ Branch 987 not taken.
✗ Branch 989 not taken.
✗ Branch 990 not taken.
✗ Branch 992 not taken.
✗ Branch 993 not taken.
✗ Branch 995 not taken.
✗ Branch 996 not taken.
✗ Branch 998 not taken.
✗ Branch 999 not taken.
✗ Branch 1001 not taken.
✗ Branch 1002 not taken.
✗ Branch 1004 not taken.
✗ Branch 1005 not taken.
✗ Branch 1007 not taken.
✗ Branch 1008 not taken.
✗ Branch 1010 not taken.
✗ Branch 1011 not taken.
✗ Branch 1013 not taken.
✗ Branch 1014 not taken.
✗ Branch 1016 not taken.
✗ Branch 1017 not taken.
✗ Branch 1019 not taken.
✗ Branch 1020 not taken.
✗ Branch 1022 not taken.
✗ Branch 1023 not taken.
✗ Branch 1025 not taken.
✗ Branch 1026 not taken.
✗ Branch 1028 not taken.
✗ Branch 1029 not taken.
✗ Branch 1031 not taken.
✗ Branch 1032 not taken.
✗ Branch 1034 not taken.
✗ Branch 1035 not taken.
✓ Branch 1037 taken 1 times.
✗ Branch 1038 not taken.
✗ Branch 1040 not taken.
✗ Branch 1041 not taken.
✗ Branch 1043 not taken.
✗ Branch 1044 not taken.
✗ Branch 1046 not taken.
✗ Branch 1047 not taken.
✗ Branch 1049 not taken.
✗ Branch 1050 not taken.
✗ Branch 1052 not taken.
✗ Branch 1053 not taken.
✗ Branch 1055 not taken.
✗ Branch 1056 not taken.
✗ Branch 1058 not taken.
✗ Branch 1059 not taken.
✓ Branch 1061 taken 1 times.
✗ Branch 1062 not taken.
✗ Branch 1064 not taken.
✗ Branch 1065 not taken.
✗ Branch 1067 not taken.
✗ Branch 1068 not taken.
✗ Branch 1070 not taken.
✗ Branch 1071 not taken.
✗ Branch 1073 not taken.
✗ Branch 1074 not taken.
✗ Branch 1076 not taken.
✗ Branch 1077 not taken.
✗ Branch 1079 not taken.
✗ Branch 1080 not taken.
✗ Branch 1082 not taken.
✗ Branch 1083 not taken.
✗ Branch 1085 not taken.
✗ Branch 1086 not taken.
✗ Branch 1088 not taken.
✗ Branch 1089 not taken.
✗ Branch 1091 not taken.
✗ Branch 1092 not taken.
✗ Branch 1094 not taken.
✗ Branch 1095 not taken.
✗ Branch 1097 not taken.
✗ Branch 1098 not taken.
✗ Branch 1100 not taken.
✗ Branch 1101 not taken.
✗ Branch 1103 not taken.
✗ Branch 1104 not taken.
✗ Branch 1106 not taken.
✗ Branch 1107 not taken.
✗ Branch 1109 not taken.
✗ Branch 1110 not taken.
✗ Branch 1112 not taken.
✗ Branch 1113 not taken.
✗ Branch 1115 not taken.
✗ Branch 1116 not taken.
✗ Branch 1118 not taken.
✗ Branch 1119 not taken.
✗ Branch 1121 not taken.
✗ Branch 1122 not taken.
✗ Branch 1124 not taken.
✗ Branch 1125 not taken.
✗ Branch 1127 not taken.
✗ Branch 1128 not taken.
✗ Branch 1130 not taken.
✗ Branch 1131 not taken.
✓ Branch 1133 taken 1 times.
✗ Branch 1134 not taken.
✗ Branch 1136 not taken.
✗ Branch 1137 not taken.
✗ Branch 1139 not taken.
✗ Branch 1140 not taken.
✗ Branch 1142 not taken.
✗ Branch 1143 not taken.
✗ Branch 1145 not taken.
✗ Branch 1146 not taken.
✗ Branch 1148 not taken.
✗ Branch 1149 not taken.
✗ Branch 1151 not taken.
✗ Branch 1152 not taken.
✗ Branch 1154 not taken.
✗ Branch 1155 not taken.
✗ Branch 1157 not taken.
✗ Branch 1158 not taken.
✗ Branch 1160 not taken.
✗ Branch 1161 not taken.
✗ Branch 1163 not taken.
✗ Branch 1164 not taken.
✗ Branch 1166 not taken.
✗ Branch 1167 not taken.
✗ Branch 1169 not taken.
✗ Branch 1170 not taken.
✗ Branch 1172 not taken.
✗ Branch 1173 not taken.
✗ Branch 1175 not taken.
✗ Branch 1176 not taken.
✗ Branch 1178 not taken.
✗ Branch 1179 not taken.
✗ Branch 1181 not taken.
✗ Branch 1182 not taken.
✗ Branch 1184 not taken.
✗ Branch 1185 not taken.
✗ Branch 1187 not taken.
✗ Branch 1188 not taken.
✗ Branch 1190 not taken.
✗ Branch 1191 not taken.
✗ Branch 1193 not taken.
✗ Branch 1194 not taken.
✗ Branch 1196 not taken.
✗ Branch 1197 not taken.
✗ Branch 1199 not taken.
✗ Branch 1200 not taken.
✗ Branch 1202 not taken.
✗ Branch 1203 not taken.
✓ Branch 1205 taken 5 times.
✗ Branch 1206 not taken.
✗ Branch 1208 not taken.
✗ Branch 1209 not taken.
✗ Branch 1211 not taken.
✗ Branch 1212 not taken.
✗ Branch 1214 not taken.
✗ Branch 1215 not taken.
✗ Branch 1217 not taken.
✗ Branch 1218 not taken.
✗ Branch 1220 not taken.
✗ Branch 1221 not taken.
✗ Branch 1223 not taken.
✗ Branch 1224 not taken.
✗ Branch 1226 not taken.
✗ Branch 1227 not taken.
✗ Branch 1229 not taken.
✗ Branch 1230 not taken.
✗ Branch 1232 not taken.
✗ Branch 1233 not taken.
✗ Branch 1235 not taken.
✗ Branch 1236 not taken.
✗ Branch 1238 not taken.
✗ Branch 1239 not taken.
✗ Branch 1241 not taken.
✗ Branch 1242 not taken.
✗ Branch 1244 not taken.
✗ Branch 1245 not taken.
✗ Branch 1247 not taken.
✗ Branch 1248 not taken.
✗ Branch 1250 not taken.
✗ Branch 1251 not taken.
✗ Branch 1253 not taken.
✗ Branch 1254 not taken.
✗ Branch 1256 not taken.
✗ Branch 1257 not taken.
✗ Branch 1259 not taken.
✗ Branch 1260 not taken.
✗ Branch 1262 not taken.
✗ Branch 1263 not taken.
✗ Branch 1265 not taken.
✗ Branch 1266 not taken.
✗ Branch 1268 not taken.
✗ Branch 1269 not taken.
✗ Branch 1271 not taken.
✗ Branch 1272 not taken.
✗ Branch 1274 not taken.
✗ Branch 1275 not taken.
✗ Branch 1277 not taken.
✗ Branch 1278 not taken.
✗ Branch 1280 not taken.
✗ Branch 1281 not taken.
✗ Branch 1283 not taken.
✗ Branch 1284 not taken.
✗ Branch 1286 not taken.
✗ Branch 1287 not taken.
✗ Branch 1289 not taken.
✗ Branch 1290 not taken.
✗ Branch 1292 not taken.
✗ Branch 1293 not taken.
✗ Branch 1295 not taken.
✗ Branch 1296 not taken.
✗ Branch 1298 not taken.
✗ Branch 1299 not taken.
✗ Branch 1301 not taken.
✗ Branch 1302 not taken.
✗ Branch 1304 not taken.
✗ Branch 1305 not taken.
✗ Branch 1307 not taken.
✗ Branch 1308 not taken.
✗ Branch 1310 not taken.
✗ Branch 1311 not taken.
✗ Branch 1313 not taken.
✗ Branch 1314 not taken.
✗ Branch 1316 not taken.
✗ Branch 1317 not taken.
✗ Branch 1319 not taken.
✗ Branch 1320 not taken.
✗ Branch 1322 not taken.
✗ Branch 1323 not taken.
✗ Branch 1325 not taken.
✗ Branch 1326 not taken.
✗ Branch 1328 not taken.
✗ Branch 1329 not taken.
✗ Branch 1331 not taken.
✗ Branch 1332 not taken.
✗ Branch 1334 not taken.
✗ Branch 1335 not taken.
✗ Branch 1337 not taken.
✗ Branch 1338 not taken.
✗ Branch 1340 not taken.
✗ Branch 1341 not taken.
✗ Branch 1343 not taken.
✗ Branch 1344 not taken.
✗ Branch 1346 not taken.
✗ Branch 1347 not taken.
✗ Branch 1349 not taken.
✗ Branch 1350 not taken.
✗ Branch 1352 not taken.
✗ Branch 1353 not taken.
✗ Branch 1355 not taken.
✗ Branch 1356 not taken.
✗ Branch 1358 not taken.
✗ Branch 1359 not taken.
✗ Branch 1361 not taken.
✗ Branch 1362 not taken.
✗ Branch 1364 not taken.
✗ Branch 1365 not taken.
✗ Branch 1367 not taken.
✗ Branch 1368 not taken.
✗ Branch 1370 not taken.
✗ Branch 1371 not taken.
✗ Branch 1373 not taken.
✗ Branch 1374 not taken.
✗ Branch 1376 not taken.
✗ Branch 1377 not taken.
✗ Branch 1379 not taken.
✗ Branch 1380 not taken.
✗ Branch 1382 not taken.
✗ Branch 1383 not taken.
✗ Branch 1385 not taken.
✗ Branch 1386 not taken.
✗ Branch 1388 not taken.
✗ Branch 1389 not taken.
✗ Branch 1391 not taken.
✗ Branch 1392 not taken.
✗ Branch 1394 not taken.
✗ Branch 1395 not taken.
✗ Branch 1397 not taken.
✗ Branch 1398 not taken.
|
35 | mRoot.prune(tolerance); |
511 | 33 | } | |
512 | |||
513 | /// @brief Add the given leaf node to this tree, creating a new branch if necessary. | ||
514 | /// If a leaf node with the same origin already exists, replace it. | ||
515 | /// | ||
516 | /// @warning Ownership of the leaf is transferred to the tree so | ||
517 | /// the client code should not attempt to delete the leaf pointer! | ||
518 |
1/2✗ Branch 0 not taken.
✓ Branch 1 taken 57873 times.
|
72163 | void addLeaf(LeafNodeType* leaf) { assert(leaf); mRoot.addLeaf(leaf); } |
519 | |||
520 | /// @brief Add a tile containing voxel (x, y, z) at the specified tree level, | ||
521 | /// creating a new branch if necessary. Delete any existing lower-level nodes | ||
522 | /// that contain (x, y, z). | ||
523 | /// @note @a level must be less than this tree's depth. | ||
524 | void addTile(Index level, const Coord& xyz, const ValueType& value, bool active); | ||
525 | |||
526 | /// @brief Return a pointer to the node of type @c NodeT that contains voxel (x, y, z) | ||
527 | /// and replace it with a tile of the specified value and state. | ||
528 | /// If no such node exists, leave the tree unchanged and return @c nullptr. | ||
529 | /// @note The caller takes ownership of the node and is responsible for deleting it. | ||
530 | template<typename NodeT> | ||
531 | NodeT* stealNode(const Coord& xyz, const ValueType& value, bool active); | ||
532 | |||
533 | /// @brief Return a pointer to the leaf node that contains voxel (x, y, z). | ||
534 | /// If no such node exists, create one that preserves the values and | ||
535 | /// active states of all voxels. | ||
536 | /// @details Use this method to preallocate a static tree topology over which to | ||
537 | /// safely perform multithreaded processing. | ||
538 | LeafNodeType* touchLeaf(const Coord& xyz); | ||
539 | |||
540 | //@{ | ||
541 | /// @brief Return a pointer to the node of type @c NodeType that contains | ||
542 | /// voxel (x, y, z). If no such node exists, return @c nullptr. | ||
543 | template<typename NodeType> NodeType* probeNode(const Coord& xyz); | ||
544 | template<typename NodeType> const NodeType* probeConstNode(const Coord& xyz) const; | ||
545 | template<typename NodeType> const NodeType* probeNode(const Coord& xyz) const; | ||
546 | //@} | ||
547 | |||
548 | //@{ | ||
549 | /// @brief Return a pointer to the leaf node that contains voxel (x, y, z). | ||
550 | /// If no such node exists, return @c nullptr. | ||
551 | LeafNodeType* probeLeaf(const Coord& xyz); | ||
552 | const LeafNodeType* probeConstLeaf(const Coord& xyz) const; | ||
553 | const LeafNodeType* probeLeaf(const Coord& xyz) const { return this->probeConstLeaf(xyz); } | ||
554 | //@} | ||
555 | |||
556 | //@{ | ||
557 | /// @brief Adds all nodes of a certain type to a container with the following API: | ||
558 | /// @code | ||
559 | /// struct ArrayT { | ||
560 | /// using value_type = ...; // the type of node to be added to the array | ||
561 | /// void push_back(value_type nodePtr); // add a node to the array | ||
562 | /// }; | ||
563 | /// @endcode | ||
564 | /// @details An example of a wrapper around a c-style array is: | ||
565 | /// @code | ||
566 | /// struct MyArray { | ||
567 | /// using value_type = LeafType*; | ||
568 | /// value_type* ptr; | ||
569 | /// MyArray(value_type* array) : ptr(array) {} | ||
570 | /// void push_back(value_type leaf) { *ptr++ = leaf; } | ||
571 | ///}; | ||
572 | /// @endcode | ||
573 | /// @details An example that constructs a list of pointer to all leaf nodes is: | ||
574 | /// @code | ||
575 | /// std::vector<const LeafNodeType*> array;//most std contains have the required API | ||
576 | /// array.reserve(tree.leafCount());//this is a fast preallocation. | ||
577 | /// tree.getNodes(array); | ||
578 | /// @endcode | ||
579 |
27/60✓ Branch 1 taken 27799 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 7570 times.
✗ Branch 5 not taken.
✓ Branch 7 taken 171 times.
✗ Branch 8 not taken.
✓ Branch 10 taken 124 times.
✗ Branch 11 not taken.
✓ Branch 13 taken 158 times.
✗ Branch 14 not taken.
✓ Branch 16 taken 154 times.
✗ Branch 17 not taken.
✓ Branch 19 taken 128 times.
✗ Branch 20 not taken.
✓ Branch 22 taken 145 times.
✗ Branch 23 not taken.
✓ Branch 25 taken 174 times.
✗ Branch 26 not taken.
✓ Branch 28 taken 254 times.
✗ Branch 29 not taken.
✓ Branch 31 taken 285 times.
✗ Branch 32 not taken.
✓ Branch 34 taken 134 times.
✗ Branch 35 not taken.
✓ Branch 37 taken 121 times.
✗ Branch 38 not taken.
✓ Branch 40 taken 129 times.
✗ Branch 41 not taken.
✓ Branch 43 taken 893 times.
✗ Branch 44 not taken.
✓ Branch 46 taken 68 times.
✗ Branch 47 not taken.
✓ Branch 49 taken 545 times.
✗ Branch 50 not taken.
✓ Branch 52 taken 186 times.
✗ Branch 53 not taken.
✓ Branch 55 taken 552 times.
✗ Branch 56 not taken.
✓ Branch 58 taken 784 times.
✗ Branch 59 not taken.
✓ Branch 61 taken 7 times.
✗ Branch 62 not taken.
✓ Branch 64 taken 3 times.
✗ Branch 65 not taken.
✗ Branch 67 not taken.
✗ Branch 68 not taken.
✓ Branch 70 taken 3 times.
✗ Branch 71 not taken.
✓ Branch 73 taken 3 times.
✗ Branch 74 not taken.
✓ Branch 76 taken 3 times.
✗ Branch 77 not taken.
✗ Branch 79 not taken.
✗ Branch 80 not taken.
✗ Branch 82 not taken.
✗ Branch 83 not taken.
✓ Branch 85 taken 18 times.
✗ Branch 86 not taken.
✓ Branch 88 taken 18 times.
✗ Branch 89 not taken.
|
40422 | template<typename ArrayT> void getNodes(ArrayT& array) { mRoot.getNodes(array); } |
580 |
19/74✓ Branch 1 taken 187 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 457 times.
✗ Branch 5 not taken.
✗ Branch 6 not taken.
✓ Branch 7 taken 81 times.
✗ Branch 8 not taken.
✗ Branch 9 not taken.
✓ Branch 10 taken 55 times.
✗ Branch 11 not taken.
✓ Branch 13 taken 19 times.
✗ Branch 14 not taken.
✓ Branch 16 taken 1 times.
✗ Branch 17 not taken.
✓ Branch 19 taken 2 times.
✗ Branch 20 not taken.
✓ Branch 22 taken 21 times.
✗ Branch 23 not taken.
✗ Branch 25 not taken.
✗ Branch 26 not taken.
✗ Branch 28 not taken.
✗ Branch 29 not taken.
✓ Branch 31 taken 1 times.
✗ Branch 32 not taken.
✓ Branch 34 taken 1 times.
✗ Branch 35 not taken.
✓ Branch 37 taken 1 times.
✗ Branch 38 not taken.
✗ Branch 40 not taken.
✗ Branch 41 not taken.
✗ Branch 43 not taken.
✗ Branch 44 not taken.
✗ Branch 46 not taken.
✗ Branch 47 not taken.
✓ Branch 49 taken 4 times.
✗ Branch 50 not taken.
✗ Branch 52 not taken.
✗ Branch 53 not taken.
✗ Branch 55 not taken.
✗ Branch 56 not taken.
✗ Branch 58 not taken.
✗ Branch 59 not taken.
✗ Branch 61 not taken.
✗ Branch 62 not taken.
✗ Branch 64 not taken.
✗ Branch 65 not taken.
✗ Branch 67 not taken.
✗ Branch 68 not taken.
✓ Branch 70 taken 1 times.
✗ Branch 71 not taken.
✗ Branch 73 not taken.
✗ Branch 74 not taken.
✗ Branch 76 not taken.
✗ Branch 77 not taken.
✗ Branch 79 not taken.
✗ Branch 80 not taken.
✓ Branch 82 taken 2 times.
✗ Branch 83 not taken.
✓ Branch 85 taken 2 times.
✗ Branch 86 not taken.
✓ Branch 88 taken 1 times.
✗ Branch 89 not taken.
✓ Branch 91 taken 1 times.
✗ Branch 92 not taken.
✓ Branch 94 taken 27 times.
✗ Branch 95 not taken.
✗ Branch 97 not taken.
✗ Branch 98 not taken.
✗ Branch 100 not taken.
✗ Branch 101 not taken.
✗ Branch 103 not taken.
✗ Branch 104 not taken.
✓ Branch 106 taken 3 times.
✗ Branch 107 not taken.
|
867 | template<typename ArrayT> void getNodes(ArrayT& array) const { mRoot.getNodes(array); } |
581 | //@} | ||
582 | |||
583 | /// @brief Steals all nodes of a certain type from the tree and | ||
584 | /// adds them to a container with the following API: | ||
585 | /// @code | ||
586 | /// struct ArrayT { | ||
587 | /// using value_type = ...; // the type of node to be added to the array | ||
588 | /// void push_back(value_type nodePtr); // add a node to the array | ||
589 | /// }; | ||
590 | /// @endcode | ||
591 | /// @details An example of a wrapper around a c-style array is: | ||
592 | /// @code | ||
593 | /// struct MyArray { | ||
594 | /// using value_type = LeafType*; | ||
595 | /// value_type* ptr; | ||
596 | /// MyArray(value_type* array) : ptr(array) {} | ||
597 | /// void push_back(value_type leaf) { *ptr++ = leaf; } | ||
598 | ///}; | ||
599 | /// @endcode | ||
600 | /// @details An example that constructs a list of pointer to all leaf nodes is: | ||
601 | /// @code | ||
602 | /// std::vector<const LeafNodeType*> array;//most std contains have the required API | ||
603 | /// array.reserve(tree.leafCount());//this is a fast preallocation. | ||
604 | /// tree.stealNodes(array); | ||
605 | /// @endcode | ||
606 | template<typename ArrayT> | ||
607 |
54/138✓ Branch 1 taken 43483 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 41039 times.
✗ Branch 5 not taken.
✓ Branch 7 taken 41039 times.
✗ Branch 8 not taken.
✓ Branch 10 taken 4043 times.
✗ Branch 11 not taken.
✓ Branch 13 taken 3971 times.
✗ Branch 14 not taken.
✓ Branch 16 taken 3971 times.
✗ Branch 17 not taken.
✓ Branch 19 taken 5780 times.
✗ Branch 20 not taken.
✓ Branch 22 taken 5779 times.
✗ Branch 23 not taken.
✓ Branch 25 taken 5779 times.
✗ Branch 26 not taken.
✓ Branch 28 taken 497 times.
✗ Branch 29 not taken.
✓ Branch 31 taken 6661 times.
✗ Branch 32 not taken.
✓ Branch 34 taken 6661 times.
✗ Branch 35 not taken.
✓ Branch 37 taken 234 times.
✗ Branch 38 not taken.
✓ Branch 40 taken 234 times.
✗ Branch 41 not taken.
✓ Branch 43 taken 234 times.
✗ Branch 44 not taken.
✓ Branch 46 taken 356 times.
✗ Branch 47 not taken.
✓ Branch 49 taken 356 times.
✗ Branch 50 not taken.
✓ Branch 52 taken 356 times.
✗ Branch 53 not taken.
✓ Branch 55 taken 246 times.
✗ Branch 56 not taken.
✓ Branch 58 taken 246 times.
✗ Branch 59 not taken.
✓ Branch 61 taken 246 times.
✗ Branch 62 not taken.
✓ Branch 64 taken 245 times.
✗ Branch 65 not taken.
✓ Branch 67 taken 243 times.
✗ Branch 68 not taken.
✓ Branch 70 taken 243 times.
✗ Branch 71 not taken.
✓ Branch 73 taken 275 times.
✗ Branch 74 not taken.
✓ Branch 76 taken 275 times.
✗ Branch 77 not taken.
✓ Branch 79 taken 275 times.
✗ Branch 80 not taken.
✓ Branch 82 taken 391 times.
✗ Branch 83 not taken.
✓ Branch 85 taken 391 times.
✗ Branch 86 not taken.
✓ Branch 88 taken 391 times.
✗ Branch 89 not taken.
✓ Branch 91 taken 338 times.
✗ Branch 92 not taken.
✓ Branch 94 taken 338 times.
✗ Branch 95 not taken.
✓ Branch 97 taken 338 times.
✗ Branch 98 not taken.
✓ Branch 100 taken 216 times.
✗ Branch 101 not taken.
✓ Branch 103 taken 216 times.
✗ Branch 104 not taken.
✓ Branch 106 taken 216 times.
✗ Branch 107 not taken.
✓ Branch 109 taken 217 times.
✗ Branch 110 not taken.
✓ Branch 112 taken 217 times.
✗ Branch 113 not taken.
✓ Branch 115 taken 217 times.
✗ Branch 116 not taken.
✓ Branch 118 taken 217 times.
✗ Branch 119 not taken.
✓ Branch 121 taken 217 times.
✗ Branch 122 not taken.
✓ Branch 124 taken 216 times.
✗ Branch 125 not taken.
✗ Branch 127 not taken.
✗ Branch 128 not taken.
✗ Branch 130 not taken.
✗ Branch 131 not taken.
✗ Branch 133 not taken.
✗ Branch 134 not taken.
✓ Branch 136 taken 152 times.
✗ Branch 137 not taken.
✓ Branch 139 taken 152 times.
✗ Branch 140 not taken.
✓ Branch 142 taken 152 times.
✗ Branch 143 not taken.
✓ Branch 145 taken 732 times.
✗ Branch 146 not taken.
✓ Branch 148 taken 732 times.
✗ Branch 149 not taken.
✓ Branch 151 taken 732 times.
✗ Branch 152 not taken.
✓ Branch 154 taken 376 times.
✗ Branch 155 not taken.
✓ Branch 157 taken 376 times.
✗ Branch 158 not taken.
✓ Branch 160 taken 376 times.
✗ Branch 161 not taken.
✗ Branch 163 not taken.
✗ Branch 164 not taken.
✗ Branch 166 not taken.
✗ Branch 167 not taken.
✗ Branch 169 not taken.
✗ Branch 170 not taken.
✓ Branch 172 taken 732 times.
✗ Branch 173 not taken.
✓ Branch 175 taken 732 times.
✗ Branch 176 not taken.
✓ Branch 178 taken 732 times.
✗ Branch 179 not taken.
✗ Branch 181 not taken.
✗ Branch 182 not taken.
✗ Branch 184 not taken.
✗ Branch 185 not taken.
✗ Branch 187 not taken.
✗ Branch 188 not taken.
✗ Branch 190 not taken.
✗ Branch 191 not taken.
✗ Branch 193 not taken.
✗ Branch 194 not taken.
✗ Branch 196 not taken.
✗ Branch 197 not taken.
✗ Branch 199 not taken.
✗ Branch 200 not taken.
✗ Branch 202 not taken.
✗ Branch 203 not taken.
✗ Branch 205 not taken.
✗ Branch 206 not taken.
|
179032 | void stealNodes(ArrayT& array) { this->clearAllAccessors(); mRoot.stealNodes(array); } |
608 | template<typename ArrayT> | ||
609 | void stealNodes(ArrayT& array, const ValueType& value, bool state) | ||
610 | { | ||
611 |
2/4✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
|
2 | this->clearAllAccessors(); |
612 |
2/4✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
|
2 | mRoot.stealNodes(array, value, state); |
613 | 2 | } | |
614 | |||
615 | // | ||
616 | // Aux methods | ||
617 | // | ||
618 | /// @brief Return @c true if this tree contains no nodes other than | ||
619 | /// the root node and no tiles other than background tiles. | ||
620 | 743 | bool empty() const { return mRoot.empty(); } | |
621 | |||
622 | /// Remove all tiles from this tree and all nodes other than the root node. | ||
623 | void clear(); | ||
624 | |||
625 | /// Clear all registered accessors. | ||
626 | void clearAllAccessors(); | ||
627 | |||
628 | //@{ | ||
629 | /// @brief Register an accessor for this tree. Registered accessors are | ||
630 | /// automatically cleared whenever one of this tree's nodes is deleted. | ||
631 | void attachAccessor(ValueAccessorBase<Tree, true>&) const; | ||
632 | void attachAccessor(ValueAccessorBase<const Tree, true>&) const; | ||
633 | //@} | ||
634 | |||
635 | //@{ | ||
636 | /// Dummy implementations | ||
637 | void attachAccessor(ValueAccessorBase<Tree, false>&) const {} | ||
638 | void attachAccessor(ValueAccessorBase<const Tree, false>&) const {} | ||
639 | //@} | ||
640 | |||
641 | //@{ | ||
642 | /// Deregister an accessor so that it is no longer automatically cleared. | ||
643 | void releaseAccessor(ValueAccessorBase<Tree, true>&) const; | ||
644 | void releaseAccessor(ValueAccessorBase<const Tree, true>&) const; | ||
645 | //@} | ||
646 | |||
647 | //@{ | ||
648 | /// Dummy implementations | ||
649 | void releaseAccessor(ValueAccessorBase<Tree, false>&) const {} | ||
650 | void releaseAccessor(ValueAccessorBase<const Tree, false>&) const {} | ||
651 | //@} | ||
652 | |||
653 | /// @brief Return this tree's background value wrapped as metadata. | ||
654 | /// @note Query the metadata object for the value's type. | ||
655 | Metadata::Ptr getBackgroundValue() const override; | ||
656 | |||
657 | /// @brief Return this tree's background value. | ||
658 | /// | ||
659 | /// @note Use tools::changeBackground to efficiently modify the | ||
660 | /// background values. Else use tree.root().setBackground, which | ||
661 | /// is serial and hence slower. | ||
662 | const ValueType& background() const { return mRoot.background(); } | ||
663 | |||
664 | /// Min and max are both inclusive. | ||
665 | 3 | void getIndexRange(CoordBBox& bbox) const override { mRoot.getIndexRange(bbox); } | |
666 | |||
667 | /// @brief Efficiently merge another tree into this tree using one of several schemes. | ||
668 | /// @details This operation is primarily intended to combine trees that are mostly | ||
669 | /// non-overlapping (for example, intermediate trees from computations that are | ||
670 | /// parallelized across disjoint regions of space). | ||
671 | /// @note This operation is not guaranteed to produce an optimally sparse tree. | ||
672 | /// Follow merge() with prune() for optimal sparseness. | ||
673 | /// @warning This operation always empties the other tree. | ||
674 | void merge(Tree& other, MergePolicy = MERGE_ACTIVE_STATES); | ||
675 | |||
676 | /// @brief Union this tree's set of active values with the active values | ||
677 | /// of the other tree, whose @c ValueType may be different. | ||
678 | /// @details The resulting state of a value is active if the corresponding value | ||
679 | /// was already active OR if it is active in the other tree. Also, a resulting | ||
680 | /// value maps to a voxel if the corresponding value already mapped to a voxel | ||
681 | /// OR if it is a voxel in the other tree. Thus, a resulting value can only | ||
682 | /// map to a tile if the corresponding value already mapped to a tile | ||
683 | /// AND if it is a tile value in other tree. | ||
684 | /// | ||
685 | /// @note This operation modifies only active states, not values. | ||
686 | /// Specifically, active tiles and voxels in this tree are not changed, and | ||
687 | /// tiles or voxels that were inactive in this tree but active in the other tree | ||
688 | /// are marked as active in this tree but left with their original values. | ||
689 | /// | ||
690 | /// @note If preserveTiles is true, any active tile in this topology | ||
691 | /// will not be densified by overlapping child topology. | ||
692 | template<typename OtherRootNodeType> | ||
693 | void topologyUnion(const Tree<OtherRootNodeType>& other, const bool preserveTiles = false); | ||
694 | |||
695 | /// @brief Intersects this tree's set of active values with the active values | ||
696 | /// of the other tree, whose @c ValueType may be different. | ||
697 | /// @details The resulting state of a value is active only if the corresponding | ||
698 | /// value was already active AND if it is active in the other tree. Also, a | ||
699 | /// resulting value maps to a voxel if the corresponding value | ||
700 | /// already mapped to an active voxel in either of the two grids | ||
701 | /// and it maps to an active tile or voxel in the other grid. | ||
702 | /// | ||
703 | /// @note This operation can delete branches in this grid if they | ||
704 | /// overlap with inactive tiles in the other grid. Likewise active | ||
705 | /// voxels can be turned into inactive voxels resulting in leaf | ||
706 | /// nodes with no active values. Thus, it is recommended to | ||
707 | /// subsequently call tools::pruneInactive. | ||
708 | template<typename OtherRootNodeType> | ||
709 | void topologyIntersection(const Tree<OtherRootNodeType>& other); | ||
710 | |||
711 | /// @brief Difference this tree's set of active values with the active values | ||
712 | /// of the other tree, whose @c ValueType may be different. So a | ||
713 | /// resulting voxel will be active only if the original voxel is | ||
714 | /// active in this tree and inactive in the other tree. | ||
715 | /// | ||
716 | /// @note This operation can delete branches in this grid if they | ||
717 | /// overlap with active tiles in the other grid. Likewise active | ||
718 | /// voxels can be turned into inactive voxels resulting in leaf | ||
719 | /// nodes with no active values. Thus, it is recommended to | ||
720 | /// subsequently call tools::pruneInactive. | ||
721 | template<typename OtherRootNodeType> | ||
722 | void topologyDifference(const Tree<OtherRootNodeType>& other); | ||
723 | |||
724 | /// For a given function @c f, use sparse traversal to compute <tt>f(this, other)</tt> | ||
725 | /// over all corresponding pairs of values (tile or voxel) of this tree and the other tree | ||
726 | /// and store the result in this tree. | ||
727 | /// This method is typically more space-efficient than the two-tree combine2(), | ||
728 | /// since it moves rather than copies nodes from the other tree into this tree. | ||
729 | /// @note This operation always empties the other tree. | ||
730 | /// @param other a tree of the same type as this tree | ||
731 | /// @param op a functor of the form <tt>void op(const T& a, const T& b, T& result)</tt>, | ||
732 | /// where @c T is this tree's @c ValueType, that computes | ||
733 | /// <tt>result = f(a, b)</tt> | ||
734 | /// @param prune if true, prune the resulting tree one branch at a time (this is usually | ||
735 | /// more space-efficient than pruning the entire tree in one pass) | ||
736 | /// | ||
737 | /// @par Example: | ||
738 | /// Compute the per-voxel difference between two floating-point trees, | ||
739 | /// @c aTree and @c bTree, and store the result in @c aTree (leaving @c bTree empty). | ||
740 | /// @code | ||
741 | /// { | ||
742 | /// struct Local { | ||
743 | /// static inline void diff(const float& a, const float& b, float& result) { | ||
744 | /// result = a - b; | ||
745 | /// } | ||
746 | /// }; | ||
747 | /// aTree.combine(bTree, Local::diff); | ||
748 | /// } | ||
749 | /// @endcode | ||
750 | /// | ||
751 | /// @par Example: | ||
752 | /// Compute <tt>f * a + (1 - f) * b</tt> over all voxels of two floating-point trees, | ||
753 | /// @c aTree and @c bTree, and store the result in @c aTree (leaving @c bTree empty). | ||
754 | /// @code | ||
755 | /// namespace { | ||
756 | /// struct Blend { | ||
757 | /// Blend(float f): frac(f) {} | ||
758 | /// inline void operator()(const float& a, const float& b, float& result) const { | ||
759 | /// result = frac * a + (1.0 - frac) * b; | ||
760 | /// } | ||
761 | /// float frac; | ||
762 | /// }; | ||
763 | /// } | ||
764 | /// { | ||
765 | /// aTree.combine(bTree, Blend(0.25)); // 0.25 * a + 0.75 * b | ||
766 | /// } | ||
767 | /// @endcode | ||
768 | template<typename CombineOp> | ||
769 | void combine(Tree& other, CombineOp& op, bool prune = false); | ||
770 | #ifndef _WIN32 | ||
771 | template<typename CombineOp> | ||
772 | void combine(Tree& other, const CombineOp& op, bool prune = false); | ||
773 | #endif | ||
774 | |||
775 | /// Like combine(), but with | ||
776 | /// @param other a tree of the same type as this tree | ||
777 | /// @param op a functor of the form <tt>void op(CombineArgs<ValueType>& args)</tt> that | ||
778 | /// computes <tt>args.setResult(f(args.a(), args.b()))</tt> and, optionally, | ||
779 | /// <tt>args.setResultIsActive(g(args.aIsActive(), args.bIsActive()))</tt> | ||
780 | /// for some functions @c f and @c g | ||
781 | /// @param prune if true, prune the resulting tree one branch at a time (this is usually | ||
782 | /// more space-efficient than pruning the entire tree in one pass) | ||
783 | /// | ||
784 | /// This variant passes not only the @em a and @em b values but also the active states | ||
785 | /// of the @em a and @em b values to the functor, which may then return, by calling | ||
786 | /// @c args.setResultIsActive(), a computed active state for the result value. | ||
787 | /// By default, the result is active if either the @em a or the @em b value is active. | ||
788 | /// | ||
789 | /// @see openvdb/Types.h for the definition of the CombineArgs struct. | ||
790 | /// | ||
791 | /// @par Example: | ||
792 | /// Replace voxel values in floating-point @c aTree with corresponding values | ||
793 | /// from floating-point @c bTree (leaving @c bTree empty) wherever the @c bTree | ||
794 | /// values are larger. Also, preserve the active states of any transferred values. | ||
795 | /// @code | ||
796 | /// { | ||
797 | /// struct Local { | ||
798 | /// static inline void max(CombineArgs<float>& args) { | ||
799 | /// if (args.b() > args.a()) { | ||
800 | /// // Transfer the B value and its active state. | ||
801 | /// args.setResult(args.b()); | ||
802 | /// args.setResultIsActive(args.bIsActive()); | ||
803 | /// } else { | ||
804 | /// // Preserve the A value and its active state. | ||
805 | /// args.setResult(args.a()); | ||
806 | /// args.setResultIsActive(args.aIsActive()); | ||
807 | /// } | ||
808 | /// } | ||
809 | /// }; | ||
810 | /// aTree.combineExtended(bTree, Local::max); | ||
811 | /// } | ||
812 | /// @endcode | ||
813 | template<typename ExtendedCombineOp> | ||
814 | void combineExtended(Tree& other, ExtendedCombineOp& op, bool prune = false); | ||
815 | #ifndef _WIN32 | ||
816 | template<typename ExtendedCombineOp> | ||
817 | void combineExtended(Tree& other, const ExtendedCombineOp& op, bool prune = false); | ||
818 | #endif | ||
819 | |||
820 | /// For a given function @c f, use sparse traversal to compute <tt>f(a, b)</tt> over all | ||
821 | /// corresponding pairs of values (tile or voxel) of trees A and B and store the result | ||
822 | /// in this tree. | ||
823 | /// @param a,b two trees with the same configuration (levels and node dimensions) | ||
824 | /// as this tree but with the B tree possibly having a different value type | ||
825 | /// @param op a functor of the form <tt>void op(const T1& a, const T2& b, T1& result)</tt>, | ||
826 | /// where @c T1 is this tree's and the A tree's @c ValueType and @c T2 is the | ||
827 | /// B tree's @c ValueType, that computes <tt>result = f(a, b)</tt> | ||
828 | /// @param prune if true, prune the resulting tree one branch at a time (this is usually | ||
829 | /// more space-efficient than pruning the entire tree in one pass) | ||
830 | /// | ||
831 | /// @throw TypeError if the B tree's configuration doesn't match this tree's | ||
832 | /// or if this tree's ValueType is not constructible from the B tree's ValueType. | ||
833 | /// | ||
834 | /// @par Example: | ||
835 | /// Compute the per-voxel difference between two floating-point trees, | ||
836 | /// @c aTree and @c bTree, and store the result in a third tree. | ||
837 | /// @code | ||
838 | /// { | ||
839 | /// struct Local { | ||
840 | /// static inline void diff(const float& a, const float& b, float& result) { | ||
841 | /// result = a - b; | ||
842 | /// } | ||
843 | /// }; | ||
844 | /// FloatTree resultTree; | ||
845 | /// resultTree.combine2(aTree, bTree, Local::diff); | ||
846 | /// } | ||
847 | /// @endcode | ||
848 | template<typename CombineOp, typename OtherTreeType /*= Tree*/> | ||
849 | void combine2(const Tree& a, const OtherTreeType& b, CombineOp& op, bool prune = false); | ||
850 | #ifndef _WIN32 | ||
851 | template<typename CombineOp, typename OtherTreeType /*= Tree*/> | ||
852 | void combine2(const Tree& a, const OtherTreeType& b, const CombineOp& op, bool prune = false); | ||
853 | #endif | ||
854 | |||
855 | /// Like combine2(), but with | ||
856 | /// @param a,b two trees with the same configuration (levels and node dimensions) | ||
857 | /// as this tree but with the B tree possibly having a different value type | ||
858 | /// @param op a functor of the form <tt>void op(CombineArgs<T1, T2>& args)</tt>, where | ||
859 | /// @c T1 is this tree's and the A tree's @c ValueType and @c T2 is the B tree's | ||
860 | /// @c ValueType, that computes <tt>args.setResult(f(args.a(), args.b()))</tt> | ||
861 | /// and, optionally, | ||
862 | /// <tt>args.setResultIsActive(g(args.aIsActive(), args.bIsActive()))</tt> | ||
863 | /// for some functions @c f and @c g | ||
864 | /// @param prune if true, prune the resulting tree one branch at a time (this is usually | ||
865 | /// more space-efficient than pruning the entire tree in one pass) | ||
866 | /// This variant passes not only the @em a and @em b values but also the active states | ||
867 | /// of the @em a and @em b values to the functor, which may then return, by calling | ||
868 | /// <tt>args.setResultIsActive()</tt>, a computed active state for the result value. | ||
869 | /// By default, the result is active if either the @em a or the @em b value is active. | ||
870 | /// | ||
871 | /// @throw TypeError if the B tree's configuration doesn't match this tree's | ||
872 | /// or if this tree's ValueType is not constructible from the B tree's ValueType. | ||
873 | /// | ||
874 | /// @see openvdb/Types.h for the definition of the CombineArgs struct. | ||
875 | /// | ||
876 | /// @par Example: | ||
877 | /// Compute the per-voxel maximum values of two single-precision floating-point trees, | ||
878 | /// @c aTree and @c bTree, and store the result in a third tree. Set the active state | ||
879 | /// of each output value to that of the larger of the two input values. | ||
880 | /// @code | ||
881 | /// { | ||
882 | /// struct Local { | ||
883 | /// static inline void max(CombineArgs<float>& args) { | ||
884 | /// if (args.b() > args.a()) { | ||
885 | /// // Transfer the B value and its active state. | ||
886 | /// args.setResult(args.b()); | ||
887 | /// args.setResultIsActive(args.bIsActive()); | ||
888 | /// } else { | ||
889 | /// // Preserve the A value and its active state. | ||
890 | /// args.setResult(args.a()); | ||
891 | /// args.setResultIsActive(args.aIsActive()); | ||
892 | /// } | ||
893 | /// } | ||
894 | /// }; | ||
895 | /// FloatTree aTree = ...; | ||
896 | /// FloatTree bTree = ...; | ||
897 | /// FloatTree resultTree; | ||
898 | /// resultTree.combine2Extended(aTree, bTree, Local::max); | ||
899 | /// } | ||
900 | /// @endcode | ||
901 | /// | ||
902 | /// @par Example: | ||
903 | /// Compute the per-voxel maximum values of a double-precision and a single-precision | ||
904 | /// floating-point tree, @c aTree and @c bTree, and store the result in a third, | ||
905 | /// double-precision tree. Set the active state of each output value to that of | ||
906 | /// the larger of the two input values. | ||
907 | /// @code | ||
908 | /// { | ||
909 | /// struct Local { | ||
910 | /// static inline void max(CombineArgs<double, float>& args) { | ||
911 | /// if (args.b() > args.a()) { | ||
912 | /// // Transfer the B value and its active state. | ||
913 | /// args.setResult(args.b()); | ||
914 | /// args.setResultIsActive(args.bIsActive()); | ||
915 | /// } else { | ||
916 | /// // Preserve the A value and its active state. | ||
917 | /// args.setResult(args.a()); | ||
918 | /// args.setResultIsActive(args.aIsActive()); | ||
919 | /// } | ||
920 | /// } | ||
921 | /// }; | ||
922 | /// DoubleTree aTree = ...; | ||
923 | /// FloatTree bTree = ...; | ||
924 | /// DoubleTree resultTree; | ||
925 | /// resultTree.combine2Extended(aTree, bTree, Local::max); | ||
926 | /// } | ||
927 | /// @endcode | ||
928 | template<typename ExtendedCombineOp, typename OtherTreeType /*= Tree*/> | ||
929 | void combine2Extended(const Tree& a, const OtherTreeType& b, ExtendedCombineOp& op, | ||
930 | bool prune = false); | ||
931 | #ifndef _WIN32 | ||
932 | template<typename ExtendedCombineOp, typename OtherTreeType /*= Tree*/> | ||
933 | void combine2Extended(const Tree& a, const OtherTreeType& b, const ExtendedCombineOp&, | ||
934 | bool prune = false); | ||
935 | #endif | ||
936 | |||
937 | template<typename BBoxOp> | ||
938 | OPENVDB_DEPRECATED_MESSAGE("Use tools::visitNodesDepthFirst or DynamicNodeManager instead") | ||
939 |
1/2✓ Branch 1 taken 4 times.
✗ Branch 2 not taken.
|
4 | void visitActiveBBox(BBoxOp& op) const { mRoot.visitActiveBBox(op); } |
940 | |||
941 | template<typename VisitorOp> | ||
942 | OPENVDB_DEPRECATED_MESSAGE("Use tools::visitNodesDepthFirst or DynamicNodeManager instead") | ||
943 | void visit(VisitorOp& op); | ||
944 | template<typename VisitorOp> | ||
945 | OPENVDB_DEPRECATED_MESSAGE("Use tools::visitNodesDepthFirst or DynamicNodeManager instead") | ||
946 | void visit(const VisitorOp& op); | ||
947 | |||
948 | template<typename VisitorOp> | ||
949 | OPENVDB_DEPRECATED_MESSAGE("Use tools::visitNodesDepthFirst or DynamicNodeManager instead") | ||
950 | void visit(VisitorOp& op) const; | ||
951 | template<typename VisitorOp> | ||
952 | OPENVDB_DEPRECATED_MESSAGE("Use tools::visitNodesDepthFirst or DynamicNodeManager instead") | ||
953 | void visit(const VisitorOp& op) const; | ||
954 | |||
955 | template<typename OtherTreeType, typename VisitorOp> | ||
956 | OPENVDB_DEPRECATED_MESSAGE("Use tools::visitNodesDepthFirst or DynamicNodeManager instead") | ||
957 | void visit2(OtherTreeType& other, VisitorOp& op); | ||
958 | template<typename OtherTreeType, typename VisitorOp> | ||
959 | OPENVDB_DEPRECATED_MESSAGE("Use tools::visitNodesDepthFirst or DynamicNodeManager instead") | ||
960 | void visit2(OtherTreeType& other, const VisitorOp& op); | ||
961 | |||
962 | template<typename OtherTreeType, typename VisitorOp> | ||
963 | OPENVDB_DEPRECATED_MESSAGE("Use tools::visitNodesDepthFirst or DynamicNodeManager instead") | ||
964 | void visit2(OtherTreeType& other, VisitorOp& op) const; | ||
965 | template<typename OtherTreeType, typename VisitorOp> | ||
966 | OPENVDB_DEPRECATED_MESSAGE("Use tools::visitNodesDepthFirst or DynamicNodeManager instead") | ||
967 | void visit2(OtherTreeType& other, const VisitorOp& op) const; | ||
968 | |||
969 | |||
970 | // | ||
971 | // Iteration | ||
972 | // | ||
973 | //@{ | ||
974 | /// Return an iterator over children of the root node. | ||
975 | typename RootNodeType::ChildOnCIter beginRootChildren() const { return mRoot.cbeginChildOn(); } | ||
976 | typename RootNodeType::ChildOnCIter cbeginRootChildren() const { return mRoot.cbeginChildOn(); } | ||
977 | typename RootNodeType::ChildOnIter beginRootChildren() { return mRoot.beginChildOn(); } | ||
978 | //@} | ||
979 | |||
980 | //@{ | ||
981 | /// Return an iterator over non-child entries of the root node's table. | ||
982 | typename RootNodeType::ChildOffCIter beginRootTiles() const { return mRoot.cbeginChildOff(); } | ||
983 | typename RootNodeType::ChildOffCIter cbeginRootTiles() const { return mRoot.cbeginChildOff(); } | ||
984 | typename RootNodeType::ChildOffIter beginRootTiles() { return mRoot.beginChildOff(); } | ||
985 | //@} | ||
986 | |||
987 | //@{ | ||
988 | /// Return an iterator over all entries of the root node's table. | ||
989 | typename RootNodeType::ChildAllCIter beginRootDense() const { return mRoot.cbeginChildAll(); } | ||
990 | typename RootNodeType::ChildAllCIter cbeginRootDense() const { return mRoot.cbeginChildAll(); } | ||
991 | typename RootNodeType::ChildAllIter beginRootDense() { return mRoot.beginChildAll(); } | ||
992 | //@} | ||
993 | |||
994 | |||
995 | //@{ | ||
996 | /// Iterator over all nodes in this tree | ||
997 | using NodeIter = NodeIteratorBase<Tree, typename RootNodeType::ChildOnIter>; | ||
998 | using NodeCIter = NodeIteratorBase<const Tree, typename RootNodeType::ChildOnCIter>; | ||
999 | //@} | ||
1000 | |||
1001 | //@{ | ||
1002 | /// Iterator over all leaf nodes in this tree | ||
1003 | using LeafIter = LeafIteratorBase<Tree, typename RootNodeType::ChildOnIter>; | ||
1004 | using LeafCIter = LeafIteratorBase<const Tree, typename RootNodeType::ChildOnCIter>; | ||
1005 | //@} | ||
1006 | |||
1007 | //@{ | ||
1008 | /// Return an iterator over all nodes in this tree. | ||
1009 | NodeIter beginNode() { return NodeIter(*this); } | ||
1010 | NodeCIter beginNode() const { return NodeCIter(*this); } | ||
1011 | 32 | NodeCIter cbeginNode() const { return NodeCIter(*this); } | |
1012 | //@} | ||
1013 | |||
1014 | //@{ | ||
1015 | /// Return an iterator over all leaf nodes in this tree. | ||
1016 |
37/89✓ Branch 2 taken 1 times.
✗ Branch 3 not taken.
✓ Branch 4 taken 4 times.
✓ Branch 5 taken 8 times.
✓ Branch 6 taken 3 times.
✓ Branch 7 taken 4 times.
✓ Branch 8 taken 19 times.
✓ Branch 9 taken 4 times.
✓ Branch 10 taken 3 times.
✓ Branch 11 taken 2 times.
✓ Branch 12 taken 4 times.
✓ Branch 13 taken 3 times.
✓ Branch 14 taken 6 times.
✓ Branch 15 taken 2 times.
✗ Branch 16 not taken.
✓ Branch 17 taken 2 times.
✓ Branch 18 taken 1 times.
✗ Branch 19 not taken.
✓ Branch 20 taken 3 times.
✓ Branch 21 taken 1 times.
✗ Branch 22 not taken.
✓ Branch 23 taken 2 times.
✓ Branch 24 taken 1 times.
✗ Branch 25 not taken.
✓ Branch 26 taken 2 times.
✓ Branch 27 taken 1 times.
✗ Branch 28 not taken.
✓ Branch 29 taken 5 times.
✓ Branch 30 taken 1 times.
✗ Branch 31 not taken.
✓ Branch 32 taken 2 times.
✓ Branch 33 taken 1 times.
✗ Branch 34 not taken.
✓ Branch 35 taken 1 times.
✓ Branch 36 taken 1 times.
✗ Branch 37 not taken.
✓ Branch 38 taken 1 times.
✓ Branch 39 taken 1 times.
✗ Branch 40 not taken.
✓ Branch 41 taken 1 times.
✗ Branch 42 not taken.
✗ Branch 43 not taken.
✓ Branch 44 taken 1 times.
✗ Branch 45 not taken.
✗ Branch 46 not taken.
✗ Branch 47 not taken.
✗ Branch 48 not taken.
✗ Branch 49 not taken.
✓ Branch 50 taken 1 times.
✗ Branch 51 not taken.
✗ Branch 52 not taken.
✓ Branch 53 taken 1 times.
✗ Branch 54 not taken.
✗ Branch 55 not taken.
✗ Branch 56 not taken.
✗ Branch 57 not taken.
✗ Branch 58 not taken.
✓ Branch 59 taken 1 times.
✗ Branch 60 not taken.
✗ Branch 61 not taken.
✓ Branch 62 taken 8 times.
✗ Branch 63 not taken.
✗ Branch 64 not taken.
✗ Branch 66 not taken.
✗ Branch 67 not taken.
✗ Branch 69 not taken.
✗ Branch 70 not taken.
✗ Branch 72 not taken.
✗ Branch 73 not taken.
✗ Branch 75 not taken.
✗ Branch 76 not taken.
✗ Branch 78 not taken.
✗ Branch 79 not taken.
✗ Branch 81 not taken.
✗ Branch 82 not taken.
✗ Branch 84 not taken.
✗ Branch 85 not taken.
✗ Branch 87 not taken.
✗ Branch 88 not taken.
✗ Branch 90 not taken.
✗ Branch 91 not taken.
✗ Branch 93 not taken.
✗ Branch 94 not taken.
✗ Branch 97 not taken.
✗ Branch 98 not taken.
✓ Branch 100 taken 1 times.
✗ Branch 101 not taken.
✓ Branch 103 taken 1 times.
✗ Branch 104 not taken.
|
311 | LeafIter beginLeaf() { return LeafIter(*this); } |
1017 |
1/20✗ Branch 1 not taken.
✗ Branch 2 not taken.
✗ Branch 4 not taken.
✗ Branch 5 not taken.
✗ Branch 7 not taken.
✗ Branch 8 not taken.
✗ Branch 10 not taken.
✗ Branch 11 not taken.
✓ Branch 13 taken 3 times.
✗ Branch 14 not taken.
✗ Branch 16 not taken.
✗ Branch 17 not taken.
✗ Branch 19 not taken.
✗ Branch 20 not taken.
✗ Branch 22 not taken.
✗ Branch 23 not taken.
✗ Branch 25 not taken.
✗ Branch 26 not taken.
✗ Branch 28 not taken.
✗ Branch 29 not taken.
|
255 | LeafCIter beginLeaf() const { return LeafCIter(*this); } |
1018 |
158/213✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 4 times.
✗ Branch 5 not taken.
✗ Branch 6 not taken.
✓ Branch 7 taken 3 times.
✗ Branch 8 not taken.
✗ Branch 9 not taken.
✓ Branch 10 taken 10 times.
✓ Branch 11 taken 2 times.
✓ Branch 12 taken 3 times.
✓ Branch 13 taken 6 times.
✓ Branch 14 taken 1 times.
✓ Branch 15 taken 7 times.
✓ Branch 16 taken 7 times.
✓ Branch 17 taken 1 times.
✓ Branch 18 taken 2 times.
✓ Branch 19 taken 16 times.
✓ Branch 20 taken 1 times.
✓ Branch 21 taken 2 times.
✓ Branch 22 taken 766 times.
✓ Branch 23 taken 1 times.
✓ Branch 24 taken 3 times.
✓ Branch 25 taken 15 times.
✓ Branch 26 taken 1 times.
✓ Branch 27 taken 3 times.
✓ Branch 28 taken 14 times.
✓ Branch 29 taken 1 times.
✓ Branch 30 taken 3 times.
✓ Branch 31 taken 16 times.
✓ Branch 32 taken 3 times.
✓ Branch 33 taken 2 times.
✓ Branch 34 taken 13 times.
✓ Branch 35 taken 4 times.
✓ Branch 36 taken 2 times.
✓ Branch 37 taken 13 times.
✓ Branch 38 taken 2 times.
✓ Branch 39 taken 6 times.
✓ Branch 40 taken 15 times.
✓ Branch 41 taken 3 times.
✓ Branch 42 taken 2 times.
✓ Branch 43 taken 19 times.
✓ Branch 44 taken 3 times.
✓ Branch 45 taken 2 times.
✓ Branch 46 taken 19 times.
✓ Branch 47 taken 2 times.
✓ Branch 48 taken 5 times.
✓ Branch 49 taken 11 times.
✓ Branch 50 taken 2 times.
✓ Branch 51 taken 2 times.
✓ Branch 52 taken 5 times.
✓ Branch 53 taken 2 times.
✓ Branch 54 taken 2 times.
✓ Branch 55 taken 4 times.
✓ Branch 56 taken 5 times.
✓ Branch 57 taken 2 times.
✓ Branch 58 taken 2 times.
✓ Branch 59 taken 3 times.
✓ Branch 60 taken 3 times.
✓ Branch 61 taken 8 times.
✓ Branch 62 taken 3 times.
✓ Branch 63 taken 1 times.
✓ Branch 64 taken 2 times.
✓ Branch 65 taken 3 times.
✓ Branch 66 taken 15 times.
✓ Branch 67 taken 3 times.
✓ Branch 68 taken 1 times.
✓ Branch 69 taken 18 times.
✓ Branch 70 taken 2 times.
✓ Branch 71 taken 1 times.
✓ Branch 72 taken 2 times.
✓ Branch 73 taken 18 times.
✓ Branch 74 taken 1 times.
✓ Branch 75 taken 5 times.
✓ Branch 76 taken 11 times.
✓ Branch 77 taken 1 times.
✓ Branch 78 taken 2 times.
✓ Branch 79 taken 3 times.
✓ Branch 80 taken 1 times.
✓ Branch 81 taken 1 times.
✓ Branch 82 taken 82 times.
✓ Branch 83 taken 2 times.
✓ Branch 84 taken 1 times.
✓ Branch 85 taken 2 times.
✓ Branch 86 taken 2 times.
✓ Branch 87 taken 1 times.
✓ Branch 88 taken 2 times.
✓ Branch 89 taken 2 times.
✓ Branch 90 taken 1 times.
✓ Branch 91 taken 1 times.
✓ Branch 92 taken 2 times.
✓ Branch 93 taken 1 times.
✓ Branch 94 taken 16 times.
✓ Branch 95 taken 8 times.
✗ Branch 96 not taken.
✓ Branch 97 taken 1 times.
✓ Branch 98 taken 12 times.
✗ Branch 99 not taken.
✓ Branch 100 taken 1 times.
✓ Branch 101 taken 3 times.
✗ Branch 102 not taken.
✓ Branch 103 taken 1 times.
✓ Branch 104 taken 2 times.
✗ Branch 105 not taken.
✓ Branch 106 taken 1 times.
✓ Branch 107 taken 1 times.
✗ Branch 108 not taken.
✓ Branch 109 taken 11 times.
✓ Branch 110 taken 1 times.
✓ Branch 111 taken 9 times.
✓ Branch 112 taken 1 times.
✓ Branch 113 taken 1 times.
✗ Branch 114 not taken.
✓ Branch 115 taken 1 times.
✓ Branch 116 taken 2 times.
✗ Branch 117 not taken.
✓ Branch 118 taken 1 times.
✓ Branch 119 taken 2 times.
✗ Branch 120 not taken.
✓ Branch 121 taken 1 times.
✓ Branch 122 taken 2 times.
✗ Branch 123 not taken.
✓ Branch 124 taken 1 times.
✓ Branch 125 taken 2 times.
✗ Branch 126 not taken.
✓ Branch 127 taken 1 times.
✓ Branch 128 taken 1 times.
✗ Branch 129 not taken.
✓ Branch 130 taken 1 times.
✓ Branch 131 taken 1 times.
✗ Branch 132 not taken.
✓ Branch 133 taken 1 times.
✓ Branch 134 taken 1 times.
✓ Branch 135 taken 1 times.
✗ Branch 136 not taken.
✓ Branch 137 taken 1 times.
✓ Branch 138 taken 1 times.
✗ Branch 139 not taken.
✓ Branch 140 taken 1 times.
✓ Branch 141 taken 1 times.
✗ Branch 142 not taken.
✓ Branch 143 taken 1 times.
✓ Branch 144 taken 1 times.
✗ Branch 145 not taken.
✓ Branch 146 taken 1 times.
✓ Branch 147 taken 1 times.
✗ Branch 148 not taken.
✓ Branch 149 taken 1 times.
✓ Branch 150 taken 1 times.
✗ Branch 151 not taken.
✓ Branch 152 taken 1 times.
✓ Branch 153 taken 1 times.
✗ Branch 154 not taken.
✓ Branch 155 taken 1 times.
✓ Branch 156 taken 1 times.
✗ Branch 157 not taken.
✓ Branch 158 taken 1 times.
✗ Branch 159 not taken.
✗ Branch 160 not taken.
✓ Branch 161 taken 1 times.
✗ Branch 162 not taken.
✗ Branch 163 not taken.
✓ Branch 164 taken 1 times.
✗ Branch 165 not taken.
✗ Branch 166 not taken.
✓ Branch 167 taken 1 times.
✗ Branch 168 not taken.
✓ Branch 170 taken 1 times.
✗ Branch 171 not taken.
✓ Branch 173 taken 1 times.
✗ Branch 174 not taken.
✓ Branch 176 taken 1 times.
✗ Branch 177 not taken.
✓ Branch 179 taken 1 times.
✗ Branch 180 not taken.
✓ Branch 182 taken 1 times.
✗ Branch 183 not taken.
✓ Branch 185 taken 1 times.
✗ Branch 186 not taken.
✓ Branch 188 taken 1 times.
✗ Branch 189 not taken.
✓ Branch 191 taken 1 times.
✗ Branch 192 not taken.
✓ Branch 194 taken 1 times.
✗ Branch 195 not taken.
✓ Branch 197 taken 1 times.
✗ Branch 198 not taken.
✓ Branch 200 taken 1 times.
✗ Branch 201 not taken.
✓ Branch 203 taken 1 times.
✗ Branch 204 not taken.
✓ Branch 206 taken 1 times.
✗ Branch 207 not taken.
✓ Branch 209 taken 1 times.
✗ Branch 210 not taken.
✓ Branch 212 taken 1 times.
✗ Branch 213 not taken.
✓ Branch 215 taken 1 times.
✗ Branch 216 not taken.
✓ Branch 218 taken 1 times.
✗ Branch 219 not taken.
✓ Branch 221 taken 1 times.
✗ Branch 222 not taken.
✓ Branch 224 taken 1 times.
✗ Branch 225 not taken.
✓ Branch 227 taken 1 times.
✗ Branch 228 not taken.
✓ Branch 230 taken 1 times.
✗ Branch 231 not taken.
✓ Branch 233 taken 1 times.
✗ Branch 234 not taken.
✓ Branch 236 taken 1 times.
✗ Branch 237 not taken.
|
13438 | LeafCIter cbeginLeaf() const { return LeafCIter(*this); } |
1019 | //@} | ||
1020 | |||
1021 | using ValueAllIter = TreeValueIteratorBase<Tree, typename RootNodeType::ValueAllIter>; | ||
1022 | using ValueAllCIter = TreeValueIteratorBase<const Tree, typename RootNodeType::ValueAllCIter>; | ||
1023 | using ValueOnIter = TreeValueIteratorBase<Tree, typename RootNodeType::ValueOnIter>; | ||
1024 | using ValueOnCIter = TreeValueIteratorBase<const Tree, typename RootNodeType::ValueOnCIter>; | ||
1025 | using ValueOffIter = TreeValueIteratorBase<Tree, typename RootNodeType::ValueOffIter>; | ||
1026 | using ValueOffCIter = TreeValueIteratorBase<const Tree, typename RootNodeType::ValueOffCIter>; | ||
1027 | |||
1028 | //@{ | ||
1029 | /// Return an iterator over all values (tile and voxel) across all nodes. | ||
1030 |
4/8✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
✓ Branch 7 taken 1 times.
✗ Branch 8 not taken.
✓ Branch 10 taken 1 times.
✗ Branch 11 not taken.
|
1576 | ValueAllIter beginValueAll() { return ValueAllIter(*this); } |
1031 | ValueAllCIter beginValueAll() const { return ValueAllCIter(*this); } | ||
1032 |
11/92✓ Branch 1 taken 26 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 11 times.
✗ Branch 5 not taken.
✓ Branch 7 taken 10 times.
✗ Branch 8 not taken.
✓ Branch 10 taken 9 times.
✗ Branch 11 not taken.
✓ Branch 13 taken 12 times.
✗ Branch 14 not taken.
✓ Branch 16 taken 9 times.
✗ Branch 17 not taken.
✓ Branch 19 taken 9 times.
✗ Branch 20 not taken.
✓ Branch 22 taken 10 times.
✗ Branch 23 not taken.
✓ Branch 25 taken 9 times.
✗ Branch 26 not taken.
✓ Branch 28 taken 1 times.
✗ Branch 29 not taken.
✓ Branch 31 taken 1 times.
✗ Branch 32 not taken.
✗ Branch 34 not taken.
✗ Branch 35 not taken.
✗ Branch 37 not taken.
✗ Branch 38 not taken.
✗ Branch 40 not taken.
✗ Branch 41 not taken.
✗ Branch 43 not taken.
✗ Branch 44 not taken.
✗ Branch 46 not taken.
✗ Branch 47 not taken.
✗ Branch 49 not taken.
✗ Branch 50 not taken.
✗ Branch 52 not taken.
✗ Branch 53 not taken.
✗ Branch 55 not taken.
✗ Branch 56 not taken.
✗ Branch 58 not taken.
✗ Branch 59 not taken.
✗ Branch 61 not taken.
✗ Branch 62 not taken.
✗ Branch 64 not taken.
✗ Branch 65 not taken.
✗ Branch 67 not taken.
✗ Branch 68 not taken.
✗ Branch 70 not taken.
✗ Branch 71 not taken.
✗ Branch 73 not taken.
✗ Branch 74 not taken.
✗ Branch 76 not taken.
✗ Branch 77 not taken.
✗ Branch 79 not taken.
✗ Branch 80 not taken.
✗ Branch 82 not taken.
✗ Branch 83 not taken.
✗ Branch 85 not taken.
✗ Branch 86 not taken.
✗ Branch 88 not taken.
✗ Branch 89 not taken.
✗ Branch 91 not taken.
✗ Branch 92 not taken.
✗ Branch 94 not taken.
✗ Branch 95 not taken.
✗ Branch 97 not taken.
✗ Branch 98 not taken.
✗ Branch 100 not taken.
✗ Branch 101 not taken.
✗ Branch 103 not taken.
✗ Branch 104 not taken.
✗ Branch 106 not taken.
✗ Branch 107 not taken.
✗ Branch 109 not taken.
✗ Branch 110 not taken.
✗ Branch 112 not taken.
✗ Branch 113 not taken.
✗ Branch 115 not taken.
✗ Branch 116 not taken.
✗ Branch 118 not taken.
✗ Branch 119 not taken.
✗ Branch 121 not taken.
✗ Branch 122 not taken.
✗ Branch 124 not taken.
✗ Branch 125 not taken.
✗ Branch 127 not taken.
✗ Branch 128 not taken.
✗ Branch 130 not taken.
✗ Branch 131 not taken.
✗ Branch 133 not taken.
✗ Branch 134 not taken.
✗ Branch 136 not taken.
✗ Branch 137 not taken.
|
112 | ValueAllCIter cbeginValueAll() const { return ValueAllCIter(*this); } |
1033 | //@} | ||
1034 | //@{ | ||
1035 | /// Return an iterator over active values (tile and voxel) across all nodes. | ||
1036 |
10/928✓ Branch 1 taken 5 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 3 times.
✗ Branch 5 not taken.
✓ Branch 7 taken 3 times.
✗ Branch 8 not taken.
✓ Branch 10 taken 2 times.
✗ Branch 11 not taken.
✗ Branch 13 not taken.
✗ Branch 14 not taken.
✗ Branch 16 not taken.
✗ Branch 17 not taken.
✗ Branch 19 not taken.
✗ Branch 20 not taken.
✗ Branch 22 not taken.
✗ Branch 23 not taken.
✗ Branch 25 not taken.
✗ Branch 26 not taken.
✗ Branch 28 not taken.
✗ Branch 29 not taken.
✗ Branch 31 not taken.
✗ Branch 32 not taken.
✗ Branch 34 not taken.
✗ Branch 35 not taken.
✗ Branch 37 not taken.
✗ Branch 38 not taken.
✗ Branch 40 not taken.
✗ Branch 41 not taken.
✓ Branch 43 taken 1 times.
✗ Branch 44 not taken.
✗ Branch 46 not taken.
✗ Branch 47 not taken.
✗ Branch 49 not taken.
✗ Branch 50 not taken.
✗ Branch 52 not taken.
✗ Branch 53 not taken.
✗ Branch 55 not taken.
✗ Branch 56 not taken.
✗ Branch 58 not taken.
✗ Branch 59 not taken.
✗ Branch 61 not taken.
✗ Branch 62 not taken.
✗ Branch 64 not taken.
✗ Branch 65 not taken.
✗ Branch 67 not taken.
✗ Branch 68 not taken.
✓ Branch 70 taken 1 times.
✗ Branch 71 not taken.
✗ Branch 73 not taken.
✗ Branch 74 not taken.
✗ Branch 76 not taken.
✗ Branch 77 not taken.
✗ Branch 79 not taken.
✗ Branch 80 not taken.
✗ Branch 82 not taken.
✗ Branch 83 not taken.
✗ Branch 85 not taken.
✗ Branch 86 not taken.
✗ Branch 88 not taken.
✗ Branch 89 not taken.
✓ Branch 91 taken 1 times.
✗ Branch 92 not taken.
✗ Branch 94 not taken.
✗ Branch 95 not taken.
✗ Branch 97 not taken.
✗ Branch 98 not taken.
✗ Branch 100 not taken.
✗ Branch 101 not taken.
✗ Branch 103 not taken.
✗ Branch 104 not taken.
✗ Branch 106 not taken.
✗ Branch 107 not taken.
✗ Branch 109 not taken.
✗ Branch 110 not taken.
✗ Branch 112 not taken.
✗ Branch 113 not taken.
✗ Branch 115 not taken.
✗ Branch 116 not taken.
✗ Branch 118 not taken.
✗ Branch 119 not taken.
✗ Branch 121 not taken.
✗ Branch 122 not taken.
✗ Branch 124 not taken.
✗ Branch 125 not taken.
✗ Branch 127 not taken.
✗ Branch 128 not taken.
✗ Branch 130 not taken.
✗ Branch 131 not taken.
✗ Branch 133 not taken.
✗ Branch 134 not taken.
✗ Branch 136 not taken.
✗ Branch 137 not taken.
✗ Branch 139 not taken.
✗ Branch 140 not taken.
✓ Branch 142 taken 1 times.
✗ Branch 143 not taken.
✗ Branch 145 not taken.
✗ Branch 146 not taken.
✗ Branch 148 not taken.
✗ Branch 149 not taken.
✗ Branch 151 not taken.
✗ Branch 152 not taken.
✗ Branch 154 not taken.
✗ Branch 155 not taken.
✗ Branch 157 not taken.
✗ Branch 158 not taken.
✗ Branch 160 not taken.
✗ Branch 161 not taken.
✗ Branch 163 not taken.
✗ Branch 164 not taken.
✗ Branch 166 not taken.
✗ Branch 167 not taken.
✗ Branch 169 not taken.
✗ Branch 170 not taken.
✗ Branch 172 not taken.
✗ Branch 173 not taken.
✗ Branch 175 not taken.
✗ Branch 176 not taken.
✗ Branch 178 not taken.
✗ Branch 179 not taken.
✗ Branch 181 not taken.
✗ Branch 182 not taken.
✗ Branch 184 not taken.
✗ Branch 185 not taken.
✗ Branch 187 not taken.
✗ Branch 188 not taken.
✗ Branch 190 not taken.
✗ Branch 191 not taken.
✗ Branch 193 not taken.
✗ Branch 194 not taken.
✗ Branch 196 not taken.
✗ Branch 197 not taken.
✗ Branch 199 not taken.
✗ Branch 200 not taken.
✗ Branch 202 not taken.
✗ Branch 203 not taken.
✗ Branch 205 not taken.
✗ Branch 206 not taken.
✗ Branch 208 not taken.
✗ Branch 209 not taken.
✗ Branch 211 not taken.
✗ Branch 212 not taken.
✓ Branch 214 taken 2 times.
✗ Branch 215 not taken.
✗ Branch 217 not taken.
✗ Branch 218 not taken.
✗ Branch 220 not taken.
✗ Branch 221 not taken.
✗ Branch 223 not taken.
✗ Branch 224 not taken.
✗ Branch 226 not taken.
✗ Branch 227 not taken.
✗ Branch 229 not taken.
✗ Branch 230 not taken.
✗ Branch 232 not taken.
✗ Branch 233 not taken.
✗ Branch 235 not taken.
✗ Branch 236 not taken.
✗ Branch 238 not taken.
✗ Branch 239 not taken.
✗ Branch 241 not taken.
✗ Branch 242 not taken.
✗ Branch 244 not taken.
✗ Branch 245 not taken.
✗ Branch 247 not taken.
✗ Branch 248 not taken.
✗ Branch 250 not taken.
✗ Branch 251 not taken.
✗ Branch 253 not taken.
✗ Branch 254 not taken.
✗ Branch 256 not taken.
✗ Branch 257 not taken.
✗ Branch 259 not taken.
✗ Branch 260 not taken.
✗ Branch 262 not taken.
✗ Branch 263 not taken.
✗ Branch 265 not taken.
✗ Branch 266 not taken.
✗ Branch 268 not taken.
✗ Branch 269 not taken.
✗ Branch 271 not taken.
✗ Branch 272 not taken.
✗ Branch 274 not taken.
✗ Branch 275 not taken.
✗ Branch 277 not taken.
✗ Branch 278 not taken.
✗ Branch 280 not taken.
✗ Branch 281 not taken.
✗ Branch 283 not taken.
✗ Branch 284 not taken.
✓ Branch 286 taken 2 times.
✗ Branch 287 not taken.
✗ Branch 289 not taken.
✗ Branch 290 not taken.
✗ Branch 292 not taken.
✗ Branch 293 not taken.
✗ Branch 295 not taken.
✗ Branch 296 not taken.
✗ Branch 298 not taken.
✗ Branch 299 not taken.
✗ Branch 301 not taken.
✗ Branch 302 not taken.
✗ Branch 304 not taken.
✗ Branch 305 not taken.
✗ Branch 307 not taken.
✗ Branch 308 not taken.
✗ Branch 310 not taken.
✗ Branch 311 not taken.
✗ Branch 313 not taken.
✗ Branch 314 not taken.
✗ Branch 316 not taken.
✗ Branch 317 not taken.
✗ Branch 319 not taken.
✗ Branch 320 not taken.
✗ Branch 322 not taken.
✗ Branch 323 not taken.
✗ Branch 325 not taken.
✗ Branch 326 not taken.
✗ Branch 328 not taken.
✗ Branch 329 not taken.
✗ Branch 331 not taken.
✗ Branch 332 not taken.
✗ Branch 334 not taken.
✗ Branch 335 not taken.
✗ Branch 337 not taken.
✗ Branch 338 not taken.
✗ Branch 340 not taken.
✗ Branch 341 not taken.
✗ Branch 343 not taken.
✗ Branch 344 not taken.
✗ Branch 346 not taken.
✗ Branch 347 not taken.
✗ Branch 349 not taken.
✗ Branch 350 not taken.
✗ Branch 352 not taken.
✗ Branch 353 not taken.
✗ Branch 355 not taken.
✗ Branch 356 not taken.
✗ Branch 358 not taken.
✗ Branch 359 not taken.
✗ Branch 361 not taken.
✗ Branch 362 not taken.
✗ Branch 364 not taken.
✗ Branch 365 not taken.
✗ Branch 367 not taken.
✗ Branch 368 not taken.
✗ Branch 370 not taken.
✗ Branch 371 not taken.
✗ Branch 373 not taken.
✗ Branch 374 not taken.
✗ Branch 376 not taken.
✗ Branch 377 not taken.
✗ Branch 379 not taken.
✗ Branch 380 not taken.
✗ Branch 382 not taken.
✗ Branch 383 not taken.
✗ Branch 385 not taken.
✗ Branch 386 not taken.
✗ Branch 388 not taken.
✗ Branch 389 not taken.
✗ Branch 391 not taken.
✗ Branch 392 not taken.
✗ Branch 394 not taken.
✗ Branch 395 not taken.
✗ Branch 397 not taken.
✗ Branch 398 not taken.
✗ Branch 400 not taken.
✗ Branch 401 not taken.
✗ Branch 403 not taken.
✗ Branch 404 not taken.
✗ Branch 406 not taken.
✗ Branch 407 not taken.
✗ Branch 409 not taken.
✗ Branch 410 not taken.
✗ Branch 412 not taken.
✗ Branch 413 not taken.
✗ Branch 415 not taken.
✗ Branch 416 not taken.
✗ Branch 418 not taken.
✗ Branch 419 not taken.
✗ Branch 421 not taken.
✗ Branch 422 not taken.
✗ Branch 424 not taken.
✗ Branch 425 not taken.
✗ Branch 427 not taken.
✗ Branch 428 not taken.
✗ Branch 430 not taken.
✗ Branch 431 not taken.
✗ Branch 433 not taken.
✗ Branch 434 not taken.
✗ Branch 436 not taken.
✗ Branch 437 not taken.
✗ Branch 439 not taken.
✗ Branch 440 not taken.
✗ Branch 442 not taken.
✗ Branch 443 not taken.
✗ Branch 445 not taken.
✗ Branch 446 not taken.
✗ Branch 448 not taken.
✗ Branch 449 not taken.
✗ Branch 451 not taken.
✗ Branch 452 not taken.
✗ Branch 454 not taken.
✗ Branch 455 not taken.
✗ Branch 457 not taken.
✗ Branch 458 not taken.
✗ Branch 460 not taken.
✗ Branch 461 not taken.
✗ Branch 463 not taken.
✗ Branch 464 not taken.
✗ Branch 466 not taken.
✗ Branch 467 not taken.
✗ Branch 469 not taken.
✗ Branch 470 not taken.
✗ Branch 472 not taken.
✗ Branch 473 not taken.
✗ Branch 475 not taken.
✗ Branch 476 not taken.
✗ Branch 478 not taken.
✗ Branch 479 not taken.
✗ Branch 481 not taken.
✗ Branch 482 not taken.
✗ Branch 484 not taken.
✗ Branch 485 not taken.
✗ Branch 487 not taken.
✗ Branch 488 not taken.
✗ Branch 490 not taken.
✗ Branch 491 not taken.
✗ Branch 493 not taken.
✗ Branch 494 not taken.
✗ Branch 496 not taken.
✗ Branch 497 not taken.
✗ Branch 499 not taken.
✗ Branch 500 not taken.
✗ Branch 502 not taken.
✗ Branch 503 not taken.
✗ Branch 505 not taken.
✗ Branch 506 not taken.
✗ Branch 508 not taken.
✗ Branch 509 not taken.
✗ Branch 511 not taken.
✗ Branch 512 not taken.
✗ Branch 514 not taken.
✗ Branch 515 not taken.
✗ Branch 517 not taken.
✗ Branch 518 not taken.
✗ Branch 520 not taken.
✗ Branch 521 not taken.
✗ Branch 523 not taken.
✗ Branch 524 not taken.
✗ Branch 526 not taken.
✗ Branch 527 not taken.
✗ Branch 529 not taken.
✗ Branch 530 not taken.
✗ Branch 532 not taken.
✗ Branch 533 not taken.
✗ Branch 535 not taken.
✗ Branch 536 not taken.
✗ Branch 538 not taken.
✗ Branch 539 not taken.
✗ Branch 541 not taken.
✗ Branch 542 not taken.
✗ Branch 544 not taken.
✗ Branch 545 not taken.
✗ Branch 547 not taken.
✗ Branch 548 not taken.
✗ Branch 550 not taken.
✗ Branch 551 not taken.
✗ Branch 553 not taken.
✗ Branch 554 not taken.
✗ Branch 556 not taken.
✗ Branch 557 not taken.
✗ Branch 559 not taken.
✗ Branch 560 not taken.
✗ Branch 562 not taken.
✗ Branch 563 not taken.
✗ Branch 565 not taken.
✗ Branch 566 not taken.
✗ Branch 568 not taken.
✗ Branch 569 not taken.
✗ Branch 571 not taken.
✗ Branch 572 not taken.
✗ Branch 574 not taken.
✗ Branch 575 not taken.
✗ Branch 577 not taken.
✗ Branch 578 not taken.
✗ Branch 580 not taken.
✗ Branch 581 not taken.
✗ Branch 583 not taken.
✗ Branch 584 not taken.
✗ Branch 586 not taken.
✗ Branch 587 not taken.
✗ Branch 589 not taken.
✗ Branch 590 not taken.
✗ Branch 592 not taken.
✗ Branch 593 not taken.
✗ Branch 595 not taken.
✗ Branch 596 not taken.
✗ Branch 598 not taken.
✗ Branch 599 not taken.
✗ Branch 601 not taken.
✗ Branch 602 not taken.
✗ Branch 604 not taken.
✗ Branch 605 not taken.
✗ Branch 607 not taken.
✗ Branch 608 not taken.
✗ Branch 610 not taken.
✗ Branch 611 not taken.
✗ Branch 613 not taken.
✗ Branch 614 not taken.
✗ Branch 616 not taken.
✗ Branch 617 not taken.
✗ Branch 619 not taken.
✗ Branch 620 not taken.
✗ Branch 622 not taken.
✗ Branch 623 not taken.
✗ Branch 625 not taken.
✗ Branch 626 not taken.
✗ Branch 628 not taken.
✗ Branch 629 not taken.
✗ Branch 631 not taken.
✗ Branch 632 not taken.
✗ Branch 634 not taken.
✗ Branch 635 not taken.
✗ Branch 637 not taken.
✗ Branch 638 not taken.
✗ Branch 640 not taken.
✗ Branch 641 not taken.
✗ Branch 643 not taken.
✗ Branch 644 not taken.
✗ Branch 646 not taken.
✗ Branch 647 not taken.
✗ Branch 649 not taken.
✗ Branch 650 not taken.
✗ Branch 652 not taken.
✗ Branch 653 not taken.
✗ Branch 655 not taken.
✗ Branch 656 not taken.
✗ Branch 658 not taken.
✗ Branch 659 not taken.
✗ Branch 661 not taken.
✗ Branch 662 not taken.
✗ Branch 664 not taken.
✗ Branch 665 not taken.
✗ Branch 667 not taken.
✗ Branch 668 not taken.
✗ Branch 670 not taken.
✗ Branch 671 not taken.
✗ Branch 673 not taken.
✗ Branch 674 not taken.
✗ Branch 676 not taken.
✗ Branch 677 not taken.
✗ Branch 679 not taken.
✗ Branch 680 not taken.
✗ Branch 682 not taken.
✗ Branch 683 not taken.
✗ Branch 685 not taken.
✗ Branch 686 not taken.
✗ Branch 688 not taken.
✗ Branch 689 not taken.
✗ Branch 691 not taken.
✗ Branch 692 not taken.
✗ Branch 694 not taken.
✗ Branch 695 not taken.
✗ Branch 697 not taken.
✗ Branch 698 not taken.
✗ Branch 700 not taken.
✗ Branch 701 not taken.
✗ Branch 703 not taken.
✗ Branch 704 not taken.
✗ Branch 706 not taken.
✗ Branch 707 not taken.
✗ Branch 709 not taken.
✗ Branch 710 not taken.
✗ Branch 712 not taken.
✗ Branch 713 not taken.
✗ Branch 715 not taken.
✗ Branch 716 not taken.
✗ Branch 718 not taken.
✗ Branch 719 not taken.
✗ Branch 721 not taken.
✗ Branch 722 not taken.
✗ Branch 724 not taken.
✗ Branch 725 not taken.
✗ Branch 727 not taken.
✗ Branch 728 not taken.
✗ Branch 730 not taken.
✗ Branch 731 not taken.
✗ Branch 733 not taken.
✗ Branch 734 not taken.
✗ Branch 736 not taken.
✗ Branch 737 not taken.
✗ Branch 739 not taken.
✗ Branch 740 not taken.
✗ Branch 742 not taken.
✗ Branch 743 not taken.
✗ Branch 745 not taken.
✗ Branch 746 not taken.
✗ Branch 748 not taken.
✗ Branch 749 not taken.
✗ Branch 751 not taken.
✗ Branch 752 not taken.
✗ Branch 754 not taken.
✗ Branch 755 not taken.
✗ Branch 757 not taken.
✗ Branch 758 not taken.
✗ Branch 760 not taken.
✗ Branch 761 not taken.
✗ Branch 763 not taken.
✗ Branch 764 not taken.
✗ Branch 766 not taken.
✗ Branch 767 not taken.
✗ Branch 769 not taken.
✗ Branch 770 not taken.
✗ Branch 772 not taken.
✗ Branch 773 not taken.
✗ Branch 775 not taken.
✗ Branch 776 not taken.
✗ Branch 778 not taken.
✗ Branch 779 not taken.
✗ Branch 781 not taken.
✗ Branch 782 not taken.
✗ Branch 784 not taken.
✗ Branch 785 not taken.
✗ Branch 787 not taken.
✗ Branch 788 not taken.
✗ Branch 790 not taken.
✗ Branch 791 not taken.
✗ Branch 793 not taken.
✗ Branch 794 not taken.
✗ Branch 796 not taken.
✗ Branch 797 not taken.
✗ Branch 799 not taken.
✗ Branch 800 not taken.
✗ Branch 802 not taken.
✗ Branch 803 not taken.
✗ Branch 805 not taken.
✗ Branch 806 not taken.
✗ Branch 808 not taken.
✗ Branch 809 not taken.
✗ Branch 811 not taken.
✗ Branch 812 not taken.
✗ Branch 814 not taken.
✗ Branch 815 not taken.
✗ Branch 817 not taken.
✗ Branch 818 not taken.
✗ Branch 820 not taken.
✗ Branch 821 not taken.
✗ Branch 823 not taken.
✗ Branch 824 not taken.
✗ Branch 826 not taken.
✗ Branch 827 not taken.
✗ Branch 829 not taken.
✗ Branch 830 not taken.
✗ Branch 832 not taken.
✗ Branch 833 not taken.
✗ Branch 835 not taken.
✗ Branch 836 not taken.
✗ Branch 838 not taken.
✗ Branch 839 not taken.
✗ Branch 841 not taken.
✗ Branch 842 not taken.
✗ Branch 844 not taken.
✗ Branch 845 not taken.
✗ Branch 847 not taken.
✗ Branch 848 not taken.
✗ Branch 850 not taken.
✗ Branch 851 not taken.
✗ Branch 853 not taken.
✗ Branch 854 not taken.
✗ Branch 856 not taken.
✗ Branch 857 not taken.
✗ Branch 859 not taken.
✗ Branch 860 not taken.
✗ Branch 862 not taken.
✗ Branch 863 not taken.
✗ Branch 865 not taken.
✗ Branch 866 not taken.
✗ Branch 868 not taken.
✗ Branch 869 not taken.
✗ Branch 871 not taken.
✗ Branch 872 not taken.
✗ Branch 874 not taken.
✗ Branch 875 not taken.
✗ Branch 877 not taken.
✗ Branch 878 not taken.
✗ Branch 880 not taken.
✗ Branch 881 not taken.
✗ Branch 883 not taken.
✗ Branch 884 not taken.
✗ Branch 886 not taken.
✗ Branch 887 not taken.
✗ Branch 889 not taken.
✗ Branch 890 not taken.
✗ Branch 892 not taken.
✗ Branch 893 not taken.
✗ Branch 895 not taken.
✗ Branch 896 not taken.
✗ Branch 898 not taken.
✗ Branch 899 not taken.
✗ Branch 901 not taken.
✗ Branch 902 not taken.
✗ Branch 904 not taken.
✗ Branch 905 not taken.
✗ Branch 907 not taken.
✗ Branch 908 not taken.
✗ Branch 910 not taken.
✗ Branch 911 not taken.
✗ Branch 913 not taken.
✗ Branch 914 not taken.
✗ Branch 916 not taken.
✗ Branch 917 not taken.
✗ Branch 919 not taken.
✗ Branch 920 not taken.
✗ Branch 922 not taken.
✗ Branch 923 not taken.
✗ Branch 925 not taken.
✗ Branch 926 not taken.
✗ Branch 928 not taken.
✗ Branch 929 not taken.
✗ Branch 931 not taken.
✗ Branch 932 not taken.
✗ Branch 934 not taken.
✗ Branch 935 not taken.
✗ Branch 937 not taken.
✗ Branch 938 not taken.
✗ Branch 940 not taken.
✗ Branch 941 not taken.
✗ Branch 943 not taken.
✗ Branch 944 not taken.
✗ Branch 946 not taken.
✗ Branch 947 not taken.
✗ Branch 949 not taken.
✗ Branch 950 not taken.
✗ Branch 952 not taken.
✗ Branch 953 not taken.
✗ Branch 955 not taken.
✗ Branch 956 not taken.
✗ Branch 958 not taken.
✗ Branch 959 not taken.
✗ Branch 961 not taken.
✗ Branch 962 not taken.
✗ Branch 964 not taken.
✗ Branch 965 not taken.
✗ Branch 967 not taken.
✗ Branch 968 not taken.
✗ Branch 970 not taken.
✗ Branch 971 not taken.
✗ Branch 973 not taken.
✗ Branch 974 not taken.
✗ Branch 976 not taken.
✗ Branch 977 not taken.
✗ Branch 979 not taken.
✗ Branch 980 not taken.
✗ Branch 982 not taken.
✗ Branch 983 not taken.
✗ Branch 985 not taken.
✗ Branch 986 not taken.
✗ Branch 988 not taken.
✗ Branch 989 not taken.
✗ Branch 991 not taken.
✗ Branch 992 not taken.
✗ Branch 994 not taken.
✗ Branch 995 not taken.
✗ Branch 997 not taken.
✗ Branch 998 not taken.
✗ Branch 1000 not taken.
✗ Branch 1001 not taken.
✗ Branch 1003 not taken.
✗ Branch 1004 not taken.
✗ Branch 1006 not taken.
✗ Branch 1007 not taken.
✗ Branch 1009 not taken.
✗ Branch 1010 not taken.
✗ Branch 1012 not taken.
✗ Branch 1013 not taken.
✗ Branch 1015 not taken.
✗ Branch 1016 not taken.
✗ Branch 1018 not taken.
✗ Branch 1019 not taken.
✗ Branch 1021 not taken.
✗ Branch 1022 not taken.
✗ Branch 1024 not taken.
✗ Branch 1025 not taken.
✗ Branch 1027 not taken.
✗ Branch 1028 not taken.
✗ Branch 1030 not taken.
✗ Branch 1031 not taken.
✗ Branch 1033 not taken.
✗ Branch 1034 not taken.
✗ Branch 1036 not taken.
✗ Branch 1037 not taken.
✗ Branch 1039 not taken.
✗ Branch 1040 not taken.
✗ Branch 1042 not taken.
✗ Branch 1043 not taken.
✗ Branch 1045 not taken.
✗ Branch 1046 not taken.
✗ Branch 1048 not taken.
✗ Branch 1049 not taken.
✗ Branch 1051 not taken.
✗ Branch 1052 not taken.
✗ Branch 1054 not taken.
✗ Branch 1055 not taken.
✗ Branch 1057 not taken.
✗ Branch 1058 not taken.
✗ Branch 1060 not taken.
✗ Branch 1061 not taken.
✗ Branch 1063 not taken.
✗ Branch 1064 not taken.
✗ Branch 1066 not taken.
✗ Branch 1067 not taken.
✗ Branch 1069 not taken.
✗ Branch 1070 not taken.
✗ Branch 1072 not taken.
✗ Branch 1073 not taken.
✗ Branch 1075 not taken.
✗ Branch 1076 not taken.
✗ Branch 1078 not taken.
✗ Branch 1079 not taken.
✗ Branch 1081 not taken.
✗ Branch 1082 not taken.
✗ Branch 1084 not taken.
✗ Branch 1085 not taken.
✗ Branch 1087 not taken.
✗ Branch 1088 not taken.
✗ Branch 1090 not taken.
✗ Branch 1091 not taken.
✗ Branch 1093 not taken.
✗ Branch 1094 not taken.
✗ Branch 1096 not taken.
✗ Branch 1097 not taken.
✗ Branch 1099 not taken.
✗ Branch 1100 not taken.
✗ Branch 1102 not taken.
✗ Branch 1103 not taken.
✗ Branch 1105 not taken.
✗ Branch 1106 not taken.
✗ Branch 1108 not taken.
✗ Branch 1109 not taken.
✗ Branch 1111 not taken.
✗ Branch 1112 not taken.
✗ Branch 1114 not taken.
✗ Branch 1115 not taken.
✗ Branch 1117 not taken.
✗ Branch 1118 not taken.
✗ Branch 1120 not taken.
✗ Branch 1121 not taken.
✗ Branch 1123 not taken.
✗ Branch 1124 not taken.
✗ Branch 1126 not taken.
✗ Branch 1127 not taken.
✗ Branch 1129 not taken.
✗ Branch 1130 not taken.
✗ Branch 1132 not taken.
✗ Branch 1133 not taken.
✗ Branch 1135 not taken.
✗ Branch 1136 not taken.
✗ Branch 1138 not taken.
✗ Branch 1139 not taken.
✗ Branch 1141 not taken.
✗ Branch 1142 not taken.
✗ Branch 1144 not taken.
✗ Branch 1145 not taken.
✗ Branch 1147 not taken.
✗ Branch 1148 not taken.
✗ Branch 1150 not taken.
✗ Branch 1151 not taken.
✗ Branch 1153 not taken.
✗ Branch 1154 not taken.
✗ Branch 1156 not taken.
✗ Branch 1157 not taken.
✗ Branch 1159 not taken.
✗ Branch 1160 not taken.
✗ Branch 1162 not taken.
✗ Branch 1163 not taken.
✗ Branch 1165 not taken.
✗ Branch 1166 not taken.
✗ Branch 1168 not taken.
✗ Branch 1169 not taken.
✗ Branch 1171 not taken.
✗ Branch 1172 not taken.
✗ Branch 1174 not taken.
✗ Branch 1175 not taken.
✗ Branch 1177 not taken.
✗ Branch 1178 not taken.
✗ Branch 1180 not taken.
✗ Branch 1181 not taken.
✗ Branch 1183 not taken.
✗ Branch 1184 not taken.
✗ Branch 1186 not taken.
✗ Branch 1187 not taken.
✗ Branch 1189 not taken.
✗ Branch 1190 not taken.
✗ Branch 1192 not taken.
✗ Branch 1193 not taken.
✗ Branch 1195 not taken.
✗ Branch 1196 not taken.
✗ Branch 1198 not taken.
✗ Branch 1199 not taken.
✗ Branch 1201 not taken.
✗ Branch 1202 not taken.
✗ Branch 1204 not taken.
✗ Branch 1205 not taken.
✗ Branch 1207 not taken.
✗ Branch 1208 not taken.
✗ Branch 1210 not taken.
✗ Branch 1211 not taken.
✗ Branch 1213 not taken.
✗ Branch 1214 not taken.
✗ Branch 1216 not taken.
✗ Branch 1217 not taken.
✗ Branch 1219 not taken.
✗ Branch 1220 not taken.
✗ Branch 1222 not taken.
✗ Branch 1223 not taken.
✗ Branch 1225 not taken.
✗ Branch 1226 not taken.
✗ Branch 1228 not taken.
✗ Branch 1229 not taken.
✗ Branch 1231 not taken.
✗ Branch 1232 not taken.
✗ Branch 1234 not taken.
✗ Branch 1235 not taken.
✗ Branch 1237 not taken.
✗ Branch 1238 not taken.
✗ Branch 1240 not taken.
✗ Branch 1241 not taken.
✗ Branch 1243 not taken.
✗ Branch 1244 not taken.
✗ Branch 1246 not taken.
✗ Branch 1247 not taken.
✗ Branch 1249 not taken.
✗ Branch 1250 not taken.
✗ Branch 1252 not taken.
✗ Branch 1253 not taken.
✗ Branch 1255 not taken.
✗ Branch 1256 not taken.
✗ Branch 1258 not taken.
✗ Branch 1259 not taken.
✗ Branch 1261 not taken.
✗ Branch 1262 not taken.
✗ Branch 1264 not taken.
✗ Branch 1265 not taken.
✗ Branch 1267 not taken.
✗ Branch 1268 not taken.
✗ Branch 1270 not taken.
✗ Branch 1271 not taken.
✗ Branch 1273 not taken.
✗ Branch 1274 not taken.
✗ Branch 1276 not taken.
✗ Branch 1277 not taken.
✗ Branch 1279 not taken.
✗ Branch 1280 not taken.
✗ Branch 1282 not taken.
✗ Branch 1283 not taken.
✗ Branch 1285 not taken.
✗ Branch 1286 not taken.
✗ Branch 1288 not taken.
✗ Branch 1289 not taken.
✗ Branch 1291 not taken.
✗ Branch 1292 not taken.
✗ Branch 1294 not taken.
✗ Branch 1295 not taken.
✗ Branch 1297 not taken.
✗ Branch 1298 not taken.
✗ Branch 1300 not taken.
✗ Branch 1301 not taken.
✗ Branch 1303 not taken.
✗ Branch 1304 not taken.
✗ Branch 1306 not taken.
✗ Branch 1307 not taken.
✗ Branch 1309 not taken.
✗ Branch 1310 not taken.
✗ Branch 1312 not taken.
✗ Branch 1313 not taken.
✗ Branch 1315 not taken.
✗ Branch 1316 not taken.
✗ Branch 1318 not taken.
✗ Branch 1319 not taken.
✗ Branch 1321 not taken.
✗ Branch 1322 not taken.
✗ Branch 1324 not taken.
✗ Branch 1325 not taken.
✗ Branch 1327 not taken.
✗ Branch 1328 not taken.
✗ Branch 1330 not taken.
✗ Branch 1331 not taken.
✗ Branch 1333 not taken.
✗ Branch 1334 not taken.
✗ Branch 1336 not taken.
✗ Branch 1337 not taken.
✗ Branch 1339 not taken.
✗ Branch 1340 not taken.
✗ Branch 1342 not taken.
✗ Branch 1343 not taken.
✗ Branch 1345 not taken.
✗ Branch 1346 not taken.
✗ Branch 1348 not taken.
✗ Branch 1349 not taken.
✗ Branch 1351 not taken.
✗ Branch 1352 not taken.
✗ Branch 1354 not taken.
✗ Branch 1355 not taken.
✗ Branch 1357 not taken.
✗ Branch 1358 not taken.
✗ Branch 1360 not taken.
✗ Branch 1361 not taken.
✗ Branch 1363 not taken.
✗ Branch 1364 not taken.
✗ Branch 1366 not taken.
✗ Branch 1367 not taken.
✗ Branch 1369 not taken.
✗ Branch 1370 not taken.
✗ Branch 1372 not taken.
✗ Branch 1373 not taken.
✗ Branch 1375 not taken.
✗ Branch 1376 not taken.
✗ Branch 1378 not taken.
✗ Branch 1379 not taken.
✗ Branch 1381 not taken.
✗ Branch 1382 not taken.
✗ Branch 1384 not taken.
✗ Branch 1385 not taken.
✗ Branch 1387 not taken.
✗ Branch 1388 not taken.
✗ Branch 1390 not taken.
✗ Branch 1391 not taken.
|
21 | ValueOnIter beginValueOn() { return ValueOnIter(*this); } |
1037 | ValueOnCIter beginValueOn() const { return ValueOnCIter(*this); } | ||
1038 |
40/69✓ Branch 1 taken 16 times.
✗ Branch 2 not taken.
✓ Branch 3 taken 2 times.
✓ Branch 4 taken 15 times.
✗ Branch 5 not taken.
✓ Branch 6 taken 2 times.
✓ Branch 7 taken 16 times.
✗ Branch 8 not taken.
✓ Branch 9 taken 2 times.
✓ Branch 10 taken 5 times.
✗ Branch 11 not taken.
✓ Branch 12 taken 1 times.
✓ Branch 13 taken 4 times.
✗ Branch 14 not taken.
✓ Branch 15 taken 1 times.
✓ Branch 16 taken 4 times.
✗ Branch 17 not taken.
✓ Branch 18 taken 1 times.
✓ Branch 19 taken 4 times.
✗ Branch 20 not taken.
✓ Branch 21 taken 1 times.
✓ Branch 22 taken 3 times.
✗ Branch 23 not taken.
✓ Branch 24 taken 1 times.
✓ Branch 25 taken 4 times.
✗ Branch 26 not taken.
✓ Branch 27 taken 1 times.
✓ Branch 28 taken 4 times.
✗ Branch 29 not taken.
✓ Branch 30 taken 1 times.
✓ Branch 31 taken 4 times.
✗ Branch 32 not taken.
✓ Branch 33 taken 1 times.
✓ Branch 34 taken 4 times.
✗ Branch 35 not taken.
✓ Branch 37 taken 4 times.
✗ Branch 38 not taken.
✓ Branch 40 taken 3 times.
✗ Branch 41 not taken.
✓ Branch 43 taken 4 times.
✗ Branch 44 not taken.
✓ Branch 46 taken 3 times.
✗ Branch 47 not taken.
✓ Branch 49 taken 3 times.
✗ Branch 50 not taken.
✓ Branch 52 taken 3 times.
✗ Branch 53 not taken.
✓ Branch 55 taken 3 times.
✗ Branch 56 not taken.
✓ Branch 58 taken 1 times.
✗ Branch 59 not taken.
✓ Branch 61 taken 1 times.
✗ Branch 62 not taken.
✓ Branch 64 taken 1 times.
✗ Branch 65 not taken.
✓ Branch 67 taken 1 times.
✗ Branch 68 not taken.
✓ Branch 70 taken 1 times.
✗ Branch 71 not taken.
✓ Branch 73 taken 1 times.
✗ Branch 74 not taken.
✓ Branch 76 taken 1 times.
✗ Branch 77 not taken.
✓ Branch 79 taken 1 times.
✗ Branch 80 not taken.
✓ Branch 82 taken 1 times.
✗ Branch 83 not taken.
✓ Branch 85 taken 1 times.
✗ Branch 86 not taken.
|
159 | ValueOnCIter cbeginValueOn() const { return ValueOnCIter(*this); } |
1039 | //@} | ||
1040 | //@{ | ||
1041 | /// Return an iterator over inactive values (tile and voxel) across all nodes. | ||
1042 |
4/8✓ Branch 1 taken 5 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 8 times.
✗ Branch 5 not taken.
✓ Branch 7 taken 1 times.
✗ Branch 8 not taken.
✓ Branch 10 taken 1 times.
✗ Branch 11 not taken.
|
15 | ValueOffIter beginValueOff() { return ValueOffIter(*this); } |
1043 | ValueOffCIter beginValueOff() const { return ValueOffCIter(*this); } | ||
1044 |
16/32✓ Branch 1 taken 5 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 4 times.
✗ Branch 5 not taken.
✓ Branch 7 taken 3 times.
✗ Branch 8 not taken.
✓ Branch 10 taken 3 times.
✗ Branch 11 not taken.
✓ Branch 13 taken 2 times.
✗ Branch 14 not taken.
✓ Branch 16 taken 1 times.
✗ Branch 17 not taken.
✓ Branch 19 taken 1 times.
✗ Branch 20 not taken.
✓ Branch 22 taken 1 times.
✗ Branch 23 not taken.
✓ Branch 25 taken 1 times.
✗ Branch 26 not taken.
✓ Branch 28 taken 1 times.
✗ Branch 29 not taken.
✓ Branch 31 taken 1 times.
✗ Branch 32 not taken.
✓ Branch 34 taken 1 times.
✗ Branch 35 not taken.
✓ Branch 37 taken 1 times.
✗ Branch 38 not taken.
✓ Branch 40 taken 1 times.
✗ Branch 41 not taken.
✓ Branch 43 taken 1 times.
✗ Branch 44 not taken.
✓ Branch 46 taken 1 times.
✗ Branch 47 not taken.
|
28 | ValueOffCIter cbeginValueOff() const { return ValueOffCIter(*this); } |
1045 | //@} | ||
1046 | |||
1047 | /// @brief Return an iterator of type @c IterT (for example, begin<ValueOnIter>() is | ||
1048 | /// equivalent to beginValueOn()). | ||
1049 | template<typename IterT> IterT begin(); | ||
1050 | /// @brief Return a const iterator of type CIterT (for example, cbegin<ValueOnCIter>() | ||
1051 | /// is equivalent to cbeginValueOn()). | ||
1052 | template<typename CIterT> CIterT cbegin() const; | ||
1053 | |||
1054 | |||
1055 | protected: | ||
1056 | using AccessorRegistry = tbb::concurrent_hash_map<ValueAccessorBase<Tree, true>*, bool>; | ||
1057 | using ConstAccessorRegistry = tbb::concurrent_hash_map<ValueAccessorBase<const Tree, true>*, bool>; | ||
1058 | |||
1059 | /// @brief Notify all registered accessors, by calling ValueAccessor::release(), | ||
1060 | /// that this tree is about to be deleted. | ||
1061 | void releaseAllAccessors(); | ||
1062 | |||
1063 | // TBB body object used to deallocates nodes in parallel. | ||
1064 | template<typename NodeType> | ||
1065 | struct DeallocateNodes { | ||
1066 |
61/92✓ Branch 0 taken 11134 times.
✓ Branch 1 taken 29905 times.
✓ Branch 2 taken 13717 times.
✓ Branch 3 taken 27322 times.
✓ Branch 4 taken 2229 times.
✓ Branch 5 taken 1741 times.
✓ Branch 6 taken 3027 times.
✓ Branch 7 taken 943 times.
✓ Branch 8 taken 3953 times.
✓ Branch 9 taken 1755 times.
✓ Branch 10 taken 4767 times.
✓ Branch 11 taken 941 times.
✓ Branch 12 taken 257 times.
✓ Branch 13 taken 239 times.
✓ Branch 14 taken 392 times.
✓ Branch 15 taken 104 times.
✓ Branch 16 taken 118 times.
✓ Branch 17 taken 116 times.
✓ Branch 18 taken 234 times.
✗ Branch 19 not taken.
✓ Branch 20 taken 169 times.
✓ Branch 21 taken 187 times.
✓ Branch 22 taken 297 times.
✓ Branch 23 taken 59 times.
✓ Branch 24 taken 127 times.
✓ Branch 25 taken 119 times.
✓ Branch 26 taken 246 times.
✗ Branch 27 not taken.
✓ Branch 28 taken 122 times.
✓ Branch 29 taken 121 times.
✓ Branch 30 taken 243 times.
✗ Branch 31 not taken.
✓ Branch 32 taken 137 times.
✓ Branch 33 taken 138 times.
✓ Branch 34 taken 274 times.
✓ Branch 35 taken 1 times.
✓ Branch 36 taken 195 times.
✓ Branch 37 taken 196 times.
✓ Branch 38 taken 390 times.
✓ Branch 39 taken 1 times.
✓ Branch 40 taken 171 times.
✓ Branch 41 taken 167 times.
✓ Branch 42 taken 338 times.
✗ Branch 43 not taken.
✓ Branch 44 taken 108 times.
✓ Branch 45 taken 108 times.
✓ Branch 46 taken 216 times.
✗ Branch 47 not taken.
✓ Branch 48 taken 108 times.
✓ Branch 49 taken 108 times.
✓ Branch 50 taken 216 times.
✗ Branch 51 not taken.
✓ Branch 52 taken 108 times.
✓ Branch 53 taken 108 times.
✓ Branch 54 taken 216 times.
✗ Branch 55 not taken.
✗ Branch 56 not taken.
✗ Branch 57 not taken.
✗ Branch 58 not taken.
✗ Branch 59 not taken.
✓ Branch 60 taken 76 times.
✓ Branch 61 taken 76 times.
✓ Branch 62 taken 152 times.
✗ Branch 63 not taken.
✓ Branch 64 taken 369 times.
✓ Branch 65 taken 363 times.
✓ Branch 66 taken 732 times.
✗ Branch 67 not taken.
✓ Branch 68 taken 188 times.
✓ Branch 69 taken 188 times.
✓ Branch 70 taken 376 times.
✗ Branch 71 not taken.
✗ Branch 72 not taken.
✗ Branch 73 not taken.
✗ Branch 74 not taken.
✗ Branch 75 not taken.
✓ Branch 76 taken 366 times.
✓ Branch 77 taken 366 times.
✓ Branch 78 taken 732 times.
✗ Branch 79 not taken.
✗ Branch 80 not taken.
✗ Branch 81 not taken.
✗ Branch 82 not taken.
✗ Branch 83 not taken.
✗ Branch 84 not taken.
✗ Branch 85 not taken.
✗ Branch 86 not taken.
✗ Branch 87 not taken.
✗ Branch 88 not taken.
✗ Branch 89 not taken.
✗ Branch 90 not taken.
✗ Branch 91 not taken.
|
111872 | DeallocateNodes(std::vector<NodeType*>& nodes) |
1067 |
97/184✓ Branch 0 taken 11134 times.
✓ Branch 1 taken 29905 times.
✓ Branch 3 taken 41039 times.
✗ Branch 4 not taken.
✓ Branch 5 taken 13717 times.
✓ Branch 6 taken 27322 times.
✓ Branch 8 taken 41039 times.
✗ Branch 9 not taken.
✓ Branch 10 taken 2229 times.
✓ Branch 11 taken 1741 times.
✓ Branch 13 taken 3970 times.
✗ Branch 14 not taken.
✓ Branch 15 taken 3027 times.
✓ Branch 16 taken 943 times.
✓ Branch 18 taken 3970 times.
✗ Branch 19 not taken.
✓ Branch 20 taken 3953 times.
✓ Branch 21 taken 1755 times.
✓ Branch 23 taken 5708 times.
✗ Branch 24 not taken.
✓ Branch 25 taken 4767 times.
✓ Branch 26 taken 941 times.
✓ Branch 28 taken 5708 times.
✗ Branch 29 not taken.
✓ Branch 30 taken 257 times.
✓ Branch 31 taken 239 times.
✓ Branch 33 taken 496 times.
✗ Branch 34 not taken.
✓ Branch 35 taken 392 times.
✓ Branch 36 taken 104 times.
✓ Branch 38 taken 496 times.
✗ Branch 39 not taken.
✓ Branch 40 taken 118 times.
✓ Branch 41 taken 116 times.
✓ Branch 43 taken 234 times.
✗ Branch 44 not taken.
✓ Branch 45 taken 234 times.
✗ Branch 46 not taken.
✓ Branch 48 taken 234 times.
✗ Branch 49 not taken.
✓ Branch 50 taken 169 times.
✓ Branch 51 taken 187 times.
✓ Branch 53 taken 356 times.
✗ Branch 54 not taken.
✓ Branch 55 taken 297 times.
✓ Branch 56 taken 59 times.
✓ Branch 58 taken 356 times.
✗ Branch 59 not taken.
✓ Branch 60 taken 127 times.
✓ Branch 61 taken 119 times.
✓ Branch 63 taken 246 times.
✗ Branch 64 not taken.
✓ Branch 65 taken 246 times.
✗ Branch 66 not taken.
✓ Branch 68 taken 246 times.
✗ Branch 69 not taken.
✓ Branch 70 taken 122 times.
✓ Branch 71 taken 121 times.
✓ Branch 73 taken 243 times.
✗ Branch 74 not taken.
✓ Branch 75 taken 243 times.
✗ Branch 76 not taken.
✓ Branch 78 taken 243 times.
✗ Branch 79 not taken.
✓ Branch 80 taken 137 times.
✓ Branch 81 taken 138 times.
✓ Branch 83 taken 275 times.
✗ Branch 84 not taken.
✓ Branch 85 taken 274 times.
✓ Branch 86 taken 1 times.
✓ Branch 88 taken 275 times.
✗ Branch 89 not taken.
✓ Branch 90 taken 195 times.
✓ Branch 91 taken 196 times.
✓ Branch 93 taken 391 times.
✗ Branch 94 not taken.
✓ Branch 95 taken 390 times.
✓ Branch 96 taken 1 times.
✓ Branch 98 taken 391 times.
✗ Branch 99 not taken.
✓ Branch 100 taken 171 times.
✓ Branch 101 taken 167 times.
✓ Branch 103 taken 338 times.
✗ Branch 104 not taken.
✓ Branch 105 taken 338 times.
✗ Branch 106 not taken.
✓ Branch 108 taken 338 times.
✗ Branch 109 not taken.
✓ Branch 110 taken 108 times.
✓ Branch 111 taken 108 times.
✓ Branch 113 taken 216 times.
✗ Branch 114 not taken.
✓ Branch 115 taken 216 times.
✗ Branch 116 not taken.
✓ Branch 118 taken 216 times.
✗ Branch 119 not taken.
✓ Branch 120 taken 108 times.
✓ Branch 121 taken 108 times.
✓ Branch 123 taken 216 times.
✗ Branch 124 not taken.
✓ Branch 125 taken 216 times.
✗ Branch 126 not taken.
✓ Branch 128 taken 216 times.
✗ Branch 129 not taken.
✓ Branch 130 taken 108 times.
✓ Branch 131 taken 108 times.
✓ Branch 133 taken 216 times.
✗ Branch 134 not taken.
✓ Branch 135 taken 216 times.
✗ Branch 136 not taken.
✓ Branch 138 taken 216 times.
✗ Branch 139 not taken.
✗ Branch 140 not taken.
✗ Branch 141 not taken.
✗ Branch 143 not taken.
✗ Branch 144 not taken.
✗ Branch 145 not taken.
✗ Branch 146 not taken.
✗ Branch 148 not taken.
✗ Branch 149 not taken.
✓ Branch 150 taken 76 times.
✓ Branch 151 taken 76 times.
✓ Branch 153 taken 152 times.
✗ Branch 154 not taken.
✓ Branch 155 taken 152 times.
✗ Branch 156 not taken.
✓ Branch 158 taken 152 times.
✗ Branch 159 not taken.
✓ Branch 160 taken 369 times.
✓ Branch 161 taken 363 times.
✓ Branch 163 taken 732 times.
✗ Branch 164 not taken.
✓ Branch 165 taken 732 times.
✗ Branch 166 not taken.
✓ Branch 168 taken 732 times.
✗ Branch 169 not taken.
✓ Branch 170 taken 188 times.
✓ Branch 171 taken 188 times.
✓ Branch 173 taken 376 times.
✗ Branch 174 not taken.
✓ Branch 175 taken 376 times.
✗ Branch 176 not taken.
✓ Branch 178 taken 376 times.
✗ Branch 179 not taken.
✗ Branch 180 not taken.
✗ Branch 181 not taken.
✗ Branch 183 not taken.
✗ Branch 184 not taken.
✗ Branch 185 not taken.
✗ Branch 186 not taken.
✗ Branch 188 not taken.
✗ Branch 189 not taken.
✓ Branch 190 taken 366 times.
✓ Branch 191 taken 366 times.
✓ Branch 193 taken 732 times.
✗ Branch 194 not taken.
✓ Branch 195 taken 732 times.
✗ Branch 196 not taken.
✓ Branch 198 taken 732 times.
✗ Branch 199 not taken.
✗ Branch 200 not taken.
✗ Branch 201 not taken.
✗ Branch 203 not taken.
✗ Branch 204 not taken.
✗ Branch 205 not taken.
✗ Branch 206 not taken.
✗ Branch 208 not taken.
✗ Branch 209 not taken.
✗ Branch 210 not taken.
✗ Branch 211 not taken.
✗ Branch 213 not taken.
✗ Branch 214 not taken.
✗ Branch 215 not taken.
✗ Branch 216 not taken.
✗ Branch 218 not taken.
✗ Branch 219 not taken.
✗ Branch 220 not taken.
✗ Branch 221 not taken.
✗ Branch 223 not taken.
✗ Branch 224 not taken.
✗ Branch 225 not taken.
✗ Branch 226 not taken.
✗ Branch 228 not taken.
✗ Branch 229 not taken.
|
158372 | : mNodes(nodes.empty() ? nullptr : &nodes.front()) { } |
1068 | 471156 | void operator()(const tbb::blocked_range<size_t>& range) const { | |
1069 |
2/2✓ Branch 0 taken 24765872 times.
✓ Branch 1 taken 235578 times.
|
50002900 | for (size_t n = range.begin(), N = range.end(); n < N; ++n) { |
1070 |
1/2✓ Branch 0 taken 24765872 times.
✗ Branch 1 not taken.
|
53102886 | delete mNodes[n]; mNodes[n] = nullptr; |
1071 | } | ||
1072 | 471156 | } | |
1073 | NodeType ** const mNodes; | ||
1074 | }; | ||
1075 | |||
1076 | // | ||
1077 | // Data members | ||
1078 | // | ||
1079 | RootNodeType mRoot; // root node of the tree | ||
1080 | mutable AccessorRegistry mAccessorRegistry; | ||
1081 | mutable ConstAccessorRegistry mConstAccessorRegistry; | ||
1082 | |||
1083 | static std::unique_ptr<const Name> sTreeTypeName; | ||
1084 | }; // end of Tree class | ||
1085 | |||
1086 | template<typename _RootNodeType> | ||
1087 | std::unique_ptr<const Name> Tree<_RootNodeType>::sTreeTypeName; | ||
1088 | |||
1089 | |||
1090 | /// @brief Tree3<T, N1, N2>::Type is the type of a three-level tree | ||
1091 | /// (Root, Internal, Leaf) with value type T and | ||
1092 | /// internal and leaf node log dimensions N1 and N2, respectively. | ||
1093 | /// @note This is NOT the standard tree configuration (Tree4 is). | ||
1094 | template<typename T, Index N1=4, Index N2=3> | ||
1095 | struct Tree3 { | ||
1096 | using Type = Tree<RootNode<InternalNode<LeafNode<T, N2>, N1>>>; | ||
1097 | }; | ||
1098 | |||
1099 | |||
1100 | /// @brief Tree4<T, N1, N2, N3>::Type is the type of a four-level tree | ||
1101 | /// (Root, Internal, Internal, Leaf) with value type T and | ||
1102 | /// internal and leaf node log dimensions N1, N2 and N3, respectively. | ||
1103 | /// @note This is the standard tree configuration. | ||
1104 | template<typename T, Index N1=5, Index N2=4, Index N3=3> | ||
1105 | struct Tree4 { | ||
1106 | using Type = Tree<RootNode<InternalNode<InternalNode<LeafNode<T, N3>, N2>, N1>>>; | ||
1107 | }; | ||
1108 | |||
1109 | /// @brief Tree5<T, N1, N2, N3, N4>::Type is the type of a five-level tree | ||
1110 | /// (Root, Internal, Internal, Internal, Leaf) with value type T and | ||
1111 | /// internal and leaf node log dimensions N1, N2, N3 and N4, respectively. | ||
1112 | /// @note This is NOT the standard tree configuration (Tree4 is). | ||
1113 | template<typename T, Index N1=6, Index N2=5, Index N3=4, Index N4=3> | ||
1114 | struct Tree5 { | ||
1115 | using Type = | ||
1116 | Tree<RootNode<InternalNode<InternalNode<InternalNode<LeafNode<T, N4>, N3>, N2>, N1>>>; | ||
1117 | }; | ||
1118 | |||
1119 | |||
1120 | //////////////////////////////////////// | ||
1121 | |||
1122 | |||
1123 | inline void | ||
1124 | 113 | TreeBase::readTopology(std::istream& is, bool /*saveFloatAsHalf*/) | |
1125 | { | ||
1126 | int32_t bufferCount; | ||
1127 | 113 | is.read(reinterpret_cast<char*>(&bufferCount), sizeof(int32_t)); | |
1128 |
1/2✗ Branch 0 not taken.
✓ Branch 1 taken 113 times.
|
113 | if (bufferCount != 1) OPENVDB_LOG_WARN("multi-buffer trees are no longer supported"); |
1129 | 113 | } | |
1130 | |||
1131 | |||
1132 | inline void | ||
1133 | ✗ | TreeBase::writeTopology(std::ostream& os, bool /*saveFloatAsHalf*/) const | |
1134 | { | ||
1135 | 150 | int32_t bufferCount = 1; | |
1136 | ✗ | os.write(reinterpret_cast<char*>(&bufferCount), sizeof(int32_t)); | |
1137 | } | ||
1138 | |||
1139 | |||
1140 | inline void | ||
1141 | ✗ | TreeBase::print(std::ostream& os, int /*verboseLevel*/) const | |
1142 | { | ||
1143 | ✗ | os << " Tree Type: " << type() | |
1144 | ✗ | << " Active Voxel Count: " << activeVoxelCount() << std::endl | |
1145 | ✗ | << " Active tile Count: " << activeTileCount() << std::endl | |
1146 | ✗ | << " Inactive Voxel Count: " << inactiveVoxelCount() << std::endl | |
1147 | ✗ | << " Leaf Node Count: " << leafCount() << std::endl | |
1148 | ✗ | << " Non-leaf Node Count: " << nonLeafCount() << std::endl; | |
1149 | } | ||
1150 | |||
1151 | |||
1152 | //////////////////////////////////////// | ||
1153 | |||
1154 | |||
1155 | // | ||
1156 | // Type traits for tree iterators | ||
1157 | // | ||
1158 | |||
1159 | /// @brief TreeIterTraits provides, for all tree iterators, a begin(tree) function | ||
1160 | /// that returns an iterator over a tree of arbitrary type. | ||
1161 | template<typename TreeT, typename IterT> struct TreeIterTraits; | ||
1162 | |||
1163 | template<typename TreeT> struct TreeIterTraits<TreeT, typename TreeT::RootNodeType::ChildOnIter> { | ||
1164 | static typename TreeT::RootNodeType::ChildOnIter begin(TreeT& tree) { | ||
1165 | return tree.beginRootChildren(); | ||
1166 | } | ||
1167 | }; | ||
1168 | |||
1169 | template<typename TreeT> struct TreeIterTraits<TreeT, typename TreeT::RootNodeType::ChildOnCIter> { | ||
1170 | static typename TreeT::RootNodeType::ChildOnCIter begin(const TreeT& tree) { | ||
1171 | return tree.cbeginRootChildren(); | ||
1172 | } | ||
1173 | }; | ||
1174 | |||
1175 | template<typename TreeT> struct TreeIterTraits<TreeT, typename TreeT::RootNodeType::ChildOffIter> { | ||
1176 | static typename TreeT::RootNodeType::ChildOffIter begin(TreeT& tree) { | ||
1177 | return tree.beginRootTiles(); | ||
1178 | } | ||
1179 | }; | ||
1180 | |||
1181 | template<typename TreeT> struct TreeIterTraits<TreeT, typename TreeT::RootNodeType::ChildOffCIter> { | ||
1182 | static typename TreeT::RootNodeType::ChildOffCIter begin(const TreeT& tree) { | ||
1183 | return tree.cbeginRootTiles(); | ||
1184 | } | ||
1185 | }; | ||
1186 | |||
1187 | template<typename TreeT> struct TreeIterTraits<TreeT, typename TreeT::RootNodeType::ChildAllIter> { | ||
1188 | static typename TreeT::RootNodeType::ChildAllIter begin(TreeT& tree) { | ||
1189 | return tree.beginRootDense(); | ||
1190 | } | ||
1191 | }; | ||
1192 | |||
1193 | template<typename TreeT> struct TreeIterTraits<TreeT, typename TreeT::RootNodeType::ChildAllCIter> { | ||
1194 | static typename TreeT::RootNodeType::ChildAllCIter begin(const TreeT& tree) { | ||
1195 | return tree.cbeginRootDense(); | ||
1196 | } | ||
1197 | }; | ||
1198 | |||
1199 | template<typename TreeT> struct TreeIterTraits<TreeT, typename TreeT::NodeIter> { | ||
1200 | static typename TreeT::NodeIter begin(TreeT& tree) { return tree.beginNode(); } | ||
1201 | }; | ||
1202 | |||
1203 | template<typename TreeT> struct TreeIterTraits<TreeT, typename TreeT::NodeCIter> { | ||
1204 | static typename TreeT::NodeCIter begin(const TreeT& tree) { return tree.cbeginNode(); } | ||
1205 | }; | ||
1206 | |||
1207 | template<typename TreeT> struct TreeIterTraits<TreeT, typename TreeT::LeafIter> { | ||
1208 | static typename TreeT::LeafIter begin(TreeT& tree) { return tree.beginLeaf(); } | ||
1209 | }; | ||
1210 | |||
1211 | template<typename TreeT> struct TreeIterTraits<TreeT, typename TreeT::LeafCIter> { | ||
1212 | static typename TreeT::LeafCIter begin(const TreeT& tree) { return tree.cbeginLeaf(); } | ||
1213 | }; | ||
1214 | |||
1215 | template<typename TreeT> struct TreeIterTraits<TreeT, typename TreeT::ValueOnIter> { | ||
1216 | static typename TreeT::ValueOnIter begin(TreeT& tree) { return tree.beginValueOn(); } | ||
1217 | }; | ||
1218 | |||
1219 | template<typename TreeT> struct TreeIterTraits<TreeT, typename TreeT::ValueOnCIter> { | ||
1220 | static typename TreeT::ValueOnCIter begin(const TreeT& tree) { return tree.cbeginValueOn(); } | ||
1221 | }; | ||
1222 | |||
1223 | template<typename TreeT> struct TreeIterTraits<TreeT, typename TreeT::ValueOffIter> { | ||
1224 | static typename TreeT::ValueOffIter begin(TreeT& tree) { return tree.beginValueOff(); } | ||
1225 | }; | ||
1226 | |||
1227 | template<typename TreeT> struct TreeIterTraits<TreeT, typename TreeT::ValueOffCIter> { | ||
1228 | static typename TreeT::ValueOffCIter begin(const TreeT& tree) { return tree.cbeginValueOff(); } | ||
1229 | }; | ||
1230 | |||
1231 | template<typename TreeT> struct TreeIterTraits<TreeT, typename TreeT::ValueAllIter> { | ||
1232 | static typename TreeT::ValueAllIter begin(TreeT& tree) { return tree.beginValueAll(); } | ||
1233 | }; | ||
1234 | |||
1235 | template<typename TreeT> struct TreeIterTraits<TreeT, typename TreeT::ValueAllCIter> { | ||
1236 | static typename TreeT::ValueAllCIter begin(const TreeT& tree) { return tree.cbeginValueAll(); } | ||
1237 | }; | ||
1238 | |||
1239 | |||
1240 | template<typename RootNodeType> | ||
1241 | template<typename IterT> | ||
1242 | inline IterT | ||
1243 | Tree<RootNodeType>::begin() | ||
1244 | { | ||
1245 | 1 | return TreeIterTraits<Tree, IterT>::begin(*this); | |
1246 | } | ||
1247 | |||
1248 | |||
1249 | template<typename RootNodeType> | ||
1250 | template<typename IterT> | ||
1251 | inline IterT | ||
1252 | Tree<RootNodeType>::cbegin() const | ||
1253 | { | ||
1254 | return TreeIterTraits<Tree, IterT>::begin(*this); | ||
1255 | } | ||
1256 | |||
1257 | |||
1258 | //////////////////////////////////////// | ||
1259 | |||
1260 | |||
1261 | template<typename RootNodeType> | ||
1262 | void | ||
1263 | 226 | Tree<RootNodeType>::readTopology(std::istream& is, bool saveFloatAsHalf) | |
1264 | { | ||
1265 | 226 | this->clearAllAccessors(); | |
1266 | 226 | TreeBase::readTopology(is, saveFloatAsHalf); | |
1267 | 226 | mRoot.readTopology(is, saveFloatAsHalf); | |
1268 | } | ||
1269 | |||
1270 | |||
1271 | template<typename RootNodeType> | ||
1272 | void | ||
1273 | 300 | Tree<RootNodeType>::writeTopology(std::ostream& os, bool saveFloatAsHalf) const | |
1274 | { | ||
1275 | 300 | TreeBase::writeTopology(os, saveFloatAsHalf); | |
1276 | 300 | mRoot.writeTopology(os, saveFloatAsHalf); | |
1277 | } | ||
1278 | |||
1279 | |||
1280 | template<typename RootNodeType> | ||
1281 | inline void | ||
1282 | 528 | Tree<RootNodeType>::readBuffers(std::istream &is, bool saveFloatAsHalf) | |
1283 | { | ||
1284 | 528 | this->clearAllAccessors(); | |
1285 | 528 | mRoot.readBuffers(is, saveFloatAsHalf); | |
1286 | } | ||
1287 | |||
1288 | |||
1289 | template<typename RootNodeType> | ||
1290 | inline void | ||
1291 | 8 | Tree<RootNodeType>::readBuffers(std::istream &is, const CoordBBox& bbox, bool saveFloatAsHalf) | |
1292 | { | ||
1293 | 8 | this->clearAllAccessors(); | |
1294 | 8 | mRoot.readBuffers(is, bbox, saveFloatAsHalf); | |
1295 | } | ||
1296 | |||
1297 | |||
1298 | template<typename RootNodeType> | ||
1299 | inline void | ||
1300 | ✗ | Tree<RootNodeType>::readNonresidentBuffers() const | |
1301 | { | ||
1302 | ✗ | for (LeafCIter it = this->cbeginLeaf(); it; ++it) { | |
1303 | // Retrieving the value of a leaf voxel forces loading of the leaf node's voxel buffer. | ||
1304 | it->getValue(Index(0)); | ||
1305 | } | ||
1306 | } | ||
1307 | |||
1308 | |||
1309 | template<typename RootNodeType> | ||
1310 | inline void | ||
1311 | 518 | Tree<RootNodeType>::writeBuffers(std::ostream &os, bool saveFloatAsHalf) const | |
1312 | { | ||
1313 | 518 | mRoot.writeBuffers(os, saveFloatAsHalf); | |
1314 | } | ||
1315 | |||
1316 | |||
1317 | template<typename RootNodeType> | ||
1318 | inline void | ||
1319 |
1/2✓ Branch 1 taken 55936 times.
✗ Branch 2 not taken.
|
97852 | Tree<RootNodeType>::clear() |
1320 | { | ||
1321 | std::vector<LeafNodeType*> leafnodes; | ||
1322 | this->stealNodes(leafnodes); | ||
1323 | |||
1324 |
2/6✓ Branch 1 taken 55936 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 55936 times.
✗ Branch 5 not taken.
✗ Branch 6 not taken.
✗ Branch 7 not taken.
|
97852 | tbb::parallel_for(tbb::blocked_range<size_t>(0, leafnodes.size()), |
1325 | DeallocateNodes<LeafNodeType>(leafnodes)); | ||
1326 | |||
1327 | std::vector<typename RootNodeType::ChildNodeType*> internalNodes; | ||
1328 | this->stealNodes(internalNodes); | ||
1329 | |||
1330 |
1/4✓ Branch 1 taken 55936 times.
✗ Branch 2 not taken.
✗ Branch 3 not taken.
✗ Branch 4 not taken.
|
97852 | tbb::parallel_for(tbb::blocked_range<size_t>(0, internalNodes.size()), |
1331 | DeallocateNodes<typename RootNodeType::ChildNodeType>(internalNodes)); | ||
1332 | |||
1333 | 97852 | mRoot.clear(); | |
1334 | |||
1335 |
1/2✓ Branch 1 taken 55936 times.
✗ Branch 2 not taken.
|
97852 | this->clearAllAccessors(); |
1336 | 97852 | } | |
1337 | |||
1338 | |||
1339 | //////////////////////////////////////// | ||
1340 | |||
1341 | |||
1342 | template<typename RootNodeType> | ||
1343 | inline void | ||
1344 |
1/2✓ Branch 1 taken 4971245 times.
✗ Branch 2 not taken.
|
9925360 | Tree<RootNodeType>::attachAccessor(ValueAccessorBase<Tree, true>& accessor) const |
1345 | { | ||
1346 | typename AccessorRegistry::accessor a; | ||
1347 |
2/6✓ Branch 1 taken 4971245 times.
✗ Branch 2 not taken.
✓ Branch 3 taken 4971245 times.
✗ Branch 4 not taken.
✗ Branch 5 not taken.
✗ Branch 6 not taken.
|
9925360 | mAccessorRegistry.insert(a, &accessor); |
1348 | 9925360 | } | |
1349 | |||
1350 | |||
1351 | template<typename RootNodeType> | ||
1352 | inline void | ||
1353 |
1/2✓ Branch 1 taken 347022 times.
✗ Branch 2 not taken.
|
640937 | Tree<RootNodeType>::attachAccessor(ValueAccessorBase<const Tree, true>& accessor) const |
1354 | { | ||
1355 | typename ConstAccessorRegistry::accessor a; | ||
1356 |
2/6✓ Branch 1 taken 347022 times.
✗ Branch 2 not taken.
✓ Branch 3 taken 347022 times.
✗ Branch 4 not taken.
✗ Branch 5 not taken.
✗ Branch 6 not taken.
|
640937 | mConstAccessorRegistry.insert(a, &accessor); |
1357 | 640937 | } | |
1358 | |||
1359 | |||
1360 | template<typename RootNodeType> | ||
1361 | inline void | ||
1362 | Tree<RootNodeType>::releaseAccessor(ValueAccessorBase<Tree, true>& accessor) const | ||
1363 | { | ||
1364 | 4970360 | mAccessorRegistry.erase(&accessor); | |
1365 | 4970360 | } | |
1366 | |||
1367 | |||
1368 | template<typename RootNodeType> | ||
1369 | inline void | ||
1370 | Tree<RootNodeType>::releaseAccessor(ValueAccessorBase<const Tree, true>& accessor) const | ||
1371 | { | ||
1372 | 279142 | mConstAccessorRegistry.erase(&accessor); | |
1373 | 279142 | } | |
1374 | |||
1375 | |||
1376 | template<typename RootNodeType> | ||
1377 | inline void | ||
1378 | 462187 | Tree<RootNodeType>::clearAllAccessors() | |
1379 | { | ||
1380 | 462187 | for (typename AccessorRegistry::iterator it = mAccessorRegistry.begin(); | |
1381 |
2/2✓ Branch 0 taken 6559 times.
✓ Branch 1 taken 256994 times.
|
488423 | it != mAccessorRegistry.end(); ++it) |
1382 | { | ||
1383 |
1/2✓ Branch 0 taken 6559 times.
✗ Branch 1 not taken.
|
13118 | if (it->first) it->first->clear(); |
1384 | } | ||
1385 | |||
1386 | 462187 | for (typename ConstAccessorRegistry::iterator it = mConstAccessorRegistry.begin(); | |
1387 |
2/2✓ Branch 0 taken 54 times.
✓ Branch 1 taken 256994 times.
|
462403 | it != mConstAccessorRegistry.end(); ++it) |
1388 | { | ||
1389 |
1/2✓ Branch 0 taken 54 times.
✗ Branch 1 not taken.
|
108 | if (it->first) it->first->clear(); |
1390 | } | ||
1391 | 462187 | } | |
1392 | |||
1393 | |||
1394 | template<typename RootNodeType> | ||
1395 | inline void | ||
1396 | 90879 | Tree<RootNodeType>::releaseAllAccessors() | |
1397 | { | ||
1398 | 90879 | mAccessorRegistry.erase(nullptr); | |
1399 | for (typename AccessorRegistry::iterator it = mAccessorRegistry.begin(); | ||
1400 |
2/2✓ Branch 0 taken 446 times.
✓ Branch 1 taken 52448 times.
|
92663 | it != mAccessorRegistry.end(); ++it) |
1401 | { | ||
1402 | 892 | it->first->release(); | |
1403 | } | ||
1404 | 90879 | mAccessorRegistry.clear(); | |
1405 | |||
1406 | 90879 | mAccessorRegistry.erase(nullptr); | |
1407 | 90879 | for (typename ConstAccessorRegistry::iterator it = mConstAccessorRegistry.begin(); | |
1408 |
2/2✓ Branch 0 taken 17 times.
✓ Branch 1 taken 52448 times.
|
90947 | it != mConstAccessorRegistry.end(); ++it) |
1409 | { | ||
1410 | 34 | it->first->release(); | |
1411 | } | ||
1412 | 90879 | mConstAccessorRegistry.clear(); | |
1413 | 90879 | } | |
1414 | |||
1415 | |||
1416 | //////////////////////////////////////// | ||
1417 | |||
1418 | |||
1419 | template<typename RootNodeType> | ||
1420 | inline const typename RootNodeType::ValueType& | ||
1421 | Tree<RootNodeType>::getValue(const Coord& xyz) const | ||
1422 | { | ||
1423 |
177/333✓ Branch 1 taken 113368 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 54976 times.
✗ Branch 5 not taken.
✓ Branch 7 taken 3870 times.
✓ Branch 8 taken 1 times.
✗ Branch 9 not taken.
✓ Branch 10 taken 7081 times.
✓ Branch 11 taken 1 times.
✓ Branch 12 taken 2523 times.
✓ Branch 13 taken 6186 times.
✓ Branch 14 taken 1 times.
✓ Branch 15 taken 2523 times.
✓ Branch 16 taken 9217 times.
✓ Branch 17 taken 2 times.
✓ Branch 18 taken 1784 times.
✓ Branch 19 taken 42887 times.
✓ Branch 20 taken 1 times.
✓ Branch 21 taken 1784 times.
✓ Branch 22 taken 42887 times.
✓ Branch 23 taken 1 times.
✗ Branch 24 not taken.
✓ Branch 25 taken 6658 times.
✓ Branch 26 taken 3913 times.
✗ Branch 27 not taken.
✓ Branch 28 taken 1345 times.
✓ Branch 29 taken 1 times.
✗ Branch 30 not taken.
✓ Branch 31 taken 594 times.
✓ Branch 32 taken 1 times.
✗ Branch 33 not taken.
✓ Branch 34 taken 8000608 times.
✓ Branch 35 taken 1 times.
✗ Branch 36 not taken.
✓ Branch 37 taken 64590 times.
✓ Branch 38 taken 1 times.
✗ Branch 39 not taken.
✓ Branch 40 taken 8000590 times.
✓ Branch 41 taken 1 times.
✗ Branch 42 not taken.
✓ Branch 43 taken 97364 times.
✓ Branch 44 taken 125000 times.
✗ Branch 45 not taken.
✓ Branch 46 taken 97500 times.
✗ Branch 47 not taken.
✓ Branch 49 taken 71656 times.
✗ Branch 50 not taken.
✓ Branch 52 taken 71562 times.
✗ Branch 53 not taken.
✓ Branch 55 taken 373887 times.
✗ Branch 56 not taken.
✓ Branch 58 taken 355481 times.
✗ Branch 59 not taken.
✓ Branch 61 taken 354970 times.
✗ Branch 62 not taken.
✓ Branch 64 taken 309892 times.
✗ Branch 65 not taken.
✓ Branch 67 taken 309887 times.
✗ Branch 68 not taken.
✓ Branch 70 taken 15 times.
✗ Branch 71 not taken.
✓ Branch 73 taken 20 times.
✓ Branch 74 taken 1 times.
✗ Branch 75 not taken.
✓ Branch 76 taken 60 times.
✓ Branch 77 taken 1 times.
✗ Branch 78 not taken.
✓ Branch 79 taken 49 times.
✓ Branch 80 taken 1 times.
✗ Branch 81 not taken.
✓ Branch 82 taken 12 times.
✓ Branch 83 taken 1 times.
✗ Branch 84 not taken.
✓ Branch 85 taken 32779 times.
✓ Branch 86 taken 1 times.
✗ Branch 87 not taken.
✓ Branch 88 taken 33290 times.
✓ Branch 89 taken 1 times.
✗ Branch 90 not taken.
✓ Branch 91 taken 254 times.
✓ Branch 92 taken 1 times.
✗ Branch 93 not taken.
✓ Branch 94 taken 7 times.
✓ Branch 95 taken 1 times.
✗ Branch 96 not taken.
✓ Branch 97 taken 16 times.
✓ Branch 98 taken 1 times.
✗ Branch 99 not taken.
✓ Branch 100 taken 9 times.
✓ Branch 101 taken 1 times.
✗ Branch 102 not taken.
✓ Branch 103 taken 12 times.
✓ Branch 104 taken 1 times.
✗ Branch 105 not taken.
✓ Branch 106 taken 12 times.
✓ Branch 107 taken 1 times.
✗ Branch 108 not taken.
✓ Branch 109 taken 18 times.
✓ Branch 110 taken 1 times.
✗ Branch 111 not taken.
✓ Branch 112 taken 18 times.
✓ Branch 113 taken 1 times.
✗ Branch 114 not taken.
✓ Branch 115 taken 22 times.
✓ Branch 116 taken 1 times.
✗ Branch 117 not taken.
✓ Branch 118 taken 22 times.
✓ Branch 119 taken 1 times.
✗ Branch 120 not taken.
✓ Branch 121 taken 45105 times.
✗ Branch 122 not taken.
✓ Branch 124 taken 20 times.
✗ Branch 125 not taken.
✓ Branch 127 taken 20 times.
✗ Branch 128 not taken.
✓ Branch 130 taken 19 times.
✗ Branch 131 not taken.
✓ Branch 133 taken 1513 times.
✗ Branch 134 not taken.
✓ Branch 136 taken 1513 times.
✗ Branch 137 not taken.
✓ Branch 139 taken 296 times.
✗ Branch 140 not taken.
✓ Branch 142 taken 19 times.
✗ Branch 143 not taken.
✓ Branch 145 taken 9 times.
✗ Branch 146 not taken.
✓ Branch 148 taken 9 times.
✗ Branch 149 not taken.
✓ Branch 151 taken 9 times.
✗ Branch 152 not taken.
✓ Branch 154 taken 9 times.
✗ Branch 155 not taken.
✓ Branch 157 taken 9 times.
✗ Branch 158 not taken.
✓ Branch 160 taken 9 times.
✗ Branch 161 not taken.
✓ Branch 163 taken 9 times.
✗ Branch 164 not taken.
✓ Branch 166 taken 9 times.
✗ Branch 167 not taken.
✓ Branch 169 taken 9 times.
✗ Branch 170 not taken.
✓ Branch 172 taken 9 times.
✗ Branch 173 not taken.
✓ Branch 175 taken 9 times.
✗ Branch 176 not taken.
✓ Branch 178 taken 9 times.
✗ Branch 179 not taken.
✓ Branch 181 taken 9 times.
✗ Branch 182 not taken.
✓ Branch 184 taken 9 times.
✗ Branch 185 not taken.
✓ Branch 187 taken 9 times.
✗ Branch 188 not taken.
✓ Branch 190 taken 9 times.
✗ Branch 191 not taken.
✓ Branch 193 taken 9 times.
✗ Branch 194 not taken.
✓ Branch 196 taken 9 times.
✗ Branch 197 not taken.
✓ Branch 199 taken 125008 times.
✗ Branch 200 not taken.
✓ Branch 202 taken 9 times.
✗ Branch 203 not taken.
✓ Branch 205 taken 9 times.
✗ Branch 206 not taken.
✓ Branch 208 taken 9 times.
✗ Branch 209 not taken.
✓ Branch 211 taken 9 times.
✗ Branch 212 not taken.
✓ Branch 214 taken 9 times.
✗ Branch 215 not taken.
✓ Branch 217 taken 3 times.
✗ Branch 218 not taken.
✓ Branch 220 taken 3 times.
✗ Branch 221 not taken.
✓ Branch 223 taken 3 times.
✗ Branch 224 not taken.
✓ Branch 226 taken 3 times.
✗ Branch 227 not taken.
✓ Branch 229 taken 3 times.
✗ Branch 230 not taken.
✓ Branch 232 taken 3 times.
✗ Branch 233 not taken.
✓ Branch 235 taken 3 times.
✗ Branch 236 not taken.
✓ Branch 238 taken 3 times.
✗ Branch 239 not taken.
✓ Branch 241 taken 3 times.
✗ Branch 242 not taken.
✓ Branch 244 taken 3 times.
✗ Branch 245 not taken.
✓ Branch 247 taken 3 times.
✗ Branch 248 not taken.
✓ Branch 250 taken 3 times.
✗ Branch 251 not taken.
✓ Branch 253 taken 2 times.
✗ Branch 254 not taken.
✓ Branch 256 taken 2 times.
✗ Branch 257 not taken.
✓ Branch 259 taken 2 times.
✗ Branch 260 not taken.
✓ Branch 262 taken 3 times.
✗ Branch 263 not taken.
✓ Branch 265 taken 3 times.
✗ Branch 266 not taken.
✓ Branch 268 taken 3 times.
✗ Branch 269 not taken.
✓ Branch 271 taken 3 times.
✗ Branch 272 not taken.
✓ Branch 274 taken 3 times.
✗ Branch 275 not taken.
✓ Branch 277 taken 3 times.
✗ Branch 278 not taken.
✓ Branch 280 taken 3 times.
✗ Branch 281 not taken.
✓ Branch 283 taken 3 times.
✗ Branch 284 not taken.
✓ Branch 286 taken 3 times.
✗ Branch 287 not taken.
✓ Branch 289 taken 3 times.
✗ Branch 290 not taken.
✓ Branch 292 taken 3 times.
✗ Branch 293 not taken.
✓ Branch 295 taken 3 times.
✗ Branch 296 not taken.
✓ Branch 298 taken 3 times.
✗ Branch 299 not taken.
✓ Branch 301 taken 3 times.
✗ Branch 302 not taken.
✓ Branch 304 taken 3 times.
✗ Branch 305 not taken.
✓ Branch 307 taken 3 times.
✗ Branch 308 not taken.
✓ Branch 310 taken 3 times.
✗ Branch 311 not taken.
✓ Branch 313 taken 3 times.
✗ Branch 314 not taken.
✗ Branch 315 not taken.
✓ Branch 316 taken 3 times.
✗ Branch 317 not taken.
✗ Branch 318 not taken.
✓ Branch 319 taken 3 times.
✗ Branch 320 not taken.
✗ Branch 321 not taken.
✓ Branch 322 taken 3 times.
✗ Branch 323 not taken.
✗ Branch 324 not taken.
✓ Branch 325 taken 3 times.
✗ Branch 326 not taken.
✗ Branch 327 not taken.
✓ Branch 328 taken 3 times.
✗ Branch 329 not taken.
✗ Branch 330 not taken.
✓ Branch 331 taken 3 times.
✗ Branch 332 not taken.
✗ Branch 333 not taken.
✓ Branch 334 taken 2 times.
✗ Branch 335 not taken.
✗ Branch 336 not taken.
✓ Branch 337 taken 2 times.
✗ Branch 338 not taken.
✗ Branch 339 not taken.
✓ Branch 340 taken 2 times.
✗ Branch 341 not taken.
✗ Branch 342 not taken.
✓ Branch 343 taken 2 times.
✗ Branch 344 not taken.
✗ Branch 345 not taken.
✓ Branch 346 taken 2 times.
✗ Branch 347 not taken.
✗ Branch 348 not taken.
✓ Branch 349 taken 2 times.
✗ Branch 350 not taken.
✗ Branch 351 not taken.
✓ Branch 352 taken 2 times.
✗ Branch 353 not taken.
✗ Branch 354 not taken.
✓ Branch 355 taken 2 times.
✗ Branch 356 not taken.
✗ Branch 357 not taken.
✓ Branch 358 taken 2 times.
✗ Branch 359 not taken.
✗ Branch 360 not taken.
✓ Branch 361 taken 2 times.
✗ Branch 362 not taken.
✓ Branch 364 taken 2 times.
✗ Branch 365 not taken.
✓ Branch 367 taken 2 times.
✗ Branch 368 not taken.
✓ Branch 370 taken 2 times.
✗ Branch 371 not taken.
✓ Branch 373 taken 2 times.
✗ Branch 374 not taken.
✓ Branch 376 taken 2 times.
✗ Branch 377 not taken.
✓ Branch 379 taken 2 times.
✗ Branch 380 not taken.
✓ Branch 382 taken 2 times.
✗ Branch 383 not taken.
✓ Branch 385 taken 1 times.
✗ Branch 386 not taken.
✓ Branch 388 taken 1 times.
✗ Branch 389 not taken.
✓ Branch 391 taken 1 times.
✗ Branch 392 not taken.
✓ Branch 394 taken 1 times.
✗ Branch 395 not taken.
✓ Branch 397 taken 1 times.
✗ Branch 398 not taken.
✓ Branch 400 taken 1 times.
✗ Branch 401 not taken.
✓ Branch 403 taken 1 times.
✗ Branch 404 not taken.
✓ Branch 406 taken 1 times.
✗ Branch 407 not taken.
✓ Branch 409 taken 1 times.
✗ Branch 410 not taken.
✓ Branch 412 taken 1 times.
✗ Branch 413 not taken.
✓ Branch 415 taken 1 times.
✗ Branch 416 not taken.
✓ Branch 418 taken 1 times.
✗ Branch 419 not taken.
✓ Branch 421 taken 1 times.
✗ Branch 422 not taken.
✓ Branch 424 taken 1 times.
✗ Branch 425 not taken.
✓ Branch 427 taken 1 times.
✗ Branch 428 not taken.
✓ Branch 430 taken 1 times.
✗ Branch 431 not taken.
|
21536580 | return mRoot.getValue(xyz); |
1424 | } | ||
1425 | |||
1426 | |||
1427 | template<typename RootNodeType> | ||
1428 | template<typename AccessT> | ||
1429 | inline const typename RootNodeType::ValueType& | ||
1430 | Tree<RootNodeType>::getValue(const Coord& xyz, AccessT& accessor) const | ||
1431 | { | ||
1432 | return accessor.getValue(xyz); | ||
1433 | } | ||
1434 | |||
1435 | |||
1436 | template<typename RootNodeType> | ||
1437 | inline int | ||
1438 | Tree<RootNodeType>::getValueDepth(const Coord& xyz) const | ||
1439 | { | ||
1440 | 310015 | return mRoot.getValueDepth(xyz); | |
1441 | } | ||
1442 | |||
1443 | |||
1444 | template<typename RootNodeType> | ||
1445 | inline void | ||
1446 | Tree<RootNodeType>::setValueOff(const Coord& xyz) | ||
1447 | { | ||
1448 |
9/18✓ Branch 1 taken 5 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 12 times.
✗ Branch 5 not taken.
✓ Branch 7 taken 3 times.
✗ Branch 8 not taken.
✓ Branch 10 taken 3 times.
✗ Branch 11 not taken.
✓ Branch 13 taken 3 times.
✗ Branch 14 not taken.
✓ Branch 16 taken 3 times.
✗ Branch 17 not taken.
✓ Branch 19 taken 3 times.
✗ Branch 20 not taken.
✓ Branch 22 taken 3 times.
✗ Branch 23 not taken.
✓ Branch 25 taken 1 times.
✗ Branch 26 not taken.
|
36 | mRoot.setValueOff(xyz); |
1449 | 36 | } | |
1450 | |||
1451 | |||
1452 | template<typename RootNodeType> | ||
1453 | inline void | ||
1454 | Tree<RootNodeType>::setValueOff(const Coord& xyz, const ValueType& value) | ||
1455 | { | ||
1456 |
32/64✓ Branch 1 taken 8 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 14 times.
✗ Branch 5 not taken.
✓ Branch 7 taken 5 times.
✗ Branch 8 not taken.
✓ Branch 10 taken 4 times.
✗ Branch 11 not taken.
✓ Branch 13 taken 4 times.
✗ Branch 14 not taken.
✓ Branch 16 taken 4 times.
✗ Branch 17 not taken.
✓ Branch 19 taken 2 times.
✗ Branch 20 not taken.
✓ Branch 22 taken 1 times.
✗ Branch 23 not taken.
✓ Branch 25 taken 1 times.
✗ Branch 26 not taken.
✓ Branch 28 taken 1 times.
✗ Branch 29 not taken.
✓ Branch 31 taken 1 times.
✗ Branch 32 not taken.
✓ Branch 34 taken 1 times.
✗ Branch 35 not taken.
✓ Branch 37 taken 1 times.
✗ Branch 38 not taken.
✓ Branch 40 taken 1 times.
✗ Branch 41 not taken.
✓ Branch 43 taken 1 times.
✗ Branch 44 not taken.
✓ Branch 46 taken 1 times.
✗ Branch 47 not taken.
✓ Branch 49 taken 7 times.
✗ Branch 50 not taken.
✓ Branch 52 taken 7 times.
✗ Branch 53 not taken.
✓ Branch 55 taken 7 times.
✗ Branch 56 not taken.
✓ Branch 58 taken 7 times.
✗ Branch 59 not taken.
✓ Branch 61 taken 7 times.
✗ Branch 62 not taken.
✓ Branch 64 taken 7 times.
✗ Branch 65 not taken.
✓ Branch 67 taken 7 times.
✗ Branch 68 not taken.
✓ Branch 70 taken 7 times.
✗ Branch 71 not taken.
✓ Branch 73 taken 7 times.
✗ Branch 74 not taken.
✓ Branch 76 taken 7 times.
✗ Branch 77 not taken.
✓ Branch 79 taken 7 times.
✗ Branch 80 not taken.
✓ Branch 82 taken 7 times.
✗ Branch 83 not taken.
✓ Branch 85 taken 7 times.
✗ Branch 86 not taken.
✓ Branch 88 taken 7 times.
✗ Branch 89 not taken.
✓ Branch 91 taken 7 times.
✗ Branch 92 not taken.
✓ Branch 94 taken 7 times.
✗ Branch 95 not taken.
|
162 | mRoot.setValueOff(xyz, value); |
1457 | 162 | } | |
1458 | |||
1459 | |||
1460 | template<typename RootNodeType> | ||
1461 | inline void | ||
1462 | Tree<RootNodeType>::setActiveState(const Coord& xyz, bool on) | ||
1463 | { | ||
1464 |
2/4✓ Branch 1 taken 2 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 2 times.
✗ Branch 5 not taken.
|
4 | mRoot.setActiveState(xyz, on); |
1465 | 4 | } | |
1466 | |||
1467 | |||
1468 | template<typename RootNodeType> | ||
1469 | inline void | ||
1470 | Tree<RootNodeType>::setValue(const Coord& xyz, const ValueType& value) | ||
1471 | { | ||
1472 |
340/680✓ Branch 1 taken 30888 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 23653 times.
✗ Branch 5 not taken.
✓ Branch 7 taken 72028 times.
✗ Branch 8 not taken.
✓ Branch 10 taken 17295 times.
✗ Branch 11 not taken.
✓ Branch 13 taken 8037 times.
✗ Branch 14 not taken.
✓ Branch 16 taken 8019 times.
✗ Branch 17 not taken.
✓ Branch 19 taken 8019 times.
✗ Branch 20 not taken.
✓ Branch 22 taken 8019 times.
✗ Branch 23 not taken.
✓ Branch 25 taken 8028 times.
✗ Branch 26 not taken.
✓ Branch 28 taken 25 times.
✗ Branch 29 not taken.
✓ Branch 31 taken 15 times.
✗ Branch 32 not taken.
✓ Branch 34 taken 526 times.
✗ Branch 35 not taken.
✓ Branch 37 taken 15 times.
✗ Branch 38 not taken.
✓ Branch 40 taken 15 times.
✗ Branch 41 not taken.
✓ Branch 43 taken 15 times.
✗ Branch 44 not taken.
✓ Branch 46 taken 22 times.
✗ Branch 47 not taken.
✓ Branch 49 taken 14 times.
✗ Branch 50 not taken.
✓ Branch 52 taken 13 times.
✗ Branch 53 not taken.
✓ Branch 55 taken 13 times.
✗ Branch 56 not taken.
✓ Branch 58 taken 12 times.
✗ Branch 59 not taken.
✓ Branch 61 taken 22 times.
✗ Branch 62 not taken.
✓ Branch 64 taken 22 times.
✗ Branch 65 not taken.
✓ Branch 67 taken 12 times.
✗ Branch 68 not taken.
✓ Branch 70 taken 522 times.
✗ Branch 71 not taken.
✓ Branch 73 taken 12 times.
✗ Branch 74 not taken.
✓ Branch 76 taken 9 times.
✗ Branch 77 not taken.
✓ Branch 79 taken 9 times.
✗ Branch 80 not taken.
✓ Branch 82 taken 15 times.
✗ Branch 83 not taken.
✓ Branch 85 taken 8 times.
✗ Branch 86 not taken.
✓ Branch 88 taken 7 times.
✗ Branch 89 not taken.
✓ Branch 91 taken 7 times.
✗ Branch 92 not taken.
✓ Branch 94 taken 7 times.
✗ Branch 95 not taken.
✓ Branch 97 taken 17 times.
✗ Branch 98 not taken.
✓ Branch 100 taken 17 times.
✗ Branch 101 not taken.
✓ Branch 103 taken 7 times.
✗ Branch 104 not taken.
✓ Branch 106 taken 518 times.
✗ Branch 107 not taken.
✓ Branch 109 taken 64006 times.
✗ Branch 110 not taken.
✓ Branch 112 taken 64006 times.
✗ Branch 113 not taken.
✓ Branch 115 taken 7 times.
✗ Branch 116 not taken.
✓ Branch 118 taken 14 times.
✗ Branch 119 not taken.
✓ Branch 121 taken 6 times.
✗ Branch 122 not taken.
✓ Branch 124 taken 5 times.
✗ Branch 125 not taken.
✓ Branch 127 taken 5 times.
✗ Branch 128 not taken.
✓ Branch 130 taken 5 times.
✗ Branch 131 not taken.
✓ Branch 133 taken 14 times.
✗ Branch 134 not taken.
✓ Branch 136 taken 14 times.
✗ Branch 137 not taken.
✓ Branch 139 taken 4 times.
✗ Branch 140 not taken.
✓ Branch 142 taken 515 times.
✗ Branch 143 not taken.
✓ Branch 145 taken 4 times.
✗ Branch 146 not taken.
✓ Branch 148 taken 4 times.
✗ Branch 149 not taken.
✓ Branch 151 taken 4 times.
✗ Branch 152 not taken.
✓ Branch 154 taken 11 times.
✗ Branch 155 not taken.
✓ Branch 157 taken 4 times.
✗ Branch 158 not taken.
✓ Branch 160 taken 10 times.
✗ Branch 161 not taken.
✓ Branch 163 taken 4 times.
✗ Branch 164 not taken.
✓ Branch 166 taken 4 times.
✗ Branch 167 not taken.
✓ Branch 169 taken 14 times.
✗ Branch 170 not taken.
✓ Branch 172 taken 14 times.
✗ Branch 173 not taken.
✓ Branch 175 taken 4 times.
✗ Branch 176 not taken.
✓ Branch 178 taken 515 times.
✗ Branch 179 not taken.
✓ Branch 181 taken 4 times.
✗ Branch 182 not taken.
✓ Branch 184 taken 4 times.
✗ Branch 185 not taken.
✓ Branch 187 taken 4 times.
✗ Branch 188 not taken.
✓ Branch 190 taken 11 times.
✗ Branch 191 not taken.
✓ Branch 193 taken 4 times.
✗ Branch 194 not taken.
✓ Branch 196 taken 4 times.
✗ Branch 197 not taken.
✓ Branch 199 taken 4 times.
✗ Branch 200 not taken.
✓ Branch 202 taken 4 times.
✗ Branch 203 not taken.
✓ Branch 205 taken 14 times.
✗ Branch 206 not taken.
✓ Branch 208 taken 14 times.
✗ Branch 209 not taken.
✓ Branch 211 taken 4 times.
✗ Branch 212 not taken.
✓ Branch 214 taken 515 times.
✗ Branch 215 not taken.
✓ Branch 217 taken 3 times.
✗ Branch 218 not taken.
✓ Branch 220 taken 3 times.
✗ Branch 221 not taken.
✓ Branch 223 taken 3 times.
✗ Branch 224 not taken.
✓ Branch 226 taken 3 times.
✗ Branch 227 not taken.
✓ Branch 229 taken 3 times.
✗ Branch 230 not taken.
✓ Branch 232 taken 3 times.
✗ Branch 233 not taken.
✓ Branch 235 taken 3 times.
✗ Branch 236 not taken.
✓ Branch 238 taken 3 times.
✗ Branch 239 not taken.
✓ Branch 241 taken 3 times.
✗ Branch 242 not taken.
✓ Branch 244 taken 3 times.
✗ Branch 245 not taken.
✓ Branch 247 taken 3 times.
✗ Branch 248 not taken.
✓ Branch 250 taken 3 times.
✗ Branch 251 not taken.
✓ Branch 253 taken 3 times.
✗ Branch 254 not taken.
✓ Branch 256 taken 3 times.
✗ Branch 257 not taken.
✓ Branch 259 taken 9 times.
✗ Branch 260 not taken.
✓ Branch 262 taken 3 times.
✗ Branch 263 not taken.
✓ Branch 265 taken 3 times.
✗ Branch 266 not taken.
✓ Branch 268 taken 3 times.
✗ Branch 269 not taken.
✓ Branch 271 taken 3 times.
✗ Branch 272 not taken.
✓ Branch 274 taken 3 times.
✗ Branch 275 not taken.
✓ Branch 277 taken 3 times.
✗ Branch 278 not taken.
✓ Branch 280 taken 3 times.
✗ Branch 281 not taken.
✓ Branch 283 taken 3 times.
✗ Branch 284 not taken.
✓ Branch 286 taken 3 times.
✗ Branch 287 not taken.
✓ Branch 289 taken 3 times.
✗ Branch 290 not taken.
✓ Branch 292 taken 3 times.
✗ Branch 293 not taken.
✓ Branch 295 taken 3 times.
✗ Branch 296 not taken.
✓ Branch 298 taken 3 times.
✗ Branch 299 not taken.
✓ Branch 301 taken 3 times.
✗ Branch 302 not taken.
✓ Branch 304 taken 3 times.
✗ Branch 305 not taken.
✓ Branch 307 taken 3 times.
✗ Branch 308 not taken.
✓ Branch 310 taken 3 times.
✗ Branch 311 not taken.
✓ Branch 313 taken 3 times.
✗ Branch 314 not taken.
✓ Branch 316 taken 3 times.
✗ Branch 317 not taken.
✓ Branch 319 taken 3 times.
✗ Branch 320 not taken.
✓ Branch 322 taken 3 times.
✗ Branch 323 not taken.
✓ Branch 325 taken 3 times.
✗ Branch 326 not taken.
✓ Branch 328 taken 3 times.
✗ Branch 329 not taken.
✓ Branch 331 taken 3 times.
✗ Branch 332 not taken.
✓ Branch 334 taken 9 times.
✗ Branch 335 not taken.
✓ Branch 337 taken 3 times.
✗ Branch 338 not taken.
✓ Branch 340 taken 3 times.
✗ Branch 341 not taken.
✓ Branch 343 taken 3 times.
✗ Branch 344 not taken.
✓ Branch 346 taken 3 times.
✗ Branch 347 not taken.
✓ Branch 349 taken 3 times.
✗ Branch 350 not taken.
✓ Branch 352 taken 3 times.
✗ Branch 353 not taken.
✓ Branch 355 taken 3 times.
✗ Branch 356 not taken.
✓ Branch 358 taken 3 times.
✗ Branch 359 not taken.
✓ Branch 361 taken 3 times.
✗ Branch 362 not taken.
✓ Branch 364 taken 3 times.
✗ Branch 365 not taken.
✓ Branch 367 taken 3 times.
✗ Branch 368 not taken.
✓ Branch 370 taken 3 times.
✗ Branch 371 not taken.
✓ Branch 373 taken 3 times.
✗ Branch 374 not taken.
✓ Branch 376 taken 3 times.
✗ Branch 377 not taken.
✓ Branch 379 taken 3 times.
✗ Branch 380 not taken.
✓ Branch 382 taken 3 times.
✗ Branch 383 not taken.
✓ Branch 385 taken 3 times.
✗ Branch 386 not taken.
✓ Branch 388 taken 3 times.
✗ Branch 389 not taken.
✓ Branch 391 taken 3 times.
✗ Branch 392 not taken.
✓ Branch 394 taken 3 times.
✗ Branch 395 not taken.
✓ Branch 397 taken 3 times.
✗ Branch 398 not taken.
✓ Branch 400 taken 3 times.
✗ Branch 401 not taken.
✓ Branch 403 taken 9 times.
✗ Branch 404 not taken.
✓ Branch 406 taken 3 times.
✗ Branch 407 not taken.
✓ Branch 409 taken 3 times.
✗ Branch 410 not taken.
✓ Branch 412 taken 3 times.
✗ Branch 413 not taken.
✓ Branch 415 taken 3 times.
✗ Branch 416 not taken.
✓ Branch 418 taken 3 times.
✗ Branch 419 not taken.
✓ Branch 421 taken 3 times.
✗ Branch 422 not taken.
✓ Branch 424 taken 3 times.
✗ Branch 425 not taken.
✓ Branch 427 taken 3 times.
✗ Branch 428 not taken.
✓ Branch 430 taken 3 times.
✗ Branch 431 not taken.
✓ Branch 433 taken 3 times.
✗ Branch 434 not taken.
✓ Branch 436 taken 3 times.
✗ Branch 437 not taken.
✓ Branch 439 taken 3 times.
✗ Branch 440 not taken.
✓ Branch 442 taken 3 times.
✗ Branch 443 not taken.
✓ Branch 445 taken 3 times.
✗ Branch 446 not taken.
✓ Branch 448 taken 3 times.
✗ Branch 449 not taken.
✓ Branch 451 taken 3 times.
✗ Branch 452 not taken.
✓ Branch 454 taken 3 times.
✗ Branch 455 not taken.
✓ Branch 457 taken 3 times.
✗ Branch 458 not taken.
✓ Branch 460 taken 3 times.
✗ Branch 461 not taken.
✓ Branch 463 taken 3 times.
✗ Branch 464 not taken.
✓ Branch 466 taken 3 times.
✗ Branch 467 not taken.
✓ Branch 469 taken 3 times.
✗ Branch 470 not taken.
✓ Branch 472 taken 3 times.
✗ Branch 473 not taken.
✓ Branch 475 taken 3 times.
✗ Branch 476 not taken.
✓ Branch 478 taken 3 times.
✗ Branch 479 not taken.
✓ Branch 481 taken 3 times.
✗ Branch 482 not taken.
✓ Branch 484 taken 3 times.
✗ Branch 485 not taken.
✓ Branch 487 taken 3 times.
✗ Branch 488 not taken.
✓ Branch 490 taken 3 times.
✗ Branch 491 not taken.
✓ Branch 493 taken 3 times.
✗ Branch 494 not taken.
✓ Branch 496 taken 3 times.
✗ Branch 497 not taken.
✓ Branch 499 taken 3 times.
✗ Branch 500 not taken.
✓ Branch 502 taken 3 times.
✗ Branch 503 not taken.
✓ Branch 505 taken 3 times.
✗ Branch 506 not taken.
✓ Branch 508 taken 3 times.
✗ Branch 509 not taken.
✓ Branch 511 taken 3 times.
✗ Branch 512 not taken.
✓ Branch 514 taken 3 times.
✗ Branch 515 not taken.
✓ Branch 517 taken 3 times.
✗ Branch 518 not taken.
✓ Branch 520 taken 3 times.
✗ Branch 521 not taken.
✓ Branch 523 taken 3 times.
✗ Branch 524 not taken.
✓ Branch 526 taken 3 times.
✗ Branch 527 not taken.
✓ Branch 529 taken 3 times.
✗ Branch 530 not taken.
✓ Branch 532 taken 3 times.
✗ Branch 533 not taken.
✓ Branch 535 taken 3 times.
✗ Branch 536 not taken.
✓ Branch 538 taken 3 times.
✗ Branch 539 not taken.
✓ Branch 541 taken 3 times.
✗ Branch 542 not taken.
✓ Branch 544 taken 3 times.
✗ Branch 545 not taken.
✓ Branch 547 taken 3 times.
✗ Branch 548 not taken.
✓ Branch 550 taken 3 times.
✗ Branch 551 not taken.
✓ Branch 553 taken 3 times.
✗ Branch 554 not taken.
✓ Branch 556 taken 3 times.
✗ Branch 557 not taken.
✓ Branch 559 taken 3 times.
✗ Branch 560 not taken.
✓ Branch 562 taken 3 times.
✗ Branch 563 not taken.
✓ Branch 565 taken 3 times.
✗ Branch 566 not taken.
✓ Branch 568 taken 3 times.
✗ Branch 569 not taken.
✓ Branch 571 taken 3 times.
✗ Branch 572 not taken.
✓ Branch 574 taken 3 times.
✗ Branch 575 not taken.
✓ Branch 577 taken 3 times.
✗ Branch 578 not taken.
✓ Branch 580 taken 3 times.
✗ Branch 581 not taken.
✓ Branch 583 taken 3 times.
✗ Branch 584 not taken.
✓ Branch 586 taken 3 times.
✗ Branch 587 not taken.
✓ Branch 589 taken 2 times.
✗ Branch 590 not taken.
✓ Branch 592 taken 2 times.
✗ Branch 593 not taken.
✓ Branch 595 taken 2 times.
✗ Branch 596 not taken.
✓ Branch 598 taken 2 times.
✗ Branch 599 not taken.
✓ Branch 601 taken 2 times.
✗ Branch 602 not taken.
✓ Branch 604 taken 2 times.
✗ Branch 605 not taken.
✓ Branch 607 taken 2 times.
✗ Branch 608 not taken.
✓ Branch 610 taken 2 times.
✗ Branch 611 not taken.
✓ Branch 613 taken 2 times.
✗ Branch 614 not taken.
✓ Branch 616 taken 2 times.
✗ Branch 617 not taken.
✓ Branch 619 taken 2 times.
✗ Branch 620 not taken.
✓ Branch 622 taken 2 times.
✗ Branch 623 not taken.
✓ Branch 625 taken 2 times.
✗ Branch 626 not taken.
✓ Branch 628 taken 2 times.
✗ Branch 629 not taken.
✓ Branch 631 taken 2 times.
✗ Branch 632 not taken.
✓ Branch 634 taken 2 times.
✗ Branch 635 not taken.
✓ Branch 637 taken 2 times.
✗ Branch 638 not taken.
✓ Branch 640 taken 2 times.
✗ Branch 641 not taken.
✓ Branch 643 taken 2 times.
✗ Branch 644 not taken.
✓ Branch 646 taken 2 times.
✗ Branch 647 not taken.
✓ Branch 649 taken 2 times.
✗ Branch 650 not taken.
✓ Branch 652 taken 2 times.
✗ Branch 653 not taken.
✓ Branch 655 taken 2 times.
✗ Branch 656 not taken.
✓ Branch 658 taken 2 times.
✗ Branch 659 not taken.
✓ Branch 661 taken 2 times.
✗ Branch 662 not taken.
✓ Branch 664 taken 2 times.
✗ Branch 665 not taken.
✓ Branch 667 taken 2 times.
✗ Branch 668 not taken.
✓ Branch 670 taken 2 times.
✗ Branch 671 not taken.
✓ Branch 673 taken 2 times.
✗ Branch 674 not taken.
✓ Branch 676 taken 2 times.
✗ Branch 677 not taken.
✓ Branch 679 taken 2 times.
✗ Branch 680 not taken.
✓ Branch 682 taken 2 times.
✗ Branch 683 not taken.
✓ Branch 685 taken 2 times.
✗ Branch 686 not taken.
✓ Branch 688 taken 2 times.
✗ Branch 689 not taken.
✓ Branch 691 taken 2 times.
✗ Branch 692 not taken.
✓ Branch 694 taken 2 times.
✗ Branch 695 not taken.
✓ Branch 697 taken 2 times.
✗ Branch 698 not taken.
✓ Branch 700 taken 2 times.
✗ Branch 701 not taken.
✓ Branch 703 taken 2 times.
✗ Branch 704 not taken.
✓ Branch 706 taken 2 times.
✗ Branch 707 not taken.
✓ Branch 709 taken 2 times.
✗ Branch 710 not taken.
✓ Branch 712 taken 2 times.
✗ Branch 713 not taken.
✓ Branch 715 taken 2 times.
✗ Branch 716 not taken.
✓ Branch 718 taken 2 times.
✗ Branch 719 not taken.
✓ Branch 721 taken 2 times.
✗ Branch 722 not taken.
✓ Branch 724 taken 2 times.
✗ Branch 725 not taken.
✓ Branch 727 taken 2 times.
✗ Branch 728 not taken.
✓ Branch 730 taken 1 times.
✗ Branch 731 not taken.
✓ Branch 733 taken 1 times.
✗ Branch 734 not taken.
✓ Branch 736 taken 1 times.
✗ Branch 737 not taken.
✓ Branch 739 taken 1 times.
✗ Branch 740 not taken.
✓ Branch 742 taken 1 times.
✗ Branch 743 not taken.
✓ Branch 745 taken 1 times.
✗ Branch 746 not taken.
✓ Branch 748 taken 1 times.
✗ Branch 749 not taken.
✓ Branch 751 taken 1 times.
✗ Branch 752 not taken.
✓ Branch 754 taken 1 times.
✗ Branch 755 not taken.
✓ Branch 757 taken 1 times.
✗ Branch 758 not taken.
✓ Branch 760 taken 1 times.
✗ Branch 761 not taken.
✓ Branch 763 taken 1 times.
✗ Branch 764 not taken.
✓ Branch 766 taken 1 times.
✗ Branch 767 not taken.
✓ Branch 769 taken 1 times.
✗ Branch 770 not taken.
✓ Branch 772 taken 1 times.
✗ Branch 773 not taken.
✓ Branch 775 taken 1 times.
✗ Branch 776 not taken.
✓ Branch 778 taken 1 times.
✗ Branch 779 not taken.
✓ Branch 781 taken 1 times.
✗ Branch 782 not taken.
✓ Branch 784 taken 1 times.
✗ Branch 785 not taken.
✓ Branch 787 taken 1 times.
✗ Branch 788 not taken.
✓ Branch 790 taken 1 times.
✗ Branch 791 not taken.
✓ Branch 793 taken 1 times.
✗ Branch 794 not taken.
✓ Branch 796 taken 1 times.
✗ Branch 797 not taken.
✓ Branch 799 taken 1 times.
✗ Branch 800 not taken.
✓ Branch 802 taken 1 times.
✗ Branch 803 not taken.
✓ Branch 805 taken 1 times.
✗ Branch 806 not taken.
✓ Branch 808 taken 1 times.
✗ Branch 809 not taken.
✓ Branch 811 taken 1 times.
✗ Branch 812 not taken.
✓ Branch 814 taken 1 times.
✗ Branch 815 not taken.
✓ Branch 817 taken 1 times.
✗ Branch 818 not taken.
✓ Branch 820 taken 1 times.
✗ Branch 821 not taken.
✓ Branch 823 taken 1 times.
✗ Branch 824 not taken.
✓ Branch 826 taken 1 times.
✗ Branch 827 not taken.
✓ Branch 829 taken 1 times.
✗ Branch 830 not taken.
✓ Branch 832 taken 1 times.
✗ Branch 833 not taken.
✓ Branch 835 taken 1 times.
✗ Branch 836 not taken.
✓ Branch 838 taken 1 times.
✗ Branch 839 not taken.
✓ Branch 841 taken 1 times.
✗ Branch 842 not taken.
✓ Branch 844 taken 1 times.
✗ Branch 845 not taken.
✓ Branch 847 taken 1 times.
✗ Branch 848 not taken.
✓ Branch 850 taken 1 times.
✗ Branch 851 not taken.
✓ Branch 853 taken 1 times.
✗ Branch 854 not taken.
✓ Branch 856 taken 1 times.
✗ Branch 857 not taken.
✓ Branch 859 taken 1 times.
✗ Branch 860 not taken.
✓ Branch 862 taken 1 times.
✗ Branch 863 not taken.
✓ Branch 865 taken 1 times.
✗ Branch 866 not taken.
✓ Branch 868 taken 1 times.
✗ Branch 869 not taken.
✓ Branch 871 taken 1 times.
✗ Branch 872 not taken.
✓ Branch 874 taken 1 times.
✗ Branch 875 not taken.
✓ Branch 877 taken 1 times.
✗ Branch 878 not taken.
✓ Branch 880 taken 1 times.
✗ Branch 881 not taken.
✓ Branch 883 taken 1 times.
✗ Branch 884 not taken.
✓ Branch 886 taken 1 times.
✗ Branch 887 not taken.
✓ Branch 889 taken 1 times.
✗ Branch 890 not taken.
✓ Branch 892 taken 1 times.
✗ Branch 893 not taken.
✓ Branch 895 taken 1 times.
✗ Branch 896 not taken.
✓ Branch 898 taken 1 times.
✗ Branch 899 not taken.
✓ Branch 901 taken 1 times.
✗ Branch 902 not taken.
✓ Branch 904 taken 1 times.
✗ Branch 905 not taken.
✓ Branch 907 taken 1 times.
✗ Branch 908 not taken.
✓ Branch 910 taken 1 times.
✗ Branch 911 not taken.
✓ Branch 913 taken 1 times.
✗ Branch 914 not taken.
✓ Branch 916 taken 1 times.
✗ Branch 917 not taken.
✓ Branch 919 taken 1 times.
✗ Branch 920 not taken.
✓ Branch 922 taken 1 times.
✗ Branch 923 not taken.
✓ Branch 925 taken 1 times.
✗ Branch 926 not taken.
✓ Branch 928 taken 1 times.
✗ Branch 929 not taken.
✓ Branch 931 taken 1 times.
✗ Branch 932 not taken.
✓ Branch 934 taken 1 times.
✗ Branch 935 not taken.
✓ Branch 937 taken 1 times.
✗ Branch 938 not taken.
✓ Branch 940 taken 1 times.
✗ Branch 941 not taken.
✓ Branch 943 taken 1 times.
✗ Branch 944 not taken.
✓ Branch 946 taken 1 times.
✗ Branch 947 not taken.
✓ Branch 949 taken 1 times.
✗ Branch 950 not taken.
✓ Branch 952 taken 1 times.
✗ Branch 953 not taken.
✓ Branch 955 taken 1 times.
✗ Branch 956 not taken.
✓ Branch 958 taken 1 times.
✗ Branch 959 not taken.
✓ Branch 961 taken 1 times.
✗ Branch 962 not taken.
✓ Branch 964 taken 1 times.
✗ Branch 965 not taken.
✓ Branch 967 taken 1 times.
✗ Branch 968 not taken.
✓ Branch 970 taken 1 times.
✗ Branch 971 not taken.
✓ Branch 973 taken 1 times.
✗ Branch 974 not taken.
✓ Branch 976 taken 1 times.
✗ Branch 977 not taken.
✓ Branch 979 taken 1 times.
✗ Branch 980 not taken.
✓ Branch 982 taken 1 times.
✗ Branch 983 not taken.
✓ Branch 985 taken 1 times.
✗ Branch 986 not taken.
✓ Branch 988 taken 1 times.
✗ Branch 989 not taken.
✓ Branch 991 taken 1 times.
✗ Branch 992 not taken.
✓ Branch 994 taken 1 times.
✗ Branch 995 not taken.
✓ Branch 997 taken 1 times.
✗ Branch 998 not taken.
✓ Branch 1000 taken 1 times.
✗ Branch 1001 not taken.
✓ Branch 1003 taken 1 times.
✗ Branch 1004 not taken.
✓ Branch 1006 taken 1 times.
✗ Branch 1007 not taken.
✓ Branch 1009 taken 1 times.
✗ Branch 1010 not taken.
✓ Branch 1012 taken 1 times.
✗ Branch 1013 not taken.
✓ Branch 1015 taken 1 times.
✗ Branch 1016 not taken.
✓ Branch 1018 taken 1 times.
✗ Branch 1019 not taken.
|
316242 | mRoot.setValueOn(xyz, value); |
1473 | 316242 | } | |
1474 | |||
1475 | template<typename RootNodeType> | ||
1476 | inline void | ||
1477 | Tree<RootNodeType>::setValueOnly(const Coord& xyz, const ValueType& value) | ||
1478 | { | ||
1479 |
12/24✓ Branch 1 taken 3 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 2 times.
✗ Branch 5 not taken.
✓ Branch 7 taken 2 times.
✗ Branch 8 not taken.
✓ Branch 10 taken 1 times.
✗ Branch 11 not taken.
✓ Branch 13 taken 1 times.
✗ Branch 14 not taken.
✓ Branch 16 taken 1 times.
✗ Branch 17 not taken.
✓ Branch 19 taken 1 times.
✗ Branch 20 not taken.
✓ Branch 22 taken 1 times.
✗ Branch 23 not taken.
✓ Branch 25 taken 1 times.
✗ Branch 26 not taken.
✓ Branch 28 taken 1 times.
✗ Branch 29 not taken.
✓ Branch 31 taken 1 times.
✗ Branch 32 not taken.
✓ Branch 34 taken 1 times.
✗ Branch 35 not taken.
|
16 | mRoot.setValueOnly(xyz, value); |
1480 | 16 | } | |
1481 | |||
1482 | template<typename RootNodeType> | ||
1483 | template<typename AccessT> | ||
1484 | inline void | ||
1485 | Tree<RootNodeType>::setValue(const Coord& xyz, const ValueType& value, AccessT& accessor) | ||
1486 | { | ||
1487 | accessor.setValue(xyz, value); | ||
1488 | } | ||
1489 | |||
1490 | |||
1491 | template<typename RootNodeType> | ||
1492 | inline void | ||
1493 | Tree<RootNodeType>::setValueOn(const Coord& xyz) | ||
1494 | { | ||
1495 |
14/28✓ Branch 1 taken 12 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 2 times.
✗ Branch 5 not taken.
✓ Branch 7 taken 2 times.
✗ Branch 8 not taken.
✓ Branch 10 taken 2 times.
✗ Branch 11 not taken.
✓ Branch 13 taken 2 times.
✗ Branch 14 not taken.
✓ Branch 16 taken 2 times.
✗ Branch 17 not taken.
✓ Branch 19 taken 1 times.
✗ Branch 20 not taken.
✓ Branch 22 taken 1 times.
✗ Branch 23 not taken.
✓ Branch 25 taken 1 times.
✗ Branch 26 not taken.
✓ Branch 28 taken 1 times.
✗ Branch 29 not taken.
✓ Branch 31 taken 1 times.
✗ Branch 32 not taken.
✓ Branch 34 taken 1 times.
✗ Branch 35 not taken.
✓ Branch 37 taken 1 times.
✗ Branch 38 not taken.
✓ Branch 40 taken 1 times.
✗ Branch 41 not taken.
|
30 | mRoot.setActiveState(xyz, true); |
1496 | 30 | } | |
1497 | |||
1498 | |||
1499 | template<typename RootNodeType> | ||
1500 | inline void | ||
1501 | Tree<RootNodeType>::setValueOn(const Coord& xyz, const ValueType& value) | ||
1502 | { | ||
1503 |
63/126✓ Branch 1 taken 8 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 7 times.
✗ Branch 5 not taken.
✓ Branch 7 taken 10 times.
✗ Branch 8 not taken.
✓ Branch 10 taken 2 times.
✗ Branch 11 not taken.
✓ Branch 13 taken 2 times.
✗ Branch 14 not taken.
✓ Branch 16 taken 2 times.
✗ Branch 17 not taken.
✓ Branch 19 taken 2 times.
✗ Branch 20 not taken.
✓ Branch 22 taken 1 times.
✗ Branch 23 not taken.
✓ Branch 25 taken 1 times.
✗ Branch 26 not taken.
✓ Branch 28 taken 1 times.
✗ Branch 29 not taken.
✓ Branch 31 taken 1 times.
✗ Branch 32 not taken.
✓ Branch 34 taken 1 times.
✗ Branch 35 not taken.
✓ Branch 37 taken 1 times.
✗ Branch 38 not taken.
✓ Branch 40 taken 1 times.
✗ Branch 41 not taken.
✓ Branch 43 taken 1 times.
✗ Branch 44 not taken.
✓ Branch 46 taken 1 times.
✗ Branch 47 not taken.
✓ Branch 49 taken 1 times.
✗ Branch 50 not taken.
✓ Branch 52 taken 1 times.
✗ Branch 53 not taken.
✓ Branch 55 taken 1 times.
✗ Branch 56 not taken.
✓ Branch 58 taken 1 times.
✗ Branch 59 not taken.
✓ Branch 61 taken 1 times.
✗ Branch 62 not taken.
✓ Branch 64 taken 1 times.
✗ Branch 65 not taken.
✓ Branch 67 taken 1 times.
✗ Branch 68 not taken.
✓ Branch 70 taken 1 times.
✗ Branch 71 not taken.
✓ Branch 73 taken 1 times.
✗ Branch 74 not taken.
✓ Branch 76 taken 1 times.
✗ Branch 77 not taken.
✓ Branch 79 taken 1 times.
✗ Branch 80 not taken.
✓ Branch 82 taken 1 times.
✗ Branch 83 not taken.
✓ Branch 85 taken 7 times.
✗ Branch 86 not taken.
✓ Branch 88 taken 7 times.
✗ Branch 89 not taken.
✓ Branch 91 taken 7 times.
✗ Branch 92 not taken.
✓ Branch 94 taken 7 times.
✗ Branch 95 not taken.
✓ Branch 97 taken 7 times.
✗ Branch 98 not taken.
✓ Branch 100 taken 7 times.
✗ Branch 101 not taken.
✓ Branch 103 taken 7 times.
✗ Branch 104 not taken.
✓ Branch 106 taken 7 times.
✗ Branch 107 not taken.
✓ Branch 109 taken 7 times.
✗ Branch 110 not taken.
✓ Branch 112 taken 7 times.
✗ Branch 113 not taken.
✓ Branch 115 taken 7 times.
✗ Branch 116 not taken.
✓ Branch 118 taken 7 times.
✗ Branch 119 not taken.
✓ Branch 121 taken 7 times.
✗ Branch 122 not taken.
✓ Branch 124 taken 7 times.
✗ Branch 125 not taken.
✓ Branch 127 taken 7 times.
✗ Branch 128 not taken.
✓ Branch 130 taken 7 times.
✗ Branch 131 not taken.
✓ Branch 133 taken 7 times.
✗ Branch 134 not taken.
✓ Branch 136 taken 7 times.
✗ Branch 137 not taken.
✓ Branch 139 taken 7 times.
✗ Branch 140 not taken.
✓ Branch 142 taken 7 times.
✗ Branch 143 not taken.
✓ Branch 145 taken 7 times.
✗ Branch 146 not taken.
✓ Branch 148 taken 7 times.
✗ Branch 149 not taken.
✓ Branch 151 taken 7 times.
✗ Branch 152 not taken.
✓ Branch 154 taken 7 times.
✗ Branch 155 not taken.
✓ Branch 157 taken 7 times.
✗ Branch 158 not taken.
✓ Branch 160 taken 7 times.
✗ Branch 161 not taken.
✓ Branch 163 taken 7 times.
✗ Branch 164 not taken.
✓ Branch 166 taken 7 times.
✗ Branch 167 not taken.
✓ Branch 169 taken 1 times.
✗ Branch 170 not taken.
✓ Branch 172 taken 1 times.
✗ Branch 173 not taken.
✓ Branch 175 taken 1 times.
✗ Branch 176 not taken.
✓ Branch 178 taken 1 times.
✗ Branch 179 not taken.
✓ Branch 181 taken 1 times.
✗ Branch 182 not taken.
✓ Branch 184 taken 1 times.
✗ Branch 185 not taken.
✓ Branch 187 taken 1 times.
✗ Branch 188 not taken.
|
257 | mRoot.setValueOn(xyz, value); |
1504 | 257 | } | |
1505 | |||
1506 | |||
1507 | template<typename RootNodeType> | ||
1508 | template<typename ModifyOp> | ||
1509 | inline void | ||
1510 | Tree<RootNodeType>::modifyValue(const Coord& xyz, const ModifyOp& op) | ||
1511 | { | ||
1512 |
1/2✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
|
7 | mRoot.modifyValue(xyz, op); |
1513 | 1 | } | |
1514 | |||
1515 | |||
1516 | template<typename RootNodeType> | ||
1517 | template<typename ModifyOp> | ||
1518 | inline void | ||
1519 | Tree<RootNodeType>::modifyValueAndActiveState(const Coord& xyz, const ModifyOp& op) | ||
1520 | { | ||
1521 |
4/8✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
✓ Branch 7 taken 1 times.
✗ Branch 8 not taken.
✓ Branch 10 taken 1 times.
✗ Branch 11 not taken.
|
4 | mRoot.modifyValueAndActiveState(xyz, op); |
1522 | 4 | } | |
1523 | |||
1524 | |||
1525 | template<typename RootNodeType> | ||
1526 | inline bool | ||
1527 | Tree<RootNodeType>::probeValue(const Coord& xyz, ValueType& value) const | ||
1528 | { | ||
1529 | 3595 | return mRoot.probeValue(xyz, value); | |
1530 | } | ||
1531 | |||
1532 | |||
1533 | //////////////////////////////////////// | ||
1534 | |||
1535 | |||
1536 | template<typename RootNodeType> | ||
1537 | inline void | ||
1538 | Tree<RootNodeType>::addTile(Index level, const Coord& xyz, | ||
1539 | const ValueType& value, bool active) | ||
1540 | { | ||
1541 |
107/124✓ Branch 1 taken 1 times.
✓ Branch 2 taken 7 times.
✓ Branch 3 taken 1 times.
✓ Branch 4 taken 3 times.
✓ Branch 5 taken 8 times.
✓ Branch 6 taken 2 times.
✓ Branch 7 taken 3 times.
✓ Branch 8 taken 7 times.
✓ Branch 9 taken 3 times.
✓ Branch 10 taken 2 times.
✓ Branch 11 taken 5 times.
✓ Branch 12 taken 4 times.
✓ Branch 13 taken 2 times.
✓ Branch 14 taken 5 times.
✓ Branch 15 taken 4 times.
✓ Branch 16 taken 2 times.
✓ Branch 17 taken 2 times.
✓ Branch 18 taken 3 times.
✓ Branch 19 taken 1 times.
✓ Branch 20 taken 2 times.
✓ Branch 21 taken 3 times.
✓ Branch 22 taken 136 times.
✓ Branch 23 taken 2 times.
✓ Branch 24 taken 3 times.
✓ Branch 25 taken 136 times.
✓ Branch 26 taken 2 times.
✓ Branch 27 taken 7 times.
✓ Branch 28 taken 144 times.
✓ Branch 29 taken 2 times.
✓ Branch 30 taken 5 times.
✓ Branch 31 taken 144 times.
✓ Branch 32 taken 2 times.
✓ Branch 33 taken 4 times.
✓ Branch 34 taken 153 times.
✓ Branch 35 taken 2 times.
✓ Branch 36 taken 3 times.
✓ Branch 37 taken 153 times.
✓ Branch 38 taken 2 times.
✓ Branch 39 taken 2 times.
✓ Branch 40 taken 150 times.
✓ Branch 41 taken 1 times.
✓ Branch 42 taken 1 times.
✓ Branch 43 taken 150 times.
✓ Branch 44 taken 1 times.
✓ Branch 45 taken 1 times.
✓ Branch 46 taken 153 times.
✓ Branch 47 taken 1 times.
✓ Branch 48 taken 1 times.
✓ Branch 49 taken 153 times.
✓ Branch 50 taken 1 times.
✓ Branch 51 taken 1 times.
✓ Branch 52 taken 171 times.
✓ Branch 53 taken 1 times.
✓ Branch 54 taken 1 times.
✓ Branch 55 taken 171 times.
✓ Branch 56 taken 1 times.
✓ Branch 57 taken 1 times.
✓ Branch 58 taken 168 times.
✓ Branch 59 taken 1 times.
✓ Branch 60 taken 1 times.
✓ Branch 61 taken 168 times.
✓ Branch 62 taken 1 times.
✓ Branch 63 taken 1 times.
✓ Branch 64 taken 171 times.
✓ Branch 65 taken 1 times.
✓ Branch 66 taken 1 times.
✓ Branch 67 taken 171 times.
✓ Branch 68 taken 1 times.
✓ Branch 69 taken 1 times.
✓ Branch 70 taken 195 times.
✓ Branch 71 taken 1 times.
✓ Branch 72 taken 1 times.
✓ Branch 73 taken 195 times.
✓ Branch 74 taken 1 times.
✓ Branch 75 taken 1 times.
✓ Branch 76 taken 282 times.
✓ Branch 77 taken 1 times.
✓ Branch 78 taken 1 times.
✓ Branch 79 taken 282 times.
✓ Branch 80 taken 1 times.
✓ Branch 81 taken 1 times.
✓ Branch 82 taken 240 times.
✓ Branch 83 taken 1 times.
✓ Branch 84 taken 1 times.
✓ Branch 85 taken 240 times.
✓ Branch 86 taken 1 times.
✓ Branch 87 taken 1 times.
✓ Branch 88 taken 147 times.
✓ Branch 89 taken 1 times.
✓ Branch 90 taken 1 times.
✓ Branch 91 taken 147 times.
✗ Branch 92 not taken.
✓ Branch 94 taken 147 times.
✗ Branch 95 not taken.
✓ Branch 97 taken 147 times.
✗ Branch 98 not taken.
✓ Branch 100 taken 147 times.
✗ Branch 101 not taken.
✓ Branch 103 taken 147 times.
✗ Branch 104 not taken.
✓ Branch 106 taken 885 times.
✗ Branch 107 not taken.
✓ Branch 109 taken 885 times.
✗ Branch 110 not taken.
✓ Branch 112 taken 102 times.
✗ Branch 113 not taken.
✓ Branch 115 taken 102 times.
✗ Branch 116 not taken.
✓ Branch 118 taken 528 times.
✗ Branch 119 not taken.
✓ Branch 121 taken 528 times.
✗ Branch 122 not taken.
✓ Branch 124 taken 267 times.
✗ Branch 125 not taken.
✓ Branch 127 taken 267 times.
✗ Branch 128 not taken.
✓ Branch 130 taken 459 times.
✗ Branch 131 not taken.
✓ Branch 133 taken 459 times.
✗ Branch 134 not taken.
✓ Branch 136 taken 534 times.
✗ Branch 137 not taken.
✓ Branch 139 taken 534 times.
✗ Branch 140 not taken.
|
10640 | mRoot.addTile(level, xyz, value, active); |
1542 | 10639 | } | |
1543 | |||
1544 | |||
1545 | template<typename RootNodeType> | ||
1546 | template<typename NodeT> | ||
1547 | inline NodeT* | ||
1548 | Tree<RootNodeType>::stealNode(const Coord& xyz, const ValueType& value, bool active) | ||
1549 | { | ||
1550 | 22771 | this->clearAllAccessors(); | |
1551 | 22771 | return mRoot.template stealNode<NodeT>(xyz, value, active); | |
1552 | } | ||
1553 | |||
1554 | |||
1555 | template<typename RootNodeType> | ||
1556 | inline typename RootNodeType::LeafNodeType* | ||
1557 | Tree<RootNodeType>::touchLeaf(const Coord& xyz) | ||
1558 | { | ||
1559 |
49/98✓ Branch 1 taken 11 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 11 times.
✗ Branch 5 not taken.
✓ Branch 7 taken 3094 times.
✗ Branch 8 not taken.
✓ Branch 10 taken 43 times.
✗ Branch 11 not taken.
✓ Branch 13 taken 3 times.
✗ Branch 14 not taken.
✓ Branch 16 taken 3 times.
✗ Branch 17 not taken.
✓ Branch 19 taken 162 times.
✗ Branch 20 not taken.
✓ Branch 22 taken 2 times.
✗ Branch 23 not taken.
✓ Branch 25 taken 2 times.
✗ Branch 26 not taken.
✓ Branch 28 taken 2 times.
✗ Branch 29 not taken.
✓ Branch 31 taken 2 times.
✗ Branch 32 not taken.
✓ Branch 34 taken 2 times.
✗ Branch 35 not taken.
✓ Branch 37 taken 2 times.
✗ Branch 38 not taken.
✓ Branch 40 taken 2 times.
✗ Branch 41 not taken.
✓ Branch 43 taken 1 times.
✗ Branch 44 not taken.
✓ Branch 46 taken 1 times.
✗ Branch 47 not taken.
✓ Branch 49 taken 1 times.
✗ Branch 50 not taken.
✓ Branch 52 taken 1 times.
✗ Branch 53 not taken.
✓ Branch 55 taken 1 times.
✗ Branch 56 not taken.
✓ Branch 58 taken 1 times.
✗ Branch 59 not taken.
✓ Branch 61 taken 1 times.
✗ Branch 62 not taken.
✓ Branch 64 taken 1 times.
✗ Branch 65 not taken.
✓ Branch 67 taken 1 times.
✗ Branch 68 not taken.
✓ Branch 70 taken 1 times.
✗ Branch 71 not taken.
✓ Branch 73 taken 1 times.
✗ Branch 74 not taken.
✓ Branch 76 taken 1 times.
✗ Branch 77 not taken.
✓ Branch 79 taken 1 times.
✗ Branch 80 not taken.
✓ Branch 82 taken 1 times.
✗ Branch 83 not taken.
✓ Branch 85 taken 1 times.
✗ Branch 86 not taken.
✓ Branch 88 taken 1 times.
✗ Branch 89 not taken.
✓ Branch 91 taken 1 times.
✗ Branch 92 not taken.
✓ Branch 94 taken 1 times.
✗ Branch 95 not taken.
✓ Branch 97 taken 1 times.
✗ Branch 98 not taken.
✓ Branch 100 taken 1 times.
✗ Branch 101 not taken.
✓ Branch 103 taken 1 times.
✗ Branch 104 not taken.
✓ Branch 106 taken 1 times.
✗ Branch 107 not taken.
✓ Branch 109 taken 1 times.
✗ Branch 110 not taken.
✓ Branch 112 taken 1 times.
✗ Branch 113 not taken.
✓ Branch 115 taken 1 times.
✗ Branch 116 not taken.
✓ Branch 118 taken 1 times.
✗ Branch 119 not taken.
✓ Branch 121 taken 1 times.
✗ Branch 122 not taken.
✓ Branch 124 taken 1 times.
✗ Branch 125 not taken.
✓ Branch 127 taken 1 times.
✗ Branch 128 not taken.
✓ Branch 130 taken 1 times.
✗ Branch 131 not taken.
✓ Branch 133 taken 1 times.
✗ Branch 134 not taken.
✓ Branch 136 taken 1 times.
✗ Branch 137 not taken.
✓ Branch 139 taken 1 times.
✗ Branch 140 not taken.
✓ Branch 142 taken 1 times.
✗ Branch 143 not taken.
✓ Branch 145 taken 1 times.
✗ Branch 146 not taken.
|
3926 | return mRoot.touchLeaf(xyz); |
1560 | } | ||
1561 | |||
1562 | |||
1563 | template<typename RootNodeType> | ||
1564 | inline typename RootNodeType::LeafNodeType* | ||
1565 | Tree<RootNodeType>::probeLeaf(const Coord& xyz) | ||
1566 | { | ||
1567 | 38028 | return mRoot.probeLeaf(xyz); | |
1568 | } | ||
1569 | |||
1570 | |||
1571 | template<typename RootNodeType> | ||
1572 | inline const typename RootNodeType::LeafNodeType* | ||
1573 | Tree<RootNodeType>::probeConstLeaf(const Coord& xyz) const | ||
1574 | { | ||
1575 | 77978 | return mRoot.probeConstLeaf(xyz); | |
1576 | } | ||
1577 | |||
1578 | |||
1579 | template<typename RootNodeType> | ||
1580 | template<typename NodeType> | ||
1581 | inline NodeType* | ||
1582 | Tree<RootNodeType>::probeNode(const Coord& xyz) | ||
1583 | { | ||
1584 | 3475 | return mRoot.template probeNode<NodeType>(xyz); | |
1585 | } | ||
1586 | |||
1587 | |||
1588 | template<typename RootNodeType> | ||
1589 | template<typename NodeType> | ||
1590 | inline const NodeType* | ||
1591 | Tree<RootNodeType>::probeNode(const Coord& xyz) const | ||
1592 | { | ||
1593 | return this->template probeConstNode<NodeType>(xyz); | ||
1594 | } | ||
1595 | |||
1596 | |||
1597 | template<typename RootNodeType> | ||
1598 | template<typename NodeType> | ||
1599 | inline const NodeType* | ||
1600 | Tree<RootNodeType>::probeConstNode(const Coord& xyz) const | ||
1601 | { | ||
1602 | 13504 | return mRoot.template probeConstNode<NodeType>(xyz); | |
1603 | } | ||
1604 | |||
1605 | |||
1606 | //////////////////////////////////////// | ||
1607 | |||
1608 | |||
1609 | template<typename RootNodeType> | ||
1610 | inline void | ||
1611 | Tree<RootNodeType>::clip(const CoordBBox& bbox) | ||
1612 | { | ||
1613 |
1/9✗ Branch 1 not taken.
✗ Branch 2 not taken.
✗ Branch 3 not taken.
✗ Branch 4 not taken.
✓ Branch 5 taken 1 times.
✗ Branch 6 not taken.
✗ Branch 9 not taken.
✗ Branch 10 not taken.
✗ Branch 11 not taken.
|
7 | this->clearAllAccessors(); |
1614 |
1/9✗ Branch 1 not taken.
✗ Branch 2 not taken.
✗ Branch 3 not taken.
✗ Branch 4 not taken.
✓ Branch 5 taken 1 times.
✗ Branch 6 not taken.
✗ Branch 9 not taken.
✗ Branch 10 not taken.
✗ Branch 11 not taken.
|
7 | return mRoot.clip(bbox); |
1615 | } | ||
1616 | |||
1617 | |||
1618 | template<typename RootNodeType> | ||
1619 | inline void | ||
1620 | ✗ | Tree<RootNodeType>::clipUnallocatedNodes() | |
1621 | { | ||
1622 | ✗ | this->clearAllAccessors(); | |
1623 | ✗ | for (LeafIter it = this->beginLeaf(); it; ) { | |
1624 | const LeafNodeType* leaf = it.getLeaf(); | ||
1625 | ++it; // advance the iterator before deleting the leaf node | ||
1626 | ✗ | if (!leaf->isAllocated()) { | |
1627 | this->addTile(/*level=*/0, leaf->origin(), this->background(), /*active=*/false); | ||
1628 | } | ||
1629 | } | ||
1630 | } | ||
1631 | |||
1632 | template<typename RootNodeType> | ||
1633 | inline Index32 | ||
1634 | 4 | Tree<RootNodeType>::unallocatedLeafCount() const | |
1635 | { | ||
1636 | Index32 sum = 0; | ||
1637 |
3/4✓ Branch 0 taken 4 times.
✓ Branch 1 taken 2 times.
✓ Branch 3 taken 4 times.
✗ Branch 4 not taken.
|
12 | for (auto it = this->cbeginLeaf(); it; ++it) if (!it->isAllocated()) ++sum; |
1638 | 4 | return sum; | |
1639 | } | ||
1640 | |||
1641 | |||
1642 | template<typename RootNodeType> | ||
1643 | inline void | ||
1644 | Tree<RootNodeType>::sparseFill(const CoordBBox& bbox, const ValueType& value, bool active) | ||
1645 | { | ||
1646 |
55/93✓ Branch 1 taken 112 times.
✗ Branch 2 not taken.
✗ Branch 3 not taken.
✓ Branch 4 taken 50 times.
✗ Branch 5 not taken.
✗ Branch 6 not taken.
✓ Branch 7 taken 33 times.
✓ Branch 8 taken 1 times.
✗ Branch 9 not taken.
✓ Branch 10 taken 30 times.
✓ Branch 11 taken 1 times.
✗ Branch 12 not taken.
✓ Branch 13 taken 30 times.
✓ Branch 14 taken 1 times.
✗ Branch 15 not taken.
✓ Branch 16 taken 30 times.
✓ Branch 17 taken 1 times.
✗ Branch 18 not taken.
✓ Branch 19 taken 17 times.
✓ Branch 20 taken 1 times.
✗ Branch 21 not taken.
✓ Branch 22 taken 21 times.
✓ Branch 23 taken 1 times.
✗ Branch 24 not taken.
✓ Branch 25 taken 14 times.
✓ Branch 26 taken 1 times.
✗ Branch 27 not taken.
✓ Branch 28 taken 7 times.
✓ Branch 29 taken 1 times.
✗ Branch 30 not taken.
✓ Branch 31 taken 7 times.
✓ Branch 32 taken 1 times.
✗ Branch 33 not taken.
✓ Branch 34 taken 6 times.
✓ Branch 35 taken 1 times.
✗ Branch 36 not taken.
✓ Branch 37 taken 5 times.
✓ Branch 38 taken 1 times.
✗ Branch 39 not taken.
✓ Branch 40 taken 4 times.
✓ Branch 41 taken 1 times.
✗ Branch 42 not taken.
✓ Branch 43 taken 6 times.
✓ Branch 44 taken 1 times.
✗ Branch 45 not taken.
✓ Branch 46 taken 6 times.
✓ Branch 47 taken 1 times.
✗ Branch 48 not taken.
✓ Branch 49 taken 5 times.
✓ Branch 50 taken 1 times.
✗ Branch 51 not taken.
✓ Branch 52 taken 5 times.
✓ Branch 53 taken 1 times.
✗ Branch 54 not taken.
✓ Branch 55 taken 3 times.
✓ Branch 56 taken 1 times.
✗ Branch 57 not taken.
✓ Branch 58 taken 3 times.
✓ Branch 59 taken 1 times.
✗ Branch 60 not taken.
✓ Branch 61 taken 2 times.
✓ Branch 62 taken 1 times.
✗ Branch 63 not taken.
✓ Branch 64 taken 2 times.
✗ Branch 65 not taken.
✓ Branch 67 taken 2 times.
✗ Branch 68 not taken.
✓ Branch 70 taken 2 times.
✗ Branch 71 not taken.
✓ Branch 73 taken 2 times.
✗ Branch 74 not taken.
✓ Branch 76 taken 2 times.
✗ Branch 77 not taken.
✓ Branch 79 taken 2 times.
✗ Branch 80 not taken.
✓ Branch 82 taken 2 times.
✗ Branch 83 not taken.
✓ Branch 85 taken 2 times.
✗ Branch 86 not taken.
✓ Branch 88 taken 2 times.
✗ Branch 89 not taken.
✓ Branch 91 taken 2 times.
✗ Branch 92 not taken.
✓ Branch 94 taken 2 times.
✗ Branch 95 not taken.
✓ Branch 97 taken 2 times.
✗ Branch 98 not taken.
✓ Branch 100 taken 1 times.
✗ Branch 101 not taken.
✓ Branch 103 taken 1 times.
✗ Branch 104 not taken.
✓ Branch 106 taken 1 times.
✗ Branch 107 not taken.
|
669 | this->clearAllAccessors(); |
1647 |
47/85✓ Branch 1 taken 103 times.
✗ Branch 2 not taken.
✗ Branch 3 not taken.
✓ Branch 4 taken 41 times.
✗ Branch 5 not taken.
✗ Branch 6 not taken.
✓ Branch 7 taken 24 times.
✓ Branch 8 taken 1 times.
✗ Branch 9 not taken.
✓ Branch 10 taken 23 times.
✓ Branch 11 taken 1 times.
✗ Branch 12 not taken.
✓ Branch 13 taken 26 times.
✓ Branch 14 taken 1 times.
✗ Branch 15 not taken.
✓ Branch 16 taken 25 times.
✓ Branch 17 taken 1 times.
✗ Branch 18 not taken.
✓ Branch 19 taken 14 times.
✓ Branch 20 taken 1 times.
✗ Branch 21 not taken.
✓ Branch 22 taken 18 times.
✓ Branch 23 taken 1 times.
✗ Branch 24 not taken.
✓ Branch 25 taken 11 times.
✓ Branch 26 taken 1 times.
✗ Branch 27 not taken.
✓ Branch 28 taken 4 times.
✓ Branch 29 taken 1 times.
✗ Branch 30 not taken.
✓ Branch 31 taken 4 times.
✓ Branch 32 taken 1 times.
✗ Branch 33 not taken.
✓ Branch 34 taken 3 times.
✓ Branch 35 taken 1 times.
✗ Branch 36 not taken.
✓ Branch 37 taken 3 times.
✓ Branch 38 taken 1 times.
✗ Branch 39 not taken.
✓ Branch 40 taken 2 times.
✗ Branch 41 not taken.
✓ Branch 43 taken 2 times.
✗ Branch 44 not taken.
✓ Branch 46 taken 2 times.
✗ Branch 47 not taken.
✓ Branch 49 taken 1 times.
✗ Branch 50 not taken.
✓ Branch 52 taken 1 times.
✗ Branch 53 not taken.
✓ Branch 55 taken 1 times.
✗ Branch 56 not taken.
✓ Branch 58 taken 1 times.
✗ Branch 59 not taken.
✓ Branch 61 taken 1 times.
✗ Branch 62 not taken.
✓ Branch 64 taken 1 times.
✗ Branch 65 not taken.
✓ Branch 67 taken 1 times.
✗ Branch 68 not taken.
✓ Branch 70 taken 1 times.
✗ Branch 71 not taken.
✓ Branch 73 taken 1 times.
✗ Branch 74 not taken.
✓ Branch 76 taken 1 times.
✗ Branch 77 not taken.
✓ Branch 79 taken 1 times.
✗ Branch 80 not taken.
✓ Branch 82 taken 1 times.
✗ Branch 83 not taken.
✓ Branch 85 taken 1 times.
✗ Branch 86 not taken.
✓ Branch 88 taken 1 times.
✗ Branch 89 not taken.
✓ Branch 91 taken 1 times.
✗ Branch 92 not taken.
✓ Branch 94 taken 1 times.
✗ Branch 95 not taken.
✓ Branch 97 taken 1 times.
✗ Branch 98 not taken.
✓ Branch 100 taken 1 times.
✗ Branch 101 not taken.
✓ Branch 103 taken 1 times.
✗ Branch 104 not taken.
✓ Branch 106 taken 1 times.
✗ Branch 107 not taken.
|
569 | return mRoot.sparseFill(bbox, value, active); |
1648 | } | ||
1649 | |||
1650 | |||
1651 | template<typename RootNodeType> | ||
1652 | inline void | ||
1653 | Tree<RootNodeType>::denseFill(const CoordBBox& bbox, const ValueType& value, bool active) | ||
1654 | { | ||
1655 |
40/80✓ Branch 1 taken 53 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 47 times.
✗ Branch 5 not taken.
✓ Branch 7 taken 49 times.
✗ Branch 8 not taken.
✓ Branch 10 taken 49 times.
✗ Branch 11 not taken.
✓ Branch 13 taken 51 times.
✗ Branch 14 not taken.
✓ Branch 16 taken 51 times.
✗ Branch 17 not taken.
✓ Branch 19 taken 50 times.
✗ Branch 20 not taken.
✓ Branch 22 taken 50 times.
✗ Branch 23 not taken.
✓ Branch 25 taken 51 times.
✗ Branch 26 not taken.
✓ Branch 28 taken 51 times.
✗ Branch 29 not taken.
✓ Branch 31 taken 57 times.
✗ Branch 32 not taken.
✓ Branch 34 taken 57 times.
✗ Branch 35 not taken.
✓ Branch 37 taken 56 times.
✗ Branch 38 not taken.
✓ Branch 40 taken 56 times.
✗ Branch 41 not taken.
✓ Branch 43 taken 57 times.
✗ Branch 44 not taken.
✓ Branch 46 taken 57 times.
✗ Branch 47 not taken.
✓ Branch 49 taken 65 times.
✗ Branch 50 not taken.
✓ Branch 52 taken 65 times.
✗ Branch 53 not taken.
✓ Branch 55 taken 94 times.
✗ Branch 56 not taken.
✓ Branch 58 taken 94 times.
✗ Branch 59 not taken.
✓ Branch 61 taken 80 times.
✗ Branch 62 not taken.
✓ Branch 64 taken 80 times.
✗ Branch 65 not taken.
✓ Branch 67 taken 49 times.
✗ Branch 68 not taken.
✓ Branch 70 taken 49 times.
✗ Branch 71 not taken.
✓ Branch 73 taken 49 times.
✗ Branch 74 not taken.
✓ Branch 76 taken 49 times.
✗ Branch 77 not taken.
✓ Branch 79 taken 49 times.
✗ Branch 80 not taken.
✓ Branch 82 taken 49 times.
✗ Branch 83 not taken.
✓ Branch 85 taken 295 times.
✗ Branch 86 not taken.
✓ Branch 88 taken 295 times.
✗ Branch 89 not taken.
✓ Branch 91 taken 34 times.
✗ Branch 92 not taken.
✓ Branch 94 taken 34 times.
✗ Branch 95 not taken.
✓ Branch 97 taken 176 times.
✗ Branch 98 not taken.
✓ Branch 100 taken 176 times.
✗ Branch 101 not taken.
✓ Branch 103 taken 89 times.
✗ Branch 104 not taken.
✓ Branch 106 taken 89 times.
✗ Branch 107 not taken.
✓ Branch 109 taken 153 times.
✗ Branch 110 not taken.
✓ Branch 112 taken 153 times.
✗ Branch 113 not taken.
✓ Branch 115 taken 178 times.
✗ Branch 116 not taken.
✓ Branch 118 taken 178 times.
✗ Branch 119 not taken.
|
3464 | this->clearAllAccessors(); |
1656 |
40/80✓ Branch 1 taken 53 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 47 times.
✗ Branch 5 not taken.
✓ Branch 7 taken 49 times.
✗ Branch 8 not taken.
✓ Branch 10 taken 49 times.
✗ Branch 11 not taken.
✓ Branch 13 taken 51 times.
✗ Branch 14 not taken.
✓ Branch 16 taken 51 times.
✗ Branch 17 not taken.
✓ Branch 19 taken 50 times.
✗ Branch 20 not taken.
✓ Branch 22 taken 50 times.
✗ Branch 23 not taken.
✓ Branch 25 taken 51 times.
✗ Branch 26 not taken.
✓ Branch 28 taken 51 times.
✗ Branch 29 not taken.
✓ Branch 31 taken 57 times.
✗ Branch 32 not taken.
✓ Branch 34 taken 57 times.
✗ Branch 35 not taken.
✓ Branch 37 taken 56 times.
✗ Branch 38 not taken.
✓ Branch 40 taken 56 times.
✗ Branch 41 not taken.
✓ Branch 43 taken 57 times.
✗ Branch 44 not taken.
✓ Branch 46 taken 57 times.
✗ Branch 47 not taken.
✓ Branch 49 taken 65 times.
✗ Branch 50 not taken.
✓ Branch 52 taken 65 times.
✗ Branch 53 not taken.
✓ Branch 55 taken 94 times.
✗ Branch 56 not taken.
✓ Branch 58 taken 94 times.
✗ Branch 59 not taken.
✓ Branch 61 taken 80 times.
✗ Branch 62 not taken.
✓ Branch 64 taken 80 times.
✗ Branch 65 not taken.
✓ Branch 67 taken 49 times.
✗ Branch 68 not taken.
✓ Branch 70 taken 49 times.
✗ Branch 71 not taken.
✓ Branch 73 taken 49 times.
✗ Branch 74 not taken.
✓ Branch 76 taken 49 times.
✗ Branch 77 not taken.
✓ Branch 79 taken 49 times.
✗ Branch 80 not taken.
✓ Branch 82 taken 49 times.
✗ Branch 83 not taken.
✓ Branch 85 taken 295 times.
✗ Branch 86 not taken.
✓ Branch 88 taken 295 times.
✗ Branch 89 not taken.
✓ Branch 91 taken 34 times.
✗ Branch 92 not taken.
✓ Branch 94 taken 34 times.
✗ Branch 95 not taken.
✓ Branch 97 taken 176 times.
✗ Branch 98 not taken.
✓ Branch 100 taken 176 times.
✗ Branch 101 not taken.
✓ Branch 103 taken 89 times.
✗ Branch 104 not taken.
✓ Branch 106 taken 89 times.
✗ Branch 107 not taken.
✓ Branch 109 taken 153 times.
✗ Branch 110 not taken.
✓ Branch 112 taken 153 times.
✗ Branch 113 not taken.
✓ Branch 115 taken 178 times.
✗ Branch 116 not taken.
✓ Branch 118 taken 178 times.
✗ Branch 119 not taken.
|
3464 | return mRoot.denseFill(bbox, value, active); |
1657 | } | ||
1658 | |||
1659 | |||
1660 | template<typename RootNodeType> | ||
1661 | inline void | ||
1662 | Tree<RootNodeType>::voxelizeActiveTiles(bool threaded) | ||
1663 | { | ||
1664 |
39/958✓ Branch 1 taken 41 times.
✗ Branch 2 not taken.
✗ Branch 3 not taken.
✓ Branch 4 taken 45 times.
✗ Branch 5 not taken.
✗ Branch 6 not taken.
✓ Branch 7 taken 10 times.
✗ Branch 8 not taken.
✗ Branch 9 not taken.
✓ Branch 10 taken 3 times.
✗ Branch 11 not taken.
✗ Branch 12 not taken.
✓ Branch 13 taken 2 times.
✓ Branch 14 taken 1 times.
✗ Branch 15 not taken.
✓ Branch 16 taken 2 times.
✓ Branch 17 taken 1 times.
✗ Branch 18 not taken.
✓ Branch 19 taken 2 times.
✗ Branch 20 not taken.
✓ Branch 21 taken 1 times.
✓ Branch 22 taken 3 times.
✗ Branch 23 not taken.
✓ Branch 24 taken 2 times.
✓ Branch 25 taken 1 times.
✗ Branch 26 not taken.
✗ Branch 27 not taken.
✓ Branch 28 taken 16 times.
✗ Branch 29 not taken.
✗ Branch 30 not taken.
✓ Branch 31 taken 1 times.
✗ Branch 32 not taken.
✓ Branch 33 taken 1 times.
✓ Branch 34 taken 1 times.
✗ Branch 35 not taken.
✓ Branch 37 taken 2 times.
✗ Branch 38 not taken.
✓ Branch 40 taken 1 times.
✗ Branch 41 not taken.
✗ Branch 42 not taken.
✗ Branch 43 not taken.
✗ Branch 44 not taken.
✗ Branch 45 not taken.
✓ Branch 46 taken 4 times.
✗ Branch 47 not taken.
✓ Branch 49 taken 1 times.
✗ Branch 50 not taken.
✗ Branch 52 not taken.
✗ Branch 53 not taken.
✗ Branch 54 not taken.
✗ Branch 55 not taken.
✗ Branch 56 not taken.
✓ Branch 57 taken 9 times.
✗ Branch 58 not taken.
✗ Branch 59 not taken.
✗ Branch 61 not taken.
✗ Branch 62 not taken.
✗ Branch 64 not taken.
✗ Branch 65 not taken.
✗ Branch 66 not taken.
✗ Branch 67 not taken.
✗ Branch 68 not taken.
✗ Branch 69 not taken.
✗ Branch 70 not taken.
✗ Branch 71 not taken.
✗ Branch 73 not taken.
✗ Branch 74 not taken.
✗ Branch 76 not taken.
✓ Branch 77 taken 13 times.
✗ Branch 78 not taken.
✗ Branch 79 not taken.
✗ Branch 80 not taken.
✗ Branch 82 not taken.
✗ Branch 83 not taken.
✓ Branch 85 taken 1 times.
✗ Branch 86 not taken.
✗ Branch 87 not taken.
✗ Branch 88 not taken.
✗ Branch 89 not taken.
✗ Branch 90 not taken.
✗ Branch 91 not taken.
✗ Branch 92 not taken.
✗ Branch 94 not taken.
✗ Branch 95 not taken.
✗ Branch 97 not taken.
✗ Branch 98 not taken.
✗ Branch 99 not taken.
✗ Branch 100 not taken.
✗ Branch 101 not taken.
✗ Branch 102 not taken.
✗ Branch 103 not taken.
✗ Branch 104 not taken.
✗ Branch 106 not taken.
✗ Branch 107 not taken.
✗ Branch 109 not taken.
✗ Branch 110 not taken.
✗ Branch 111 not taken.
✗ Branch 112 not taken.
✗ Branch 113 not taken.
✗ Branch 114 not taken.
✗ Branch 115 not taken.
✗ Branch 116 not taken.
✗ Branch 118 not taken.
✗ Branch 119 not taken.
✗ Branch 120 not taken.
✗ Branch 121 not taken.
✗ Branch 122 not taken.
✗ Branch 123 not taken.
✗ Branch 124 not taken.
✗ Branch 125 not taken.
✗ Branch 127 not taken.
✗ Branch 128 not taken.
✗ Branch 130 not taken.
✗ Branch 131 not taken.
✗ Branch 132 not taken.
✗ Branch 133 not taken.
✗ Branch 134 not taken.
✓ Branch 135 taken 14 times.
✗ Branch 136 not taken.
✗ Branch 137 not taken.
✗ Branch 139 not taken.
✗ Branch 140 not taken.
✗ Branch 142 not taken.
✗ Branch 143 not taken.
✗ Branch 144 not taken.
✗ Branch 145 not taken.
✗ Branch 146 not taken.
✓ Branch 147 taken 2 times.
✗ Branch 148 not taken.
✗ Branch 149 not taken.
✗ Branch 151 not taken.
✗ Branch 152 not taken.
✗ Branch 154 not taken.
✗ Branch 155 not taken.
✗ Branch 157 not taken.
✗ Branch 158 not taken.
✗ Branch 160 not taken.
✗ Branch 161 not taken.
✗ Branch 163 not taken.
✗ Branch 164 not taken.
✗ Branch 166 not taken.
✗ Branch 167 not taken.
✗ Branch 169 not taken.
✗ Branch 170 not taken.
✗ Branch 172 not taken.
✗ Branch 173 not taken.
✗ Branch 175 not taken.
✗ Branch 176 not taken.
✗ Branch 178 not taken.
✗ Branch 179 not taken.
✗ Branch 181 not taken.
✗ Branch 182 not taken.
✗ Branch 184 not taken.
✗ Branch 185 not taken.
✗ Branch 187 not taken.
✗ Branch 188 not taken.
✗ Branch 190 not taken.
✗ Branch 191 not taken.
✗ Branch 193 not taken.
✗ Branch 194 not taken.
✗ Branch 196 not taken.
✗ Branch 197 not taken.
✗ Branch 199 not taken.
✗ Branch 200 not taken.
✗ Branch 202 not taken.
✗ Branch 203 not taken.
✗ Branch 205 not taken.
✗ Branch 206 not taken.
✗ Branch 208 not taken.
✗ Branch 209 not taken.
✗ Branch 211 not taken.
✗ Branch 212 not taken.
✗ Branch 214 not taken.
✗ Branch 215 not taken.
✗ Branch 217 not taken.
✗ Branch 218 not taken.
✗ Branch 220 not taken.
✗ Branch 221 not taken.
✗ Branch 223 not taken.
✗ Branch 224 not taken.
✗ Branch 226 not taken.
✗ Branch 227 not taken.
✗ Branch 229 not taken.
✗ Branch 230 not taken.
✗ Branch 232 not taken.
✗ Branch 233 not taken.
✗ Branch 235 not taken.
✗ Branch 236 not taken.
✗ Branch 238 not taken.
✗ Branch 239 not taken.
✗ Branch 241 not taken.
✗ Branch 242 not taken.
✗ Branch 244 not taken.
✗ Branch 245 not taken.
✗ Branch 247 not taken.
✗ Branch 248 not taken.
✗ Branch 250 not taken.
✗ Branch 251 not taken.
✗ Branch 253 not taken.
✗ Branch 254 not taken.
✗ Branch 256 not taken.
✗ Branch 257 not taken.
✗ Branch 259 not taken.
✗ Branch 260 not taken.
✗ Branch 262 not taken.
✗ Branch 263 not taken.
✗ Branch 265 not taken.
✗ Branch 266 not taken.
✗ Branch 268 not taken.
✗ Branch 269 not taken.
✗ Branch 271 not taken.
✗ Branch 272 not taken.
✗ Branch 274 not taken.
✗ Branch 275 not taken.
✗ Branch 277 not taken.
✗ Branch 278 not taken.
✗ Branch 280 not taken.
✗ Branch 281 not taken.
✗ Branch 283 not taken.
✗ Branch 284 not taken.
✗ Branch 286 not taken.
✗ Branch 287 not taken.
✗ Branch 289 not taken.
✗ Branch 290 not taken.
✗ Branch 292 not taken.
✗ Branch 293 not taken.
✗ Branch 295 not taken.
✗ Branch 296 not taken.
✗ Branch 298 not taken.
✗ Branch 299 not taken.
✗ Branch 301 not taken.
✗ Branch 302 not taken.
✗ Branch 304 not taken.
✗ Branch 305 not taken.
✗ Branch 307 not taken.
✗ Branch 308 not taken.
✗ Branch 310 not taken.
✗ Branch 311 not taken.
✗ Branch 313 not taken.
✗ Branch 314 not taken.
✗ Branch 316 not taken.
✗ Branch 317 not taken.
✗ Branch 319 not taken.
✗ Branch 320 not taken.
✗ Branch 322 not taken.
✗ Branch 323 not taken.
✗ Branch 325 not taken.
✗ Branch 326 not taken.
✗ Branch 328 not taken.
✗ Branch 329 not taken.
✗ Branch 331 not taken.
✗ Branch 332 not taken.
✓ Branch 334 taken 1 times.
✗ Branch 335 not taken.
✗ Branch 337 not taken.
✗ Branch 338 not taken.
✗ Branch 340 not taken.
✗ Branch 341 not taken.
✗ Branch 343 not taken.
✗ Branch 344 not taken.
✗ Branch 346 not taken.
✗ Branch 347 not taken.
✗ Branch 349 not taken.
✗ Branch 350 not taken.
✗ Branch 352 not taken.
✗ Branch 353 not taken.
✗ Branch 355 not taken.
✗ Branch 356 not taken.
✗ Branch 358 not taken.
✗ Branch 359 not taken.
✗ Branch 361 not taken.
✗ Branch 362 not taken.
✗ Branch 364 not taken.
✗ Branch 365 not taken.
✗ Branch 367 not taken.
✗ Branch 368 not taken.
✗ Branch 370 not taken.
✗ Branch 371 not taken.
✗ Branch 373 not taken.
✗ Branch 374 not taken.
✗ Branch 376 not taken.
✗ Branch 377 not taken.
✗ Branch 379 not taken.
✗ Branch 380 not taken.
✗ Branch 382 not taken.
✗ Branch 383 not taken.
✗ Branch 385 not taken.
✗ Branch 386 not taken.
✗ Branch 388 not taken.
✗ Branch 389 not taken.
✗ Branch 391 not taken.
✗ Branch 392 not taken.
✗ Branch 394 not taken.
✗ Branch 395 not taken.
✗ Branch 397 not taken.
✗ Branch 398 not taken.
✗ Branch 400 not taken.
✗ Branch 401 not taken.
✗ Branch 403 not taken.
✗ Branch 404 not taken.
✗ Branch 406 not taken.
✗ Branch 407 not taken.
✗ Branch 409 not taken.
✗ Branch 410 not taken.
✗ Branch 412 not taken.
✗ Branch 413 not taken.
✗ Branch 415 not taken.
✗ Branch 416 not taken.
✗ Branch 418 not taken.
✗ Branch 419 not taken.
✗ Branch 421 not taken.
✗ Branch 422 not taken.
✗ Branch 424 not taken.
✗ Branch 425 not taken.
✗ Branch 427 not taken.
✗ Branch 428 not taken.
✓ Branch 430 taken 1 times.
✗ Branch 431 not taken.
✗ Branch 433 not taken.
✗ Branch 434 not taken.
✗ Branch 436 not taken.
✗ Branch 437 not taken.
✗ Branch 439 not taken.
✗ Branch 440 not taken.
✗ Branch 442 not taken.
✗ Branch 443 not taken.
✗ Branch 445 not taken.
✗ Branch 446 not taken.
✗ Branch 448 not taken.
✗ Branch 449 not taken.
✗ Branch 451 not taken.
✗ Branch 452 not taken.
✗ Branch 454 not taken.
✗ Branch 455 not taken.
✗ Branch 457 not taken.
✗ Branch 458 not taken.
✗ Branch 460 not taken.
✗ Branch 461 not taken.
✗ Branch 463 not taken.
✗ Branch 464 not taken.
✗ Branch 466 not taken.
✗ Branch 467 not taken.
✗ Branch 469 not taken.
✗ Branch 470 not taken.
✗ Branch 472 not taken.
✗ Branch 473 not taken.
✗ Branch 475 not taken.
✗ Branch 476 not taken.
✗ Branch 478 not taken.
✗ Branch 479 not taken.
✗ Branch 481 not taken.
✗ Branch 482 not taken.
✗ Branch 484 not taken.
✗ Branch 485 not taken.
✗ Branch 487 not taken.
✗ Branch 488 not taken.
✗ Branch 490 not taken.
✗ Branch 491 not taken.
✗ Branch 493 not taken.
✗ Branch 494 not taken.
✗ Branch 496 not taken.
✗ Branch 497 not taken.
✗ Branch 499 not taken.
✗ Branch 500 not taken.
✓ Branch 502 taken 1 times.
✗ Branch 503 not taken.
✗ Branch 505 not taken.
✗ Branch 506 not taken.
✗ Branch 508 not taken.
✗ Branch 509 not taken.
✗ Branch 511 not taken.
✗ Branch 512 not taken.
✗ Branch 514 not taken.
✗ Branch 515 not taken.
✗ Branch 517 not taken.
✗ Branch 518 not taken.
✗ Branch 520 not taken.
✗ Branch 521 not taken.
✗ Branch 523 not taken.
✗ Branch 524 not taken.
✓ Branch 526 taken 2 times.
✗ Branch 527 not taken.
✗ Branch 529 not taken.
✗ Branch 530 not taken.
✗ Branch 532 not taken.
✗ Branch 533 not taken.
✗ Branch 535 not taken.
✗ Branch 536 not taken.
✗ Branch 538 not taken.
✗ Branch 539 not taken.
✗ Branch 541 not taken.
✗ Branch 542 not taken.
✗ Branch 544 not taken.
✗ Branch 545 not taken.
✗ Branch 547 not taken.
✗ Branch 548 not taken.
✗ Branch 550 not taken.
✗ Branch 551 not taken.
✗ Branch 553 not taken.
✗ Branch 554 not taken.
✗ Branch 556 not taken.
✗ Branch 557 not taken.
✗ Branch 559 not taken.
✗ Branch 560 not taken.
✗ Branch 562 not taken.
✗ Branch 563 not taken.
✗ Branch 565 not taken.
✗ Branch 566 not taken.
✗ Branch 568 not taken.
✗ Branch 569 not taken.
✗ Branch 571 not taken.
✗ Branch 572 not taken.
✗ Branch 574 not taken.
✗ Branch 575 not taken.
✗ Branch 577 not taken.
✗ Branch 578 not taken.
✗ Branch 580 not taken.
✗ Branch 581 not taken.
✗ Branch 583 not taken.
✗ Branch 584 not taken.
✗ Branch 586 not taken.
✗ Branch 587 not taken.
✗ Branch 589 not taken.
✗ Branch 590 not taken.
✗ Branch 592 not taken.
✗ Branch 593 not taken.
✗ Branch 595 not taken.
✗ Branch 596 not taken.
✗ Branch 598 not taken.
✗ Branch 599 not taken.
✗ Branch 601 not taken.
✗ Branch 602 not taken.
✗ Branch 604 not taken.
✗ Branch 605 not taken.
✗ Branch 607 not taken.
✗ Branch 608 not taken.
✗ Branch 610 not taken.
✗ Branch 611 not taken.
✗ Branch 613 not taken.
✗ Branch 614 not taken.
✗ Branch 616 not taken.
✗ Branch 617 not taken.
✗ Branch 619 not taken.
✗ Branch 620 not taken.
✓ Branch 622 taken 1 times.
✗ Branch 623 not taken.
✗ Branch 625 not taken.
✗ Branch 626 not taken.
✗ Branch 628 not taken.
✗ Branch 629 not taken.
✗ Branch 631 not taken.
✗ Branch 632 not taken.
✗ Branch 634 not taken.
✗ Branch 635 not taken.
✗ Branch 637 not taken.
✗ Branch 638 not taken.
✗ Branch 640 not taken.
✗ Branch 641 not taken.
✗ Branch 643 not taken.
✗ Branch 644 not taken.
✗ Branch 646 not taken.
✗ Branch 647 not taken.
✗ Branch 649 not taken.
✗ Branch 650 not taken.
✗ Branch 652 not taken.
✗ Branch 653 not taken.
✗ Branch 655 not taken.
✗ Branch 656 not taken.
✗ Branch 658 not taken.
✗ Branch 659 not taken.
✗ Branch 661 not taken.
✗ Branch 662 not taken.
✗ Branch 664 not taken.
✗ Branch 665 not taken.
✗ Branch 667 not taken.
✗ Branch 668 not taken.
✗ Branch 670 not taken.
✗ Branch 671 not taken.
✗ Branch 673 not taken.
✗ Branch 674 not taken.
✗ Branch 676 not taken.
✗ Branch 677 not taken.
✗ Branch 679 not taken.
✗ Branch 680 not taken.
✗ Branch 682 not taken.
✗ Branch 683 not taken.
✗ Branch 685 not taken.
✗ Branch 686 not taken.
✗ Branch 688 not taken.
✗ Branch 689 not taken.
✗ Branch 691 not taken.
✗ Branch 692 not taken.
✗ Branch 694 not taken.
✗ Branch 695 not taken.
✗ Branch 697 not taken.
✗ Branch 698 not taken.
✗ Branch 700 not taken.
✗ Branch 701 not taken.
✗ Branch 703 not taken.
✗ Branch 704 not taken.
✗ Branch 706 not taken.
✗ Branch 707 not taken.
✗ Branch 709 not taken.
✗ Branch 710 not taken.
✗ Branch 712 not taken.
✗ Branch 713 not taken.
✗ Branch 715 not taken.
✗ Branch 716 not taken.
✓ Branch 718 taken 1 times.
✗ Branch 719 not taken.
✗ Branch 721 not taken.
✗ Branch 722 not taken.
✗ Branch 724 not taken.
✗ Branch 725 not taken.
✗ Branch 727 not taken.
✗ Branch 728 not taken.
✗ Branch 730 not taken.
✗ Branch 731 not taken.
✗ Branch 733 not taken.
✗ Branch 734 not taken.
✗ Branch 736 not taken.
✗ Branch 737 not taken.
✗ Branch 739 not taken.
✗ Branch 740 not taken.
✓ Branch 742 taken 4 times.
✗ Branch 743 not taken.
✗ Branch 745 not taken.
✗ Branch 746 not taken.
✗ Branch 748 not taken.
✗ Branch 749 not taken.
✗ Branch 751 not taken.
✗ Branch 752 not taken.
✗ Branch 754 not taken.
✗ Branch 755 not taken.
✗ Branch 757 not taken.
✗ Branch 758 not taken.
✗ Branch 760 not taken.
✗ Branch 761 not taken.
✗ Branch 763 not taken.
✗ Branch 764 not taken.
✓ Branch 766 taken 12 times.
✗ Branch 767 not taken.
✗ Branch 769 not taken.
✗ Branch 770 not taken.
✗ Branch 772 not taken.
✗ Branch 773 not taken.
✗ Branch 775 not taken.
✗ Branch 776 not taken.
✗ Branch 778 not taken.
✗ Branch 779 not taken.
✗ Branch 781 not taken.
✗ Branch 782 not taken.
✗ Branch 784 not taken.
✗ Branch 785 not taken.
✗ Branch 787 not taken.
✗ Branch 788 not taken.
✗ Branch 790 not taken.
✗ Branch 791 not taken.
✗ Branch 793 not taken.
✗ Branch 794 not taken.
✗ Branch 796 not taken.
✗ Branch 797 not taken.
✗ Branch 799 not taken.
✗ Branch 800 not taken.
✗ Branch 802 not taken.
✗ Branch 803 not taken.
✗ Branch 805 not taken.
✗ Branch 806 not taken.
✗ Branch 808 not taken.
✗ Branch 809 not taken.
✗ Branch 811 not taken.
✗ Branch 812 not taken.
✗ Branch 814 not taken.
✗ Branch 815 not taken.
✗ Branch 817 not taken.
✗ Branch 818 not taken.
✗ Branch 820 not taken.
✗ Branch 821 not taken.
✗ Branch 823 not taken.
✗ Branch 824 not taken.
✗ Branch 826 not taken.
✗ Branch 827 not taken.
✗ Branch 829 not taken.
✗ Branch 830 not taken.
✗ Branch 832 not taken.
✗ Branch 833 not taken.
✗ Branch 835 not taken.
✗ Branch 836 not taken.
✗ Branch 838 not taken.
✗ Branch 839 not taken.
✗ Branch 841 not taken.
✗ Branch 842 not taken.
✗ Branch 844 not taken.
✗ Branch 845 not taken.
✗ Branch 847 not taken.
✗ Branch 848 not taken.
✗ Branch 850 not taken.
✗ Branch 851 not taken.
✗ Branch 853 not taken.
✗ Branch 854 not taken.
✗ Branch 856 not taken.
✗ Branch 857 not taken.
✗ Branch 859 not taken.
✗ Branch 860 not taken.
✗ Branch 862 not taken.
✗ Branch 863 not taken.
✗ Branch 865 not taken.
✗ Branch 866 not taken.
✗ Branch 868 not taken.
✗ Branch 869 not taken.
✗ Branch 871 not taken.
✗ Branch 872 not taken.
✗ Branch 874 not taken.
✗ Branch 875 not taken.
✗ Branch 877 not taken.
✗ Branch 878 not taken.
✗ Branch 880 not taken.
✗ Branch 881 not taken.
✗ Branch 883 not taken.
✗ Branch 884 not taken.
✓ Branch 886 taken 2 times.
✗ Branch 887 not taken.
✗ Branch 889 not taken.
✗ Branch 890 not taken.
✗ Branch 892 not taken.
✗ Branch 893 not taken.
✗ Branch 895 not taken.
✗ Branch 896 not taken.
✗ Branch 898 not taken.
✗ Branch 899 not taken.
✗ Branch 901 not taken.
✗ Branch 902 not taken.
✗ Branch 904 not taken.
✗ Branch 905 not taken.
✗ Branch 907 not taken.
✗ Branch 908 not taken.
✗ Branch 910 not taken.
✗ Branch 911 not taken.
✗ Branch 913 not taken.
✗ Branch 914 not taken.
✗ Branch 916 not taken.
✗ Branch 917 not taken.
✗ Branch 919 not taken.
✗ Branch 920 not taken.
✗ Branch 922 not taken.
✗ Branch 923 not taken.
✗ Branch 925 not taken.
✗ Branch 926 not taken.
✗ Branch 928 not taken.
✗ Branch 929 not taken.
✗ Branch 931 not taken.
✗ Branch 932 not taken.
✗ Branch 934 not taken.
✗ Branch 935 not taken.
✗ Branch 937 not taken.
✗ Branch 938 not taken.
✗ Branch 940 not taken.
✗ Branch 941 not taken.
✗ Branch 943 not taken.
✗ Branch 944 not taken.
✗ Branch 946 not taken.
✗ Branch 947 not taken.
✗ Branch 949 not taken.
✗ Branch 950 not taken.
✗ Branch 952 not taken.
✗ Branch 953 not taken.
✗ Branch 955 not taken.
✗ Branch 956 not taken.
✗ Branch 958 not taken.
✗ Branch 959 not taken.
✗ Branch 961 not taken.
✗ Branch 962 not taken.
✗ Branch 964 not taken.
✗ Branch 965 not taken.
✗ Branch 967 not taken.
✗ Branch 968 not taken.
✗ Branch 970 not taken.
✗ Branch 971 not taken.
✗ Branch 973 not taken.
✗ Branch 974 not taken.
✗ Branch 976 not taken.
✗ Branch 977 not taken.
✗ Branch 979 not taken.
✗ Branch 980 not taken.
✗ Branch 982 not taken.
✗ Branch 983 not taken.
✗ Branch 985 not taken.
✗ Branch 986 not taken.
✗ Branch 988 not taken.
✗ Branch 989 not taken.
✗ Branch 991 not taken.
✗ Branch 992 not taken.
✗ Branch 994 not taken.
✗ Branch 995 not taken.
✗ Branch 997 not taken.
✗ Branch 998 not taken.
✗ Branch 1000 not taken.
✗ Branch 1001 not taken.
✗ Branch 1003 not taken.
✗ Branch 1004 not taken.
✗ Branch 1006 not taken.
✗ Branch 1007 not taken.
✗ Branch 1009 not taken.
✗ Branch 1010 not taken.
✗ Branch 1012 not taken.
✗ Branch 1013 not taken.
✗ Branch 1015 not taken.
✗ Branch 1016 not taken.
✗ Branch 1018 not taken.
✗ Branch 1019 not taken.
✗ Branch 1021 not taken.
✗ Branch 1022 not taken.
✗ Branch 1024 not taken.
✗ Branch 1025 not taken.
✗ Branch 1027 not taken.
✗ Branch 1028 not taken.
✓ Branch 1030 taken 1 times.
✗ Branch 1031 not taken.
✗ Branch 1033 not taken.
✗ Branch 1034 not taken.
✗ Branch 1036 not taken.
✗ Branch 1037 not taken.
✗ Branch 1039 not taken.
✗ Branch 1040 not taken.
✗ Branch 1042 not taken.
✗ Branch 1043 not taken.
✗ Branch 1045 not taken.
✗ Branch 1046 not taken.
✗ Branch 1048 not taken.
✗ Branch 1049 not taken.
✗ Branch 1051 not taken.
✗ Branch 1052 not taken.
✓ Branch 1054 taken 1 times.
✗ Branch 1055 not taken.
✗ Branch 1057 not taken.
✗ Branch 1058 not taken.
✗ Branch 1060 not taken.
✗ Branch 1061 not taken.
✗ Branch 1063 not taken.
✗ Branch 1064 not taken.
✗ Branch 1066 not taken.
✗ Branch 1067 not taken.
✗ Branch 1069 not taken.
✗ Branch 1070 not taken.
✗ Branch 1072 not taken.
✗ Branch 1073 not taken.
✗ Branch 1075 not taken.
✗ Branch 1076 not taken.
✗ Branch 1078 not taken.
✗ Branch 1079 not taken.
✗ Branch 1081 not taken.
✗ Branch 1082 not taken.
✗ Branch 1084 not taken.
✗ Branch 1085 not taken.
✗ Branch 1087 not taken.
✗ Branch 1088 not taken.
✗ Branch 1090 not taken.
✗ Branch 1091 not taken.
✗ Branch 1093 not taken.
✗ Branch 1094 not taken.
✗ Branch 1096 not taken.
✗ Branch 1097 not taken.
✗ Branch 1099 not taken.
✗ Branch 1100 not taken.
✗ Branch 1102 not taken.
✗ Branch 1103 not taken.
✗ Branch 1105 not taken.
✗ Branch 1106 not taken.
✗ Branch 1108 not taken.
✗ Branch 1109 not taken.
✗ Branch 1111 not taken.
✗ Branch 1112 not taken.
✗ Branch 1114 not taken.
✗ Branch 1115 not taken.
✗ Branch 1117 not taken.
✗ Branch 1118 not taken.
✗ Branch 1120 not taken.
✗ Branch 1121 not taken.
✗ Branch 1123 not taken.
✗ Branch 1124 not taken.
✓ Branch 1126 taken 1 times.
✗ Branch 1127 not taken.
✗ Branch 1129 not taken.
✗ Branch 1130 not taken.
✗ Branch 1132 not taken.
✗ Branch 1133 not taken.
✗ Branch 1135 not taken.
✗ Branch 1136 not taken.
✗ Branch 1138 not taken.
✗ Branch 1139 not taken.
✗ Branch 1141 not taken.
✗ Branch 1142 not taken.
✗ Branch 1144 not taken.
✗ Branch 1145 not taken.
✗ Branch 1147 not taken.
✗ Branch 1148 not taken.
✗ Branch 1150 not taken.
✗ Branch 1151 not taken.
✗ Branch 1153 not taken.
✗ Branch 1154 not taken.
✗ Branch 1156 not taken.
✗ Branch 1157 not taken.
✗ Branch 1159 not taken.
✗ Branch 1160 not taken.
✗ Branch 1162 not taken.
✗ Branch 1163 not taken.
✗ Branch 1165 not taken.
✗ Branch 1166 not taken.
✗ Branch 1168 not taken.
✗ Branch 1169 not taken.
✗ Branch 1171 not taken.
✗ Branch 1172 not taken.
✗ Branch 1174 not taken.
✗ Branch 1175 not taken.
✗ Branch 1177 not taken.
✗ Branch 1178 not taken.
✗ Branch 1180 not taken.
✗ Branch 1181 not taken.
✗ Branch 1183 not taken.
✗ Branch 1184 not taken.
✗ Branch 1186 not taken.
✗ Branch 1187 not taken.
✗ Branch 1189 not taken.
✗ Branch 1190 not taken.
✗ Branch 1192 not taken.
✗ Branch 1193 not taken.
✗ Branch 1195 not taken.
✗ Branch 1196 not taken.
✓ Branch 1198 taken 5 times.
✗ Branch 1199 not taken.
✗ Branch 1201 not taken.
✗ Branch 1202 not taken.
✗ Branch 1204 not taken.
✗ Branch 1205 not taken.
✗ Branch 1207 not taken.
✗ Branch 1208 not taken.
✗ Branch 1210 not taken.
✗ Branch 1211 not taken.
✗ Branch 1213 not taken.
✗ Branch 1214 not taken.
✗ Branch 1216 not taken.
✗ Branch 1217 not taken.
✗ Branch 1219 not taken.
✗ Branch 1220 not taken.
✗ Branch 1222 not taken.
✗ Branch 1223 not taken.
✗ Branch 1225 not taken.
✗ Branch 1226 not taken.
✗ Branch 1228 not taken.
✗ Branch 1229 not taken.
✗ Branch 1231 not taken.
✗ Branch 1232 not taken.
✗ Branch 1234 not taken.
✗ Branch 1235 not taken.
✗ Branch 1237 not taken.
✗ Branch 1238 not taken.
✗ Branch 1240 not taken.
✗ Branch 1241 not taken.
✗ Branch 1243 not taken.
✗ Branch 1244 not taken.
✗ Branch 1246 not taken.
✗ Branch 1247 not taken.
✗ Branch 1249 not taken.
✗ Branch 1250 not taken.
✗ Branch 1252 not taken.
✗ Branch 1253 not taken.
✗ Branch 1255 not taken.
✗ Branch 1256 not taken.
✗ Branch 1258 not taken.
✗ Branch 1259 not taken.
✗ Branch 1261 not taken.
✗ Branch 1262 not taken.
✗ Branch 1264 not taken.
✗ Branch 1265 not taken.
✗ Branch 1267 not taken.
✗ Branch 1268 not taken.
✗ Branch 1270 not taken.
✗ Branch 1271 not taken.
✗ Branch 1273 not taken.
✗ Branch 1274 not taken.
✗ Branch 1276 not taken.
✗ Branch 1277 not taken.
✗ Branch 1279 not taken.
✗ Branch 1280 not taken.
✗ Branch 1282 not taken.
✗ Branch 1283 not taken.
✗ Branch 1285 not taken.
✗ Branch 1286 not taken.
✗ Branch 1288 not taken.
✗ Branch 1289 not taken.
✗ Branch 1291 not taken.
✗ Branch 1292 not taken.
✗ Branch 1294 not taken.
✗ Branch 1295 not taken.
✗ Branch 1297 not taken.
✗ Branch 1298 not taken.
✗ Branch 1300 not taken.
✗ Branch 1301 not taken.
✗ Branch 1303 not taken.
✗ Branch 1304 not taken.
✗ Branch 1306 not taken.
✗ Branch 1307 not taken.
✗ Branch 1309 not taken.
✗ Branch 1310 not taken.
✗ Branch 1312 not taken.
✗ Branch 1313 not taken.
✗ Branch 1315 not taken.
✗ Branch 1316 not taken.
✗ Branch 1318 not taken.
✗ Branch 1319 not taken.
✗ Branch 1321 not taken.
✗ Branch 1322 not taken.
✗ Branch 1324 not taken.
✗ Branch 1325 not taken.
✗ Branch 1327 not taken.
✗ Branch 1328 not taken.
✗ Branch 1330 not taken.
✗ Branch 1331 not taken.
✗ Branch 1333 not taken.
✗ Branch 1334 not taken.
✗ Branch 1336 not taken.
✗ Branch 1337 not taken.
✗ Branch 1339 not taken.
✗ Branch 1340 not taken.
✗ Branch 1342 not taken.
✗ Branch 1343 not taken.
✗ Branch 1345 not taken.
✗ Branch 1346 not taken.
✗ Branch 1348 not taken.
✗ Branch 1349 not taken.
✗ Branch 1351 not taken.
✗ Branch 1352 not taken.
✗ Branch 1354 not taken.
✗ Branch 1355 not taken.
✗ Branch 1357 not taken.
✗ Branch 1358 not taken.
✗ Branch 1360 not taken.
✗ Branch 1361 not taken.
✗ Branch 1363 not taken.
✗ Branch 1364 not taken.
✗ Branch 1366 not taken.
✗ Branch 1367 not taken.
✗ Branch 1369 not taken.
✗ Branch 1370 not taken.
✗ Branch 1372 not taken.
✗ Branch 1373 not taken.
✗ Branch 1375 not taken.
✗ Branch 1376 not taken.
✗ Branch 1378 not taken.
✗ Branch 1379 not taken.
✗ Branch 1381 not taken.
✗ Branch 1382 not taken.
✗ Branch 1384 not taken.
✗ Branch 1385 not taken.
✗ Branch 1387 not taken.
✗ Branch 1388 not taken.
✗ Branch 1390 not taken.
✗ Branch 1391 not taken.
|
984 | this->clearAllAccessors(); |
1665 |
39/958✓ Branch 1 taken 41 times.
✗ Branch 2 not taken.
✗ Branch 3 not taken.
✓ Branch 4 taken 45 times.
✗ Branch 5 not taken.
✗ Branch 6 not taken.
✓ Branch 7 taken 10 times.
✗ Branch 8 not taken.
✗ Branch 9 not taken.
✓ Branch 10 taken 3 times.
✗ Branch 11 not taken.
✗ Branch 12 not taken.
✓ Branch 13 taken 2 times.
✓ Branch 14 taken 1 times.
✗ Branch 15 not taken.
✓ Branch 16 taken 2 times.
✓ Branch 17 taken 1 times.
✗ Branch 18 not taken.
✓ Branch 19 taken 2 times.
✗ Branch 20 not taken.
✓ Branch 21 taken 1 times.
✓ Branch 22 taken 3 times.
✗ Branch 23 not taken.
✓ Branch 24 taken 2 times.
✓ Branch 25 taken 1 times.
✗ Branch 26 not taken.
✗ Branch 27 not taken.
✓ Branch 28 taken 16 times.
✗ Branch 29 not taken.
✗ Branch 30 not taken.
✓ Branch 31 taken 1 times.
✗ Branch 32 not taken.
✓ Branch 33 taken 1 times.
✓ Branch 34 taken 1 times.
✗ Branch 35 not taken.
✓ Branch 37 taken 2 times.
✗ Branch 38 not taken.
✓ Branch 40 taken 1 times.
✗ Branch 41 not taken.
✗ Branch 42 not taken.
✗ Branch 43 not taken.
✗ Branch 44 not taken.
✗ Branch 45 not taken.
✓ Branch 46 taken 4 times.
✗ Branch 47 not taken.
✓ Branch 49 taken 1 times.
✗ Branch 50 not taken.
✗ Branch 52 not taken.
✗ Branch 53 not taken.
✗ Branch 54 not taken.
✗ Branch 55 not taken.
✗ Branch 56 not taken.
✓ Branch 57 taken 9 times.
✗ Branch 58 not taken.
✗ Branch 59 not taken.
✗ Branch 61 not taken.
✗ Branch 62 not taken.
✗ Branch 64 not taken.
✗ Branch 65 not taken.
✗ Branch 66 not taken.
✗ Branch 67 not taken.
✗ Branch 68 not taken.
✗ Branch 69 not taken.
✗ Branch 70 not taken.
✗ Branch 71 not taken.
✗ Branch 73 not taken.
✗ Branch 74 not taken.
✗ Branch 76 not taken.
✓ Branch 77 taken 13 times.
✗ Branch 78 not taken.
✗ Branch 79 not taken.
✗ Branch 80 not taken.
✗ Branch 82 not taken.
✗ Branch 83 not taken.
✓ Branch 85 taken 1 times.
✗ Branch 86 not taken.
✗ Branch 87 not taken.
✗ Branch 88 not taken.
✗ Branch 89 not taken.
✗ Branch 90 not taken.
✗ Branch 91 not taken.
✗ Branch 92 not taken.
✗ Branch 94 not taken.
✗ Branch 95 not taken.
✗ Branch 97 not taken.
✗ Branch 98 not taken.
✗ Branch 99 not taken.
✗ Branch 100 not taken.
✗ Branch 101 not taken.
✗ Branch 102 not taken.
✗ Branch 103 not taken.
✗ Branch 104 not taken.
✗ Branch 106 not taken.
✗ Branch 107 not taken.
✗ Branch 109 not taken.
✗ Branch 110 not taken.
✗ Branch 111 not taken.
✗ Branch 112 not taken.
✗ Branch 113 not taken.
✗ Branch 114 not taken.
✗ Branch 115 not taken.
✗ Branch 116 not taken.
✗ Branch 118 not taken.
✗ Branch 119 not taken.
✗ Branch 120 not taken.
✗ Branch 121 not taken.
✗ Branch 122 not taken.
✗ Branch 123 not taken.
✗ Branch 124 not taken.
✗ Branch 125 not taken.
✗ Branch 127 not taken.
✗ Branch 128 not taken.
✗ Branch 130 not taken.
✗ Branch 131 not taken.
✗ Branch 132 not taken.
✗ Branch 133 not taken.
✗ Branch 134 not taken.
✓ Branch 135 taken 14 times.
✗ Branch 136 not taken.
✗ Branch 137 not taken.
✗ Branch 139 not taken.
✗ Branch 140 not taken.
✗ Branch 142 not taken.
✗ Branch 143 not taken.
✗ Branch 144 not taken.
✗ Branch 145 not taken.
✗ Branch 146 not taken.
✓ Branch 147 taken 2 times.
✗ Branch 148 not taken.
✗ Branch 149 not taken.
✗ Branch 151 not taken.
✗ Branch 152 not taken.
✗ Branch 154 not taken.
✗ Branch 155 not taken.
✗ Branch 157 not taken.
✗ Branch 158 not taken.
✗ Branch 160 not taken.
✗ Branch 161 not taken.
✗ Branch 163 not taken.
✗ Branch 164 not taken.
✗ Branch 166 not taken.
✗ Branch 167 not taken.
✗ Branch 169 not taken.
✗ Branch 170 not taken.
✗ Branch 172 not taken.
✗ Branch 173 not taken.
✗ Branch 175 not taken.
✗ Branch 176 not taken.
✗ Branch 178 not taken.
✗ Branch 179 not taken.
✗ Branch 181 not taken.
✗ Branch 182 not taken.
✗ Branch 184 not taken.
✗ Branch 185 not taken.
✗ Branch 187 not taken.
✗ Branch 188 not taken.
✗ Branch 190 not taken.
✗ Branch 191 not taken.
✗ Branch 193 not taken.
✗ Branch 194 not taken.
✗ Branch 196 not taken.
✗ Branch 197 not taken.
✗ Branch 199 not taken.
✗ Branch 200 not taken.
✗ Branch 202 not taken.
✗ Branch 203 not taken.
✗ Branch 205 not taken.
✗ Branch 206 not taken.
✗ Branch 208 not taken.
✗ Branch 209 not taken.
✗ Branch 211 not taken.
✗ Branch 212 not taken.
✗ Branch 214 not taken.
✗ Branch 215 not taken.
✗ Branch 217 not taken.
✗ Branch 218 not taken.
✗ Branch 220 not taken.
✗ Branch 221 not taken.
✗ Branch 223 not taken.
✗ Branch 224 not taken.
✗ Branch 226 not taken.
✗ Branch 227 not taken.
✗ Branch 229 not taken.
✗ Branch 230 not taken.
✗ Branch 232 not taken.
✗ Branch 233 not taken.
✗ Branch 235 not taken.
✗ Branch 236 not taken.
✗ Branch 238 not taken.
✗ Branch 239 not taken.
✗ Branch 241 not taken.
✗ Branch 242 not taken.
✗ Branch 244 not taken.
✗ Branch 245 not taken.
✗ Branch 247 not taken.
✗ Branch 248 not taken.
✗ Branch 250 not taken.
✗ Branch 251 not taken.
✗ Branch 253 not taken.
✗ Branch 254 not taken.
✗ Branch 256 not taken.
✗ Branch 257 not taken.
✗ Branch 259 not taken.
✗ Branch 260 not taken.
✗ Branch 262 not taken.
✗ Branch 263 not taken.
✗ Branch 265 not taken.
✗ Branch 266 not taken.
✗ Branch 268 not taken.
✗ Branch 269 not taken.
✗ Branch 271 not taken.
✗ Branch 272 not taken.
✗ Branch 274 not taken.
✗ Branch 275 not taken.
✗ Branch 277 not taken.
✗ Branch 278 not taken.
✗ Branch 280 not taken.
✗ Branch 281 not taken.
✗ Branch 283 not taken.
✗ Branch 284 not taken.
✗ Branch 286 not taken.
✗ Branch 287 not taken.
✗ Branch 289 not taken.
✗ Branch 290 not taken.
✗ Branch 292 not taken.
✗ Branch 293 not taken.
✗ Branch 295 not taken.
✗ Branch 296 not taken.
✗ Branch 298 not taken.
✗ Branch 299 not taken.
✗ Branch 301 not taken.
✗ Branch 302 not taken.
✗ Branch 304 not taken.
✗ Branch 305 not taken.
✗ Branch 307 not taken.
✗ Branch 308 not taken.
✗ Branch 310 not taken.
✗ Branch 311 not taken.
✗ Branch 313 not taken.
✗ Branch 314 not taken.
✗ Branch 316 not taken.
✗ Branch 317 not taken.
✗ Branch 319 not taken.
✗ Branch 320 not taken.
✗ Branch 322 not taken.
✗ Branch 323 not taken.
✗ Branch 325 not taken.
✗ Branch 326 not taken.
✗ Branch 328 not taken.
✗ Branch 329 not taken.
✗ Branch 331 not taken.
✗ Branch 332 not taken.
✓ Branch 334 taken 1 times.
✗ Branch 335 not taken.
✗ Branch 337 not taken.
✗ Branch 338 not taken.
✗ Branch 340 not taken.
✗ Branch 341 not taken.
✗ Branch 343 not taken.
✗ Branch 344 not taken.
✗ Branch 346 not taken.
✗ Branch 347 not taken.
✗ Branch 349 not taken.
✗ Branch 350 not taken.
✗ Branch 352 not taken.
✗ Branch 353 not taken.
✗ Branch 355 not taken.
✗ Branch 356 not taken.
✗ Branch 358 not taken.
✗ Branch 359 not taken.
✗ Branch 361 not taken.
✗ Branch 362 not taken.
✗ Branch 364 not taken.
✗ Branch 365 not taken.
✗ Branch 367 not taken.
✗ Branch 368 not taken.
✗ Branch 370 not taken.
✗ Branch 371 not taken.
✗ Branch 373 not taken.
✗ Branch 374 not taken.
✗ Branch 376 not taken.
✗ Branch 377 not taken.
✗ Branch 379 not taken.
✗ Branch 380 not taken.
✗ Branch 382 not taken.
✗ Branch 383 not taken.
✗ Branch 385 not taken.
✗ Branch 386 not taken.
✗ Branch 388 not taken.
✗ Branch 389 not taken.
✗ Branch 391 not taken.
✗ Branch 392 not taken.
✗ Branch 394 not taken.
✗ Branch 395 not taken.
✗ Branch 397 not taken.
✗ Branch 398 not taken.
✗ Branch 400 not taken.
✗ Branch 401 not taken.
✗ Branch 403 not taken.
✗ Branch 404 not taken.
✗ Branch 406 not taken.
✗ Branch 407 not taken.
✗ Branch 409 not taken.
✗ Branch 410 not taken.
✗ Branch 412 not taken.
✗ Branch 413 not taken.
✗ Branch 415 not taken.
✗ Branch 416 not taken.
✗ Branch 418 not taken.
✗ Branch 419 not taken.
✗ Branch 421 not taken.
✗ Branch 422 not taken.
✗ Branch 424 not taken.
✗ Branch 425 not taken.
✗ Branch 427 not taken.
✗ Branch 428 not taken.
✓ Branch 430 taken 1 times.
✗ Branch 431 not taken.
✗ Branch 433 not taken.
✗ Branch 434 not taken.
✗ Branch 436 not taken.
✗ Branch 437 not taken.
✗ Branch 439 not taken.
✗ Branch 440 not taken.
✗ Branch 442 not taken.
✗ Branch 443 not taken.
✗ Branch 445 not taken.
✗ Branch 446 not taken.
✗ Branch 448 not taken.
✗ Branch 449 not taken.
✗ Branch 451 not taken.
✗ Branch 452 not taken.
✗ Branch 454 not taken.
✗ Branch 455 not taken.
✗ Branch 457 not taken.
✗ Branch 458 not taken.
✗ Branch 460 not taken.
✗ Branch 461 not taken.
✗ Branch 463 not taken.
✗ Branch 464 not taken.
✗ Branch 466 not taken.
✗ Branch 467 not taken.
✗ Branch 469 not taken.
✗ Branch 470 not taken.
✗ Branch 472 not taken.
✗ Branch 473 not taken.
✗ Branch 475 not taken.
✗ Branch 476 not taken.
✗ Branch 478 not taken.
✗ Branch 479 not taken.
✗ Branch 481 not taken.
✗ Branch 482 not taken.
✗ Branch 484 not taken.
✗ Branch 485 not taken.
✗ Branch 487 not taken.
✗ Branch 488 not taken.
✗ Branch 490 not taken.
✗ Branch 491 not taken.
✗ Branch 493 not taken.
✗ Branch 494 not taken.
✗ Branch 496 not taken.
✗ Branch 497 not taken.
✗ Branch 499 not taken.
✗ Branch 500 not taken.
✓ Branch 502 taken 1 times.
✗ Branch 503 not taken.
✗ Branch 505 not taken.
✗ Branch 506 not taken.
✗ Branch 508 not taken.
✗ Branch 509 not taken.
✗ Branch 511 not taken.
✗ Branch 512 not taken.
✗ Branch 514 not taken.
✗ Branch 515 not taken.
✗ Branch 517 not taken.
✗ Branch 518 not taken.
✗ Branch 520 not taken.
✗ Branch 521 not taken.
✗ Branch 523 not taken.
✗ Branch 524 not taken.
✓ Branch 526 taken 2 times.
✗ Branch 527 not taken.
✗ Branch 529 not taken.
✗ Branch 530 not taken.
✗ Branch 532 not taken.
✗ Branch 533 not taken.
✗ Branch 535 not taken.
✗ Branch 536 not taken.
✗ Branch 538 not taken.
✗ Branch 539 not taken.
✗ Branch 541 not taken.
✗ Branch 542 not taken.
✗ Branch 544 not taken.
✗ Branch 545 not taken.
✗ Branch 547 not taken.
✗ Branch 548 not taken.
✗ Branch 550 not taken.
✗ Branch 551 not taken.
✗ Branch 553 not taken.
✗ Branch 554 not taken.
✗ Branch 556 not taken.
✗ Branch 557 not taken.
✗ Branch 559 not taken.
✗ Branch 560 not taken.
✗ Branch 562 not taken.
✗ Branch 563 not taken.
✗ Branch 565 not taken.
✗ Branch 566 not taken.
✗ Branch 568 not taken.
✗ Branch 569 not taken.
✗ Branch 571 not taken.
✗ Branch 572 not taken.
✗ Branch 574 not taken.
✗ Branch 575 not taken.
✗ Branch 577 not taken.
✗ Branch 578 not taken.
✗ Branch 580 not taken.
✗ Branch 581 not taken.
✗ Branch 583 not taken.
✗ Branch 584 not taken.
✗ Branch 586 not taken.
✗ Branch 587 not taken.
✗ Branch 589 not taken.
✗ Branch 590 not taken.
✗ Branch 592 not taken.
✗ Branch 593 not taken.
✗ Branch 595 not taken.
✗ Branch 596 not taken.
✗ Branch 598 not taken.
✗ Branch 599 not taken.
✗ Branch 601 not taken.
✗ Branch 602 not taken.
✗ Branch 604 not taken.
✗ Branch 605 not taken.
✗ Branch 607 not taken.
✗ Branch 608 not taken.
✗ Branch 610 not taken.
✗ Branch 611 not taken.
✗ Branch 613 not taken.
✗ Branch 614 not taken.
✗ Branch 616 not taken.
✗ Branch 617 not taken.
✗ Branch 619 not taken.
✗ Branch 620 not taken.
✓ Branch 622 taken 1 times.
✗ Branch 623 not taken.
✗ Branch 625 not taken.
✗ Branch 626 not taken.
✗ Branch 628 not taken.
✗ Branch 629 not taken.
✗ Branch 631 not taken.
✗ Branch 632 not taken.
✗ Branch 634 not taken.
✗ Branch 635 not taken.
✗ Branch 637 not taken.
✗ Branch 638 not taken.
✗ Branch 640 not taken.
✗ Branch 641 not taken.
✗ Branch 643 not taken.
✗ Branch 644 not taken.
✗ Branch 646 not taken.
✗ Branch 647 not taken.
✗ Branch 649 not taken.
✗ Branch 650 not taken.
✗ Branch 652 not taken.
✗ Branch 653 not taken.
✗ Branch 655 not taken.
✗ Branch 656 not taken.
✗ Branch 658 not taken.
✗ Branch 659 not taken.
✗ Branch 661 not taken.
✗ Branch 662 not taken.
✗ Branch 664 not taken.
✗ Branch 665 not taken.
✗ Branch 667 not taken.
✗ Branch 668 not taken.
✗ Branch 670 not taken.
✗ Branch 671 not taken.
✗ Branch 673 not taken.
✗ Branch 674 not taken.
✗ Branch 676 not taken.
✗ Branch 677 not taken.
✗ Branch 679 not taken.
✗ Branch 680 not taken.
✗ Branch 682 not taken.
✗ Branch 683 not taken.
✗ Branch 685 not taken.
✗ Branch 686 not taken.
✗ Branch 688 not taken.
✗ Branch 689 not taken.
✗ Branch 691 not taken.
✗ Branch 692 not taken.
✗ Branch 694 not taken.
✗ Branch 695 not taken.
✗ Branch 697 not taken.
✗ Branch 698 not taken.
✗ Branch 700 not taken.
✗ Branch 701 not taken.
✗ Branch 703 not taken.
✗ Branch 704 not taken.
✗ Branch 706 not taken.
✗ Branch 707 not taken.
✗ Branch 709 not taken.
✗ Branch 710 not taken.
✗ Branch 712 not taken.
✗ Branch 713 not taken.
✗ Branch 715 not taken.
✗ Branch 716 not taken.
✓ Branch 718 taken 1 times.
✗ Branch 719 not taken.
✗ Branch 721 not taken.
✗ Branch 722 not taken.
✗ Branch 724 not taken.
✗ Branch 725 not taken.
✗ Branch 727 not taken.
✗ Branch 728 not taken.
✗ Branch 730 not taken.
✗ Branch 731 not taken.
✗ Branch 733 not taken.
✗ Branch 734 not taken.
✗ Branch 736 not taken.
✗ Branch 737 not taken.
✗ Branch 739 not taken.
✗ Branch 740 not taken.
✓ Branch 742 taken 4 times.
✗ Branch 743 not taken.
✗ Branch 745 not taken.
✗ Branch 746 not taken.
✗ Branch 748 not taken.
✗ Branch 749 not taken.
✗ Branch 751 not taken.
✗ Branch 752 not taken.
✗ Branch 754 not taken.
✗ Branch 755 not taken.
✗ Branch 757 not taken.
✗ Branch 758 not taken.
✗ Branch 760 not taken.
✗ Branch 761 not taken.
✗ Branch 763 not taken.
✗ Branch 764 not taken.
✓ Branch 766 taken 12 times.
✗ Branch 767 not taken.
✗ Branch 769 not taken.
✗ Branch 770 not taken.
✗ Branch 772 not taken.
✗ Branch 773 not taken.
✗ Branch 775 not taken.
✗ Branch 776 not taken.
✗ Branch 778 not taken.
✗ Branch 779 not taken.
✗ Branch 781 not taken.
✗ Branch 782 not taken.
✗ Branch 784 not taken.
✗ Branch 785 not taken.
✗ Branch 787 not taken.
✗ Branch 788 not taken.
✗ Branch 790 not taken.
✗ Branch 791 not taken.
✗ Branch 793 not taken.
✗ Branch 794 not taken.
✗ Branch 796 not taken.
✗ Branch 797 not taken.
✗ Branch 799 not taken.
✗ Branch 800 not taken.
✗ Branch 802 not taken.
✗ Branch 803 not taken.
✗ Branch 805 not taken.
✗ Branch 806 not taken.
✗ Branch 808 not taken.
✗ Branch 809 not taken.
✗ Branch 811 not taken.
✗ Branch 812 not taken.
✗ Branch 814 not taken.
✗ Branch 815 not taken.
✗ Branch 817 not taken.
✗ Branch 818 not taken.
✗ Branch 820 not taken.
✗ Branch 821 not taken.
✗ Branch 823 not taken.
✗ Branch 824 not taken.
✗ Branch 826 not taken.
✗ Branch 827 not taken.
✗ Branch 829 not taken.
✗ Branch 830 not taken.
✗ Branch 832 not taken.
✗ Branch 833 not taken.
✗ Branch 835 not taken.
✗ Branch 836 not taken.
✗ Branch 838 not taken.
✗ Branch 839 not taken.
✗ Branch 841 not taken.
✗ Branch 842 not taken.
✗ Branch 844 not taken.
✗ Branch 845 not taken.
✗ Branch 847 not taken.
✗ Branch 848 not taken.
✗ Branch 850 not taken.
✗ Branch 851 not taken.
✗ Branch 853 not taken.
✗ Branch 854 not taken.
✗ Branch 856 not taken.
✗ Branch 857 not taken.
✗ Branch 859 not taken.
✗ Branch 860 not taken.
✗ Branch 862 not taken.
✗ Branch 863 not taken.
✗ Branch 865 not taken.
✗ Branch 866 not taken.
✗ Branch 868 not taken.
✗ Branch 869 not taken.
✗ Branch 871 not taken.
✗ Branch 872 not taken.
✗ Branch 874 not taken.
✗ Branch 875 not taken.
✗ Branch 877 not taken.
✗ Branch 878 not taken.
✗ Branch 880 not taken.
✗ Branch 881 not taken.
✗ Branch 883 not taken.
✗ Branch 884 not taken.
✓ Branch 886 taken 2 times.
✗ Branch 887 not taken.
✗ Branch 889 not taken.
✗ Branch 890 not taken.
✗ Branch 892 not taken.
✗ Branch 893 not taken.
✗ Branch 895 not taken.
✗ Branch 896 not taken.
✗ Branch 898 not taken.
✗ Branch 899 not taken.
✗ Branch 901 not taken.
✗ Branch 902 not taken.
✗ Branch 904 not taken.
✗ Branch 905 not taken.
✗ Branch 907 not taken.
✗ Branch 908 not taken.
✗ Branch 910 not taken.
✗ Branch 911 not taken.
✗ Branch 913 not taken.
✗ Branch 914 not taken.
✗ Branch 916 not taken.
✗ Branch 917 not taken.
✗ Branch 919 not taken.
✗ Branch 920 not taken.
✗ Branch 922 not taken.
✗ Branch 923 not taken.
✗ Branch 925 not taken.
✗ Branch 926 not taken.
✗ Branch 928 not taken.
✗ Branch 929 not taken.
✗ Branch 931 not taken.
✗ Branch 932 not taken.
✗ Branch 934 not taken.
✗ Branch 935 not taken.
✗ Branch 937 not taken.
✗ Branch 938 not taken.
✗ Branch 940 not taken.
✗ Branch 941 not taken.
✗ Branch 943 not taken.
✗ Branch 944 not taken.
✗ Branch 946 not taken.
✗ Branch 947 not taken.
✗ Branch 949 not taken.
✗ Branch 950 not taken.
✗ Branch 952 not taken.
✗ Branch 953 not taken.
✗ Branch 955 not taken.
✗ Branch 956 not taken.
✗ Branch 958 not taken.
✗ Branch 959 not taken.
✗ Branch 961 not taken.
✗ Branch 962 not taken.
✗ Branch 964 not taken.
✗ Branch 965 not taken.
✗ Branch 967 not taken.
✗ Branch 968 not taken.
✗ Branch 970 not taken.
✗ Branch 971 not taken.
✗ Branch 973 not taken.
✗ Branch 974 not taken.
✗ Branch 976 not taken.
✗ Branch 977 not taken.
✗ Branch 979 not taken.
✗ Branch 980 not taken.
✗ Branch 982 not taken.
✗ Branch 983 not taken.
✗ Branch 985 not taken.
✗ Branch 986 not taken.
✗ Branch 988 not taken.
✗ Branch 989 not taken.
✗ Branch 991 not taken.
✗ Branch 992 not taken.
✗ Branch 994 not taken.
✗ Branch 995 not taken.
✗ Branch 997 not taken.
✗ Branch 998 not taken.
✗ Branch 1000 not taken.
✗ Branch 1001 not taken.
✗ Branch 1003 not taken.
✗ Branch 1004 not taken.
✗ Branch 1006 not taken.
✗ Branch 1007 not taken.
✗ Branch 1009 not taken.
✗ Branch 1010 not taken.
✗ Branch 1012 not taken.
✗ Branch 1013 not taken.
✗ Branch 1015 not taken.
✗ Branch 1016 not taken.
✗ Branch 1018 not taken.
✗ Branch 1019 not taken.
✗ Branch 1021 not taken.
✗ Branch 1022 not taken.
✗ Branch 1024 not taken.
✗ Branch 1025 not taken.
✗ Branch 1027 not taken.
✗ Branch 1028 not taken.
✓ Branch 1030 taken 1 times.
✗ Branch 1031 not taken.
✗ Branch 1033 not taken.
✗ Branch 1034 not taken.
✗ Branch 1036 not taken.
✗ Branch 1037 not taken.
✗ Branch 1039 not taken.
✗ Branch 1040 not taken.
✗ Branch 1042 not taken.
✗ Branch 1043 not taken.
✗ Branch 1045 not taken.
✗ Branch 1046 not taken.
✗ Branch 1048 not taken.
✗ Branch 1049 not taken.
✗ Branch 1051 not taken.
✗ Branch 1052 not taken.
✓ Branch 1054 taken 1 times.
✗ Branch 1055 not taken.
✗ Branch 1057 not taken.
✗ Branch 1058 not taken.
✗ Branch 1060 not taken.
✗ Branch 1061 not taken.
✗ Branch 1063 not taken.
✗ Branch 1064 not taken.
✗ Branch 1066 not taken.
✗ Branch 1067 not taken.
✗ Branch 1069 not taken.
✗ Branch 1070 not taken.
✗ Branch 1072 not taken.
✗ Branch 1073 not taken.
✗ Branch 1075 not taken.
✗ Branch 1076 not taken.
✗ Branch 1078 not taken.
✗ Branch 1079 not taken.
✗ Branch 1081 not taken.
✗ Branch 1082 not taken.
✗ Branch 1084 not taken.
✗ Branch 1085 not taken.
✗ Branch 1087 not taken.
✗ Branch 1088 not taken.
✗ Branch 1090 not taken.
✗ Branch 1091 not taken.
✗ Branch 1093 not taken.
✗ Branch 1094 not taken.
✗ Branch 1096 not taken.
✗ Branch 1097 not taken.
✗ Branch 1099 not taken.
✗ Branch 1100 not taken.
✗ Branch 1102 not taken.
✗ Branch 1103 not taken.
✗ Branch 1105 not taken.
✗ Branch 1106 not taken.
✗ Branch 1108 not taken.
✗ Branch 1109 not taken.
✗ Branch 1111 not taken.
✗ Branch 1112 not taken.
✗ Branch 1114 not taken.
✗ Branch 1115 not taken.
✗ Branch 1117 not taken.
✗ Branch 1118 not taken.
✗ Branch 1120 not taken.
✗ Branch 1121 not taken.
✗ Branch 1123 not taken.
✗ Branch 1124 not taken.
✓ Branch 1126 taken 1 times.
✗ Branch 1127 not taken.
✗ Branch 1129 not taken.
✗ Branch 1130 not taken.
✗ Branch 1132 not taken.
✗ Branch 1133 not taken.
✗ Branch 1135 not taken.
✗ Branch 1136 not taken.
✗ Branch 1138 not taken.
✗ Branch 1139 not taken.
✗ Branch 1141 not taken.
✗ Branch 1142 not taken.
✗ Branch 1144 not taken.
✗ Branch 1145 not taken.
✗ Branch 1147 not taken.
✗ Branch 1148 not taken.
✗ Branch 1150 not taken.
✗ Branch 1151 not taken.
✗ Branch 1153 not taken.
✗ Branch 1154 not taken.
✗ Branch 1156 not taken.
✗ Branch 1157 not taken.
✗ Branch 1159 not taken.
✗ Branch 1160 not taken.
✗ Branch 1162 not taken.
✗ Branch 1163 not taken.
✗ Branch 1165 not taken.
✗ Branch 1166 not taken.
✗ Branch 1168 not taken.
✗ Branch 1169 not taken.
✗ Branch 1171 not taken.
✗ Branch 1172 not taken.
✗ Branch 1174 not taken.
✗ Branch 1175 not taken.
✗ Branch 1177 not taken.
✗ Branch 1178 not taken.
✗ Branch 1180 not taken.
✗ Branch 1181 not taken.
✗ Branch 1183 not taken.
✗ Branch 1184 not taken.
✗ Branch 1186 not taken.
✗ Branch 1187 not taken.
✗ Branch 1189 not taken.
✗ Branch 1190 not taken.
✗ Branch 1192 not taken.
✗ Branch 1193 not taken.
✗ Branch 1195 not taken.
✗ Branch 1196 not taken.
✓ Branch 1198 taken 5 times.
✗ Branch 1199 not taken.
✗ Branch 1201 not taken.
✗ Branch 1202 not taken.
✗ Branch 1204 not taken.
✗ Branch 1205 not taken.
✗ Branch 1207 not taken.
✗ Branch 1208 not taken.
✗ Branch 1210 not taken.
✗ Branch 1211 not taken.
✗ Branch 1213 not taken.
✗ Branch 1214 not taken.
✗ Branch 1216 not taken.
✗ Branch 1217 not taken.
✗ Branch 1219 not taken.
✗ Branch 1220 not taken.
✗ Branch 1222 not taken.
✗ Branch 1223 not taken.
✗ Branch 1225 not taken.
✗ Branch 1226 not taken.
✗ Branch 1228 not taken.
✗ Branch 1229 not taken.
✗ Branch 1231 not taken.
✗ Branch 1232 not taken.
✗ Branch 1234 not taken.
✗ Branch 1235 not taken.
✗ Branch 1237 not taken.
✗ Branch 1238 not taken.
✗ Branch 1240 not taken.
✗ Branch 1241 not taken.
✗ Branch 1243 not taken.
✗ Branch 1244 not taken.
✗ Branch 1246 not taken.
✗ Branch 1247 not taken.
✗ Branch 1249 not taken.
✗ Branch 1250 not taken.
✗ Branch 1252 not taken.
✗ Branch 1253 not taken.
✗ Branch 1255 not taken.
✗ Branch 1256 not taken.
✗ Branch 1258 not taken.
✗ Branch 1259 not taken.
✗ Branch 1261 not taken.
✗ Branch 1262 not taken.
✗ Branch 1264 not taken.
✗ Branch 1265 not taken.
✗ Branch 1267 not taken.
✗ Branch 1268 not taken.
✗ Branch 1270 not taken.
✗ Branch 1271 not taken.
✗ Branch 1273 not taken.
✗ Branch 1274 not taken.
✗ Branch 1276 not taken.
✗ Branch 1277 not taken.
✗ Branch 1279 not taken.
✗ Branch 1280 not taken.
✗ Branch 1282 not taken.
✗ Branch 1283 not taken.
✗ Branch 1285 not taken.
✗ Branch 1286 not taken.
✗ Branch 1288 not taken.
✗ Branch 1289 not taken.
✗ Branch 1291 not taken.
✗ Branch 1292 not taken.
✗ Branch 1294 not taken.
✗ Branch 1295 not taken.
✗ Branch 1297 not taken.
✗ Branch 1298 not taken.
✗ Branch 1300 not taken.
✗ Branch 1301 not taken.
✗ Branch 1303 not taken.
✗ Branch 1304 not taken.
✗ Branch 1306 not taken.
✗ Branch 1307 not taken.
✗ Branch 1309 not taken.
✗ Branch 1310 not taken.
✗ Branch 1312 not taken.
✗ Branch 1313 not taken.
✗ Branch 1315 not taken.
✗ Branch 1316 not taken.
✗ Branch 1318 not taken.
✗ Branch 1319 not taken.
✗ Branch 1321 not taken.
✗ Branch 1322 not taken.
✗ Branch 1324 not taken.
✗ Branch 1325 not taken.
✗ Branch 1327 not taken.
✗ Branch 1328 not taken.
✗ Branch 1330 not taken.
✗ Branch 1331 not taken.
✗ Branch 1333 not taken.
✗ Branch 1334 not taken.
✗ Branch 1336 not taken.
✗ Branch 1337 not taken.
✗ Branch 1339 not taken.
✗ Branch 1340 not taken.
✗ Branch 1342 not taken.
✗ Branch 1343 not taken.
✗ Branch 1345 not taken.
✗ Branch 1346 not taken.
✗ Branch 1348 not taken.
✗ Branch 1349 not taken.
✗ Branch 1351 not taken.
✗ Branch 1352 not taken.
✗ Branch 1354 not taken.
✗ Branch 1355 not taken.
✗ Branch 1357 not taken.
✗ Branch 1358 not taken.
✗ Branch 1360 not taken.
✗ Branch 1361 not taken.
✗ Branch 1363 not taken.
✗ Branch 1364 not taken.
✗ Branch 1366 not taken.
✗ Branch 1367 not taken.
✗ Branch 1369 not taken.
✗ Branch 1370 not taken.
✗ Branch 1372 not taken.
✗ Branch 1373 not taken.
✗ Branch 1375 not taken.
✗ Branch 1376 not taken.
✗ Branch 1378 not taken.
✗ Branch 1379 not taken.
✗ Branch 1381 not taken.
✗ Branch 1382 not taken.
✗ Branch 1384 not taken.
✗ Branch 1385 not taken.
✗ Branch 1387 not taken.
✗ Branch 1388 not taken.
✗ Branch 1390 not taken.
✗ Branch 1391 not taken.
|
984 | mRoot.voxelizeActiveTiles(threaded); |
1666 | 219 | } | |
1667 | |||
1668 | |||
1669 | template<typename RootNodeType> | ||
1670 | Metadata::Ptr | ||
1671 | ✗ | Tree<RootNodeType>::getBackgroundValue() const | |
1672 | { | ||
1673 | ✗ | Metadata::Ptr result; | |
1674 | ✗ | if (Metadata::isRegisteredType(valueType())) { | |
1675 | using MetadataT = TypedMetadata<ValueType>; | ||
1676 | ✗ | result = Metadata::createMetadata(valueType()); | |
1677 | ✗ | if (result->typeName() == MetadataT::staticTypeName()) { | |
1678 | MetadataT* m = static_cast<MetadataT*>(result.get()); | ||
1679 | ✗ | m->value() = mRoot.background(); | |
1680 | } | ||
1681 | } | ||
1682 | ✗ | return result; | |
1683 | } | ||
1684 | |||
1685 | |||
1686 | //////////////////////////////////////// | ||
1687 | |||
1688 | |||
1689 | template<typename RootNodeType> | ||
1690 | inline void | ||
1691 | 17999 | Tree<RootNodeType>::merge(Tree& other, MergePolicy policy) | |
1692 | { | ||
1693 | 17999 | this->clearAllAccessors(); | |
1694 | 17999 | other.clearAllAccessors(); | |
1695 |
3/4✓ Branch 0 taken 17147 times.
✓ Branch 1 taken 2 times.
✓ Branch 2 taken 8 times.
✗ Branch 3 not taken.
|
17999 | switch (policy) { |
1696 | 17985 | case MERGE_ACTIVE_STATES: | |
1697 | 17985 | mRoot.template merge<MERGE_ACTIVE_STATES>(other.mRoot); break; | |
1698 | 4 | case MERGE_NODES: | |
1699 | 4 | mRoot.template merge<MERGE_NODES>(other.mRoot); break; | |
1700 | 10 | case MERGE_ACTIVE_STATES_AND_NODES: | |
1701 | 10 | mRoot.template merge<MERGE_ACTIVE_STATES_AND_NODES>(other.mRoot); break; | |
1702 | } | ||
1703 | 17999 | } | |
1704 | |||
1705 | |||
1706 | template<typename RootNodeType> | ||
1707 | template<typename OtherRootNodeType> | ||
1708 | inline void | ||
1709 | Tree<RootNodeType>::topologyUnion(const Tree<OtherRootNodeType>& other, const bool preserveTiles) | ||
1710 | { | ||
1711 |
71/174✓ Branch 1 taken 2708 times.
✗ Branch 2 not taken.
✗ Branch 3 not taken.
✓ Branch 4 taken 2507 times.
✗ Branch 5 not taken.
✗ Branch 6 not taken.
✓ Branch 7 taken 59 times.
✗ Branch 8 not taken.
✓ Branch 9 taken 1 times.
✓ Branch 10 taken 14 times.
✗ Branch 11 not taken.
✗ Branch 12 not taken.
✓ Branch 13 taken 77 times.
✗ Branch 14 not taken.
✗ Branch 15 not taken.
✓ Branch 16 taken 71 times.
✗ Branch 17 not taken.
✗ Branch 18 not taken.
✓ Branch 19 taken 6 times.
✓ Branch 20 taken 2 times.
✗ Branch 21 not taken.
✓ Branch 22 taken 72 times.
✓ Branch 23 taken 1 times.
✗ Branch 24 not taken.
✓ Branch 25 taken 73 times.
✓ Branch 26 taken 1 times.
✗ Branch 27 not taken.
✓ Branch 28 taken 23 times.
✓ Branch 29 taken 1 times.
✗ Branch 30 not taken.
✓ Branch 31 taken 62 times.
✓ Branch 32 taken 1 times.
✗ Branch 33 not taken.
✓ Branch 34 taken 63 times.
✓ Branch 35 taken 1 times.
✗ Branch 36 not taken.
✗ Branch 37 not taken.
✓ Branch 38 taken 4 times.
✗ Branch 39 not taken.
✓ Branch 40 taken 69 times.
✓ Branch 41 taken 19 times.
✗ Branch 42 not taken.
✓ Branch 43 taken 71 times.
✓ Branch 44 taken 1 times.
✗ Branch 45 not taken.
✓ Branch 46 taken 3 times.
✓ Branch 47 taken 1 times.
✗ Branch 48 not taken.
✓ Branch 49 taken 65 times.
✓ Branch 50 taken 1 times.
✗ Branch 51 not taken.
✓ Branch 52 taken 65 times.
✓ Branch 53 taken 1 times.
✗ Branch 54 not taken.
✗ Branch 55 not taken.
✓ Branch 56 taken 1 times.
✗ Branch 57 not taken.
✓ Branch 58 taken 67 times.
✓ Branch 59 taken 1 times.
✗ Branch 60 not taken.
✓ Branch 61 taken 66 times.
✓ Branch 62 taken 7 times.
✗ Branch 63 not taken.
✗ Branch 64 not taken.
✓ Branch 65 taken 27 times.
✗ Branch 66 not taken.
✓ Branch 67 taken 69 times.
✗ Branch 68 not taken.
✓ Branch 70 taken 70 times.
✗ Branch 71 not taken.
✗ Branch 73 not taken.
✗ Branch 74 not taken.
✓ Branch 76 taken 75 times.
✗ Branch 77 not taken.
✓ Branch 79 taken 75 times.
✗ Branch 80 not taken.
✓ Branch 82 taken 1 times.
✗ Branch 83 not taken.
✓ Branch 85 taken 116 times.
✗ Branch 86 not taken.
✓ Branch 88 taken 116 times.
✗ Branch 89 not taken.
✗ Branch 91 not taken.
✗ Branch 92 not taken.
✓ Branch 94 taken 131 times.
✗ Branch 95 not taken.
✓ Branch 97 taken 131 times.
✗ Branch 98 not taken.
✓ Branch 100 taken 1 times.
✗ Branch 101 not taken.
✓ Branch 103 taken 59 times.
✗ Branch 104 not taken.
✓ Branch 106 taken 49 times.
✗ Branch 107 not taken.
✗ Branch 109 not taken.
✗ Branch 110 not taken.
✓ Branch 112 taken 49 times.
✗ Branch 113 not taken.
✓ Branch 115 taken 49 times.
✗ Branch 116 not taken.
✓ Branch 118 taken 13 times.
✗ Branch 119 not taken.
✓ Branch 121 taken 49 times.
✗ Branch 122 not taken.
✓ Branch 124 taken 49 times.
✗ Branch 125 not taken.
✗ Branch 127 not taken.
✗ Branch 128 not taken.
✓ Branch 130 taken 449 times.
✗ Branch 131 not taken.
✓ Branch 133 taken 449 times.
✗ Branch 134 not taken.
✗ Branch 136 not taken.
✗ Branch 137 not taken.
✓ Branch 139 taken 34 times.
✗ Branch 140 not taken.
✓ Branch 142 taken 34 times.
✗ Branch 143 not taken.
✗ Branch 145 not taken.
✗ Branch 146 not taken.
✓ Branch 148 taken 283 times.
✗ Branch 149 not taken.
✓ Branch 151 taken 283 times.
✗ Branch 152 not taken.
✗ Branch 154 not taken.
✗ Branch 155 not taken.
✓ Branch 157 taken 99 times.
✗ Branch 158 not taken.
✓ Branch 160 taken 99 times.
✗ Branch 161 not taken.
✗ Branch 163 not taken.
✗ Branch 164 not taken.
✓ Branch 166 taken 273 times.
✗ Branch 167 not taken.
✓ Branch 169 taken 273 times.
✗ Branch 170 not taken.
✗ Branch 172 not taken.
✗ Branch 173 not taken.
✓ Branch 175 taken 398 times.
✗ Branch 176 not taken.
✓ Branch 178 taken 398 times.
✗ Branch 179 not taken.
✗ Branch 181 not taken.
✗ Branch 182 not taken.
✓ Branch 184 taken 720 times.
✗ Branch 185 not taken.
✓ Branch 187 taken 720 times.
✗ Branch 188 not taken.
✗ Branch 190 not taken.
✗ Branch 191 not taken.
✗ Branch 193 not taken.
✗ Branch 194 not taken.
✗ Branch 196 not taken.
✗ Branch 197 not taken.
✓ Branch 199 taken 14 times.
✗ Branch 200 not taken.
✓ Branch 202 taken 14 times.
✗ Branch 203 not taken.
✗ Branch 205 not taken.
✗ Branch 206 not taken.
✗ Branch 208 not taken.
✗ Branch 209 not taken.
✗ Branch 211 not taken.
✗ Branch 212 not taken.
✗ Branch 214 not taken.
✗ Branch 215 not taken.
✓ Branch 217 taken 2 times.
✗ Branch 218 not taken.
✓ Branch 220 taken 2 times.
✗ Branch 221 not taken.
✗ Branch 223 not taken.
✗ Branch 224 not taken.
✗ Branch 226 not taken.
✗ Branch 227 not taken.
|
12224 | this->clearAllAccessors(); |
1712 |
71/174✓ Branch 1 taken 2708 times.
✗ Branch 2 not taken.
✗ Branch 3 not taken.
✓ Branch 4 taken 2507 times.
✗ Branch 5 not taken.
✗ Branch 6 not taken.
✓ Branch 7 taken 59 times.
✗ Branch 8 not taken.
✓ Branch 9 taken 1 times.
✓ Branch 10 taken 14 times.
✗ Branch 11 not taken.
✗ Branch 12 not taken.
✓ Branch 13 taken 77 times.
✗ Branch 14 not taken.
✗ Branch 15 not taken.
✓ Branch 16 taken 71 times.
✗ Branch 17 not taken.
✗ Branch 18 not taken.
✓ Branch 19 taken 6 times.
✓ Branch 20 taken 2 times.
✗ Branch 21 not taken.
✓ Branch 22 taken 72 times.
✓ Branch 23 taken 1 times.
✗ Branch 24 not taken.
✓ Branch 25 taken 73 times.
✓ Branch 26 taken 1 times.
✗ Branch 27 not taken.
✓ Branch 28 taken 23 times.
✓ Branch 29 taken 1 times.
✗ Branch 30 not taken.
✓ Branch 31 taken 62 times.
✓ Branch 32 taken 1 times.
✗ Branch 33 not taken.
✓ Branch 34 taken 63 times.
✓ Branch 35 taken 1 times.
✗ Branch 36 not taken.
✗ Branch 37 not taken.
✓ Branch 38 taken 4 times.
✗ Branch 39 not taken.
✓ Branch 40 taken 69 times.
✓ Branch 41 taken 19 times.
✗ Branch 42 not taken.
✓ Branch 43 taken 71 times.
✓ Branch 44 taken 1 times.
✗ Branch 45 not taken.
✓ Branch 46 taken 3 times.
✓ Branch 47 taken 1 times.
✗ Branch 48 not taken.
✓ Branch 49 taken 65 times.
✓ Branch 50 taken 1 times.
✗ Branch 51 not taken.
✓ Branch 52 taken 65 times.
✓ Branch 53 taken 1 times.
✗ Branch 54 not taken.
✗ Branch 55 not taken.
✓ Branch 56 taken 1 times.
✗ Branch 57 not taken.
✓ Branch 58 taken 67 times.
✓ Branch 59 taken 1 times.
✗ Branch 60 not taken.
✓ Branch 61 taken 66 times.
✓ Branch 62 taken 7 times.
✗ Branch 63 not taken.
✗ Branch 64 not taken.
✓ Branch 65 taken 27 times.
✗ Branch 66 not taken.
✓ Branch 67 taken 69 times.
✗ Branch 68 not taken.
✓ Branch 70 taken 70 times.
✗ Branch 71 not taken.
✗ Branch 73 not taken.
✗ Branch 74 not taken.
✓ Branch 76 taken 75 times.
✗ Branch 77 not taken.
✓ Branch 79 taken 75 times.
✗ Branch 80 not taken.
✓ Branch 82 taken 1 times.
✗ Branch 83 not taken.
✓ Branch 85 taken 116 times.
✗ Branch 86 not taken.
✓ Branch 88 taken 116 times.
✗ Branch 89 not taken.
✗ Branch 91 not taken.
✗ Branch 92 not taken.
✓ Branch 94 taken 131 times.
✗ Branch 95 not taken.
✓ Branch 97 taken 131 times.
✗ Branch 98 not taken.
✓ Branch 100 taken 1 times.
✗ Branch 101 not taken.
✓ Branch 103 taken 59 times.
✗ Branch 104 not taken.
✓ Branch 106 taken 49 times.
✗ Branch 107 not taken.
✗ Branch 109 not taken.
✗ Branch 110 not taken.
✓ Branch 112 taken 49 times.
✗ Branch 113 not taken.
✓ Branch 115 taken 49 times.
✗ Branch 116 not taken.
✓ Branch 118 taken 13 times.
✗ Branch 119 not taken.
✓ Branch 121 taken 49 times.
✗ Branch 122 not taken.
✓ Branch 124 taken 49 times.
✗ Branch 125 not taken.
✗ Branch 127 not taken.
✗ Branch 128 not taken.
✓ Branch 130 taken 449 times.
✗ Branch 131 not taken.
✓ Branch 133 taken 449 times.
✗ Branch 134 not taken.
✗ Branch 136 not taken.
✗ Branch 137 not taken.
✓ Branch 139 taken 34 times.
✗ Branch 140 not taken.
✓ Branch 142 taken 34 times.
✗ Branch 143 not taken.
✗ Branch 145 not taken.
✗ Branch 146 not taken.
✓ Branch 148 taken 283 times.
✗ Branch 149 not taken.
✓ Branch 151 taken 283 times.
✗ Branch 152 not taken.
✗ Branch 154 not taken.
✗ Branch 155 not taken.
✓ Branch 157 taken 99 times.
✗ Branch 158 not taken.
✓ Branch 160 taken 99 times.
✗ Branch 161 not taken.
✗ Branch 163 not taken.
✗ Branch 164 not taken.
✓ Branch 166 taken 273 times.
✗ Branch 167 not taken.
✓ Branch 169 taken 273 times.
✗ Branch 170 not taken.
✗ Branch 172 not taken.
✗ Branch 173 not taken.
✓ Branch 175 taken 398 times.
✗ Branch 176 not taken.
✓ Branch 178 taken 398 times.
✗ Branch 179 not taken.
✗ Branch 181 not taken.
✗ Branch 182 not taken.
✓ Branch 184 taken 720 times.
✗ Branch 185 not taken.
✓ Branch 187 taken 720 times.
✗ Branch 188 not taken.
✗ Branch 190 not taken.
✗ Branch 191 not taken.
✗ Branch 193 not taken.
✗ Branch 194 not taken.
✗ Branch 196 not taken.
✗ Branch 197 not taken.
✓ Branch 199 taken 14 times.
✗ Branch 200 not taken.
✓ Branch 202 taken 14 times.
✗ Branch 203 not taken.
✗ Branch 205 not taken.
✗ Branch 206 not taken.
✗ Branch 208 not taken.
✗ Branch 209 not taken.
✗ Branch 211 not taken.
✗ Branch 212 not taken.
✗ Branch 214 not taken.
✗ Branch 215 not taken.
✓ Branch 217 taken 2 times.
✗ Branch 218 not taken.
✓ Branch 220 taken 2 times.
✗ Branch 221 not taken.
✗ Branch 223 not taken.
✗ Branch 224 not taken.
✗ Branch 226 not taken.
✗ Branch 227 not taken.
|
12224 | mRoot.topologyUnion(other.root(), preserveTiles); |
1713 | 5094 | } | |
1714 | |||
1715 | template<typename RootNodeType> | ||
1716 | template<typename OtherRootNodeType> | ||
1717 | inline void | ||
1718 | Tree<RootNodeType>::topologyIntersection(const Tree<OtherRootNodeType>& other) | ||
1719 | { | ||
1720 |
21/928✓ Branch 1 taken 244 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
✓ Branch 7 taken 1 times.
✗ Branch 8 not taken.
✓ Branch 10 taken 1 times.
✗ Branch 11 not taken.
✓ Branch 13 taken 5 times.
✗ Branch 14 not taken.
✓ Branch 16 taken 1 times.
✗ Branch 17 not taken.
✓ Branch 19 taken 1 times.
✗ Branch 20 not taken.
✓ Branch 22 taken 1 times.
✗ Branch 23 not taken.
✓ Branch 25 taken 1 times.
✗ Branch 26 not taken.
✓ Branch 28 taken 4 times.
✗ Branch 29 not taken.
✓ Branch 31 taken 1 times.
✗ Branch 32 not taken.
✗ Branch 34 not taken.
✗ Branch 35 not taken.
✗ Branch 37 not taken.
✗ Branch 38 not taken.
✗ Branch 40 not taken.
✗ Branch 41 not taken.
✓ Branch 43 taken 10 times.
✗ Branch 44 not taken.
✗ Branch 46 not taken.
✗ Branch 47 not taken.
✗ Branch 49 not taken.
✗ Branch 50 not taken.
✗ Branch 52 not taken.
✗ Branch 53 not taken.
✗ Branch 55 not taken.
✗ Branch 56 not taken.
✓ Branch 58 taken 13 times.
✗ Branch 59 not taken.
✗ Branch 61 not taken.
✗ Branch 62 not taken.
✗ Branch 64 not taken.
✗ Branch 65 not taken.
✗ Branch 67 not taken.
✗ Branch 68 not taken.
✓ Branch 70 taken 1 times.
✗ Branch 71 not taken.
✗ Branch 73 not taken.
✗ Branch 74 not taken.
✗ Branch 76 not taken.
✗ Branch 77 not taken.
✗ Branch 79 not taken.
✗ Branch 80 not taken.
✗ Branch 82 not taken.
✗ Branch 83 not taken.
✗ Branch 85 not taken.
✗ Branch 86 not taken.
✗ Branch 88 not taken.
✗ Branch 89 not taken.
✗ Branch 91 not taken.
✗ Branch 92 not taken.
✗ Branch 94 not taken.
✗ Branch 95 not taken.
✗ Branch 97 not taken.
✗ Branch 98 not taken.
✗ Branch 100 not taken.
✗ Branch 101 not taken.
✗ Branch 103 not taken.
✗ Branch 104 not taken.
✗ Branch 106 not taken.
✗ Branch 107 not taken.
✗ Branch 109 not taken.
✗ Branch 110 not taken.
✗ Branch 112 not taken.
✗ Branch 113 not taken.
✗ Branch 115 not taken.
✗ Branch 116 not taken.
✗ Branch 118 not taken.
✗ Branch 119 not taken.
✗ Branch 121 not taken.
✗ Branch 122 not taken.
✗ Branch 124 not taken.
✗ Branch 125 not taken.
✗ Branch 127 not taken.
✗ Branch 128 not taken.
✗ Branch 130 not taken.
✗ Branch 131 not taken.
✗ Branch 133 not taken.
✗ Branch 134 not taken.
✗ Branch 136 not taken.
✗ Branch 137 not taken.
✗ Branch 139 not taken.
✗ Branch 140 not taken.
✗ Branch 142 not taken.
✗ Branch 143 not taken.
✗ Branch 145 not taken.
✗ Branch 146 not taken.
✗ Branch 148 not taken.
✗ Branch 149 not taken.
✗ Branch 151 not taken.
✗ Branch 152 not taken.
✗ Branch 154 not taken.
✗ Branch 155 not taken.
✗ Branch 157 not taken.
✗ Branch 158 not taken.
✗ Branch 160 not taken.
✗ Branch 161 not taken.
✗ Branch 163 not taken.
✗ Branch 164 not taken.
✗ Branch 166 not taken.
✗ Branch 167 not taken.
✗ Branch 169 not taken.
✗ Branch 170 not taken.
✗ Branch 172 not taken.
✗ Branch 173 not taken.
✗ Branch 175 not taken.
✗ Branch 176 not taken.
✗ Branch 178 not taken.
✗ Branch 179 not taken.
✗ Branch 181 not taken.
✗ Branch 182 not taken.
✗ Branch 184 not taken.
✗ Branch 185 not taken.
✗ Branch 187 not taken.
✗ Branch 188 not taken.
✗ Branch 190 not taken.
✗ Branch 191 not taken.
✗ Branch 193 not taken.
✗ Branch 194 not taken.
✗ Branch 196 not taken.
✗ Branch 197 not taken.
✗ Branch 199 not taken.
✗ Branch 200 not taken.
✗ Branch 202 not taken.
✗ Branch 203 not taken.
✗ Branch 205 not taken.
✗ Branch 206 not taken.
✗ Branch 208 not taken.
✗ Branch 209 not taken.
✗ Branch 211 not taken.
✗ Branch 212 not taken.
✓ Branch 214 taken 2 times.
✗ Branch 215 not taken.
✗ Branch 217 not taken.
✗ Branch 218 not taken.
✗ Branch 220 not taken.
✗ Branch 221 not taken.
✗ Branch 223 not taken.
✗ Branch 224 not taken.
✗ Branch 226 not taken.
✗ Branch 227 not taken.
✗ Branch 229 not taken.
✗ Branch 230 not taken.
✗ Branch 232 not taken.
✗ Branch 233 not taken.
✗ Branch 235 not taken.
✗ Branch 236 not taken.
✗ Branch 238 not taken.
✗ Branch 239 not taken.
✗ Branch 241 not taken.
✗ Branch 242 not taken.
✗ Branch 244 not taken.
✗ Branch 245 not taken.
✗ Branch 247 not taken.
✗ Branch 248 not taken.
✗ Branch 250 not taken.
✗ Branch 251 not taken.
✗ Branch 253 not taken.
✗ Branch 254 not taken.
✗ Branch 256 not taken.
✗ Branch 257 not taken.
✗ Branch 259 not taken.
✗ Branch 260 not taken.
✗ Branch 262 not taken.
✗ Branch 263 not taken.
✗ Branch 265 not taken.
✗ Branch 266 not taken.
✗ Branch 268 not taken.
✗ Branch 269 not taken.
✗ Branch 271 not taken.
✗ Branch 272 not taken.
✗ Branch 274 not taken.
✗ Branch 275 not taken.
✗ Branch 277 not taken.
✗ Branch 278 not taken.
✗ Branch 280 not taken.
✗ Branch 281 not taken.
✗ Branch 283 not taken.
✗ Branch 284 not taken.
✗ Branch 286 not taken.
✗ Branch 287 not taken.
✗ Branch 289 not taken.
✗ Branch 290 not taken.
✗ Branch 292 not taken.
✗ Branch 293 not taken.
✗ Branch 295 not taken.
✗ Branch 296 not taken.
✗ Branch 298 not taken.
✗ Branch 299 not taken.
✗ Branch 301 not taken.
✗ Branch 302 not taken.
✗ Branch 304 not taken.
✗ Branch 305 not taken.
✗ Branch 307 not taken.
✗ Branch 308 not taken.
✗ Branch 310 not taken.
✗ Branch 311 not taken.
✗ Branch 313 not taken.
✗ Branch 314 not taken.
✗ Branch 316 not taken.
✗ Branch 317 not taken.
✗ Branch 319 not taken.
✗ Branch 320 not taken.
✗ Branch 322 not taken.
✗ Branch 323 not taken.
✗ Branch 325 not taken.
✗ Branch 326 not taken.
✗ Branch 328 not taken.
✗ Branch 329 not taken.
✗ Branch 331 not taken.
✗ Branch 332 not taken.
✓ Branch 334 taken 1 times.
✗ Branch 335 not taken.
✗ Branch 337 not taken.
✗ Branch 338 not taken.
✗ Branch 340 not taken.
✗ Branch 341 not taken.
✗ Branch 343 not taken.
✗ Branch 344 not taken.
✗ Branch 346 not taken.
✗ Branch 347 not taken.
✗ Branch 349 not taken.
✗ Branch 350 not taken.
✗ Branch 352 not taken.
✗ Branch 353 not taken.
✗ Branch 355 not taken.
✗ Branch 356 not taken.
✗ Branch 358 not taken.
✗ Branch 359 not taken.
✗ Branch 361 not taken.
✗ Branch 362 not taken.
✗ Branch 364 not taken.
✗ Branch 365 not taken.
✗ Branch 367 not taken.
✗ Branch 368 not taken.
✗ Branch 370 not taken.
✗ Branch 371 not taken.
✗ Branch 373 not taken.
✗ Branch 374 not taken.
✗ Branch 376 not taken.
✗ Branch 377 not taken.
✗ Branch 379 not taken.
✗ Branch 380 not taken.
✗ Branch 382 not taken.
✗ Branch 383 not taken.
✗ Branch 385 not taken.
✗ Branch 386 not taken.
✗ Branch 388 not taken.
✗ Branch 389 not taken.
✗ Branch 391 not taken.
✗ Branch 392 not taken.
✗ Branch 394 not taken.
✗ Branch 395 not taken.
✗ Branch 397 not taken.
✗ Branch 398 not taken.
✗ Branch 400 not taken.
✗ Branch 401 not taken.
✗ Branch 403 not taken.
✗ Branch 404 not taken.
✗ Branch 406 not taken.
✗ Branch 407 not taken.
✗ Branch 409 not taken.
✗ Branch 410 not taken.
✗ Branch 412 not taken.
✗ Branch 413 not taken.
✗ Branch 415 not taken.
✗ Branch 416 not taken.
✗ Branch 418 not taken.
✗ Branch 419 not taken.
✗ Branch 421 not taken.
✗ Branch 422 not taken.
✗ Branch 424 not taken.
✗ Branch 425 not taken.
✗ Branch 427 not taken.
✗ Branch 428 not taken.
✗ Branch 430 not taken.
✗ Branch 431 not taken.
✗ Branch 433 not taken.
✗ Branch 434 not taken.
✗ Branch 436 not taken.
✗ Branch 437 not taken.
✗ Branch 439 not taken.
✗ Branch 440 not taken.
✗ Branch 442 not taken.
✗ Branch 443 not taken.
✗ Branch 445 not taken.
✗ Branch 446 not taken.
✗ Branch 448 not taken.
✗ Branch 449 not taken.
✗ Branch 451 not taken.
✗ Branch 452 not taken.
✗ Branch 454 not taken.
✗ Branch 455 not taken.
✗ Branch 457 not taken.
✗ Branch 458 not taken.
✗ Branch 460 not taken.
✗ Branch 461 not taken.
✗ Branch 463 not taken.
✗ Branch 464 not taken.
✗ Branch 466 not taken.
✗ Branch 467 not taken.
✗ Branch 469 not taken.
✗ Branch 470 not taken.
✗ Branch 472 not taken.
✗ Branch 473 not taken.
✗ Branch 475 not taken.
✗ Branch 476 not taken.
✗ Branch 478 not taken.
✗ Branch 479 not taken.
✗ Branch 481 not taken.
✗ Branch 482 not taken.
✗ Branch 484 not taken.
✗ Branch 485 not taken.
✗ Branch 487 not taken.
✗ Branch 488 not taken.
✗ Branch 490 not taken.
✗ Branch 491 not taken.
✗ Branch 493 not taken.
✗ Branch 494 not taken.
✗ Branch 496 not taken.
✗ Branch 497 not taken.
✗ Branch 499 not taken.
✗ Branch 500 not taken.
✓ Branch 502 taken 1 times.
✗ Branch 503 not taken.
✗ Branch 505 not taken.
✗ Branch 506 not taken.
✗ Branch 508 not taken.
✗ Branch 509 not taken.
✗ Branch 511 not taken.
✗ Branch 512 not taken.
✗ Branch 514 not taken.
✗ Branch 515 not taken.
✗ Branch 517 not taken.
✗ Branch 518 not taken.
✗ Branch 520 not taken.
✗ Branch 521 not taken.
✗ Branch 523 not taken.
✗ Branch 524 not taken.
✓ Branch 526 taken 2 times.
✗ Branch 527 not taken.
✗ Branch 529 not taken.
✗ Branch 530 not taken.
✗ Branch 532 not taken.
✗ Branch 533 not taken.
✗ Branch 535 not taken.
✗ Branch 536 not taken.
✗ Branch 538 not taken.
✗ Branch 539 not taken.
✗ Branch 541 not taken.
✗ Branch 542 not taken.
✗ Branch 544 not taken.
✗ Branch 545 not taken.
✗ Branch 547 not taken.
✗ Branch 548 not taken.
✗ Branch 550 not taken.
✗ Branch 551 not taken.
✗ Branch 553 not taken.
✗ Branch 554 not taken.
✗ Branch 556 not taken.
✗ Branch 557 not taken.
✗ Branch 559 not taken.
✗ Branch 560 not taken.
✗ Branch 562 not taken.
✗ Branch 563 not taken.
✗ Branch 565 not taken.
✗ Branch 566 not taken.
✗ Branch 568 not taken.
✗ Branch 569 not taken.
✗ Branch 571 not taken.
✗ Branch 572 not taken.
✗ Branch 574 not taken.
✗ Branch 575 not taken.
✗ Branch 577 not taken.
✗ Branch 578 not taken.
✗ Branch 580 not taken.
✗ Branch 581 not taken.
✗ Branch 583 not taken.
✗ Branch 584 not taken.
✗ Branch 586 not taken.
✗ Branch 587 not taken.
✗ Branch 589 not taken.
✗ Branch 590 not taken.
✗ Branch 592 not taken.
✗ Branch 593 not taken.
✗ Branch 595 not taken.
✗ Branch 596 not taken.
✗ Branch 598 not taken.
✗ Branch 599 not taken.
✗ Branch 601 not taken.
✗ Branch 602 not taken.
✗ Branch 604 not taken.
✗ Branch 605 not taken.
✗ Branch 607 not taken.
✗ Branch 608 not taken.
✗ Branch 610 not taken.
✗ Branch 611 not taken.
✗ Branch 613 not taken.
✗ Branch 614 not taken.
✗ Branch 616 not taken.
✗ Branch 617 not taken.
✗ Branch 619 not taken.
✗ Branch 620 not taken.
✗ Branch 622 not taken.
✗ Branch 623 not taken.
✗ Branch 625 not taken.
✗ Branch 626 not taken.
✗ Branch 628 not taken.
✗ Branch 629 not taken.
✗ Branch 631 not taken.
✗ Branch 632 not taken.
✗ Branch 634 not taken.
✗ Branch 635 not taken.
✗ Branch 637 not taken.
✗ Branch 638 not taken.
✗ Branch 640 not taken.
✗ Branch 641 not taken.
✗ Branch 643 not taken.
✗ Branch 644 not taken.
✗ Branch 646 not taken.
✗ Branch 647 not taken.
✗ Branch 649 not taken.
✗ Branch 650 not taken.
✗ Branch 652 not taken.
✗ Branch 653 not taken.
✗ Branch 655 not taken.
✗ Branch 656 not taken.
✗ Branch 658 not taken.
✗ Branch 659 not taken.
✗ Branch 661 not taken.
✗ Branch 662 not taken.
✗ Branch 664 not taken.
✗ Branch 665 not taken.
✗ Branch 667 not taken.
✗ Branch 668 not taken.
✗ Branch 670 not taken.
✗ Branch 671 not taken.
✗ Branch 673 not taken.
✗ Branch 674 not taken.
✗ Branch 676 not taken.
✗ Branch 677 not taken.
✗ Branch 679 not taken.
✗ Branch 680 not taken.
✗ Branch 682 not taken.
✗ Branch 683 not taken.
✗ Branch 685 not taken.
✗ Branch 686 not taken.
✗ Branch 688 not taken.
✗ Branch 689 not taken.
✗ Branch 691 not taken.
✗ Branch 692 not taken.
✗ Branch 694 not taken.
✗ Branch 695 not taken.
✗ Branch 697 not taken.
✗ Branch 698 not taken.
✗ Branch 700 not taken.
✗ Branch 701 not taken.
✗ Branch 703 not taken.
✗ Branch 704 not taken.
✗ Branch 706 not taken.
✗ Branch 707 not taken.
✗ Branch 709 not taken.
✗ Branch 710 not taken.
✗ Branch 712 not taken.
✗ Branch 713 not taken.
✗ Branch 715 not taken.
✗ Branch 716 not taken.
✓ Branch 718 taken 1 times.
✗ Branch 719 not taken.
✗ Branch 721 not taken.
✗ Branch 722 not taken.
✗ Branch 724 not taken.
✗ Branch 725 not taken.
✗ Branch 727 not taken.
✗ Branch 728 not taken.
✗ Branch 730 not taken.
✗ Branch 731 not taken.
✗ Branch 733 not taken.
✗ Branch 734 not taken.
✗ Branch 736 not taken.
✗ Branch 737 not taken.
✗ Branch 739 not taken.
✗ Branch 740 not taken.
✗ Branch 742 not taken.
✗ Branch 743 not taken.
✗ Branch 745 not taken.
✗ Branch 746 not taken.
✗ Branch 748 not taken.
✗ Branch 749 not taken.
✗ Branch 751 not taken.
✗ Branch 752 not taken.
✗ Branch 754 not taken.
✗ Branch 755 not taken.
✗ Branch 757 not taken.
✗ Branch 758 not taken.
✗ Branch 760 not taken.
✗ Branch 761 not taken.
✗ Branch 763 not taken.
✗ Branch 764 not taken.
✗ Branch 766 not taken.
✗ Branch 767 not taken.
✗ Branch 769 not taken.
✗ Branch 770 not taken.
✗ Branch 772 not taken.
✗ Branch 773 not taken.
✗ Branch 775 not taken.
✗ Branch 776 not taken.
✗ Branch 778 not taken.
✗ Branch 779 not taken.
✗ Branch 781 not taken.
✗ Branch 782 not taken.
✗ Branch 784 not taken.
✗ Branch 785 not taken.
✗ Branch 787 not taken.
✗ Branch 788 not taken.
✗ Branch 790 not taken.
✗ Branch 791 not taken.
✗ Branch 793 not taken.
✗ Branch 794 not taken.
✗ Branch 796 not taken.
✗ Branch 797 not taken.
✗ Branch 799 not taken.
✗ Branch 800 not taken.
✗ Branch 802 not taken.
✗ Branch 803 not taken.
✗ Branch 805 not taken.
✗ Branch 806 not taken.
✗ Branch 808 not taken.
✗ Branch 809 not taken.
✗ Branch 811 not taken.
✗ Branch 812 not taken.
✗ Branch 814 not taken.
✗ Branch 815 not taken.
✗ Branch 817 not taken.
✗ Branch 818 not taken.
✗ Branch 820 not taken.
✗ Branch 821 not taken.
✗ Branch 823 not taken.
✗ Branch 824 not taken.
✗ Branch 826 not taken.
✗ Branch 827 not taken.
✗ Branch 829 not taken.
✗ Branch 830 not taken.
✗ Branch 832 not taken.
✗ Branch 833 not taken.
✗ Branch 835 not taken.
✗ Branch 836 not taken.
✗ Branch 838 not taken.
✗ Branch 839 not taken.
✗ Branch 841 not taken.
✗ Branch 842 not taken.
✗ Branch 844 not taken.
✗ Branch 845 not taken.
✗ Branch 847 not taken.
✗ Branch 848 not taken.
✗ Branch 850 not taken.
✗ Branch 851 not taken.
✗ Branch 853 not taken.
✗ Branch 854 not taken.
✗ Branch 856 not taken.
✗ Branch 857 not taken.
✗ Branch 859 not taken.
✗ Branch 860 not taken.
✗ Branch 862 not taken.
✗ Branch 863 not taken.
✗ Branch 865 not taken.
✗ Branch 866 not taken.
✗ Branch 868 not taken.
✗ Branch 869 not taken.
✗ Branch 871 not taken.
✗ Branch 872 not taken.
✗ Branch 874 not taken.
✗ Branch 875 not taken.
✗ Branch 877 not taken.
✗ Branch 878 not taken.
✗ Branch 880 not taken.
✗ Branch 881 not taken.
✗ Branch 883 not taken.
✗ Branch 884 not taken.
✓ Branch 886 taken 2 times.
✗ Branch 887 not taken.
✗ Branch 889 not taken.
✗ Branch 890 not taken.
✗ Branch 892 not taken.
✗ Branch 893 not taken.
✗ Branch 895 not taken.
✗ Branch 896 not taken.
✗ Branch 898 not taken.
✗ Branch 899 not taken.
✗ Branch 901 not taken.
✗ Branch 902 not taken.
✗ Branch 904 not taken.
✗ Branch 905 not taken.
✗ Branch 907 not taken.
✗ Branch 908 not taken.
✗ Branch 910 not taken.
✗ Branch 911 not taken.
✗ Branch 913 not taken.
✗ Branch 914 not taken.
✗ Branch 916 not taken.
✗ Branch 917 not taken.
✗ Branch 919 not taken.
✗ Branch 920 not taken.
✗ Branch 922 not taken.
✗ Branch 923 not taken.
✗ Branch 925 not taken.
✗ Branch 926 not taken.
✗ Branch 928 not taken.
✗ Branch 929 not taken.
✗ Branch 931 not taken.
✗ Branch 932 not taken.
✗ Branch 934 not taken.
✗ Branch 935 not taken.
✗ Branch 937 not taken.
✗ Branch 938 not taken.
✗ Branch 940 not taken.
✗ Branch 941 not taken.
✗ Branch 943 not taken.
✗ Branch 944 not taken.
✗ Branch 946 not taken.
✗ Branch 947 not taken.
✗ Branch 949 not taken.
✗ Branch 950 not taken.
✗ Branch 952 not taken.
✗ Branch 953 not taken.
✗ Branch 955 not taken.
✗ Branch 956 not taken.
✗ Branch 958 not taken.
✗ Branch 959 not taken.
✗ Branch 961 not taken.
✗ Branch 962 not taken.
✗ Branch 964 not taken.
✗ Branch 965 not taken.
✗ Branch 967 not taken.
✗ Branch 968 not taken.
✗ Branch 970 not taken.
✗ Branch 971 not taken.
✗ Branch 973 not taken.
✗ Branch 974 not taken.
✗ Branch 976 not taken.
✗ Branch 977 not taken.
✗ Branch 979 not taken.
✗ Branch 980 not taken.
✗ Branch 982 not taken.
✗ Branch 983 not taken.
✗ Branch 985 not taken.
✗ Branch 986 not taken.
✗ Branch 988 not taken.
✗ Branch 989 not taken.
✗ Branch 991 not taken.
✗ Branch 992 not taken.
✗ Branch 994 not taken.
✗ Branch 995 not taken.
✗ Branch 997 not taken.
✗ Branch 998 not taken.
✗ Branch 1000 not taken.
✗ Branch 1001 not taken.
✗ Branch 1003 not taken.
✗ Branch 1004 not taken.
✗ Branch 1006 not taken.
✗ Branch 1007 not taken.
✗ Branch 1009 not taken.
✗ Branch 1010 not taken.
✗ Branch 1012 not taken.
✗ Branch 1013 not taken.
✗ Branch 1015 not taken.
✗ Branch 1016 not taken.
✗ Branch 1018 not taken.
✗ Branch 1019 not taken.
✗ Branch 1021 not taken.
✗ Branch 1022 not taken.
✗ Branch 1024 not taken.
✗ Branch 1025 not taken.
✗ Branch 1027 not taken.
✗ Branch 1028 not taken.
✗ Branch 1030 not taken.
✗ Branch 1031 not taken.
✗ Branch 1033 not taken.
✗ Branch 1034 not taken.
✗ Branch 1036 not taken.
✗ Branch 1037 not taken.
✗ Branch 1039 not taken.
✗ Branch 1040 not taken.
✗ Branch 1042 not taken.
✗ Branch 1043 not taken.
✗ Branch 1045 not taken.
✗ Branch 1046 not taken.
✗ Branch 1048 not taken.
✗ Branch 1049 not taken.
✗ Branch 1051 not taken.
✗ Branch 1052 not taken.
✗ Branch 1054 not taken.
✗ Branch 1055 not taken.
✗ Branch 1057 not taken.
✗ Branch 1058 not taken.
✗ Branch 1060 not taken.
✗ Branch 1061 not taken.
✗ Branch 1063 not taken.
✗ Branch 1064 not taken.
✗ Branch 1066 not taken.
✗ Branch 1067 not taken.
✗ Branch 1069 not taken.
✗ Branch 1070 not taken.
✗ Branch 1072 not taken.
✗ Branch 1073 not taken.
✗ Branch 1075 not taken.
✗ Branch 1076 not taken.
✗ Branch 1078 not taken.
✗ Branch 1079 not taken.
✗ Branch 1081 not taken.
✗ Branch 1082 not taken.
✗ Branch 1084 not taken.
✗ Branch 1085 not taken.
✗ Branch 1087 not taken.
✗ Branch 1088 not taken.
✗ Branch 1090 not taken.
✗ Branch 1091 not taken.
✗ Branch 1093 not taken.
✗ Branch 1094 not taken.
✗ Branch 1096 not taken.
✗ Branch 1097 not taken.
✗ Branch 1099 not taken.
✗ Branch 1100 not taken.
✗ Branch 1102 not taken.
✗ Branch 1103 not taken.
✗ Branch 1105 not taken.
✗ Branch 1106 not taken.
✗ Branch 1108 not taken.
✗ Branch 1109 not taken.
✗ Branch 1111 not taken.
✗ Branch 1112 not taken.
✗ Branch 1114 not taken.
✗ Branch 1115 not taken.
✗ Branch 1117 not taken.
✗ Branch 1118 not taken.
✗ Branch 1120 not taken.
✗ Branch 1121 not taken.
✗ Branch 1123 not taken.
✗ Branch 1124 not taken.
✓ Branch 1126 taken 1 times.
✗ Branch 1127 not taken.
✗ Branch 1129 not taken.
✗ Branch 1130 not taken.
✗ Branch 1132 not taken.
✗ Branch 1133 not taken.
✗ Branch 1135 not taken.
✗ Branch 1136 not taken.
✗ Branch 1138 not taken.
✗ Branch 1139 not taken.
✗ Branch 1141 not taken.
✗ Branch 1142 not taken.
✗ Branch 1144 not taken.
✗ Branch 1145 not taken.
✗ Branch 1147 not taken.
✗ Branch 1148 not taken.
✗ Branch 1150 not taken.
✗ Branch 1151 not taken.
✗ Branch 1153 not taken.
✗ Branch 1154 not taken.
✗ Branch 1156 not taken.
✗ Branch 1157 not taken.
✗ Branch 1159 not taken.
✗ Branch 1160 not taken.
✗ Branch 1162 not taken.
✗ Branch 1163 not taken.
✗ Branch 1165 not taken.
✗ Branch 1166 not taken.
✗ Branch 1168 not taken.
✗ Branch 1169 not taken.
✗ Branch 1171 not taken.
✗ Branch 1172 not taken.
✗ Branch 1174 not taken.
✗ Branch 1175 not taken.
✗ Branch 1177 not taken.
✗ Branch 1178 not taken.
✗ Branch 1180 not taken.
✗ Branch 1181 not taken.
✗ Branch 1183 not taken.
✗ Branch 1184 not taken.
✗ Branch 1186 not taken.
✗ Branch 1187 not taken.
✗ Branch 1189 not taken.
✗ Branch 1190 not taken.
✗ Branch 1192 not taken.
✗ Branch 1193 not taken.
✗ Branch 1195 not taken.
✗ Branch 1196 not taken.
✗ Branch 1198 not taken.
✗ Branch 1199 not taken.
✗ Branch 1201 not taken.
✗ Branch 1202 not taken.
✗ Branch 1204 not taken.
✗ Branch 1205 not taken.
✗ Branch 1207 not taken.
✗ Branch 1208 not taken.
✗ Branch 1210 not taken.
✗ Branch 1211 not taken.
✗ Branch 1213 not taken.
✗ Branch 1214 not taken.
✗ Branch 1216 not taken.
✗ Branch 1217 not taken.
✗ Branch 1219 not taken.
✗ Branch 1220 not taken.
✗ Branch 1222 not taken.
✗ Branch 1223 not taken.
✗ Branch 1225 not taken.
✗ Branch 1226 not taken.
✗ Branch 1228 not taken.
✗ Branch 1229 not taken.
✗ Branch 1231 not taken.
✗ Branch 1232 not taken.
✗ Branch 1234 not taken.
✗ Branch 1235 not taken.
✗ Branch 1237 not taken.
✗ Branch 1238 not taken.
✗ Branch 1240 not taken.
✗ Branch 1241 not taken.
✗ Branch 1243 not taken.
✗ Branch 1244 not taken.
✗ Branch 1246 not taken.
✗ Branch 1247 not taken.
✗ Branch 1249 not taken.
✗ Branch 1250 not taken.
✗ Branch 1252 not taken.
✗ Branch 1253 not taken.
✗ Branch 1255 not taken.
✗ Branch 1256 not taken.
✗ Branch 1258 not taken.
✗ Branch 1259 not taken.
✗ Branch 1261 not taken.
✗ Branch 1262 not taken.
✗ Branch 1264 not taken.
✗ Branch 1265 not taken.
✗ Branch 1267 not taken.
✗ Branch 1268 not taken.
✗ Branch 1270 not taken.
✗ Branch 1271 not taken.
✗ Branch 1273 not taken.
✗ Branch 1274 not taken.
✗ Branch 1276 not taken.
✗ Branch 1277 not taken.
✗ Branch 1279 not taken.
✗ Branch 1280 not taken.
✗ Branch 1282 not taken.
✗ Branch 1283 not taken.
✗ Branch 1285 not taken.
✗ Branch 1286 not taken.
✗ Branch 1288 not taken.
✗ Branch 1289 not taken.
✗ Branch 1291 not taken.
✗ Branch 1292 not taken.
✗ Branch 1294 not taken.
✗ Branch 1295 not taken.
✗ Branch 1297 not taken.
✗ Branch 1298 not taken.
✗ Branch 1300 not taken.
✗ Branch 1301 not taken.
✗ Branch 1303 not taken.
✗ Branch 1304 not taken.
✗ Branch 1306 not taken.
✗ Branch 1307 not taken.
✗ Branch 1309 not taken.
✗ Branch 1310 not taken.
✗ Branch 1312 not taken.
✗ Branch 1313 not taken.
✗ Branch 1315 not taken.
✗ Branch 1316 not taken.
✗ Branch 1318 not taken.
✗ Branch 1319 not taken.
✗ Branch 1321 not taken.
✗ Branch 1322 not taken.
✗ Branch 1324 not taken.
✗ Branch 1325 not taken.
✗ Branch 1327 not taken.
✗ Branch 1328 not taken.
✗ Branch 1330 not taken.
✗ Branch 1331 not taken.
✗ Branch 1333 not taken.
✗ Branch 1334 not taken.
✗ Branch 1336 not taken.
✗ Branch 1337 not taken.
✗ Branch 1339 not taken.
✗ Branch 1340 not taken.
✗ Branch 1342 not taken.
✗ Branch 1343 not taken.
✗ Branch 1345 not taken.
✗ Branch 1346 not taken.
✗ Branch 1348 not taken.
✗ Branch 1349 not taken.
✗ Branch 1351 not taken.
✗ Branch 1352 not taken.
✗ Branch 1354 not taken.
✗ Branch 1355 not taken.
✗ Branch 1357 not taken.
✗ Branch 1358 not taken.
✗ Branch 1360 not taken.
✗ Branch 1361 not taken.
✗ Branch 1363 not taken.
✗ Branch 1364 not taken.
✗ Branch 1366 not taken.
✗ Branch 1367 not taken.
✗ Branch 1369 not taken.
✗ Branch 1370 not taken.
✗ Branch 1372 not taken.
✗ Branch 1373 not taken.
✗ Branch 1375 not taken.
✗ Branch 1376 not taken.
✗ Branch 1378 not taken.
✗ Branch 1379 not taken.
✗ Branch 1381 not taken.
✗ Branch 1382 not taken.
✗ Branch 1384 not taken.
✗ Branch 1385 not taken.
✗ Branch 1387 not taken.
✗ Branch 1388 not taken.
✗ Branch 1390 not taken.
✗ Branch 1391 not taken.
|
295 | this->clearAllAccessors(); |
1721 |
21/928✓ Branch 1 taken 244 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
✓ Branch 7 taken 1 times.
✗ Branch 8 not taken.
✓ Branch 10 taken 1 times.
✗ Branch 11 not taken.
✓ Branch 13 taken 5 times.
✗ Branch 14 not taken.
✓ Branch 16 taken 1 times.
✗ Branch 17 not taken.
✓ Branch 19 taken 1 times.
✗ Branch 20 not taken.
✓ Branch 22 taken 1 times.
✗ Branch 23 not taken.
✓ Branch 25 taken 1 times.
✗ Branch 26 not taken.
✓ Branch 28 taken 4 times.
✗ Branch 29 not taken.
✓ Branch 31 taken 1 times.
✗ Branch 32 not taken.
✗ Branch 34 not taken.
✗ Branch 35 not taken.
✗ Branch 37 not taken.
✗ Branch 38 not taken.
✗ Branch 40 not taken.
✗ Branch 41 not taken.
✓ Branch 43 taken 10 times.
✗ Branch 44 not taken.
✗ Branch 46 not taken.
✗ Branch 47 not taken.
✗ Branch 49 not taken.
✗ Branch 50 not taken.
✗ Branch 52 not taken.
✗ Branch 53 not taken.
✗ Branch 55 not taken.
✗ Branch 56 not taken.
✓ Branch 58 taken 13 times.
✗ Branch 59 not taken.
✗ Branch 61 not taken.
✗ Branch 62 not taken.
✗ Branch 64 not taken.
✗ Branch 65 not taken.
✗ Branch 67 not taken.
✗ Branch 68 not taken.
✓ Branch 70 taken 1 times.
✗ Branch 71 not taken.
✗ Branch 73 not taken.
✗ Branch 74 not taken.
✗ Branch 76 not taken.
✗ Branch 77 not taken.
✗ Branch 79 not taken.
✗ Branch 80 not taken.
✗ Branch 82 not taken.
✗ Branch 83 not taken.
✗ Branch 85 not taken.
✗ Branch 86 not taken.
✗ Branch 88 not taken.
✗ Branch 89 not taken.
✗ Branch 91 not taken.
✗ Branch 92 not taken.
✗ Branch 94 not taken.
✗ Branch 95 not taken.
✗ Branch 97 not taken.
✗ Branch 98 not taken.
✗ Branch 100 not taken.
✗ Branch 101 not taken.
✗ Branch 103 not taken.
✗ Branch 104 not taken.
✗ Branch 106 not taken.
✗ Branch 107 not taken.
✗ Branch 109 not taken.
✗ Branch 110 not taken.
✗ Branch 112 not taken.
✗ Branch 113 not taken.
✗ Branch 115 not taken.
✗ Branch 116 not taken.
✗ Branch 118 not taken.
✗ Branch 119 not taken.
✗ Branch 121 not taken.
✗ Branch 122 not taken.
✗ Branch 124 not taken.
✗ Branch 125 not taken.
✗ Branch 127 not taken.
✗ Branch 128 not taken.
✗ Branch 130 not taken.
✗ Branch 131 not taken.
✗ Branch 133 not taken.
✗ Branch 134 not taken.
✗ Branch 136 not taken.
✗ Branch 137 not taken.
✗ Branch 139 not taken.
✗ Branch 140 not taken.
✗ Branch 142 not taken.
✗ Branch 143 not taken.
✗ Branch 145 not taken.
✗ Branch 146 not taken.
✗ Branch 148 not taken.
✗ Branch 149 not taken.
✗ Branch 151 not taken.
✗ Branch 152 not taken.
✗ Branch 154 not taken.
✗ Branch 155 not taken.
✗ Branch 157 not taken.
✗ Branch 158 not taken.
✗ Branch 160 not taken.
✗ Branch 161 not taken.
✗ Branch 163 not taken.
✗ Branch 164 not taken.
✗ Branch 166 not taken.
✗ Branch 167 not taken.
✗ Branch 169 not taken.
✗ Branch 170 not taken.
✗ Branch 172 not taken.
✗ Branch 173 not taken.
✗ Branch 175 not taken.
✗ Branch 176 not taken.
✗ Branch 178 not taken.
✗ Branch 179 not taken.
✗ Branch 181 not taken.
✗ Branch 182 not taken.
✗ Branch 184 not taken.
✗ Branch 185 not taken.
✗ Branch 187 not taken.
✗ Branch 188 not taken.
✗ Branch 190 not taken.
✗ Branch 191 not taken.
✗ Branch 193 not taken.
✗ Branch 194 not taken.
✗ Branch 196 not taken.
✗ Branch 197 not taken.
✗ Branch 199 not taken.
✗ Branch 200 not taken.
✗ Branch 202 not taken.
✗ Branch 203 not taken.
✗ Branch 205 not taken.
✗ Branch 206 not taken.
✗ Branch 208 not taken.
✗ Branch 209 not taken.
✗ Branch 211 not taken.
✗ Branch 212 not taken.
✓ Branch 214 taken 2 times.
✗ Branch 215 not taken.
✗ Branch 217 not taken.
✗ Branch 218 not taken.
✗ Branch 220 not taken.
✗ Branch 221 not taken.
✗ Branch 223 not taken.
✗ Branch 224 not taken.
✗ Branch 226 not taken.
✗ Branch 227 not taken.
✗ Branch 229 not taken.
✗ Branch 230 not taken.
✗ Branch 232 not taken.
✗ Branch 233 not taken.
✗ Branch 235 not taken.
✗ Branch 236 not taken.
✗ Branch 238 not taken.
✗ Branch 239 not taken.
✗ Branch 241 not taken.
✗ Branch 242 not taken.
✗ Branch 244 not taken.
✗ Branch 245 not taken.
✗ Branch 247 not taken.
✗ Branch 248 not taken.
✗ Branch 250 not taken.
✗ Branch 251 not taken.
✗ Branch 253 not taken.
✗ Branch 254 not taken.
✗ Branch 256 not taken.
✗ Branch 257 not taken.
✗ Branch 259 not taken.
✗ Branch 260 not taken.
✗ Branch 262 not taken.
✗ Branch 263 not taken.
✗ Branch 265 not taken.
✗ Branch 266 not taken.
✗ Branch 268 not taken.
✗ Branch 269 not taken.
✗ Branch 271 not taken.
✗ Branch 272 not taken.
✗ Branch 274 not taken.
✗ Branch 275 not taken.
✗ Branch 277 not taken.
✗ Branch 278 not taken.
✗ Branch 280 not taken.
✗ Branch 281 not taken.
✗ Branch 283 not taken.
✗ Branch 284 not taken.
✗ Branch 286 not taken.
✗ Branch 287 not taken.
✗ Branch 289 not taken.
✗ Branch 290 not taken.
✗ Branch 292 not taken.
✗ Branch 293 not taken.
✗ Branch 295 not taken.
✗ Branch 296 not taken.
✗ Branch 298 not taken.
✗ Branch 299 not taken.
✗ Branch 301 not taken.
✗ Branch 302 not taken.
✗ Branch 304 not taken.
✗ Branch 305 not taken.
✗ Branch 307 not taken.
✗ Branch 308 not taken.
✗ Branch 310 not taken.
✗ Branch 311 not taken.
✗ Branch 313 not taken.
✗ Branch 314 not taken.
✗ Branch 316 not taken.
✗ Branch 317 not taken.
✗ Branch 319 not taken.
✗ Branch 320 not taken.
✗ Branch 322 not taken.
✗ Branch 323 not taken.
✗ Branch 325 not taken.
✗ Branch 326 not taken.
✗ Branch 328 not taken.
✗ Branch 329 not taken.
✗ Branch 331 not taken.
✗ Branch 332 not taken.
✓ Branch 334 taken 1 times.
✗ Branch 335 not taken.
✗ Branch 337 not taken.
✗ Branch 338 not taken.
✗ Branch 340 not taken.
✗ Branch 341 not taken.
✗ Branch 343 not taken.
✗ Branch 344 not taken.
✗ Branch 346 not taken.
✗ Branch 347 not taken.
✗ Branch 349 not taken.
✗ Branch 350 not taken.
✗ Branch 352 not taken.
✗ Branch 353 not taken.
✗ Branch 355 not taken.
✗ Branch 356 not taken.
✗ Branch 358 not taken.
✗ Branch 359 not taken.
✗ Branch 361 not taken.
✗ Branch 362 not taken.
✗ Branch 364 not taken.
✗ Branch 365 not taken.
✗ Branch 367 not taken.
✗ Branch 368 not taken.
✗ Branch 370 not taken.
✗ Branch 371 not taken.
✗ Branch 373 not taken.
✗ Branch 374 not taken.
✗ Branch 376 not taken.
✗ Branch 377 not taken.
✗ Branch 379 not taken.
✗ Branch 380 not taken.
✗ Branch 382 not taken.
✗ Branch 383 not taken.
✗ Branch 385 not taken.
✗ Branch 386 not taken.
✗ Branch 388 not taken.
✗ Branch 389 not taken.
✗ Branch 391 not taken.
✗ Branch 392 not taken.
✗ Branch 394 not taken.
✗ Branch 395 not taken.
✗ Branch 397 not taken.
✗ Branch 398 not taken.
✗ Branch 400 not taken.
✗ Branch 401 not taken.
✗ Branch 403 not taken.
✗ Branch 404 not taken.
✗ Branch 406 not taken.
✗ Branch 407 not taken.
✗ Branch 409 not taken.
✗ Branch 410 not taken.
✗ Branch 412 not taken.
✗ Branch 413 not taken.
✗ Branch 415 not taken.
✗ Branch 416 not taken.
✗ Branch 418 not taken.
✗ Branch 419 not taken.
✗ Branch 421 not taken.
✗ Branch 422 not taken.
✗ Branch 424 not taken.
✗ Branch 425 not taken.
✗ Branch 427 not taken.
✗ Branch 428 not taken.
✗ Branch 430 not taken.
✗ Branch 431 not taken.
✗ Branch 433 not taken.
✗ Branch 434 not taken.
✗ Branch 436 not taken.
✗ Branch 437 not taken.
✗ Branch 439 not taken.
✗ Branch 440 not taken.
✗ Branch 442 not taken.
✗ Branch 443 not taken.
✗ Branch 445 not taken.
✗ Branch 446 not taken.
✗ Branch 448 not taken.
✗ Branch 449 not taken.
✗ Branch 451 not taken.
✗ Branch 452 not taken.
✗ Branch 454 not taken.
✗ Branch 455 not taken.
✗ Branch 457 not taken.
✗ Branch 458 not taken.
✗ Branch 460 not taken.
✗ Branch 461 not taken.
✗ Branch 463 not taken.
✗ Branch 464 not taken.
✗ Branch 466 not taken.
✗ Branch 467 not taken.
✗ Branch 469 not taken.
✗ Branch 470 not taken.
✗ Branch 472 not taken.
✗ Branch 473 not taken.
✗ Branch 475 not taken.
✗ Branch 476 not taken.
✗ Branch 478 not taken.
✗ Branch 479 not taken.
✗ Branch 481 not taken.
✗ Branch 482 not taken.
✗ Branch 484 not taken.
✗ Branch 485 not taken.
✗ Branch 487 not taken.
✗ Branch 488 not taken.
✗ Branch 490 not taken.
✗ Branch 491 not taken.
✗ Branch 493 not taken.
✗ Branch 494 not taken.
✗ Branch 496 not taken.
✗ Branch 497 not taken.
✗ Branch 499 not taken.
✗ Branch 500 not taken.
✓ Branch 502 taken 1 times.
✗ Branch 503 not taken.
✗ Branch 505 not taken.
✗ Branch 506 not taken.
✗ Branch 508 not taken.
✗ Branch 509 not taken.
✗ Branch 511 not taken.
✗ Branch 512 not taken.
✗ Branch 514 not taken.
✗ Branch 515 not taken.
✗ Branch 517 not taken.
✗ Branch 518 not taken.
✗ Branch 520 not taken.
✗ Branch 521 not taken.
✗ Branch 523 not taken.
✗ Branch 524 not taken.
✓ Branch 526 taken 2 times.
✗ Branch 527 not taken.
✗ Branch 529 not taken.
✗ Branch 530 not taken.
✗ Branch 532 not taken.
✗ Branch 533 not taken.
✗ Branch 535 not taken.
✗ Branch 536 not taken.
✗ Branch 538 not taken.
✗ Branch 539 not taken.
✗ Branch 541 not taken.
✗ Branch 542 not taken.
✗ Branch 544 not taken.
✗ Branch 545 not taken.
✗ Branch 547 not taken.
✗ Branch 548 not taken.
✗ Branch 550 not taken.
✗ Branch 551 not taken.
✗ Branch 553 not taken.
✗ Branch 554 not taken.
✗ Branch 556 not taken.
✗ Branch 557 not taken.
✗ Branch 559 not taken.
✗ Branch 560 not taken.
✗ Branch 562 not taken.
✗ Branch 563 not taken.
✗ Branch 565 not taken.
✗ Branch 566 not taken.
✗ Branch 568 not taken.
✗ Branch 569 not taken.
✗ Branch 571 not taken.
✗ Branch 572 not taken.
✗ Branch 574 not taken.
✗ Branch 575 not taken.
✗ Branch 577 not taken.
✗ Branch 578 not taken.
✗ Branch 580 not taken.
✗ Branch 581 not taken.
✗ Branch 583 not taken.
✗ Branch 584 not taken.
✗ Branch 586 not taken.
✗ Branch 587 not taken.
✗ Branch 589 not taken.
✗ Branch 590 not taken.
✗ Branch 592 not taken.
✗ Branch 593 not taken.
✗ Branch 595 not taken.
✗ Branch 596 not taken.
✗ Branch 598 not taken.
✗ Branch 599 not taken.
✗ Branch 601 not taken.
✗ Branch 602 not taken.
✗ Branch 604 not taken.
✗ Branch 605 not taken.
✗ Branch 607 not taken.
✗ Branch 608 not taken.
✗ Branch 610 not taken.
✗ Branch 611 not taken.
✗ Branch 613 not taken.
✗ Branch 614 not taken.
✗ Branch 616 not taken.
✗ Branch 617 not taken.
✗ Branch 619 not taken.
✗ Branch 620 not taken.
✗ Branch 622 not taken.
✗ Branch 623 not taken.
✗ Branch 625 not taken.
✗ Branch 626 not taken.
✗ Branch 628 not taken.
✗ Branch 629 not taken.
✗ Branch 631 not taken.
✗ Branch 632 not taken.
✗ Branch 634 not taken.
✗ Branch 635 not taken.
✗ Branch 637 not taken.
✗ Branch 638 not taken.
✗ Branch 640 not taken.
✗ Branch 641 not taken.
✗ Branch 643 not taken.
✗ Branch 644 not taken.
✗ Branch 646 not taken.
✗ Branch 647 not taken.
✗ Branch 649 not taken.
✗ Branch 650 not taken.
✗ Branch 652 not taken.
✗ Branch 653 not taken.
✗ Branch 655 not taken.
✗ Branch 656 not taken.
✗ Branch 658 not taken.
✗ Branch 659 not taken.
✗ Branch 661 not taken.
✗ Branch 662 not taken.
✗ Branch 664 not taken.
✗ Branch 665 not taken.
✗ Branch 667 not taken.
✗ Branch 668 not taken.
✗ Branch 670 not taken.
✗ Branch 671 not taken.
✗ Branch 673 not taken.
✗ Branch 674 not taken.
✗ Branch 676 not taken.
✗ Branch 677 not taken.
✗ Branch 679 not taken.
✗ Branch 680 not taken.
✗ Branch 682 not taken.
✗ Branch 683 not taken.
✗ Branch 685 not taken.
✗ Branch 686 not taken.
✗ Branch 688 not taken.
✗ Branch 689 not taken.
✗ Branch 691 not taken.
✗ Branch 692 not taken.
✗ Branch 694 not taken.
✗ Branch 695 not taken.
✗ Branch 697 not taken.
✗ Branch 698 not taken.
✗ Branch 700 not taken.
✗ Branch 701 not taken.
✗ Branch 703 not taken.
✗ Branch 704 not taken.
✗ Branch 706 not taken.
✗ Branch 707 not taken.
✗ Branch 709 not taken.
✗ Branch 710 not taken.
✗ Branch 712 not taken.
✗ Branch 713 not taken.
✗ Branch 715 not taken.
✗ Branch 716 not taken.
✓ Branch 718 taken 1 times.
✗ Branch 719 not taken.
✗ Branch 721 not taken.
✗ Branch 722 not taken.
✗ Branch 724 not taken.
✗ Branch 725 not taken.
✗ Branch 727 not taken.
✗ Branch 728 not taken.
✗ Branch 730 not taken.
✗ Branch 731 not taken.
✗ Branch 733 not taken.
✗ Branch 734 not taken.
✗ Branch 736 not taken.
✗ Branch 737 not taken.
✗ Branch 739 not taken.
✗ Branch 740 not taken.
✗ Branch 742 not taken.
✗ Branch 743 not taken.
✗ Branch 745 not taken.
✗ Branch 746 not taken.
✗ Branch 748 not taken.
✗ Branch 749 not taken.
✗ Branch 751 not taken.
✗ Branch 752 not taken.
✗ Branch 754 not taken.
✗ Branch 755 not taken.
✗ Branch 757 not taken.
✗ Branch 758 not taken.
✗ Branch 760 not taken.
✗ Branch 761 not taken.
✗ Branch 763 not taken.
✗ Branch 764 not taken.
✗ Branch 766 not taken.
✗ Branch 767 not taken.
✗ Branch 769 not taken.
✗ Branch 770 not taken.
✗ Branch 772 not taken.
✗ Branch 773 not taken.
✗ Branch 775 not taken.
✗ Branch 776 not taken.
✗ Branch 778 not taken.
✗ Branch 779 not taken.
✗ Branch 781 not taken.
✗ Branch 782 not taken.
✗ Branch 784 not taken.
✗ Branch 785 not taken.
✗ Branch 787 not taken.
✗ Branch 788 not taken.
✗ Branch 790 not taken.
✗ Branch 791 not taken.
✗ Branch 793 not taken.
✗ Branch 794 not taken.
✗ Branch 796 not taken.
✗ Branch 797 not taken.
✗ Branch 799 not taken.
✗ Branch 800 not taken.
✗ Branch 802 not taken.
✗ Branch 803 not taken.
✗ Branch 805 not taken.
✗ Branch 806 not taken.
✗ Branch 808 not taken.
✗ Branch 809 not taken.
✗ Branch 811 not taken.
✗ Branch 812 not taken.
✗ Branch 814 not taken.
✗ Branch 815 not taken.
✗ Branch 817 not taken.
✗ Branch 818 not taken.
✗ Branch 820 not taken.
✗ Branch 821 not taken.
✗ Branch 823 not taken.
✗ Branch 824 not taken.
✗ Branch 826 not taken.
✗ Branch 827 not taken.
✗ Branch 829 not taken.
✗ Branch 830 not taken.
✗ Branch 832 not taken.
✗ Branch 833 not taken.
✗ Branch 835 not taken.
✗ Branch 836 not taken.
✗ Branch 838 not taken.
✗ Branch 839 not taken.
✗ Branch 841 not taken.
✗ Branch 842 not taken.
✗ Branch 844 not taken.
✗ Branch 845 not taken.
✗ Branch 847 not taken.
✗ Branch 848 not taken.
✗ Branch 850 not taken.
✗ Branch 851 not taken.
✗ Branch 853 not taken.
✗ Branch 854 not taken.
✗ Branch 856 not taken.
✗ Branch 857 not taken.
✗ Branch 859 not taken.
✗ Branch 860 not taken.
✗ Branch 862 not taken.
✗ Branch 863 not taken.
✗ Branch 865 not taken.
✗ Branch 866 not taken.
✗ Branch 868 not taken.
✗ Branch 869 not taken.
✗ Branch 871 not taken.
✗ Branch 872 not taken.
✗ Branch 874 not taken.
✗ Branch 875 not taken.
✗ Branch 877 not taken.
✗ Branch 878 not taken.
✗ Branch 880 not taken.
✗ Branch 881 not taken.
✗ Branch 883 not taken.
✗ Branch 884 not taken.
✓ Branch 886 taken 2 times.
✗ Branch 887 not taken.
✗ Branch 889 not taken.
✗ Branch 890 not taken.
✗ Branch 892 not taken.
✗ Branch 893 not taken.
✗ Branch 895 not taken.
✗ Branch 896 not taken.
✗ Branch 898 not taken.
✗ Branch 899 not taken.
✗ Branch 901 not taken.
✗ Branch 902 not taken.
✗ Branch 904 not taken.
✗ Branch 905 not taken.
✗ Branch 907 not taken.
✗ Branch 908 not taken.
✗ Branch 910 not taken.
✗ Branch 911 not taken.
✗ Branch 913 not taken.
✗ Branch 914 not taken.
✗ Branch 916 not taken.
✗ Branch 917 not taken.
✗ Branch 919 not taken.
✗ Branch 920 not taken.
✗ Branch 922 not taken.
✗ Branch 923 not taken.
✗ Branch 925 not taken.
✗ Branch 926 not taken.
✗ Branch 928 not taken.
✗ Branch 929 not taken.
✗ Branch 931 not taken.
✗ Branch 932 not taken.
✗ Branch 934 not taken.
✗ Branch 935 not taken.
✗ Branch 937 not taken.
✗ Branch 938 not taken.
✗ Branch 940 not taken.
✗ Branch 941 not taken.
✗ Branch 943 not taken.
✗ Branch 944 not taken.
✗ Branch 946 not taken.
✗ Branch 947 not taken.
✗ Branch 949 not taken.
✗ Branch 950 not taken.
✗ Branch 952 not taken.
✗ Branch 953 not taken.
✗ Branch 955 not taken.
✗ Branch 956 not taken.
✗ Branch 958 not taken.
✗ Branch 959 not taken.
✗ Branch 961 not taken.
✗ Branch 962 not taken.
✗ Branch 964 not taken.
✗ Branch 965 not taken.
✗ Branch 967 not taken.
✗ Branch 968 not taken.
✗ Branch 970 not taken.
✗ Branch 971 not taken.
✗ Branch 973 not taken.
✗ Branch 974 not taken.
✗ Branch 976 not taken.
✗ Branch 977 not taken.
✗ Branch 979 not taken.
✗ Branch 980 not taken.
✗ Branch 982 not taken.
✗ Branch 983 not taken.
✗ Branch 985 not taken.
✗ Branch 986 not taken.
✗ Branch 988 not taken.
✗ Branch 989 not taken.
✗ Branch 991 not taken.
✗ Branch 992 not taken.
✗ Branch 994 not taken.
✗ Branch 995 not taken.
✗ Branch 997 not taken.
✗ Branch 998 not taken.
✗ Branch 1000 not taken.
✗ Branch 1001 not taken.
✗ Branch 1003 not taken.
✗ Branch 1004 not taken.
✗ Branch 1006 not taken.
✗ Branch 1007 not taken.
✗ Branch 1009 not taken.
✗ Branch 1010 not taken.
✗ Branch 1012 not taken.
✗ Branch 1013 not taken.
✗ Branch 1015 not taken.
✗ Branch 1016 not taken.
✗ Branch 1018 not taken.
✗ Branch 1019 not taken.
✗ Branch 1021 not taken.
✗ Branch 1022 not taken.
✗ Branch 1024 not taken.
✗ Branch 1025 not taken.
✗ Branch 1027 not taken.
✗ Branch 1028 not taken.
✗ Branch 1030 not taken.
✗ Branch 1031 not taken.
✗ Branch 1033 not taken.
✗ Branch 1034 not taken.
✗ Branch 1036 not taken.
✗ Branch 1037 not taken.
✗ Branch 1039 not taken.
✗ Branch 1040 not taken.
✗ Branch 1042 not taken.
✗ Branch 1043 not taken.
✗ Branch 1045 not taken.
✗ Branch 1046 not taken.
✗ Branch 1048 not taken.
✗ Branch 1049 not taken.
✗ Branch 1051 not taken.
✗ Branch 1052 not taken.
✗ Branch 1054 not taken.
✗ Branch 1055 not taken.
✗ Branch 1057 not taken.
✗ Branch 1058 not taken.
✗ Branch 1060 not taken.
✗ Branch 1061 not taken.
✗ Branch 1063 not taken.
✗ Branch 1064 not taken.
✗ Branch 1066 not taken.
✗ Branch 1067 not taken.
✗ Branch 1069 not taken.
✗ Branch 1070 not taken.
✗ Branch 1072 not taken.
✗ Branch 1073 not taken.
✗ Branch 1075 not taken.
✗ Branch 1076 not taken.
✗ Branch 1078 not taken.
✗ Branch 1079 not taken.
✗ Branch 1081 not taken.
✗ Branch 1082 not taken.
✗ Branch 1084 not taken.
✗ Branch 1085 not taken.
✗ Branch 1087 not taken.
✗ Branch 1088 not taken.
✗ Branch 1090 not taken.
✗ Branch 1091 not taken.
✗ Branch 1093 not taken.
✗ Branch 1094 not taken.
✗ Branch 1096 not taken.
✗ Branch 1097 not taken.
✗ Branch 1099 not taken.
✗ Branch 1100 not taken.
✗ Branch 1102 not taken.
✗ Branch 1103 not taken.
✗ Branch 1105 not taken.
✗ Branch 1106 not taken.
✗ Branch 1108 not taken.
✗ Branch 1109 not taken.
✗ Branch 1111 not taken.
✗ Branch 1112 not taken.
✗ Branch 1114 not taken.
✗ Branch 1115 not taken.
✗ Branch 1117 not taken.
✗ Branch 1118 not taken.
✗ Branch 1120 not taken.
✗ Branch 1121 not taken.
✗ Branch 1123 not taken.
✗ Branch 1124 not taken.
✓ Branch 1126 taken 1 times.
✗ Branch 1127 not taken.
✗ Branch 1129 not taken.
✗ Branch 1130 not taken.
✗ Branch 1132 not taken.
✗ Branch 1133 not taken.
✗ Branch 1135 not taken.
✗ Branch 1136 not taken.
✗ Branch 1138 not taken.
✗ Branch 1139 not taken.
✗ Branch 1141 not taken.
✗ Branch 1142 not taken.
✗ Branch 1144 not taken.
✗ Branch 1145 not taken.
✗ Branch 1147 not taken.
✗ Branch 1148 not taken.
✗ Branch 1150 not taken.
✗ Branch 1151 not taken.
✗ Branch 1153 not taken.
✗ Branch 1154 not taken.
✗ Branch 1156 not taken.
✗ Branch 1157 not taken.
✗ Branch 1159 not taken.
✗ Branch 1160 not taken.
✗ Branch 1162 not taken.
✗ Branch 1163 not taken.
✗ Branch 1165 not taken.
✗ Branch 1166 not taken.
✗ Branch 1168 not taken.
✗ Branch 1169 not taken.
✗ Branch 1171 not taken.
✗ Branch 1172 not taken.
✗ Branch 1174 not taken.
✗ Branch 1175 not taken.
✗ Branch 1177 not taken.
✗ Branch 1178 not taken.
✗ Branch 1180 not taken.
✗ Branch 1181 not taken.
✗ Branch 1183 not taken.
✗ Branch 1184 not taken.
✗ Branch 1186 not taken.
✗ Branch 1187 not taken.
✗ Branch 1189 not taken.
✗ Branch 1190 not taken.
✗ Branch 1192 not taken.
✗ Branch 1193 not taken.
✗ Branch 1195 not taken.
✗ Branch 1196 not taken.
✗ Branch 1198 not taken.
✗ Branch 1199 not taken.
✗ Branch 1201 not taken.
✗ Branch 1202 not taken.
✗ Branch 1204 not taken.
✗ Branch 1205 not taken.
✗ Branch 1207 not taken.
✗ Branch 1208 not taken.
✗ Branch 1210 not taken.
✗ Branch 1211 not taken.
✗ Branch 1213 not taken.
✗ Branch 1214 not taken.
✗ Branch 1216 not taken.
✗ Branch 1217 not taken.
✗ Branch 1219 not taken.
✗ Branch 1220 not taken.
✗ Branch 1222 not taken.
✗ Branch 1223 not taken.
✗ Branch 1225 not taken.
✗ Branch 1226 not taken.
✗ Branch 1228 not taken.
✗ Branch 1229 not taken.
✗ Branch 1231 not taken.
✗ Branch 1232 not taken.
✗ Branch 1234 not taken.
✗ Branch 1235 not taken.
✗ Branch 1237 not taken.
✗ Branch 1238 not taken.
✗ Branch 1240 not taken.
✗ Branch 1241 not taken.
✗ Branch 1243 not taken.
✗ Branch 1244 not taken.
✗ Branch 1246 not taken.
✗ Branch 1247 not taken.
✗ Branch 1249 not taken.
✗ Branch 1250 not taken.
✗ Branch 1252 not taken.
✗ Branch 1253 not taken.
✗ Branch 1255 not taken.
✗ Branch 1256 not taken.
✗ Branch 1258 not taken.
✗ Branch 1259 not taken.
✗ Branch 1261 not taken.
✗ Branch 1262 not taken.
✗ Branch 1264 not taken.
✗ Branch 1265 not taken.
✗ Branch 1267 not taken.
✗ Branch 1268 not taken.
✗ Branch 1270 not taken.
✗ Branch 1271 not taken.
✗ Branch 1273 not taken.
✗ Branch 1274 not taken.
✗ Branch 1276 not taken.
✗ Branch 1277 not taken.
✗ Branch 1279 not taken.
✗ Branch 1280 not taken.
✗ Branch 1282 not taken.
✗ Branch 1283 not taken.
✗ Branch 1285 not taken.
✗ Branch 1286 not taken.
✗ Branch 1288 not taken.
✗ Branch 1289 not taken.
✗ Branch 1291 not taken.
✗ Branch 1292 not taken.
✗ Branch 1294 not taken.
✗ Branch 1295 not taken.
✗ Branch 1297 not taken.
✗ Branch 1298 not taken.
✗ Branch 1300 not taken.
✗ Branch 1301 not taken.
✗ Branch 1303 not taken.
✗ Branch 1304 not taken.
✗ Branch 1306 not taken.
✗ Branch 1307 not taken.
✗ Branch 1309 not taken.
✗ Branch 1310 not taken.
✗ Branch 1312 not taken.
✗ Branch 1313 not taken.
✗ Branch 1315 not taken.
✗ Branch 1316 not taken.
✗ Branch 1318 not taken.
✗ Branch 1319 not taken.
✗ Branch 1321 not taken.
✗ Branch 1322 not taken.
✗ Branch 1324 not taken.
✗ Branch 1325 not taken.
✗ Branch 1327 not taken.
✗ Branch 1328 not taken.
✗ Branch 1330 not taken.
✗ Branch 1331 not taken.
✗ Branch 1333 not taken.
✗ Branch 1334 not taken.
✗ Branch 1336 not taken.
✗ Branch 1337 not taken.
✗ Branch 1339 not taken.
✗ Branch 1340 not taken.
✗ Branch 1342 not taken.
✗ Branch 1343 not taken.
✗ Branch 1345 not taken.
✗ Branch 1346 not taken.
✗ Branch 1348 not taken.
✗ Branch 1349 not taken.
✗ Branch 1351 not taken.
✗ Branch 1352 not taken.
✗ Branch 1354 not taken.
✗ Branch 1355 not taken.
✗ Branch 1357 not taken.
✗ Branch 1358 not taken.
✗ Branch 1360 not taken.
✗ Branch 1361 not taken.
✗ Branch 1363 not taken.
✗ Branch 1364 not taken.
✗ Branch 1366 not taken.
✗ Branch 1367 not taken.
✗ Branch 1369 not taken.
✗ Branch 1370 not taken.
✗ Branch 1372 not taken.
✗ Branch 1373 not taken.
✗ Branch 1375 not taken.
✗ Branch 1376 not taken.
✗ Branch 1378 not taken.
✗ Branch 1379 not taken.
✗ Branch 1381 not taken.
✗ Branch 1382 not taken.
✗ Branch 1384 not taken.
✗ Branch 1385 not taken.
✗ Branch 1387 not taken.
✗ Branch 1388 not taken.
✗ Branch 1390 not taken.
✗ Branch 1391 not taken.
|
295 | mRoot.topologyIntersection(other.root()); |
1722 | 41 | } | |
1723 | |||
1724 | template<typename RootNodeType> | ||
1725 | template<typename OtherRootNodeType> | ||
1726 | inline void | ||
1727 | Tree<RootNodeType>::topologyDifference(const Tree<OtherRootNodeType>& other) | ||
1728 | { | ||
1729 |
9/20✓ Branch 1 taken 15 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 13 times.
✗ Branch 5 not taken.
✓ Branch 7 taken 5 times.
✗ Branch 8 not taken.
✓ Branch 10 taken 2 times.
✗ Branch 11 not taken.
✓ Branch 13 taken 3 times.
✗ Branch 14 not taken.
✓ Branch 16 taken 1 times.
✗ Branch 17 not taken.
✓ Branch 19 taken 1 times.
✗ Branch 20 not taken.
✓ Branch 22 taken 1 times.
✗ Branch 23 not taken.
✗ Branch 25 not taken.
✗ Branch 26 not taken.
✓ Branch 28 taken 1 times.
✗ Branch 29 not taken.
|
42 | this->clearAllAccessors(); |
1730 |
9/20✓ Branch 1 taken 15 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 13 times.
✗ Branch 5 not taken.
✓ Branch 7 taken 5 times.
✗ Branch 8 not taken.
✓ Branch 10 taken 2 times.
✗ Branch 11 not taken.
✓ Branch 13 taken 3 times.
✗ Branch 14 not taken.
✓ Branch 16 taken 1 times.
✗ Branch 17 not taken.
✓ Branch 19 taken 1 times.
✗ Branch 20 not taken.
✓ Branch 22 taken 1 times.
✗ Branch 23 not taken.
✗ Branch 25 not taken.
✗ Branch 26 not taken.
✓ Branch 28 taken 1 times.
✗ Branch 29 not taken.
|
42 | mRoot.topologyDifference(other.root()); |
1731 | 36 | } | |
1732 | |||
1733 | //////////////////////////////////////// | ||
1734 | |||
1735 | |||
1736 | /// @brief Helper class to adapt a three-argument (a, b, result) CombineOp functor | ||
1737 | /// into a single-argument functor that accepts a CombineArgs struct | ||
1738 | template<typename AValueT, typename CombineOp, typename BValueT = AValueT> | ||
1739 | struct CombineOpAdapter | ||
1740 | { | ||
1741 | 8 | CombineOpAdapter(CombineOp& _op): op(_op) {} | |
1742 | |||
1743 | void operator()(CombineArgs<AValueT, BValueT>& args) const { | ||
1744 |
4/16✗ Branch 42 not taken.
✗ Branch 43 not taken.
✓ Branch 45 taken 1 times.
✗ Branch 46 not taken.
✗ Branch 48 not taken.
✗ Branch 49 not taken.
✓ Branch 51 taken 1 times.
✗ Branch 52 not taken.
✗ Branch 54 not taken.
✗ Branch 55 not taken.
✓ Branch 57 taken 1 times.
✗ Branch 58 not taken.
✗ Branch 60 not taken.
✗ Branch 61 not taken.
✓ Branch 63 taken 1 times.
✗ Branch 64 not taken.
|
224250 | op(args.a(), args.b(), args.result()); |
1745 | 4 | } | |
1746 | |||
1747 | CombineOp& op; | ||
1748 | }; | ||
1749 | |||
1750 | |||
1751 | template<typename RootNodeType> | ||
1752 | template<typename CombineOp> | ||
1753 | inline void | ||
1754 | Tree<RootNodeType>::combine(Tree& other, CombineOp& op, bool prune) | ||
1755 | { | ||
1756 | CombineOpAdapter<ValueType, CombineOp> extendedOp(op); | ||
1757 | this->combineExtended(other, extendedOp, prune); | ||
1758 | } | ||
1759 | |||
1760 | |||
1761 | /// @internal This overload is needed (for ICC and GCC, but not for VC) to disambiguate | ||
1762 | /// code like this: <tt>aTree.combine(bTree, MyCombineOp(...))</tt>. | ||
1763 | #ifndef _WIN32 | ||
1764 | template<typename RootNodeType> | ||
1765 | template<typename CombineOp> | ||
1766 | inline void | ||
1767 | Tree<RootNodeType>::combine(Tree& other, const CombineOp& op, bool prune) | ||
1768 | { | ||
1769 | CombineOpAdapter<ValueType, const CombineOp> extendedOp(op); | ||
1770 | this->combineExtended(other, extendedOp, prune); | ||
1771 | } | ||
1772 | #endif | ||
1773 | |||
1774 | |||
1775 | template<typename RootNodeType> | ||
1776 | template<typename ExtendedCombineOp> | ||
1777 | inline void | ||
1778 | Tree<RootNodeType>::combineExtended(Tree& other, ExtendedCombineOp& op, bool prune) | ||
1779 | { | ||
1780 | 4 | this->clearAllAccessors(); | |
1781 | 4 | mRoot.combine(other.root(), op, prune); | |
1782 | } | ||
1783 | |||
1784 | |||
1785 | /// @internal This overload is needed (for ICC and GCC, but not for VC) to disambiguate | ||
1786 | /// code like this: <tt>aTree.combineExtended(bTree, MyCombineOp(...))</tt>. | ||
1787 | #ifndef _WIN32 | ||
1788 | template<typename RootNodeType> | ||
1789 | template<typename ExtendedCombineOp> | ||
1790 | inline void | ||
1791 | Tree<RootNodeType>::combineExtended(Tree& other, const ExtendedCombineOp& op, bool prune) | ||
1792 | { | ||
1793 | 33 | this->clearAllAccessors(); | |
1794 | 33 | mRoot.template combine<const ExtendedCombineOp>(other.mRoot, op, prune); | |
1795 | } | ||
1796 | #endif | ||
1797 | |||
1798 | |||
1799 | template<typename RootNodeType> | ||
1800 | template<typename CombineOp, typename OtherTreeType> | ||
1801 | inline void | ||
1802 | Tree<RootNodeType>::combine2(const Tree& a, const OtherTreeType& b, CombineOp& op, bool prune) | ||
1803 | { | ||
1804 | CombineOpAdapter<ValueType, CombineOp, typename OtherTreeType::ValueType> extendedOp(op); | ||
1805 | this->combine2Extended(a, b, extendedOp, prune); | ||
1806 | } | ||
1807 | |||
1808 | |||
1809 | /// @internal This overload is needed (for ICC and GCC, but not for VC) to disambiguate | ||
1810 | /// code like this: <tt>tree.combine2(aTree, bTree, MyCombineOp(...))</tt>. | ||
1811 | #ifndef _WIN32 | ||
1812 | template<typename RootNodeType> | ||
1813 | template<typename CombineOp, typename OtherTreeType> | ||
1814 | inline void | ||
1815 | Tree<RootNodeType>::combine2(const Tree& a, const OtherTreeType& b, const CombineOp& op, bool prune) | ||
1816 | { | ||
1817 | CombineOpAdapter<ValueType, const CombineOp, typename OtherTreeType::ValueType> extendedOp(op); | ||
1818 | this->combine2Extended(a, b, extendedOp, prune); | ||
1819 | } | ||
1820 | #endif | ||
1821 | |||
1822 | |||
1823 | template<typename RootNodeType> | ||
1824 | template<typename ExtendedCombineOp, typename OtherTreeType> | ||
1825 | inline void | ||
1826 | Tree<RootNodeType>::combine2Extended(const Tree& a, const OtherTreeType& b, | ||
1827 | ExtendedCombineOp& op, bool prune) | ||
1828 | { | ||
1829 |
5/10✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
✓ Branch 7 taken 1 times.
✗ Branch 8 not taken.
✓ Branch 10 taken 1 times.
✗ Branch 11 not taken.
✓ Branch 13 taken 1 times.
✗ Branch 14 not taken.
|
5 | this->clearAllAccessors(); |
1830 | mRoot.combine2(a.root(), b.root(), op, prune); | ||
1831 | } | ||
1832 | |||
1833 | |||
1834 | /// @internal This overload is needed (for ICC and GCC, but not for VC) to disambiguate | ||
1835 | /// code like the following, where the functor argument is a temporary: | ||
1836 | /// <tt>tree.combine2Extended(aTree, bTree, MyCombineOp(...))</tt>. | ||
1837 | #ifndef _WIN32 | ||
1838 | template<typename RootNodeType> | ||
1839 | template<typename ExtendedCombineOp, typename OtherTreeType> | ||
1840 | inline void | ||
1841 | Tree<RootNodeType>::combine2Extended(const Tree& a, const OtherTreeType& b, | ||
1842 | const ExtendedCombineOp& op, bool prune) | ||
1843 | { | ||
1844 | this->clearAllAccessors(); | ||
1845 | mRoot.template combine2<const ExtendedCombineOp>(a.root(), b.root(), op, prune); | ||
1846 | } | ||
1847 | #endif | ||
1848 | |||
1849 | |||
1850 | //////////////////////////////////////// | ||
1851 | |||
1852 | |||
1853 | template<typename RootNodeType> | ||
1854 | template<typename VisitorOp> | ||
1855 | inline void | ||
1856 | Tree<RootNodeType>::visit(VisitorOp& op) | ||
1857 | { | ||
1858 |
5/10✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
✓ Branch 7 taken 1 times.
✗ Branch 8 not taken.
✓ Branch 10 taken 1 times.
✗ Branch 11 not taken.
✓ Branch 13 taken 1 times.
✗ Branch 14 not taken.
|
5 | this->clearAllAccessors(); |
1859 | mRoot.template visit<VisitorOp>(op); | ||
1860 | 5 | } | |
1861 | |||
1862 | |||
1863 | template<typename RootNodeType> | ||
1864 | template<typename VisitorOp> | ||
1865 | inline void | ||
1866 | Tree<RootNodeType>::visit(VisitorOp& op) const | ||
1867 | { | ||
1868 | mRoot.template visit<VisitorOp>(op); | ||
1869 | 10 | } | |
1870 | |||
1871 | |||
1872 | /// @internal This overload is needed (for ICC and GCC, but not for VC) to disambiguate | ||
1873 | /// code like this: <tt>tree.visit(MyVisitorOp(...))</tt>. | ||
1874 | template<typename RootNodeType> | ||
1875 | template<typename VisitorOp> | ||
1876 | inline void | ||
1877 | Tree<RootNodeType>::visit(const VisitorOp& op) | ||
1878 | { | ||
1879 | this->clearAllAccessors(); | ||
1880 | mRoot.template visit<const VisitorOp>(op); | ||
1881 | } | ||
1882 | |||
1883 | |||
1884 | /// @internal This overload is needed (for ICC and GCC, but not for VC) to disambiguate | ||
1885 | /// code like this: <tt>tree.visit(MyVisitorOp(...))</tt>. | ||
1886 | template<typename RootNodeType> | ||
1887 | template<typename VisitorOp> | ||
1888 | inline void | ||
1889 | Tree<RootNodeType>::visit(const VisitorOp& op) const | ||
1890 | { | ||
1891 | mRoot.template visit<const VisitorOp>(op); | ||
1892 | } | ||
1893 | |||
1894 | |||
1895 | //////////////////////////////////////// | ||
1896 | |||
1897 | |||
1898 | template<typename RootNodeType> | ||
1899 | template<typename OtherTreeType, typename VisitorOp> | ||
1900 | inline void | ||
1901 | Tree<RootNodeType>::visit2(OtherTreeType& other, VisitorOp& op) | ||
1902 | { | ||
1903 |
5/10✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
✓ Branch 7 taken 1 times.
✗ Branch 8 not taken.
✓ Branch 10 taken 1 times.
✗ Branch 11 not taken.
✓ Branch 13 taken 1 times.
✗ Branch 14 not taken.
|
5 | this->clearAllAccessors(); |
1904 | using OtherRootNodeType = typename OtherTreeType::RootNodeType; | ||
1905 | mRoot.template visit2<OtherRootNodeType, VisitorOp>(other.root(), op); | ||
1906 | 5 | } | |
1907 | |||
1908 | |||
1909 | template<typename RootNodeType> | ||
1910 | template<typename OtherTreeType, typename VisitorOp> | ||
1911 | inline void | ||
1912 | Tree<RootNodeType>::visit2(OtherTreeType& other, VisitorOp& op) const | ||
1913 | { | ||
1914 | using OtherRootNodeType = typename OtherTreeType::RootNodeType; | ||
1915 | mRoot.template visit2<OtherRootNodeType, VisitorOp>(other.root(), op); | ||
1916 | } | ||
1917 | |||
1918 | |||
1919 | /// @internal This overload is needed (for ICC and GCC, but not for VC) to disambiguate | ||
1920 | /// code like this: <tt>aTree.visit2(bTree, MyVisitorOp(...))</tt>. | ||
1921 | template<typename RootNodeType> | ||
1922 | template<typename OtherTreeType, typename VisitorOp> | ||
1923 | inline void | ||
1924 | Tree<RootNodeType>::visit2(OtherTreeType& other, const VisitorOp& op) | ||
1925 | { | ||
1926 | this->clearAllAccessors(); | ||
1927 | using OtherRootNodeType = typename OtherTreeType::RootNodeType; | ||
1928 | mRoot.template visit2<OtherRootNodeType, const VisitorOp>(other.root(), op); | ||
1929 | } | ||
1930 | |||
1931 | |||
1932 | /// @internal This overload is needed (for ICC and GCC, but not for VC) to disambiguate | ||
1933 | /// code like this: <tt>aTree.visit2(bTree, MyVisitorOp(...))</tt>. | ||
1934 | template<typename RootNodeType> | ||
1935 | template<typename OtherTreeType, typename VisitorOp> | ||
1936 | inline void | ||
1937 | Tree<RootNodeType>::visit2(OtherTreeType& other, const VisitorOp& op) const | ||
1938 | { | ||
1939 | using OtherRootNodeType = typename OtherTreeType::RootNodeType; | ||
1940 | mRoot.template visit2<OtherRootNodeType, const VisitorOp>(other.root(), op); | ||
1941 | } | ||
1942 | |||
1943 | |||
1944 | //////////////////////////////////////// | ||
1945 | |||
1946 | |||
1947 | template<typename RootNodeType> | ||
1948 | inline const Name& | ||
1949 | Tree<RootNodeType>::treeType() | ||
1950 | { | ||
1951 | static std::once_flag once; | ||
1952 |
7/33✓ Branch 1 taken 41 times.
✗ Branch 2 not taken.
✗ Branch 4 not taken.
✗ Branch 5 not taken.
✗ Branch 10 not taken.
✗ Branch 11 not taken.
✗ Branch 13 not taken.
✗ Branch 14 not taken.
✗ Branch 15 not taken.
✗ Branch 16 not taken.
✗ Branch 17 not taken.
✗ Branch 18 not taken.
✗ Branch 19 not taken.
✗ Branch 20 not taken.
✗ Branch 21 not taken.
✗ Branch 23 not taken.
✗ Branch 24 not taken.
✓ Branch 26 taken 1 times.
✗ Branch 27 not taken.
✗ Branch 28 not taken.
✓ Branch 29 taken 1 times.
✗ Branch 30 not taken.
✗ Branch 31 not taken.
✓ Branch 32 taken 1 times.
✗ Branch 33 not taken.
✗ Branch 34 not taken.
✓ Branch 35 taken 1 times.
✗ Branch 36 not taken.
✗ Branch 37 not taken.
✓ Branch 38 taken 1 times.
✗ Branch 39 not taken.
✓ Branch 41 taken 1 times.
✗ Branch 42 not taken.
|
294596 | std::call_once(once, []() |
1953 | { | ||
1954 | std::vector<Index> dims; | ||
1955 |
19/46✓ Branch 1 taken 5 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 5 times.
✗ Branch 5 not taken.
✓ Branch 7 taken 6 times.
✗ Branch 8 not taken.
✓ Branch 10 taken 4 times.
✗ Branch 11 not taken.
✓ Branch 13 taken 2 times.
✗ Branch 14 not taken.
✓ Branch 16 taken 1 times.
✗ Branch 17 not taken.
✓ Branch 19 taken 3 times.
✗ Branch 20 not taken.
✓ Branch 22 taken 3 times.
✗ Branch 23 not taken.
✓ Branch 25 taken 1 times.
✗ Branch 26 not taken.
✓ Branch 28 taken 1 times.
✗ Branch 29 not taken.
✓ Branch 31 taken 1 times.
✗ Branch 32 not taken.
✓ Branch 34 taken 2 times.
✗ Branch 35 not taken.
✓ Branch 37 taken 1 times.
✗ Branch 38 not taken.
✓ Branch 40 taken 1 times.
✗ Branch 41 not taken.
✓ Branch 43 taken 1 times.
✗ Branch 44 not taken.
✗ Branch 46 not taken.
✗ Branch 47 not taken.
✓ Branch 49 taken 1 times.
✗ Branch 50 not taken.
✓ Branch 52 taken 1 times.
✗ Branch 53 not taken.
✓ Branch 55 taken 1 times.
✗ Branch 56 not taken.
✗ Branch 58 not taken.
✗ Branch 59 not taken.
✓ Branch 61 taken 1 times.
✗ Branch 62 not taken.
✗ Branch 64 not taken.
✗ Branch 65 not taken.
✗ Branch 67 not taken.
✗ Branch 68 not taken.
|
41 | Tree::getNodeLog2Dims(dims); |
1956 |
19/46✓ Branch 1 taken 5 times.
✗ Branch 2 not taken.
✓ Branch 6 taken 5 times.
✗ Branch 7 not taken.
✓ Branch 11 taken 6 times.
✗ Branch 12 not taken.
✓ Branch 16 taken 4 times.
✗ Branch 17 not taken.
✓ Branch 21 taken 2 times.
✗ Branch 22 not taken.
✓ Branch 26 taken 1 times.
✗ Branch 27 not taken.
✓ Branch 31 taken 3 times.
✗ Branch 32 not taken.
✓ Branch 36 taken 3 times.
✗ Branch 37 not taken.
✓ Branch 41 taken 1 times.
✗ Branch 42 not taken.
✓ Branch 46 taken 1 times.
✗ Branch 47 not taken.
✓ Branch 51 taken 1 times.
✗ Branch 52 not taken.
✓ Branch 56 taken 2 times.
✗ Branch 57 not taken.
✓ Branch 61 taken 1 times.
✗ Branch 62 not taken.
✓ Branch 66 taken 1 times.
✗ Branch 67 not taken.
✓ Branch 71 taken 1 times.
✗ Branch 72 not taken.
✗ Branch 76 not taken.
✗ Branch 77 not taken.
✓ Branch 81 taken 1 times.
✗ Branch 82 not taken.
✓ Branch 86 taken 1 times.
✗ Branch 87 not taken.
✓ Branch 91 taken 1 times.
✗ Branch 92 not taken.
✗ Branch 96 not taken.
✗ Branch 97 not taken.
✓ Branch 101 taken 1 times.
✗ Branch 102 not taken.
✗ Branch 106 not taken.
✗ Branch 107 not taken.
✗ Branch 111 not taken.
✗ Branch 112 not taken.
|
82 | std::ostringstream ostr; |
1957 |
19/46✓ Branch 1 taken 5 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 5 times.
✗ Branch 5 not taken.
✓ Branch 7 taken 6 times.
✗ Branch 8 not taken.
✓ Branch 10 taken 4 times.
✗ Branch 11 not taken.
✓ Branch 13 taken 2 times.
✗ Branch 14 not taken.
✓ Branch 16 taken 1 times.
✗ Branch 17 not taken.
✓ Branch 19 taken 3 times.
✗ Branch 20 not taken.
✓ Branch 22 taken 3 times.
✗ Branch 23 not taken.
✓ Branch 25 taken 1 times.
✗ Branch 26 not taken.
✓ Branch 28 taken 1 times.
✗ Branch 29 not taken.
✓ Branch 31 taken 1 times.
✗ Branch 32 not taken.
✓ Branch 34 taken 2 times.
✗ Branch 35 not taken.
✓ Branch 37 taken 1 times.
✗ Branch 38 not taken.
✓ Branch 40 taken 1 times.
✗ Branch 41 not taken.
✓ Branch 43 taken 1 times.
✗ Branch 44 not taken.
✗ Branch 46 not taken.
✗ Branch 47 not taken.
✓ Branch 49 taken 1 times.
✗ Branch 50 not taken.
✓ Branch 52 taken 1 times.
✗ Branch 53 not taken.
✓ Branch 55 taken 1 times.
✗ Branch 56 not taken.
✗ Branch 58 not taken.
✗ Branch 59 not taken.
✓ Branch 61 taken 1 times.
✗ Branch 62 not taken.
✗ Branch 64 not taken.
✗ Branch 65 not taken.
✗ Branch 67 not taken.
✗ Branch 68 not taken.
|
41 | ostr << "Tree_" << typeNameAsString<BuildType>(); |
1958 |
38/46✓ Branch 0 taken 15 times.
✓ Branch 1 taken 5 times.
✓ Branch 2 taken 15 times.
✓ Branch 3 taken 5 times.
✓ Branch 4 taken 18 times.
✓ Branch 5 taken 6 times.
✓ Branch 6 taken 13 times.
✓ Branch 7 taken 4 times.
✓ Branch 8 taken 6 times.
✓ Branch 9 taken 2 times.
✓ Branch 10 taken 3 times.
✓ Branch 11 taken 1 times.
✓ Branch 12 taken 8 times.
✓ Branch 13 taken 3 times.
✓ Branch 14 taken 9 times.
✓ Branch 15 taken 3 times.
✓ Branch 16 taken 3 times.
✓ Branch 17 taken 1 times.
✓ Branch 18 taken 3 times.
✓ Branch 19 taken 1 times.
✓ Branch 20 taken 3 times.
✓ Branch 21 taken 1 times.
✓ Branch 22 taken 6 times.
✓ Branch 23 taken 2 times.
✓ Branch 24 taken 3 times.
✓ Branch 25 taken 1 times.
✓ Branch 26 taken 3 times.
✓ Branch 27 taken 1 times.
✓ Branch 28 taken 3 times.
✓ Branch 29 taken 1 times.
✗ Branch 30 not taken.
✗ Branch 31 not taken.
✓ Branch 32 taken 3 times.
✓ Branch 33 taken 1 times.
✓ Branch 34 taken 3 times.
✓ Branch 35 taken 1 times.
✓ Branch 36 taken 3 times.
✓ Branch 37 taken 1 times.
✗ Branch 38 not taken.
✗ Branch 39 not taken.
✓ Branch 40 taken 3 times.
✓ Branch 41 taken 1 times.
✗ Branch 42 not taken.
✗ Branch 43 not taken.
✗ Branch 44 not taken.
✗ Branch 45 not taken.
|
164 | for (size_t i = 1, N = dims.size(); i < N; ++i) { // start from 1 to skip the RootNode |
1959 |
19/46✓ Branch 1 taken 15 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 15 times.
✗ Branch 5 not taken.
✓ Branch 7 taken 18 times.
✗ Branch 8 not taken.
✓ Branch 10 taken 13 times.
✗ Branch 11 not taken.
✓ Branch 13 taken 6 times.
✗ Branch 14 not taken.
✓ Branch 16 taken 3 times.
✗ Branch 17 not taken.
✓ Branch 19 taken 8 times.
✗ Branch 20 not taken.
✓ Branch 22 taken 9 times.
✗ Branch 23 not taken.
✓ Branch 25 taken 3 times.
✗ Branch 26 not taken.
✓ Branch 28 taken 3 times.
✗ Branch 29 not taken.
✓ Branch 31 taken 3 times.
✗ Branch 32 not taken.
✓ Branch 34 taken 6 times.
✗ Branch 35 not taken.
✓ Branch 37 taken 3 times.
✗ Branch 38 not taken.
✓ Branch 40 taken 3 times.
✗ Branch 41 not taken.
✓ Branch 43 taken 3 times.
✗ Branch 44 not taken.
✗ Branch 46 not taken.
✗ Branch 47 not taken.
✓ Branch 49 taken 3 times.
✗ Branch 50 not taken.
✓ Branch 52 taken 3 times.
✗ Branch 53 not taken.
✓ Branch 55 taken 3 times.
✗ Branch 56 not taken.
✗ Branch 58 not taken.
✗ Branch 59 not taken.
✓ Branch 61 taken 3 times.
✗ Branch 62 not taken.
✗ Branch 64 not taken.
✗ Branch 65 not taken.
✗ Branch 67 not taken.
✗ Branch 68 not taken.
|
123 | ostr << "_" << dims[i]; |
1960 | } | ||
1961 |
19/46✓ Branch 1 taken 5 times.
✗ Branch 2 not taken.
✓ Branch 5 taken 5 times.
✗ Branch 6 not taken.
✓ Branch 9 taken 6 times.
✗ Branch 10 not taken.
✓ Branch 13 taken 4 times.
✗ Branch 14 not taken.
✓ Branch 17 taken 2 times.
✗ Branch 18 not taken.
✓ Branch 21 taken 1 times.
✗ Branch 22 not taken.
✓ Branch 25 taken 3 times.
✗ Branch 26 not taken.
✓ Branch 29 taken 3 times.
✗ Branch 30 not taken.
✓ Branch 33 taken 1 times.
✗ Branch 34 not taken.
✓ Branch 37 taken 1 times.
✗ Branch 38 not taken.
✓ Branch 41 taken 1 times.
✗ Branch 42 not taken.
✓ Branch 45 taken 2 times.
✗ Branch 46 not taken.
✓ Branch 49 taken 1 times.
✗ Branch 50 not taken.
✓ Branch 53 taken 1 times.
✗ Branch 54 not taken.
✓ Branch 57 taken 1 times.
✗ Branch 58 not taken.
✗ Branch 61 not taken.
✗ Branch 62 not taken.
✓ Branch 65 taken 1 times.
✗ Branch 66 not taken.
✓ Branch 69 taken 1 times.
✗ Branch 70 not taken.
✓ Branch 73 taken 1 times.
✗ Branch 74 not taken.
✗ Branch 77 not taken.
✗ Branch 78 not taken.
✓ Branch 81 taken 1 times.
✗ Branch 82 not taken.
✗ Branch 85 not taken.
✗ Branch 86 not taken.
✗ Branch 89 not taken.
✗ Branch 90 not taken.
|
41 | sTreeTypeName.reset(new Name(ostr.str())); |
1962 | }); | ||
1963 | return *sTreeTypeName; | ||
1964 | } | ||
1965 | |||
1966 | |||
1967 | template<typename RootNodeType> | ||
1968 | template<typename OtherRootNodeType> | ||
1969 | inline bool | ||
1970 | Tree<RootNodeType>::hasSameTopology(const Tree<OtherRootNodeType>& other) const | ||
1971 | { | ||
1972 |
44/88✓ Branch 1 taken 15 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 30 times.
✗ Branch 5 not taken.
✓ Branch 7 taken 8 times.
✗ Branch 8 not taken.
✓ Branch 10 taken 7 times.
✗ Branch 11 not taken.
✓ Branch 13 taken 5 times.
✗ Branch 14 not taken.
✓ Branch 16 taken 5 times.
✗ Branch 17 not taken.
✓ Branch 19 taken 4 times.
✗ Branch 20 not taken.
✓ Branch 22 taken 4 times.
✗ Branch 23 not taken.
✓ Branch 25 taken 4 times.
✗ Branch 26 not taken.
✓ Branch 28 taken 4 times.
✗ Branch 29 not taken.
✓ Branch 31 taken 3 times.
✗ Branch 32 not taken.
✓ Branch 34 taken 3 times.
✗ Branch 35 not taken.
✓ Branch 37 taken 3 times.
✗ Branch 38 not taken.
✓ Branch 40 taken 3 times.
✗ Branch 41 not taken.
✓ Branch 43 taken 3 times.
✗ Branch 44 not taken.
✓ Branch 46 taken 2 times.
✗ Branch 47 not taken.
✓ Branch 49 taken 2 times.
✗ Branch 50 not taken.
✓ Branch 52 taken 2 times.
✗ Branch 53 not taken.
✓ Branch 55 taken 2 times.
✗ Branch 56 not taken.
✓ Branch 58 taken 2 times.
✗ Branch 59 not taken.
✓ Branch 61 taken 2 times.
✗ Branch 62 not taken.
✓ Branch 64 taken 2 times.
✗ Branch 65 not taken.
✓ Branch 67 taken 2 times.
✗ Branch 68 not taken.
✓ Branch 70 taken 2 times.
✗ Branch 71 not taken.
✓ Branch 73 taken 2 times.
✗ Branch 74 not taken.
✓ Branch 76 taken 2 times.
✗ Branch 77 not taken.
✓ Branch 79 taken 2 times.
✗ Branch 80 not taken.
✓ Branch 82 taken 2 times.
✗ Branch 83 not taken.
✓ Branch 85 taken 2 times.
✗ Branch 86 not taken.
✓ Branch 88 taken 2 times.
✗ Branch 89 not taken.
✓ Branch 91 taken 2 times.
✗ Branch 92 not taken.
✓ Branch 94 taken 2 times.
✗ Branch 95 not taken.
✓ Branch 97 taken 2 times.
✗ Branch 98 not taken.
✓ Branch 100 taken 2 times.
✗ Branch 101 not taken.
✓ Branch 103 taken 2 times.
✗ Branch 104 not taken.
✓ Branch 106 taken 2 times.
✗ Branch 107 not taken.
✓ Branch 109 taken 1 times.
✗ Branch 110 not taken.
✓ Branch 112 taken 1 times.
✗ Branch 113 not taken.
✓ Branch 115 taken 1 times.
✗ Branch 116 not taken.
✓ Branch 118 taken 1 times.
✗ Branch 119 not taken.
✓ Branch 121 taken 1 times.
✗ Branch 122 not taken.
✓ Branch 124 taken 1 times.
✗ Branch 125 not taken.
✓ Branch 127 taken 1 times.
✗ Branch 128 not taken.
✓ Branch 130 taken 1 times.
✗ Branch 131 not taken.
|
3384 | return mRoot.hasSameTopology(other.root()); |
1973 | } | ||
1974 | |||
1975 | |||
1976 | template<typename RootNodeType> | ||
1977 | inline bool | ||
1978 | 80 | Tree<RootNodeType>::evalLeafBoundingBox(CoordBBox& bbox) const | |
1979 | { | ||
1980 | 80 | bbox.reset(); // default invalid bbox | |
1981 | |||
1982 |
2/2✓ Branch 0 taken 39 times.
✓ Branch 1 taken 1 times.
|
80 | if (this->empty()) return false; // empty |
1983 | |||
1984 | 78 | mRoot.evalActiveBoundingBox(bbox, false); | |
1985 | |||
1986 | 78 | return !bbox.empty(); | |
1987 | } | ||
1988 | |||
1989 | template<typename RootNodeType> | ||
1990 | inline bool | ||
1991 | 748 | Tree<RootNodeType>::evalActiveVoxelBoundingBox(CoordBBox& bbox) const | |
1992 | { | ||
1993 | 748 | bbox.reset(); // default invalid bbox | |
1994 | |||
1995 |
2/2✓ Branch 0 taken 373 times.
✓ Branch 1 taken 1 times.
|
748 | if (this->empty()) return false; // empty |
1996 | |||
1997 | 746 | mRoot.evalActiveBoundingBox(bbox, true); | |
1998 | |||
1999 | 746 | return !bbox.empty(); | |
2000 | } | ||
2001 | |||
2002 | |||
2003 | template<typename RootNodeType> | ||
2004 | inline bool | ||
2005 | 2 | Tree<RootNodeType>::evalActiveVoxelDim(Coord& dim) const | |
2006 | { | ||
2007 | 2 | CoordBBox bbox; | |
2008 | 2 | bool notEmpty = this->evalActiveVoxelBoundingBox(bbox); | |
2009 | 2 | dim = bbox.extents(); | |
2010 | 2 | return notEmpty; | |
2011 | } | ||
2012 | |||
2013 | |||
2014 | template<typename RootNodeType> | ||
2015 | inline bool | ||
2016 | ✗ | Tree<RootNodeType>::evalLeafDim(Coord& dim) const | |
2017 | { | ||
2018 | ✗ | CoordBBox bbox; | |
2019 | ✗ | bool notEmpty = this->evalLeafBoundingBox(bbox); | |
2020 | ✗ | dim = bbox.extents(); | |
2021 | ✗ | return notEmpty; | |
2022 | } | ||
2023 | |||
2024 | |||
2025 | template<typename RootNodeType> | ||
2026 | inline void | ||
2027 | Tree<RootNodeType>::evalMinMax(ValueType& minVal, ValueType& maxVal) const | ||
2028 | { | ||
2029 | minVal = maxVal = zeroVal<ValueType>(); | ||
2030 | if (ValueOnCIter iter = this->cbeginValueOn()) { | ||
2031 | minVal = maxVal = *iter; | ||
2032 | for (++iter; iter; ++iter) { | ||
2033 | const ValueType& val = *iter; | ||
2034 | if (math::cwiseLessThan(val, minVal)) minVal = val; | ||
2035 | if (math::cwiseGreaterThan(val, maxVal)) maxVal = val; | ||
2036 | } | ||
2037 | } | ||
2038 | } | ||
2039 | |||
2040 | |||
2041 | template<typename RootNodeType> | ||
2042 | inline void | ||
2043 |
1/2✗ Branch 0 not taken.
✓ Branch 1 taken 47 times.
|
94 | Tree<RootNodeType>::getNodeLog2Dims(std::vector<Index>& dims) |
2044 | { | ||
2045 | dims.clear(); | ||
2046 | ✗ | RootNodeType::getNodeLog2Dims(dims); | |
2047 | 94 | } | |
2048 | |||
2049 | |||
2050 | template<typename RootNodeType> | ||
2051 | inline void | ||
2052 | ✗ | Tree<RootNodeType>::print(std::ostream& os, int verboseLevel) const | |
2053 | { | ||
2054 | ✗ | if (verboseLevel <= 0) return; | |
2055 | |||
2056 | /// @todo Consider using boost::io::ios_precision_saver instead. | ||
2057 | struct OnExit { | ||
2058 | std::ostream& os; | ||
2059 | std::streamsize savedPrecision; | ||
2060 | ✗ | OnExit(std::ostream& _os): os(_os), savedPrecision(os.precision()) {} | |
2061 | ✗ | ~OnExit() { os.precision(savedPrecision); } | |
2062 | }; | ||
2063 | OnExit restorePrecision(os); | ||
2064 | |||
2065 | std::vector<Index> dims; | ||
2066 | ✗ | Tree::getNodeLog2Dims(dims);// leaf is the last element | |
2067 | |||
2068 | os << "Information about Tree:\n" | ||
2069 | ✗ | << " Type: " << this->type() << "\n"; | |
2070 | |||
2071 | ✗ | os << " Configuration:\n"; | |
2072 | |||
2073 | ✗ | if (verboseLevel <= 1) { | |
2074 | // Print node types and sizes. | ||
2075 | ✗ | os << " Root(" << mRoot.getTableSize() << ")"; | |
2076 | ✗ | if (dims.size() > 1) { | |
2077 | ✗ | for (size_t i = 1, N = dims.size() - 1; i < N; ++i) { | |
2078 | ✗ | os << ", Internal(" << (1 << dims[i]) << "^3)"; | |
2079 | } | ||
2080 | ✗ | os << ", Leaf(" << (1 << dims.back()) << "^3)\n"; | |
2081 | } | ||
2082 | ✗ | os << " Background value: " << mRoot.background() << "\n"; | |
2083 | return; | ||
2084 | } | ||
2085 | |||
2086 | // The following is tree information that is expensive to extract. | ||
2087 | |||
2088 | ✗ | ValueType minVal = zeroVal<ValueType>(), maxVal = zeroVal<ValueType>(); | |
2089 | ✗ | if (verboseLevel > 3) { | |
2090 | // This forces loading of all non-resident nodes. | ||
2091 | ✗ | const math::MinMax<ValueType> extrema = tools::minMax(*this); | |
2092 | ✗ | minVal = extrema.min(); | |
2093 | ✗ | maxVal = extrema.max(); | |
2094 | } | ||
2095 | |||
2096 | ✗ | const auto nodeCount = this->nodeCount();//fast | |
2097 | ✗ | const Index32 leafCount = nodeCount.front();// leaf is the first element | |
2098 | ✗ | assert(dims.size() == nodeCount.size()); | |
2099 | |||
2100 | Index64 totalNodeCount = 0; | ||
2101 | ✗ | for (size_t i = 0; i < nodeCount.size(); ++i) totalNodeCount += nodeCount[i]; | |
2102 | |||
2103 | // Print node types, counts and sizes. | ||
2104 | ✗ | os << " Root(1 x " << mRoot.getTableSize() << ")"; | |
2105 | ✗ | if (dims.size() >= 2) { | |
2106 | ✗ | for (size_t i = 1, N = dims.size() - 1; i < N; ++i) { | |
2107 | ✗ | os << ", Internal(" << util::formattedInt(nodeCount[N - i]); | |
2108 | ✗ | os << " x " << (1 << dims[i]) << "^3)"; | |
2109 | } | ||
2110 | ✗ | os << ", Leaf(" << util::formattedInt(leafCount); | |
2111 | ✗ | os << " x " << (1 << dims.back()) << "^3)\n"; | |
2112 | } | ||
2113 | ✗ | os << " Background value: " << mRoot.background() << "\n"; | |
2114 | |||
2115 | // Statistics of topology and values | ||
2116 | |||
2117 | ✗ | if (verboseLevel > 3) { | |
2118 | ✗ | os << " Min value: " << minVal << "\n"; | |
2119 | ✗ | os << " Max value: " << maxVal << "\n"; | |
2120 | } | ||
2121 | |||
2122 | const Index64 | ||
2123 | ✗ | numActiveVoxels = this->activeVoxelCount(), | |
2124 | ✗ | numActiveLeafVoxels = this->activeLeafVoxelCount(), | |
2125 | ✗ | numActiveTiles = this->activeTileCount(); | |
2126 | |||
2127 | ✗ | os << " Number of active voxels: " << util::formattedInt(numActiveVoxels) << "\n"; | |
2128 | ✗ | os << " Number of active tiles: " << util::formattedInt(numActiveTiles) << "\n"; | |
2129 | |||
2130 | Coord dim(0, 0, 0); | ||
2131 | Index64 totalVoxels = 0; | ||
2132 | ✗ | if (numActiveVoxels) { // nonempty | |
2133 | ✗ | CoordBBox bbox; | |
2134 | ✗ | this->evalActiveVoxelBoundingBox(bbox); | |
2135 | ✗ | dim = bbox.extents(); | |
2136 | ✗ | totalVoxels = dim.x() * uint64_t(dim.y()) * dim.z(); | |
2137 | |||
2138 | ✗ | os << " Bounding box of active voxels: " << bbox << "\n"; | |
2139 | os << " Dimensions of active voxels: " | ||
2140 | ✗ | << dim[0] << " x " << dim[1] << " x " << dim[2] << "\n"; | |
2141 | |||
2142 | ✗ | const double activeRatio = (100.0 * double(numActiveVoxels)) / double(totalVoxels); | |
2143 | ✗ | os << " Percentage of active voxels: " << std::setprecision(3) << activeRatio << "%\n"; | |
2144 | |||
2145 | ✗ | if (leafCount > 0) { | |
2146 | ✗ | const double fillRatio = (100.0 * double(numActiveLeafVoxels)) | |
2147 | ✗ | / (double(leafCount) * double(LeafNodeType::NUM_VOXELS)); | |
2148 | ✗ | os << " Average leaf node fill ratio: " << fillRatio << "%\n"; | |
2149 | } | ||
2150 | |||
2151 | ✗ | if (verboseLevel > 2) { | |
2152 | Index64 sum = 0;// count the number of unallocated leaf nodes | ||
2153 | ✗ | for (auto it = this->cbeginLeaf(); it; ++it) if (!it->isAllocated()) ++sum; | |
2154 | os << " Number of unallocated nodes: " | ||
2155 | ✗ | << util::formattedInt(sum) << " (" | |
2156 | ✗ | << (100.0 * double(sum) / double(totalNodeCount)) << "%)\n"; | |
2157 | } | ||
2158 | } else { | ||
2159 | ✗ | os << " Tree is empty!\n"; | |
2160 | } | ||
2161 | os << std::flush; | ||
2162 | |||
2163 | ✗ | if (verboseLevel == 2) return; | |
2164 | |||
2165 | // Memory footprint in bytes | ||
2166 | const Index64 | ||
2167 | ✗ | actualMem = this->memUsage(), | |
2168 | ✗ | denseMem = sizeof(ValueType) * totalVoxels, | |
2169 | ✗ | voxelsMem = sizeof(ValueType) * numActiveLeafVoxels; | |
2170 | ///< @todo not accurate for BoolTree (and probably should count tile values) | ||
2171 | |||
2172 | ✗ | os << "Memory footprint:\n"; | |
2173 | ✗ | util::printBytes(os, actualMem, " Actual: "); | |
2174 | ✗ | util::printBytes(os, voxelsMem, " Active leaf voxels: "); | |
2175 | |||
2176 | ✗ | if (numActiveVoxels) { | |
2177 | ✗ | util::printBytes(os, denseMem, " Dense equivalent: "); | |
2178 | ✗ | os << " Actual footprint is " << (100.0 * double(actualMem) / double(denseMem)) | |
2179 | ✗ | << "% of an equivalent dense volume\n"; | |
2180 | ✗ | os << " Leaf voxel footprint is " << (100.0 * double(voxelsMem) / double(actualMem)) | |
2181 | ✗ | << "% of actual footprint\n"; | |
2182 | } | ||
2183 | } | ||
2184 | |||
2185 | } // namespace tree | ||
2186 | } // namespace OPENVDB_VERSION_NAME | ||
2187 | } // namespace openvdb | ||
2188 | |||
2189 | #endif // OPENVDB_TREE_TREE_HAS_BEEN_INCLUDED | ||
2190 |