Construct the following hierarchy for testing: M = MBDS; P = PolyData; 0 = null dataset ------------------------M------------------------ // depth 0 | | | | P 0 -------------------M-- M // depth 1 | | | | | -----M----- 0 P ------M ------------M // depth 2 | | | | |
| 237 | // P // depth 5 |
| 238 | // |
| 239 | vtkSmartPointer<vtkDataObjectTree> CreateDataSet() |
| 240 | { |
| 241 | auto addPolyData = [](unsigned int blockNum, |
| 242 | vtkMultiBlockDataSet* mbds) -> vtkSmartPointer<vtkPolyData> |
| 243 | { |
| 244 | vtkNew<vtkPolyData> pd; |
| 245 | mbds->SetBlock(blockNum, pd); |
| 246 | return { pd }; |
| 247 | }; |
| 248 | |
| 249 | auto addMultiBlock = [](unsigned int blockNum, |
| 250 | vtkMultiBlockDataSet* mbds) -> vtkSmartPointer<vtkMultiBlockDataSet> |
| 251 | { |
| 252 | auto newMbds = vtkSmartPointer<vtkMultiBlockDataSet>::New(); |
| 253 | mbds->SetBlock(blockNum, newMbds); |
| 254 | return newMbds; |
| 255 | }; |
| 256 | |
| 257 | auto addNullDataSet = [](unsigned int blockNum, vtkMultiBlockDataSet* mbds) -> void |
| 258 | { mbds->SetBlock(blockNum, nullptr); }; |
| 259 | |
| 260 | auto cds00 = vtkSmartPointer<vtkMultiBlockDataSet>::New(); |
| 261 | cds00->SetNumberOfBlocks(4); |
| 262 | addPolyData(0, cds00); |
| 263 | addNullDataSet(1, cds00); |
| 264 | auto cds10 = addMultiBlock(2, cds00); |
| 265 | auto cds11 = addMultiBlock(3, cds00); |
| 266 | |
| 267 | cds10->SetNumberOfBlocks(4); |
| 268 | auto cds20 = addMultiBlock(0, cds10); |
| 269 | addNullDataSet(1, cds10); |
| 270 | addPolyData(2, cds10); |
| 271 | auto cds21 = addMultiBlock(3, cds10); |
| 272 | |
| 273 | cds11->SetNumberOfBlocks(1); |
| 274 | auto cds22 = addMultiBlock(0, cds11); |
| 275 | |
| 276 | cds20->SetNumberOfBlocks(3); |
| 277 | addNullDataSet(0, cds20); |
| 278 | addNullDataSet(1, cds20); |
| 279 | addNullDataSet(2, cds20); |
| 280 | |
| 281 | cds21->SetNumberOfBlocks(2); |
| 282 | addPolyData(0, cds21); |
| 283 | addNullDataSet(1, cds21); |
| 284 | |
| 285 | cds22->SetNumberOfBlocks(2); |
| 286 | auto cds30 = addMultiBlock(0, cds22); |
| 287 | addNullDataSet(1, cds22); |
| 288 | |
| 289 | cds30->SetNumberOfBlocks(3); |
| 290 | auto cds40 = addMultiBlock(0, cds30); |
| 291 | addNullDataSet(1, cds30); |
| 292 | addPolyData(2, cds30); |
| 293 | |
| 294 | cds40->SetNumberOfBlocks(1); |
| 295 | addPolyData(0, cds40); |
| 296 |
no test coverage detected