Skip to content

Commit

Permalink
support nan for xml deserialization
Browse files Browse the repository at this point in the history
  • Loading branch information
YutaKojio committed Jan 9, 2024
1 parent d4145bc commit 1ba2861
Showing 1 changed file with 12 additions and 7 deletions.
19 changes: 12 additions & 7 deletions src/libopenrave/xmlreaders.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -129,16 +129,21 @@ bool TrajectoryReader::endElement(const std::string& name)
}
}
else if( name == "data" ) {
std::string tmpDataStr;
_vdata.resize(_spec.GetDOF()*_datacount);
for(size_t i = 0; i < _vdata.size(); ++i) {
_ss >> _vdata[i];
}
if( !_ss ) {
throw OPENRAVE_EXCEPTION_FORMAT(_("failed reading %d numbers from trajectory <data> element"), _vdata.size(), ORE_Assert);
}
else {
_ptraj->Insert(_ptraj->GetNumWaypoints(),_vdata);
if( !(_ss >> _vdata[i]) ) {
_ss.clear(); // clear error state
_ss >> tmpDataStr;
if( tmpDataStr == "nan" ) {
_vdata[i] = std::numeric_limits<dReal>::quiet_NaN();
}
else {
throw OPENRAVE_EXCEPTION_FORMAT(_("failed reading %d numbers from trajectory <data> element"), _vdata.size(), ORE_Assert);
}
}
}
_ptraj->Insert(_ptraj->GetNumWaypoints(),_vdata);
}
else if( name == "description" ) {
_ptraj->SetDescription(_ss.str());
Expand Down

0 comments on commit 1ba2861

Please sign in to comment.