From 582ee21ef0d5ad60a07bc6e36437533ee4716c60 Mon Sep 17 00:00:00 2001 From: Andrew Heather <a.heather@opencfd.co.uk> Date: Thu, 11 Aug 2016 12:14:34 +0100 Subject: [PATCH] ENH: plane - updated construct from components to optionally normalise the normal vector --- .../meshes/primitiveShapes/plane/plane.C | 20 ++++++++++++------- .../meshes/primitiveShapes/plane/plane.H | 7 ++++++- 2 files changed, 19 insertions(+), 8 deletions(-) diff --git a/src/OpenFOAM/meshes/primitiveShapes/plane/plane.C b/src/OpenFOAM/meshes/primitiveShapes/plane/plane.C index a6d05b7f736..5f22c044316 100644 --- a/src/OpenFOAM/meshes/primitiveShapes/plane/plane.C +++ b/src/OpenFOAM/meshes/primitiveShapes/plane/plane.C @@ -129,23 +129,29 @@ Foam::plane::plane(const vector& normalVector) } -Foam::plane::plane(const point& basePoint, const vector& normalVector) +Foam::plane::plane +( + const point& basePoint, + const vector& normalVector, + const bool normalise +) : unitVector_(normalVector), basePoint_(basePoint) { - scalar magUnitVector(mag(unitVector_)); + scalar magSqrUnitVector(magSqr(unitVector_)); - if (magUnitVector > VSMALL) - { - unitVector_ /= magUnitVector; - } - else + if (magSqrUnitVector < VSMALL) { FatalErrorInFunction << "plane normal has zero length. basePoint:" << basePoint_ << abort(FatalError); } + + if (normalise) + { + unitVector_ /= Foam::sqrt(magSqrUnitVector); + } } diff --git a/src/OpenFOAM/meshes/primitiveShapes/plane/plane.H b/src/OpenFOAM/meshes/primitiveShapes/plane/plane.H index 44564fa92a8..6645fb1b95f 100644 --- a/src/OpenFOAM/meshes/primitiveShapes/plane/plane.H +++ b/src/OpenFOAM/meshes/primitiveShapes/plane/plane.H @@ -131,7 +131,12 @@ public: plane(const vector& normalVector); //- Construct from normal vector and point in plane - plane(const point& basePoint, const vector& normalVector); + plane + ( + const point& basePoint, + const vector& normalVector, + const bool normalise = true + ); //- Construct from three points in plane plane(const point& point1, const point& point2, const point& point3); -- GitLab