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

Method GetBucketNeighbors

Common/DataModel/vtkPointLocator.cxx:920–966  ·  view source on GitHub ↗

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

Source from the content-addressed store, hash-verified

918// Internal function to get bucket neighbors at specified level
919//
920void vtkPointLocator::GetBucketNeighbors(
921 vtkNeighborPoints* buckets, const int ijk[3], const int ndivs[3], int level)
922{
923 int i, j, k, min, max, minLevel[3], maxLevel[3];
924 int nei[3];
925 //
926 // Initialize
927 //
928 buckets->Reset();
929 //
930 // If at this bucket, just place into list
931 //
932 if (level == 0)
933 {
934 buckets->InsertNextPoint(ijk);
935 return;
936 }
937 //
938 // Create permutations of the ijk indices that are at the level
939 // required. If these are legal buckets, add to list for searching.
940 //
941 for (i = 0; i < 3; i++)
942 {
943 min = ijk[i] - level;
944 max = ijk[i] + level;
945 minLevel[i] = (min > 0 ? min : 0);
946 maxLevel[i] = (max < (ndivs[i] - 1) ? max : (ndivs[i] - 1));
947 }
948
949 for (i = minLevel[0]; i <= maxLevel[0]; i++)
950 {
951 for (j = minLevel[1]; j <= maxLevel[1]; j++)
952 {
953 for (k = minLevel[2]; k <= maxLevel[2]; k++)
954 {
955 if (i == (ijk[0] + level) || i == (ijk[0] - level) || j == (ijk[1] + level) ||
956 j == (ijk[1] - level) || k == (ijk[2] + level) || k == (ijk[2] - level))
957 {
958 nei[0] = i;
959 nei[1] = j;
960 nei[2] = k;
961 buckets->InsertNextPoint(nei);
962 }
963 }
964 }
965 }
966}
967
968//------------------------------------------------------------------------------
969// Internal method to find those buckets that are within distance specified

Callers 5

FindClosestPointMethod · 0.95
FindDistributedPointsMethod · 0.95
FindClosestNPointsMethod · 0.95
IsInsertedPointMethod · 0.95

Calls 2

ResetMethod · 0.45
InsertNextPointMethod · 0.45

Tested by

no test coverage detected