CloudViewer: added setInteractorLayer() function

This commit is contained in:
matlabbe
2018-08-24 15:27:42 -04:00
parent cbf14bfa08
commit 080d044c99
4 changed files with 44 additions and 0 deletions

View File

@@ -2087,6 +2087,28 @@ Transform CloudViewer::getTargetPose() const
return _lastPose;
}
std::string CloudViewer::getIdByActor(vtkProp * actor) const
{
pcl::visualization::CloudActorMapPtr cloudActorMap = _visualizer->getCloudActorMap();
for(pcl::visualization::CloudActorMap::iterator iter=cloudActorMap->begin(); iter!=cloudActorMap->end(); ++iter)
{
if(iter->second.actor.GetPointer() == actor)
{
return iter->first;
}
}
pcl::visualization::ShapeActorMapPtr shapeActorMap = _visualizer->getShapeActorMap();
for(pcl::visualization::ShapeActorMap::iterator iter=shapeActorMap->begin(); iter!=shapeActorMap->end(); ++iter)
{
if(iter->second.GetPointer() == actor)
{
return iter->first;
}
}
return std::string();
}
void CloudViewer::setBackfaceCulling(bool enabled, bool frontfaceCulling)
{
_aBackfaceCulling->setChecked(enabled);
@@ -2162,6 +2184,24 @@ void CloudViewer::setEdgeVisibility(bool visible)
this->update();
}
void CloudViewer::setInteractorLayer(int layer)
{
_visualizer->getRendererCollection()->InitTraversal ();
vtkRenderer* renderer = NULL;
int i =0;
while ((renderer = _visualizer->getRendererCollection()->GetNextItem ()) != NULL)
{
if(i==layer)
{
_visualizer->getInteractorStyle()->SetDefaultRenderer(renderer);
_visualizer->getInteractorStyle()->SetCurrentRenderer(renderer);
return;
}
++i;
}
UWARN("Could not set layer %d to interactor (layers=%d).", layer, _visualizer->getRendererCollection()->GetNumberOfItems());
}
void CloudViewer::getCameraPosition(
float & x, float & y, float & z,
float & focalX, float & focalY, float & focalZ,