// Locate point on patch. Returns (mesh) point label. label findPoint(const primitivePatch& pp, const point& nearPoint) { const pointField& points = pp.points(); const labelList& meshPoints = pp.meshPoints(); // Find nearest and next nearest scalar minDistSqr = GREAT; label minI = -1; scalar almostMinDistSqr = GREAT; label almostMinI = -1; forAll(meshPoints, i) { label pointI = meshPoints[i]; scalar distSqr = magSqr(nearPoint - points[pointI]); if (distSqr < minDistSqr) { almostMinDistSqr = minDistSqr; almostMinI = minI; minDistSqr = distSqr; minI = pointI; } else if (distSqr < almostMinDistSqr) { almostMinDistSqr = distSqr; almostMinI = pointI; } }
Foam::pointField Foam::perfectInterface::calcFaceCentres ( const primitivePatch& pp ) { const pointField& points = pp.points(); pointField ctrs(pp.size()); forAll(ctrs, patchFaceI) { ctrs[patchFaceI] = pp[patchFaceI].centre(points); }