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

Method GetOverlappingBuckets

Common/DataModel/vtkStaticPointLocator.cxx:1339–1376  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

1337// only those buckets outside of level radiuses of ijk are returned
1338template <typename TIds>
1339void BucketList<TIds>::GetOverlappingBuckets(
1340 NeighborBuckets* buckets, const double x[3], const int ijk[3], double dist, int level)
1341{
1342 int i, j, k, nei[3], minLevel[3], maxLevel[3];
1343 double xMin[3], xMax[3];
1344
1345 // Initialize
1346 buckets->Reset();
1347
1348 // Determine the range of indices in each direction
1349 xMin[0] = x[0] - dist;
1350 xMin[1] = x[1] - dist;
1351 xMin[2] = x[2] - dist;
1352 xMax[0] = x[0] + dist;
1353 xMax[1] = x[1] + dist;
1354 xMax[2] = x[2] + dist;
1355
1356 this->GetBucketIndices(xMin, minLevel);
1357 this->GetBucketIndices(xMax, maxLevel);
1358
1359 for (i = minLevel[0]; i <= maxLevel[0]; i++)
1360 {
1361 for (j = minLevel[1]; j <= maxLevel[1]; j++)
1362 {
1363 for (k = minLevel[2]; k <= maxLevel[2]; k++)
1364 {
1365 if (i < (ijk[0] - level) || i > (ijk[0] + level) || j < (ijk[1] - level) ||
1366 j > (ijk[1] + level) || k < (ijk[2] - level) || k > (ijk[2] + level))
1367 {
1368 nei[0] = i;
1369 nei[1] = j;
1370 nei[2] = k;
1371 buckets->InsertNextBucket(nei);
1372 }
1373 }
1374 }
1375 }
1376}
1377
1378//------------------------------------------------------------------------------
1379// Internal method to find those buckets that are within distance specified

Callers 3

FindClosestPointMethod · 0.95
FindClosestNPointsMethod · 0.95

Calls 4

GetNumberOfIdsMethod · 0.95
ResetMethod · 0.45
GetBucketIndicesMethod · 0.45
InsertNextBucketMethod · 0.45

Tested by

no test coverage detected