本文整理汇总了C++中PCLVisualizer::getRenderWindow方法的典型用法代码示例。如果您正苦于以下问题:C++ PCLVisualizer::getRenderWindow方法的具体用法?C++ PCLVisualizer::getRenderWindow怎么用?C++ PCLVisualizer::getRenderWindow使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类PCLVisualizer
的用法示例。
在下文中一共展示了PCLVisualizer::getRenderWindow方法的3个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: show_octree
void show_octree (ORROctree* octree, PCLVisualizer& viz)
{
vtkSmartPointer<vtkPolyData> vtk_octree = vtkSmartPointer<vtkPolyData>::New ();
vtkSmartPointer<vtkAppendPolyData> append = vtkSmartPointer<vtkAppendPolyData>::New ();
cout << "There are " << octree->getFullLeaves ().size () << " full leaves.\n";
std::vector<ORROctree::Node*>& full_leaves = octree->getFullLeaves ();
for (const auto &full_leaf : full_leaves)
// Add it to the other cubes
node_to_cube (full_leaf, append);
// Save the result
append->Update();
vtk_octree->DeepCopy (append->GetOutput ());
// Add to the visualizer
vtkRenderer *renderer = viz.getRenderWindow ()->GetRenderers ()->GetFirstRenderer ();
vtkSmartPointer<vtkActor> octree_actor = vtkSmartPointer<vtkActor>::New();
vtkSmartPointer<vtkDataSetMapper> mapper = vtkSmartPointer<vtkDataSetMapper>::New ();
mapper->SetInputData (vtk_octree);
octree_actor->SetMapper(mapper);
// Set the appearance & add to the renderer
octree_actor->GetProperty ()->SetColor (1.0, 1.0, 1.0);
renderer->AddActor(octree_actor);
}
示例2: show_octree_zproj
void show_octree_zproj (ORROctreeZProjection* zproj, PCLVisualizer& viz)
{
cout << "There is (are) " << zproj->getFullPixels ().size () << " full pixel(s).\n";
vtkSmartPointer<vtkAppendPolyData> upper_bound = vtkSmartPointer<vtkAppendPolyData>::New (), lower_bound = vtkSmartPointer<vtkAppendPolyData>::New ();
const ORROctreeZProjection::Pixel *pixel;
const float *b = zproj->getBounds ();
float x, y, psize = zproj->getPixelSize ();
int i, j, width, height;
zproj->getNumberOfPixels (width, height);
for ( i = 0, x = b[0] ; i < width ; ++i, x += psize )
{
for ( j = 0, y = b[2] ; j < height ; ++j, y += psize )
{
pixel = zproj->getPixel (i, j);
if ( !pixel )
continue;
rectangle_to_vtk (x, x + psize, y, y + psize, pixel->z1 (), lower_bound);
rectangle_to_vtk (x, x + psize, y, y + psize, pixel->z2 (), upper_bound);
}
}
// Save the result
upper_bound->Update();
lower_bound->Update();
// Add to the visualizer
vtkRenderer *renderer = viz.getRenderWindow ()->GetRenderers ()->GetFirstRenderer ();
vtkSmartPointer<vtkActor> upper_actor = vtkSmartPointer<vtkActor>::New(), lower_actor = vtkSmartPointer<vtkActor>::New();
vtkSmartPointer<vtkDataSetMapper> upper_mapper = vtkSmartPointer<vtkDataSetMapper>::New (), lower_mapper = vtkSmartPointer<vtkDataSetMapper>::New ();
upper_mapper->SetInputData (upper_bound->GetOutput ());
upper_actor->SetMapper(upper_mapper);
lower_mapper->SetInputData (lower_bound->GetOutput ());
lower_actor->SetMapper(lower_mapper);
// Set the appearance & add to the renderer
upper_actor->GetProperty ()->SetColor (1.0, 0.0, 0.0);
renderer->AddActor(upper_actor);
lower_actor->GetProperty ()->SetColor (1.0, 1.0, 0.0);
renderer->AddActor(lower_actor);
}
示例3: show_octree
void show_octree (ORROctree* octree, PCLVisualizer& viz, bool show_full_leaves_only)
{
vtkSmartPointer<vtkPolyData> vtk_octree = vtkSmartPointer<vtkPolyData>::New ();
vtkSmartPointer<vtkAppendPolyData> append = vtkSmartPointer<vtkAppendPolyData>::New ();
cout << "There are " << octree->getFullLeaves ().size () << " full leaves.\n";
if ( show_full_leaves_only )
{
std::vector<ORROctree::Node*>& full_leaves = octree->getFullLeaves ();
for ( std::vector<ORROctree::Node*>::iterator it = full_leaves.begin () ; it != full_leaves.end () ; ++it )
// Add it to the other cubes
node_to_cube (*it, append);
}
else
{
ORROctree::Node* node;
std::list<ORROctree::Node*> nodes;
nodes.push_back (octree->getRoot ());
while ( !nodes.empty () )
{
node = nodes.front ();
nodes.pop_front ();
// Visualize the node if it has children
if ( node->getChildren () )
{
// Add it to the other cubes
node_to_cube (node, append);
// Add all the children to the working list
for ( int i = 0 ; i < 8 ; ++i )
nodes.push_back (node->getChild (i));
}
// If we arrived at a leaf -> check if it's full and visualize it
else if ( node->getData () )
node_to_cube (node, append);
}
}
// Just print the leaf size
std::vector<ORROctree::Node*>::iterator first_leaf = octree->getFullLeaves ().begin ();
if ( first_leaf != octree->getFullLeaves ().end () )
printf("leaf size = %f\n", (*first_leaf)->getBounds ()[1] - (*first_leaf)->getBounds ()[0]);
// Save the result
append->Update();
vtk_octree->DeepCopy (append->GetOutput ());
// Add to the visualizer
vtkRenderer *renderer = viz.getRenderWindow ()->GetRenderers ()->GetFirstRenderer ();
vtkSmartPointer<vtkActor> octree_actor = vtkSmartPointer<vtkActor>::New();
vtkSmartPointer<vtkDataSetMapper> mapper = vtkSmartPointer<vtkDataSetMapper>::New ();
mapper->SetInput(vtk_octree);
octree_actor->SetMapper(mapper);
// Set the appearance & add to the renderer
octree_actor->GetProperty ()->SetColor (1.0, 1.0, 1.0);
octree_actor->GetProperty ()->SetLineWidth (1);
octree_actor->GetProperty ()->SetRepresentationToWireframe ();
renderer->AddActor(octree_actor);
}