diff --git a/src/meshTools/searchableSurface/searchableSurfaceCollection.C b/src/meshTools/searchableSurface/searchableSurfaceCollection.C index 794cee2090..91115688b2 100644 --- a/src/meshTools/searchableSurface/searchableSurfaceCollection.C +++ b/src/meshTools/searchableSurface/searchableSurfaceCollection.C @@ -247,6 +247,35 @@ Foam::searchableSurfaceCollection::searchableSurfaceCollection transform_.setSize(surfI); subGeom_.setSize(surfI); indexOffset_.setSize(surfI+1); + + // Bounds is the overall bounds + bounds() = boundBox(point::max, point::min); + + forAll(subGeom_, surfI) + { + const boundBox& surfBb = subGeom_[surfI].bounds(); + + // Transform back to global coordinate sys. + const point surfBbMin = transform_[surfI].globalPosition + ( + cmptMultiply + ( + surfBb.min(), + scale_[surfI] + ) + ); + const point surfBbMax = transform_[surfI].globalPosition + ( + cmptMultiply + ( + surfBb.max(), + scale_[surfI] + ) + ); + + bounds().min() = min(bounds().min(), surfBbMin); + bounds().max() = max(bounds().max(), surfBbMax); + } } @@ -579,6 +608,9 @@ void Foam::searchableSurfaceCollection::getNormal vectorField surfNormal; subGeom_[surfI].getNormal(surfInfo[surfI], surfNormal); + // Transform back to global coordinate sys. + surfNormal = transform_[surfI].globalVector(surfNormal); + const labelList& map = infoMap[surfI]; forAll(map, i) {