From 6ffcc03de189a5479ee504c29e980ca3f172d84b Mon Sep 17 00:00:00 2001 From: laurence <laurence> Date: Fri, 6 Sep 2013 17:03:41 +0100 Subject: [PATCH] BUG: foamyHexMesh: Missing include and find all intersections function --- .../conformalVoronoiMeshIO.C | 1 + .../conformationSurfaces.C | 36 +++++++++++++++++++ .../conformationSurfaces.H | 8 +++++ 3 files changed, 45 insertions(+) diff --git a/applications/utilities/mesh/generation/foamyHexMesh/conformalVoronoiMesh/conformalVoronoiMesh/conformalVoronoiMeshIO.C b/applications/utilities/mesh/generation/foamyHexMesh/conformalVoronoiMesh/conformalVoronoiMesh/conformalVoronoiMeshIO.C index 0de3572e000..50d0288718a 100644 --- a/applications/utilities/mesh/generation/foamyHexMesh/conformalVoronoiMesh/conformalVoronoiMesh/conformalVoronoiMeshIO.C +++ b/applications/utilities/mesh/generation/foamyHexMesh/conformalVoronoiMesh/conformalVoronoiMesh/conformalVoronoiMeshIO.C @@ -40,6 +40,7 @@ License #include "polyModifyFace.H" #include "syncTools.H" #include "regionSplit.H" +#include "OBJstream.H" // * * * * * * * * * * * * * * * Member Functions * * * * * * * * * * * * * // diff --git a/applications/utilities/mesh/generation/foamyHexMesh/conformalVoronoiMesh/conformationSurfaces/conformationSurfaces.C b/applications/utilities/mesh/generation/foamyHexMesh/conformalVoronoiMesh/conformationSurfaces/conformationSurfaces.C index 351b85c952d..43d9c770134 100644 --- a/applications/utilities/mesh/generation/foamyHexMesh/conformalVoronoiMesh/conformationSurfaces/conformationSurfaces.C +++ b/applications/utilities/mesh/generation/foamyHexMesh/conformalVoronoiMesh/conformationSurfaces/conformationSurfaces.C @@ -872,6 +872,42 @@ void Foam::conformationSurfaces::findSurfaceAnyIntersection } +void Foam::conformationSurfaces::findSurfaceAllIntersections +( + const point& start, + const point& end, + List<pointIndexHit>& surfHit, + labelList& hitSurface +) const +{ + labelListList hitSurfaces; + List<List<pointIndexHit> > hitInfo; + + searchableSurfacesQueries::findAllIntersections + ( + allGeometry_, + surfaces_, + pointField(1, start), + pointField(1, end), + hitSurfaces, + hitInfo + ); + + surfHit = hitInfo[0]; + + hitSurface.setSize(hitSurfaces[0].size()); + + forAll(hitSurfaces[0], surfI) + { + // hitSurfaces has returned the index of the entry in surfaces_ that was + // found, not the index of the surface in allGeometry_, translating this + // to allGeometry_ + + hitSurface[surfI] = surfaces_[hitSurfaces[0][surfI]]; + } +} + + void Foam::conformationSurfaces::findSurfaceNearestIntersection ( const point& start, diff --git a/applications/utilities/mesh/generation/foamyHexMesh/conformalVoronoiMesh/conformationSurfaces/conformationSurfaces.H b/applications/utilities/mesh/generation/foamyHexMesh/conformalVoronoiMesh/conformationSurfaces/conformationSurfaces.H index 68c5fd28b92..12932255da2 100644 --- a/applications/utilities/mesh/generation/foamyHexMesh/conformalVoronoiMesh/conformationSurfaces/conformationSurfaces.H +++ b/applications/utilities/mesh/generation/foamyHexMesh/conformalVoronoiMesh/conformationSurfaces/conformationSurfaces.H @@ -257,6 +257,14 @@ public: label& hitSurface ) const; + void findSurfaceAllIntersections + ( + const point& start, + const point& end, + List<pointIndexHit>& surfHit, + labelList& hitSurface + ) const; + //- Finding the nearestIntersection of the surface to start void findSurfaceNearestIntersection ( -- GitLab