MCPcopy Create free account
hub / github.com/Kitware/VTK / SplitExtent

Method SplitExtent

Common/ExecutionModel/vtkExtentSplitter.cxx:334–426  ·  view source on GitHub ↗

------------------------------------------------------------------------------

Source from the content-addressed store, hash-verified

332
333//------------------------------------------------------------------------------
334void vtkExtentSplitter::SplitExtent(int* extent, int* subextent)
335{
336 // Subtract the volume described by subextent from that described by
337 // extent. Split the remaining region into rectangular solids and
338 // queue them as additional extents. We may assume that subextent
339 // is completely contained by extent.
340 vtkExtentSplitterExtent e;
341
342 // In PointMode, there are no cell data, so we can skip over cells.
343 int pointMode = this->PointMode ? 1 : 0;
344
345 // Split with xy-planes.
346 if (extent[4] < subextent[4])
347 {
348 e.extent[0] = extent[0];
349 e.extent[1] = extent[1];
350 e.extent[2] = extent[2];
351 e.extent[3] = extent[3];
352 e.extent[4] = extent[4];
353 e.extent[5] = subextent[4] - pointMode;
354 this->Internal->Queue.push(e);
355
356 extent[4] = subextent[4];
357 }
358 if (extent[5] > subextent[5])
359 {
360 e.extent[0] = extent[0];
361 e.extent[1] = extent[1];
362 e.extent[2] = extent[2];
363 e.extent[3] = extent[3];
364 e.extent[4] = subextent[5] + pointMode;
365 e.extent[5] = extent[5];
366 this->Internal->Queue.push(e);
367
368 extent[5] = subextent[5];
369 }
370
371 // Split with xz-planes.
372 if (extent[2] < subextent[2])
373 {
374 e.extent[0] = extent[0];
375 e.extent[1] = extent[1];
376 e.extent[2] = extent[2];
377 e.extent[3] = subextent[2] - pointMode;
378 e.extent[4] = extent[4];
379 e.extent[5] = extent[5];
380 this->Internal->Queue.push(e);
381
382 extent[2] = subextent[2];
383 }
384 if (extent[3] > subextent[3])
385 {
386 e.extent[0] = extent[0];
387 e.extent[1] = extent[1];
388 e.extent[2] = subextent[3] + pointMode;
389 e.extent[3] = extent[3];
390 e.extent[4] = extent[4];
391 e.extent[5] = extent[5];

Callers 5

ComputeSubExtentsMethod · 0.95
TestSplitExtentMethod · 0.45
RequestDataMethod · 0.45
RequestDataMethod · 0.45

Calls 1

pushMethod · 0.45

Tested by 1

TestSplitExtentMethod · 0.36