28 #include <boost/thread/recursive_mutex.hpp>
37 class recursive_mutex;
62 public:
void Load(sdf::ElementPtr _sdf);
68 public:
virtual void Init();
74 public:
virtual void Fini();
82 public:
virtual const sdf::ElementPtr
GetSDF();
167 public:
LinkPtr GetLinkById(
unsigned int _id)
const;
173 public:
LinkPtr GetLink(
const std::string &_name =
"canonical")
const;
191 public:
virtual void FillMsg(msgs::Model &_msg);
195 public:
void ProcessMsg(
const msgs::Model &_msg);
202 double _position,
int _index = 0);
208 const std::map<std::string, double> &_jointPositions);
215 const std::map<std::string, common::NumericAnimationPtr> _anim,
216 boost::function<
void()> _onComplete =
NULL);
261 std::string _linkName);
312 private:
void LoadLinks();
316 private:
void LoadJoint(sdf::ElementPtr _sdf);
320 private:
void LoadPlugin(sdf::ElementPtr _sdf);
324 private:
void LoadGripper(sdf::ElementPtr _sdf);
329 private:
void RemoveLink(
const std::string &_name);
341 private:
LinkPtr canonicalLink;
350 private: std::vector<GripperPtr> grippers;
353 private: std::vector<ModelPluginPtr> plugins;
356 private: std::map<std::string, common::NumericAnimationPtr>
360 private: boost::function<void()> onJointAnimationComplete;
366 private:
mutable boost::recursive_mutex updateMutex;
372 private:
bool pluginsLoaded;