vtk - 在VTK中,创建二十面体

  显示原文与译文双语对照的内容

我正在尝试从点云库调试一段代码。 它使用VTK来创建一个二十面体。

我已经将错误的代码粘贴到一个新函数中- - ***.. . *** 注释直接从PCL复制。 我添加了输入和输出部分:


int main()
{
 int tesselation_level_ = 2;

//*** begin PCL code ***

 vtkSmartPointer<vtkPlatonicSolidSource> ico = vtkSmartPointer<vtkPlatonicSolidSource>::New ();
 ico->SetSolidTypeToIcosahedron ();
 ico->Update ();

//tesselate cells from icosahedron
 vtkSmartPointer<vtkLoopSubdivisionFilter> subdivide = vtkSmartPointer<vtkLoopSubdivisionFilter>::New ();
 subdivide->SetNumberOfSubdivisions (tesselation_level_);
 subdivide->SetInputConnection (ico->GetOutputPort ());

//Get camera positions
 vtkPolyData *sphere = subdivide->GetOutput ();

//*** end PCL code ***

 std::cout <<"Sphere points:" <<sphere->GetNumberOfPoints () <<std::endl;
 std::cout <<"Sphere polys:" <<sphere->GetNumberOfPolys () <<std::endl;
}

我希望从细分二十进制创建的球体有一些点和一些多边形,但输出显示球实际上是空的:


!./test
Sphere points: 0
Sphere polys: 0

我是不是在做明显错误的事情? 如何创建一个二十面体?

( 在 OSX 10.9上有 VTK 5.10 )

时间: 原作者:

查看网格细分示例 。 在设置subdivisionFilter对象的输入之后的示例中,发出了更新调用。 在你的代码 subdivide->Update(); 中设置subdivide的输入连接之后

...