21 #ifndef _MODELSTATE_HH_ 
   22 #define _MODELSTATE_HH_ 
   26 #include <boost/regex.hpp> 
   76       public: 
explicit ModelState(
const sdf::ElementPtr _sdf);
 
   95       public: 
virtual void Load(
const sdf::ElementPtr _elem);
 
  103       public: 
bool IsZero() 
const;
 
  109       public: 
unsigned int GetLinkStateCount() 
const;
 
  115       public: 
LinkState_M GetLinkStates(
const boost::regex &_regex) 
const;
 
  121       public: 
JointState_M GetJointStates(
const boost::regex &_regex) 
const;
 
  130       public: 
LinkState GetLinkState(
const std::string &_linkName) 
const;
 
  135       public: 
bool HasLinkState(
const std::string &_linkName) 
const;
 
  145       public: 
unsigned int GetJointStateCount() 
const;
 
  154       public: 
JointState GetJointState(
unsigned int _index) 
const;
 
  163       public: 
JointState GetJointState(
const std::string &_jointName) 
const;
 
  172       public: 
bool HasJointState(
const std::string &_jointName) 
const;
 
  176       public: 
void FillSDF(sdf::ElementPtr _sdf);
 
  181       public: 
virtual void SetWallTime(
const common::Time &_time);
 
  185       public: 
virtual void SetRealTime(
const common::Time &_time);
 
  189       public: 
virtual void SetSimTime(
const common::Time &_time);
 
  210       public: 
inline friend std::ostream &
operator<<(std::ostream &_out,
 
  214         _out << std::fixed <<std::setprecision(3)
 
  215           << 
"<model name='" << _state.
GetName() << 
"'>" 
  217           << _state.pose.
pos.
x << 
" " 
  218           << _state.pose.
pos.
y << 
" " 
  219           << _state.pose.
pos.
z << 
" " 
  225         for (LinkState_M::const_iterator iter =
 
  226             _state.linkStates.begin(); iter != _state.linkStates.end();
 
  229           _out << iter->second;