DART  6.10.1
Skeleton.cpp File Reference

Namespaces

 dart
 
 dart::dynamics
 
 dart::dynamics::detail
 

Macros

#define SET_ALL_FLAGS(X)
 
#define SET_FLAG(Y, X)
 
#define ON_ALL_TREES(X)
 
#define CHECK_CONFIG_VECTOR_SIZE(V)
 
#define RETURN_IF_CONFIG_VECTOR_IS_INEQ(V)
 
#define SET_CONFIG_VECTOR(V)
 

Functions

template<class Owner , class Object , class ObjectBase , class Data , std::size_t(Owner::*)() const getNumObjects, Object *(Owner::*)(std::size_t) getObject, void(ObjectBase::*)(const Data &) setData>
void dart::dynamics::detail::setAllMemberObjectData (Owner *owner, const std::vector< Data > &data)
 Templated function for passing each entry in a std::vector<Data> into each member of an array of Objects belonging to some Owner class. More...
 
template<class Owner , class Object , class ObjectBase , class Data , std::size_t(Owner::*)() const getNumObjects, const Object *(Owner::*)(std::size_t) const getObject, Data(ObjectBase::*)() const getData>
std::vector< Data > dart::dynamics::detail::getAllMemberObjectData (const Owner *owner)
 Templated function for aggregating a std::vector<Data> out of each member of an array of Objects belonging to some Owner class. More...
 
void dart::dynamics::detail::setAllBodyNodeStates (Skeleton *skel, const BodyNodeStateVector &states)
 
BodyNodeStateVector dart::dynamics::detail::getAllBodyNodeStates (const Skeleton *skel)
 
void dart::dynamics::detail::setAllBodyNodeProperties (Skeleton *skel, const BodyNodePropertiesVector &properties)
 
BodyNodePropertiesVector dart::dynamics::detail::getAllBodyNodeProperties (const Skeleton *skel)
 
void dart::dynamics::detail::setAllJointStates (Skeleton *skel, const JointStateVector &states)
 
JointStateVector dart::dynamics::detail::getAllJointStates (const Skeleton *skel)
 
void dart::dynamics::detail::setAllJointProperties (Skeleton *skel, const JointPropertiesVector &properties)
 
JointPropertiesVector dart::dynamics::detail::getAllJointProperties (const Skeleton *skel)
 
template<class T >
static std::vector< const T * > & dart::dynamics::convertToConstPtrVector (const std::vector< T * > &vec, std::vector< const T * > &const_vec)
 
template<class ObjectT , std::size_t(ObjectT::*)() const getIndexInSkeleton>
static std::size_t dart::dynamics::templatedGetIndexOf (const Skeleton *_skel, const ObjectT *_obj, const std::string &_type, bool _warning)
 
static bool dart::dynamics::isValidBodyNode (const Skeleton *_skeleton, const JacobianNode *_node, const std::string &_fname)
 
template<typename JacobianType >
void dart::dynamics::assignJacobian (JacobianType &_J, const JacobianNode *_node, const JacobianType &_JBodyNode)
 
template<typename... Args>
math::Jacobian dart::dynamics::variadicGetJacobian (const Skeleton *_skel, const JacobianNode *_node, Args... args)
 
template<typename... Args>
math::Jacobian dart::dynamics::variadicGetWorldJacobian (const Skeleton *_skel, const JacobianNode *_node, Args... args)
 
template<typename... Args>
math::LinearJacobian dart::dynamics::variadicGetLinearJacobian (const Skeleton *_skel, const JacobianNode *_node, Args... args)
 
template<typename... Args>
math::AngularJacobian dart::dynamics::variadicGetAngularJacobian (const Skeleton *_skel, const JacobianNode *_node, Args... args)
 
template<typename... Args>
math::Jacobian dart::dynamics::variadicGetJacobianSpatialDeriv (const Skeleton *_skel, const JacobianNode *_node, Args... args)
 
template<typename... Args>
math::Jacobian dart::dynamics::variadicGetJacobianClassicDeriv (const Skeleton *_skel, const JacobianNode *_node, Args... args)
 
template<typename... Args>
math::LinearJacobian dart::dynamics::variadicGetLinearJacobianDeriv (const Skeleton *_skel, const JacobianNode *_node, Args... args)
 
template<typename... Args>
math::AngularJacobian dart::dynamics::variadicGetAngularJacobianDeriv (const Skeleton *_skel, const JacobianNode *_node, Args... args)
 
template<typename BodyNodeT >
static void dart::dynamics::recursiveConstructBodyNodeTree (std::vector< BodyNodeT * > &tree, BodyNodeT *_currentBodyNode)
 
static void dart::dynamics::computeSupportPolygon (const Skeleton *skel, math::SupportPolygon &polygon, math::SupportGeometry &geometry, std::vector< std::size_t > &ee_indices, Eigen::Vector3d &axis1, Eigen::Vector3d &axis2, Eigen::Vector2d &centroid, std::size_t treeIndex)
 
template<typename PropertyType , PropertyType(BodyNode::*)(const Frame *, const Frame *) const getPropertyFn>
PropertyType dart::dynamics::getCOMPropertyTemplate (const Skeleton *_skel, const Frame *_relativeTo, const Frame *_inCoordinatesOf)
 
template<typename JacType , JacType(TemplatedJacobianNode< BodyNode >::*)(const Eigen::Vector3d &, const Frame *) const getJacFn>
JacType dart::dynamics::getCOMJacobianTemplate (const Skeleton *_skel, const Frame *_inCoordinatesOf)
 

Macro Definition Documentation

◆ CHECK_CONFIG_VECTOR_SIZE

#define CHECK_CONFIG_VECTOR_SIZE (   V)
Value:
if (V.size() > 0) \
{ \
if (nonzero_size != INVALID_INDEX \
&& V.size() != static_cast<int>(nonzero_size)) \
{ \
dterr << "[Skeleton::Configuration] Mismatch in size of vector [" << #V \
<< "] (expected " << nonzero_size << " | found " << V.size() \
<< "\n"; \
assert(false); \
} \
else if (nonzero_size == INVALID_INDEX) \
nonzero_size = V.size(); \
}
constexpr std::size_t INVALID_INDEX
Definition: InvalidIndex.hpp:41

◆ ON_ALL_TREES

#define ON_ALL_TREES (   X)
Value:
for (std::size_t i = 0; i < mTreeCache.size(); ++i) \
X(i);

◆ RETURN_IF_CONFIG_VECTOR_IS_INEQ

#define RETURN_IF_CONFIG_VECTOR_IS_INEQ (   V)
Value:
if (V.size() != other.V.size()) \
return false; \
if (V != other.V) \
return false;

◆ SET_ALL_FLAGS

#define SET_ALL_FLAGS (   X)
Value:
for (auto& cache : mTreeCache) \
cache.mDirty.X = true; \
mSkelCache.mDirty.X = true;

◆ SET_CONFIG_VECTOR

#define SET_CONFIG_VECTOR (   V)
Value:
if (configuration.m##V.size() > 0) \
{ \
if (static_cast<int>(configuration.mIndices.size()) \
!= configuration.m##V.size()) \
{ \
dterr << "[Skeleton::setConfiguration] Mismatch in size of vector [" \
<< #V << "] (expected " << configuration.mIndices.size() \
<< " | found " << configuration.m##V.size() << "\n"; \
assert(false); \
} \
else \
set##V(configuration.mIndices, configuration.m##V); \
}

◆ SET_FLAG

#define SET_FLAG (   Y,
 
)
Value:
mTreeCache[Y].mDirty.X = true; \
mSkelCache.mDirty.X = true;