Program Listing for File copy.hpp
↰ Return to documentation for file (include/pinocchio/algorithm/copy.hpp
)
//
// Copyright (c) 2016-2020 CNRS INRIA
//
#ifndef __pinocchio_copy_hpp__
#define __pinocchio_copy_hpp__
#include "pinocchio/multibody/model.hpp"
#include "pinocchio/multibody/data.hpp"
#include "pinocchio/algorithm/check.hpp"
namespace pinocchio
{
template<typename Scalar, int Options, template<typename,int> class JointCollectionTpl>
inline void
copy(const ModelTpl<Scalar,Options,JointCollectionTpl> & model,
const DataTpl<Scalar,Options,JointCollectionTpl> & origin,
DataTpl<Scalar,Options,JointCollectionTpl> & dest,
KinematicLevel kinematic_level);
template<typename Scalar, int Options, template<typename,int> class JointCollectionTpl>
PINOCCHIO_DEPRECATED inline void
copy(const ModelTpl<Scalar,Options,JointCollectionTpl> & model,
const DataTpl<Scalar,Options,JointCollectionTpl> & origin,
DataTpl<Scalar,Options,JointCollectionTpl> & dest,
int kinematic_level)
{
copy(model,origin,dest,static_cast<KinematicLevel>(kinematic_level));
}
} // namespace pinocchio
/* --- Details -------------------------------------------------------------------- */
//#include "pinocchio/algorithm/copy.hxx"
namespace pinocchio
{
template<typename Scalar, int Options, template<typename,int> class JointCollectionTpl>
inline void
copy(const ModelTpl<Scalar,Options,JointCollectionTpl> & model,
const DataTpl<Scalar,Options,JointCollectionTpl> & origin,
DataTpl<Scalar,Options,JointCollectionTpl> & dest,
KinematicLevel kinematic_level)
{
typedef ModelTpl<Scalar,Options,JointCollectionTpl> Model;
typedef typename Model::JointIndex JointIndex;
PINOCCHIO_CHECK_INPUT_ARGUMENT(kinematic_level>=POSITION);
for(JointIndex jid=1; jid<(JointIndex)model.njoints; ++jid)
{
dest.oMi[jid] = origin.oMi [jid];
if(kinematic_level >= VELOCITY)
{
dest.v[jid] = origin.v [jid];
}
if(kinematic_level >= ACCELERATION)
{
dest.a[jid] = origin.a [jid];
dest.a_gf[jid] = origin.a_gf[jid];
dest.f[jid] = origin.f [jid];
}
}
}
} // namespace pinocchio
#endif // ifndef __pinocchio_copy_hpp__