Tango: fixed export failing after saving the database

This commit is contained in:
matlabbe
2017-06-29 10:31:59 -04:00
parent ebada30984
commit b6d3e785df
2 changed files with 20 additions and 4 deletions

View File

@@ -2020,8 +2020,10 @@ void RTABMapApp::save(const std::string & databasePath)
dataRecorderMode_ = dataRecorderModeBackup;
}
std::map<int, rtabmap::Transform> poses = rtabmap_->getLocalOptimizedPoses();
rtabmap_->close(true, databasePath);
rtabmap_->init(getRtabmapParameters(), dataRecorderMode_?"":databasePath);
rtabmap_->setOptimizedPoses(poses);
if(dataRecorderMode_)
{
clearSceneOnNextRender_ = true;
@@ -2057,6 +2059,13 @@ bool RTABMapApp::exportMesh(
// make sure createdMeshes_ is not modified while exporting! We don't
// lock the meshesMutex_ because we want to continue rendering.
std::map<int, rtabmap::Transform> poses = rtabmap_->getLocalOptimizedPoses();
if(poses.empty())
{
UERROR("Empty optimized poses!");
return false;
}
if(blockRendering)
{
renderingMutex_.lock();
@@ -2069,8 +2078,6 @@ bool RTABMapApp::exportMesh(
try
{
std::map<int, rtabmap::Transform> poses = rtabmap_->getLocalOptimizedPoses();
int totalSteps = 0;
totalSteps+=poses.size(); // assemble
if(meshing)
@@ -2373,6 +2380,10 @@ bool RTABMapApp::exportMesh(
}
}
}
else
{
UERROR("Merged cloud too small (%d points) to create polygons!", (int)mergedClouds->size());
}
}
else // organized meshes
{
@@ -2736,6 +2747,10 @@ bool RTABMapApp::exportMesh(
success = true;
}
}
else
{
UERROR("Merged cloud is empty!");
}
}
progressionStatus_.finish();