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

Method GetBucketNeighbors

Common/DataModel/vtkStaticPointLocator.cxx:245–291  ·  view source on GitHub ↗

------------------------------------------------------------------------------ Internal function to get bucket neighbors at specified level

Source from the content-addressed store, hash-verified

243// Internal function to get bucket neighbors at specified level
244//
245void vtkBucketList::GetBucketNeighbors(
246 NeighborBuckets* buckets, const int ijk[3], const int ndivs[3], int level)
247{
248 int i, j, k, min, max, minLevel[3], maxLevel[3];
249 int nei[3];
250
251 // Initialize
252 //
253 buckets->Reset();
254
255 // If at this bucket, just place into list
256 //
257 if (level == 0)
258 {
259 buckets->InsertNextBucket(ijk);
260 return;
261 }
262
263 // Create permutations of the ijk indices that are at the level
264 // required. If these are legal buckets, add to list for searching.
265 //
266 for (i = 0; i < 3; i++)
267 {
268 min = ijk[i] - level;
269 max = ijk[i] + level;
270 minLevel[i] = (min > 0 ? min : 0);
271 maxLevel[i] = (max < (ndivs[i] - 1) ? max : (ndivs[i] - 1));
272 }
273
274 for (i = minLevel[0]; i <= maxLevel[0]; i++)
275 {
276 for (j = minLevel[1]; j <= maxLevel[1]; j++)
277 {
278 for (k = minLevel[2]; k <= maxLevel[2]; k++)
279 {
280 if (i == (ijk[0] + level) || i == (ijk[0] - level) || j == (ijk[1] + level) ||
281 j == (ijk[1] - level) || k == (ijk[2] + level) || k == (ijk[2] - level))
282 {
283 nei[0] = i;
284 nei[1] = j;
285 nei[2] = k;
286 buckets->InsertNextBucket(nei);
287 }
288 }
289 }
290 }
291}
292
293//------------------------------------------------------------------------------
294// Given a position x, return the id of the point closest to it.

Callers 2

FindClosestPointMethod · 0.45
FindClosestNPointsMethod · 0.45

Calls 2

ResetMethod · 0.45
InsertNextBucketMethod · 0.45

Tested by

no test coverage detected