diff --git a/applications/test/rigidBodyDynamics/pendulum/pendulum.C b/applications/test/rigidBodyDynamics/pendulum/pendulum.C index 2401ec256c..6e8991b9a4 100644 --- a/applications/test/rigidBodyDynamics/pendulum/pendulum.C +++ b/applications/test/rigidBodyDynamics/pendulum/pendulum.C @@ -81,7 +81,8 @@ int main(int argc, char *argv[]) */ // Create the pendulum model from dictionary - rigidBodyModel pendulum(dictionary(IFstream("pendulum")())); + rigidBodyModel pendulum1(dictionary(IFstream("pendulum")())); + rigidBodyModel pendulum = pendulum1; pendulum.write(Info); diff --git a/src/rigidBodyDynamics/bodies/compositeBody/compositeBody.C b/src/rigidBodyDynamics/bodies/compositeBody/compositeBody.C index f898386c1a..3f09086016 100644 --- a/src/rigidBodyDynamics/bodies/compositeBody/compositeBody.C +++ b/src/rigidBodyDynamics/bodies/compositeBody/compositeBody.C @@ -31,6 +31,14 @@ Foam::RBD::compositeBody::~compositeBody() {} +// * * * * * * * * * * * * * * * * Constructors * * * * * * * * * * * * * * // + +Foam::autoPtr Foam::RBD::compositeBody::clone() const +{ + return autoPtr(new compositeBody(*this)); +} + + // * * * * * * * * * * * * * * Member Functions * * * * * * * * * * * * * * // const Foam::word& Foam::RBD::compositeBody::type() const diff --git a/src/rigidBodyDynamics/bodies/compositeBody/compositeBody.H b/src/rigidBodyDynamics/bodies/compositeBody/compositeBody.H index c92d9bda31..662ed39e8a 100644 --- a/src/rigidBodyDynamics/bodies/compositeBody/compositeBody.H +++ b/src/rigidBodyDynamics/bodies/compositeBody/compositeBody.H @@ -68,6 +68,9 @@ public: // and the transform relative to the parent inline compositeBody(const autoPtr& bodyPtr); + //- Return clone of this compositeBody + virtual autoPtr clone() const; + //- Destructor virtual ~compositeBody(); diff --git a/src/rigidBodyDynamics/bodies/masslessBody/masslessBody.C b/src/rigidBodyDynamics/bodies/masslessBody/masslessBody.C index da0f731876..e413792432 100644 --- a/src/rigidBodyDynamics/bodies/masslessBody/masslessBody.C +++ b/src/rigidBodyDynamics/bodies/masslessBody/masslessBody.C @@ -44,6 +44,14 @@ namespace RBD } +// * * * * * * * * * * * * * * * * Constructors * * * * * * * * * * * * * * // + +Foam::autoPtr Foam::RBD::masslessBody::clone() const +{ + return autoPtr(new masslessBody(*this)); +} + + // * * * * * * * * * * * * * * * * Destructor * * * * * * * * * * * * * * * // Foam::RBD::masslessBody::~masslessBody() diff --git a/src/rigidBodyDynamics/bodies/masslessBody/masslessBody.H b/src/rigidBodyDynamics/bodies/masslessBody/masslessBody.H index d20c160d07..a29585e3f6 100644 --- a/src/rigidBodyDynamics/bodies/masslessBody/masslessBody.H +++ b/src/rigidBodyDynamics/bodies/masslessBody/masslessBody.H @@ -74,6 +74,9 @@ public: const dictionary& dict ); + //- Return clone of this masslessBody + virtual autoPtr clone() const; + //- Destructor virtual ~masslessBody(); diff --git a/src/rigidBodyDynamics/bodies/sphere/sphere.C b/src/rigidBodyDynamics/bodies/sphere/sphere.C index e581ce8648..15523961a6 100644 --- a/src/rigidBodyDynamics/bodies/sphere/sphere.C +++ b/src/rigidBodyDynamics/bodies/sphere/sphere.C @@ -44,6 +44,14 @@ namespace RBD } +// * * * * * * * * * * * * * * * * Constructors * * * * * * * * * * * * * * // + +Foam::autoPtr Foam::RBD::sphere::clone() const +{ + return autoPtr(new sphere(*this)); +} + + // * * * * * * * * * * * * * * * * Destructor * * * * * * * * * * * * * * * // Foam::RBD::sphere::~sphere() diff --git a/src/rigidBodyDynamics/bodies/sphere/sphere.H b/src/rigidBodyDynamics/bodies/sphere/sphere.H index ad5ca48bab..f2642c8a7e 100644 --- a/src/rigidBodyDynamics/bodies/sphere/sphere.H +++ b/src/rigidBodyDynamics/bodies/sphere/sphere.H @@ -77,6 +77,9 @@ public: const dictionary& dict ); + //- Return clone of this sphere + virtual autoPtr clone() const; + //- Destructor virtual ~sphere();