From b96cef1339fb59b5510fb7921bf8d1e66868b36d Mon Sep 17 00:00:00 2001
From: Andrew Heather <>
Date: Fri, 3 Dec 2021 13:47:19 +0000
Subject: [PATCH] ENH: [sampled]DistanceSurface - added construct from
 searchableSurface

---
 .../distanceSurface/sampledDistanceSurface.C  | 24 +++++++++++++++++
 .../distanceSurface/sampledDistanceSurface.H  | 12 +++++++++
 .../surface/distanceSurface/distanceSurface.C | 27 ++++++++++++++++---
 .../surface/distanceSurface/distanceSurface.H | 10 +++++++
 4 files changed, 69 insertions(+), 4 deletions(-)

diff --git a/src/sampling/sampledSurface/distanceSurface/sampledDistanceSurface.C b/src/sampling/sampledSurface/distanceSurface/sampledDistanceSurface.C
index 3d9e7a597bc..a9d3bf06c11 100644
--- a/src/sampling/sampledSurface/distanceSurface/sampledDistanceSurface.C
+++ b/src/sampling/sampledSurface/distanceSurface/sampledDistanceSurface.C
@@ -64,6 +64,30 @@ Foam::sampledDistanceSurface::sampledDistanceSurface
 {}
 
 
+Foam::sampledDistanceSurface::sampledDistanceSurface
+(
+    const word name,
+    const polyMesh& mesh,
+    const bool interpolate,
+    autoPtr<searchableSurface>&& surface,
+    const scalar distance,
+    const bool useSignedDistance
+)
+:
+    sampledSurface(name, mesh, interpolate),
+    distanceSurface
+    (
+        mesh,
+        interpolate,
+        std::move(surface),
+        distance,
+        useSignedDistance
+    ),
+    average_(false), // pass as param?
+    needsUpdate_(true)
+{}
+
+
 // * * * * * * * * * * * * * * * Member Functions  * * * * * * * * * * * * * //
 
 bool Foam::sampledDistanceSurface::needsUpdate() const
diff --git a/src/sampling/sampledSurface/distanceSurface/sampledDistanceSurface.H b/src/sampling/sampledSurface/distanceSurface/sampledDistanceSurface.H
index 5477ad3595a..7e72c12ae27 100644
--- a/src/sampling/sampledSurface/distanceSurface/sampledDistanceSurface.H
+++ b/src/sampling/sampledSurface/distanceSurface/sampledDistanceSurface.H
@@ -141,6 +141,18 @@ public:
         );
 
 
+        sampledDistanceSurface
+        (
+            const word name,
+            const polyMesh& mesh,
+            const bool interpolate,
+            autoPtr<searchableSurface>&& surface,
+            const scalar distance,
+            const bool useSignedDistance
+            //const isoSurfaceParams& params = isoSurfaceParams()
+        );
+
+
     //- Destructor
     virtual ~sampledDistanceSurface() = default;
 
diff --git a/src/sampling/surface/distanceSurface/distanceSurface.C b/src/sampling/surface/distanceSurface/distanceSurface.C
index 3d0f1f4d9b1..06b44dc5185 100644
--- a/src/sampling/surface/distanceSurface/distanceSurface.C
+++ b/src/sampling/surface/distanceSurface/distanceSurface.C
@@ -349,9 +349,10 @@ Foam::distanceSurface::distanceSurface
     const isoSurfaceParams& params
 )
 :
-    mesh_(mesh),
-    geometryPtr_
+    distanceSurface
     (
+        mesh,
+        interpolate,
         searchableSurface::New
         (
             surfaceType,
@@ -365,8 +366,26 @@ Foam::distanceSurface::distanceSurface
                 IOobject::NO_WRITE
             ),
             dictionary()
-        )
-    ),
+        ),
+        distance,
+        useSignedDistance,
+        params
+    )
+{}
+
+
+Foam::distanceSurface::distanceSurface
+(
+    const polyMesh& mesh,
+    const bool interpolate,
+    autoPtr<searchableSurface>&& surface,
+    const scalar distance,
+    const bool useSignedDistance,
+    const isoSurfaceParams& params
+)
+:
+    mesh_(mesh),
+    geometryPtr_(surface),
     distance_(distance),
     withZeroDistance_(equal(distance_, 0)),
     withSignDistance_
diff --git a/src/sampling/surface/distanceSurface/distanceSurface.H b/src/sampling/surface/distanceSurface/distanceSurface.H
index 184b24d8c31..6a4c2969322 100644
--- a/src/sampling/surface/distanceSurface/distanceSurface.H
+++ b/src/sampling/surface/distanceSurface/distanceSurface.H
@@ -326,6 +326,16 @@ public:
             const isoSurfaceParams& params = isoSurfaceParams()
         );
 
+        distanceSurface
+        (
+            const polyMesh& mesh,
+            const bool interpolate,
+            autoPtr<searchableSurface>&& surface,
+            const scalar distance,
+            const bool useSignedDistance,
+            const isoSurfaceParams& params = isoSurfaceParams()
+        );
+
 
     //- Destructor
     virtual ~distanceSurface() = default;
-- 
GitLab