From 4645c841ca4f55531f66dddd1bf60548bac32cef Mon Sep 17 00:00:00 2001 From: mattijs <mattijs> Date: Wed, 10 Oct 2018 12:40:48 +0100 Subject: [PATCH] ENH: coordinateSystem: fix cloning. See #863 --- src/meshTools/coordinate/systems/cartesianCS.H | 6 ++++++ src/meshTools/coordinate/systems/coordinateSystem.H | 2 +- src/meshTools/coordinate/systems/cylindricalCS.H | 7 +++++++ src/meshTools/coordinate/systems/indirectCS.H | 6 ++++++ 4 files changed, 20 insertions(+), 1 deletion(-) diff --git a/src/meshTools/coordinate/systems/cartesianCS.H b/src/meshTools/coordinate/systems/cartesianCS.H index 860cb6b8005..94d712ed58d 100644 --- a/src/meshTools/coordinate/systems/cartesianCS.H +++ b/src/meshTools/coordinate/systems/cartesianCS.H @@ -115,6 +115,12 @@ public: // \param dictName If non-empty, the sub-dictionary to use. cartesian(const dictionary& dict, const word& dictName); + //- Return clone + virtual autoPtr<coordinateSystem> clone() const + { + return autoPtr<coordinateSystem>::NewFrom<cartesian>(*this); + } + //- Destructor virtual ~cartesian() = default; diff --git a/src/meshTools/coordinate/systems/coordinateSystem.H b/src/meshTools/coordinate/systems/coordinateSystem.H index 619f2af5f61..e57f691e61f 100644 --- a/src/meshTools/coordinate/systems/coordinateSystem.H +++ b/src/meshTools/coordinate/systems/coordinateSystem.H @@ -327,7 +327,7 @@ public: //- Return clone - autoPtr<coordinateSystem> clone() const + virtual autoPtr<coordinateSystem> clone() const { return autoPtr<coordinateSystem>::New(*this); } diff --git a/src/meshTools/coordinate/systems/cylindricalCS.H b/src/meshTools/coordinate/systems/cylindricalCS.H index 8a8291251c8..53c7349260f 100644 --- a/src/meshTools/coordinate/systems/cylindricalCS.H +++ b/src/meshTools/coordinate/systems/cylindricalCS.H @@ -154,6 +154,13 @@ public: // \param dictName If non-empty, the sub-dictionary to use. cylindrical(const dictionary& dict, const word& dictName); + //- Return clone + virtual autoPtr<coordinateSystem> clone() const + { + return autoPtr<coordinateSystem>::NewFrom<cylindrical>(*this); + } + + //- Destructor virtual ~cylindrical() = default; diff --git a/src/meshTools/coordinate/systems/indirectCS.H b/src/meshTools/coordinate/systems/indirectCS.H index 1fd334218cd..2ae4160cd55 100644 --- a/src/meshTools/coordinate/systems/indirectCS.H +++ b/src/meshTools/coordinate/systems/indirectCS.H @@ -141,6 +141,12 @@ public: //- Construct from global lookup indirect(const objectRegistry& obr, const dictionary& dict); + //- Return clone + virtual autoPtr<coordinateSystem> clone() const + { + return autoPtr<coordinateSystem>::NewFrom<indirect>(*this); + } + //- Destructor virtual ~indirect() = default; -- GitLab