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