12 using namespace OpenRAVE;
14 namespace cppexamples {
34 RAVELOG_INFO(
"the attributes piddata is created with are:\n");
35 for(AttributesList::const_iterator itatt = atts.begin(); itatt != atts.end(); ++itatt)
36 RAVELOG_INFO(
"%s=%s\n",itatt->first.c_str(),itatt->second.c_str());
45 return (name ==
"pgains" || name==
"igains") ? PE_Support : PE_Pass;
48 virtual bool endElement(
const std::string& name)
50 if( name ==
"piddata" )
52 else if( name ==
"pgains" )
54 _piddata->pgains = vector<dReal>((istream_iterator<dReal>(_ss)), istream_iterator<dReal>());
55 else if( name ==
"igains" )
57 _piddata->igains = vector<dReal>((istream_iterator<dReal>(_ss)), istream_iterator<dReal>());
64 virtual void characters(
const std::string& ch)
87 virtual bool Init(
RobotBasePtr robot,
const std::vector<int>& dofindices,
int nControlTransformation)
90 _dofindices = dofindices;
91 _nControlTransformation = nControlTransformation;
94 boost::shared_ptr<XMLData> piddata = boost::dynamic_pointer_cast<
XMLData>(GetReadableInterface(
"piddata"));
97 ss <<
"piddata from custom XML reader is" << endl <<
"pgains: ";
98 for(vector<dReal>::iterator it = piddata->pgains.begin(); it != piddata->pgains.end(); ++it)
100 ss << endl <<
"igains: ";
101 for(vector<dReal>::iterator it = piddata->igains.begin(); it != piddata->igains.end(); ++it)
115 return _nControlTransformation;
156 if( interfacename ==
"customcontroller")