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

Method DetectNeighbors

Filters/Geometry/vtkStructuredGridConnectivity.cxx:753–796  ·  view source on GitHub ↗

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

Source from the content-addressed store, hash-verified

751
752//------------------------------------------------------------------------------
753void vtkStructuredGridConnectivity::DetectNeighbors(
754 int i, int j, int ex1[6], int ex2[6], int orientation[3], int ndim)
755{
756 std::vector<int> status;
757 status.resize(ndim);
758
759 int A[2];
760 int B[2];
761 int overlap[2];
762 int iOrientation[3];
763 int jOrientation[3];
764
765 int overlapExtent[6];
766 for (int ii = 0; ii < 3; ++ii)
767 {
768 overlapExtent[ii * 2] = overlapExtent[ii * 2 + 1] = 0;
769 iOrientation[ii] = vtkStructuredNeighbor::UNDEFINED;
770 jOrientation[ii] = vtkStructuredNeighbor::UNDEFINED;
771 }
772
773 int dim = 0;
774 int idx = 0;
775 for (dim = 0; dim < ndim; ++dim)
776 {
777 idx = orientation[dim];
778 A[0] = ex1[idx * 2];
779 A[1] = ex1[idx * 2 + 1];
780 B[0] = ex2[idx * 2];
781 B[1] = ex2[idx * 2 + 1];
782 status[idx] = this->IntervalOverlap(A, B, overlap);
783 if (status[idx] == VTK_NO_OVERLAP)
784 {
785 return; /* No neighbors */
786 }
787
788 overlapExtent[idx * 2] = overlap[0];
789 overlapExtent[idx * 2 + 1] = overlap[1];
790
791 this->DetermineNeighborOrientation(idx, A, B, overlap, iOrientation);
792 this->DetermineNeighborOrientation(idx, B, A, overlap, jOrientation);
793 } // END for all dimensions
794
795 this->SetNeighbors(i, j, iOrientation, jOrientation, overlapExtent);
796}
797
798//------------------------------------------------------------------------------
799void vtkStructuredGridConnectivity::SetBlockTopology(int gridID)

Callers 1

EstablishNeighborsMethod · 0.95

Calls 4

IntervalOverlapMethod · 0.95
SetNeighborsMethod · 0.95
resizeMethod · 0.45

Tested by

no test coverage detected