rigidBodyModel: Provide support for copy-construction and assignment
This commit is contained in:
@ -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())
|
||||
);
|
||||
}
|
||||
|
||||
|
||||
@ -107,7 +107,7 @@ public:
|
||||
);
|
||||
|
||||
//- Return clone of this rigidBody
|
||||
inline autoPtr<rigidBody> clone() const;
|
||||
virtual autoPtr<rigidBody> clone() const;
|
||||
|
||||
|
||||
// Selectors
|
||||
|
||||
@ -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
|
||||
|
||||
@ -25,12 +25,6 @@ License
|
||||
|
||||
#include "subBody.H"
|
||||
|
||||
// * * * * * * * * * * * * * * * * Destructor * * * * * * * * * * * * * * * //
|
||||
|
||||
Foam::RBD::subBody::~subBody()
|
||||
{}
|
||||
|
||||
|
||||
// * * * * * * * * * * * * * * Member Functions * * * * * * * * * * * * * * //
|
||||
|
||||
void Foam::RBD::subBody::write(Ostream& os) const
|
||||
|
||||
@ -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;
|
||||
};
|
||||
|
||||
|
||||
|
||||
@ -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_;
|
||||
|
||||
Reference in New Issue
Block a user