02285       else
    02286         return false;
    02287     }
    02288 
    [02290](classGazeboROSNode.html#a6939d75364517afe1057ad97edf8bef6)     gazebo::Joint* [getJointByName](classGazeboROSNode.html#a6939d75364517afe1057ad97edf8bef6 "get joint by name")(std::string joint_name)
    02291     {
    02292       // look through all models in the world, search for body name that matches frameName
    02293       std::vector<gazebo::Model*> all_models = gazebo::World::Instance()->GetModels();
    02294       for (std::vector<gazebo::Model*>::iterator miter = all_models.begin(); miter != all_models.end(); miter++)
    02295       {
    02296         if ((*miter) && (*miter)->GetJoint(joint_name))
    02297           return (*miter)->GetJoint(joint_name);
    02298       }
    02299       return NULL;
    02300     }
    02301 
    02302 
    [02303](classGazeboROSNode_1_1WrenchBodyJob.html)     class [WrenchBodyJob](classGazeboROSNode_1_1WrenchBodyJob.html)
    02304     {
    02305       public:
    [02306](classGazeboROSNode_1_1WrenchBodyJob.html#aff58f515a5c987724b2bfb53956cb18f)         gazebo::Body* [body](classGazeboROSNode_1_1WrenchBodyJob.html#aff58f515a5c987724b2bfb53956cb18f);
    [02307](classGazeboROSNode_1_1WrenchBodyJob.html#a9abb6606ca8e3c79350e68be69d1dc67)         gazebo::Vector3 [force](classGazeboROSNode_1_1WrenchBodyJob.html#a9abb6606ca8e3c79350e68be69d1dc67);
    [02308](classGazeboROSNode_1_1WrenchBodyJob.html#a37e9b921287c703e53f2017823c2b6ed)         gazebo::Vector3 [torque](classGazeboROSNode_1_1WrenchBodyJob.html#a37e9b921287c703e53f2017823c2b6ed);
    [02309](classGazeboROSNode_1_1WrenchBodyJob.html#a801ad39110b8f202470bd1562a62bd02)         [ros::Time](../../../api/rostime/html/classros_1_1Time.html) [start_time](classGazeboROSNode_1_1WrenchBodyJob.html#a801ad39110b8f202470bd1562a62bd02);
    [02310](classGazeboROSNode_1_1WrenchBodyJob.html#a4e8f3e2d041e97817a80a6feb9bd25a6)         [ros::Duration](../../../api/rostime/html/classros_1_1Duration.html) [duration](classGazeboROSNode_1_1WrenchBodyJob.html#a4e8f3e2d041e97817a80a6feb9bd25a6);
    02311     };
    02312 
    [02313](classGazeboROSNode_1_1ForceJointJob.html)     class [ForceJointJob](classGazeboROSNode_1_1ForceJointJob.html)
    02314     {
    02315       public:
    [02316](classGazeboROSNode_1_1ForceJointJob.html#ae6b3a1f76030167a49587d20a9745f22)         gazebo::Joint* [joint](classGazeboROSNode_1_1ForceJointJob.html#ae6b3a1f76030167a49587d20a9745f22);
    [02317](classGazeboROSNode_1_1ForceJointJob.html#a12a44288945997636725a0d3917a783b)         double [force](classGazeboROSNode_1_1ForceJointJob.html#a12a44288945997636725a0d3917a783b); // should this be a array?
    [02318](classGazeboROSNode_1_1ForceJointJob.html#a1a6abca9e598c0860f79c9f86a440cde)         [ros::Time](../../../api/rostime/html/classros_1_1Time.html) [start_time](classGazeboROSNode_1_1ForceJointJob.html#a1a6abca9e598c0860f79c9f86a440cde);
    [02319](classGazeboROSNode_1_1ForceJointJob.html#abb80ad252fc707d94ab89aeb4dc93a72)         [ros::Duration](../../../api/rostime/html/classros_1_1Duration.html) [duration](classGazeboROSNode_1_1ForceJointJob.html#abb80ad252fc707d94ab89aeb4dc93a72);
    02320     };
    02321 
    [02322](classGazeboROSNode.html#ade2831b1970d2ceed871e82a9140c2bb)     std::vector<GazeboROSNode::WrenchBodyJob*> [wrench_body_jobs](classGazeboROSNode.html#ade2831b1970d2ceed871e82a9140c2bb);
    [02323](classGazeboROSNode.html#a22ab41eec754d289d8c56f05045f480e)     std::vector<GazeboROSNode::ForceJointJob*> [force_joint_jobs](classGazeboROSNode.html#a22ab41eec754d289d8c56f05045f480e);
    02324 
    [02325](classGazeboROSNode.html#a10111db7cc35bc709eb1dd9f8ac6673d)     double [lastWrenchBodyUpdateTime](classGazeboROSNode.html#a10111db7cc35bc709eb1dd9f8ac6673d);