rigidBodyModel: Provide support for copy-construction and assignment

This commit is contained in:
Henry Weller
2016-04-07 22:28:52 +01:00
parent 8ffd700ca6
commit 6d7eb1ac4d
6 changed files with 28 additions and 21 deletions

View File

@ -46,6 +46,14 @@ namespace RBD
}
// * * * * * * * * * * * * * * * * Constructors * * * * * * * * * * * * * * //
Foam::autoPtr<Foam::RBD::rigidBody> Foam::RBD::rigidBody::clone() const
{
return autoPtr<rigidBody>(new rigidBody(*this));
}
// * * * * * * * * * * * * * * * * Selectors * * * * * * * * * * * * * * * * //
Foam::autoPtr<Foam::RBD::rigidBody> Foam::RBD::rigidBody::New
@ -104,7 +112,7 @@ void Foam::RBD::rigidBody::merge(const subBody& subBody)
*this = rigidBody
(
name(),
*this + transform(subBody.parentXT(), subBody)
*this + transform(subBody.parentXT(), subBody.body())
);
}

View File

@ -107,7 +107,7 @@ public:
);
//- Return clone of this rigidBody
inline autoPtr<rigidBody> clone() const;
virtual autoPtr<rigidBody> clone() const;
// Selectors

View File

@ -60,12 +60,6 @@ inline Foam::RBD::rigidBody::rigidBody
{}
inline Foam::autoPtr<Foam::RBD::rigidBody> Foam::RBD::rigidBody::clone() const
{
return autoPtr<rigidBody>(new rigidBody(*this));
}
// * * * * * * * * * * * * * * * Member Functions * * * * * * * * * * * * * //
inline const Foam::word& Foam::RBD::rigidBody::name() const

View File

@ -25,12 +25,6 @@ License
#include "subBody.H"
// * * * * * * * * * * * * * * * * Destructor * * * * * * * * * * * * * * * //
Foam::RBD::subBody::~subBody()
{}
// * * * * * * * * * * * * * * Member Functions * * * * * * * * * * * * * * //
void Foam::RBD::subBody::write(Ostream& os) const

View File

@ -51,8 +51,6 @@ namespace RBD
\*---------------------------------------------------------------------------*/
class subBody
:
public rigidBody
{
// Private data
@ -84,9 +82,8 @@ public:
const spatialTransform& parentXT
);
//- Destructor
virtual ~subBody();
//- Return clone of this subBody
inline autoPtr<subBody> clone() const;
// Member Functions
@ -94,6 +91,9 @@ public:
//- Return the original body from which this sub-body was constructed
inline const rigidBody& body() const;
//- Return the body name
inline const word& name() const;
//- Return the parent body name
inline const word& parentName() const;
@ -104,7 +104,7 @@ public:
inline const spatialTransform& parentXT() const;
//- Write
virtual void write(Ostream&) const;
void write(Ostream&) const;
};

View File

@ -33,7 +33,6 @@ inline Foam::RBD::subBody::subBody
const spatialTransform& parentXT
)
:
rigidBody(bodyPtr()),
body_(bodyPtr),
parentName_(parentName),
parentID_(parentID),
@ -41,6 +40,12 @@ inline Foam::RBD::subBody::subBody
{}
inline Foam::autoPtr<Foam::RBD::subBody> Foam::RBD::subBody::clone() const
{
return autoPtr<subBody>(new subBody(*this));
}
// * * * * * * * * * * * * * * * Member Functions * * * * * * * * * * * * * //
inline const Foam::RBD::rigidBody& Foam::RBD::subBody::body() const
@ -49,6 +54,12 @@ inline const Foam::RBD::rigidBody& Foam::RBD::subBody::body() const
}
inline const Foam::word& Foam::RBD::subBody::name() const
{
return body_->name();
}
inline const Foam::word& Foam::RBD::subBody::parentName() const
{
return parentName_;