From 7ddba46e363c86fcc5b8f82d9bc3639b65465d33 Mon Sep 17 00:00:00 2001
From: laurence <laurence>
Date: Fri, 3 Feb 2012 14:33:11 +0000
Subject: [PATCH] ENH: Add findSphere to dynamicTreeDataPoint

---
 .../dynamicTreeDataPoint.C                    | 21 +++++++++++++++++++
 .../dynamicTreeDataPoint.H                    |  8 +++++++
 2 files changed, 29 insertions(+)

diff --git a/src/OpenFOAM/algorithms/dynamicIndexedOctree/dynamicTreeDataPoint.C b/src/OpenFOAM/algorithms/dynamicIndexedOctree/dynamicTreeDataPoint.C
index 81b3a1c85a6..05b37e2f760 100644
--- a/src/OpenFOAM/algorithms/dynamicIndexedOctree/dynamicTreeDataPoint.C
+++ b/src/OpenFOAM/algorithms/dynamicIndexedOctree/dynamicTreeDataPoint.C
@@ -75,6 +75,27 @@ bool Foam::dynamicTreeDataPoint::overlaps
 }
 
 
+// Check if any point on shape is inside sphere.
+bool Foam::dynamicTreeDataPoint::overlaps
+(
+    const label index,
+    const point& centre,
+    const scalar radiusSqr
+) const
+{
+    const point& p = points_[index];
+
+    const scalar distSqr = magSqr(p - centre);
+
+    if (distSqr <= radiusSqr)
+    {
+        return true;
+    }
+
+    return false;
+}
+
+
 // Calculate nearest point to sample. Updates (if any) nearestDistSqr, minIndex,
 // nearestPoint.
 void Foam::dynamicTreeDataPoint::findNearest
diff --git a/src/OpenFOAM/algorithms/dynamicIndexedOctree/dynamicTreeDataPoint.H b/src/OpenFOAM/algorithms/dynamicIndexedOctree/dynamicTreeDataPoint.H
index 6ada3c05125..9afcb3e08cb 100644
--- a/src/OpenFOAM/algorithms/dynamicIndexedOctree/dynamicTreeDataPoint.H
+++ b/src/OpenFOAM/algorithms/dynamicIndexedOctree/dynamicTreeDataPoint.H
@@ -105,6 +105,14 @@ public:
                 const treeBoundBox& sampleBb
             ) const;
 
+            //- Check if any point on shape is inside sphere.
+            bool overlaps
+            (
+                const label index,
+                const point& centre,
+                const scalar radiusSqr
+            ) const;
+
             //- Calculates nearest (to sample) point in shape.
             //  Returns actual point and distance (squared)
             void findNearest
-- 
GitLab