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