vtk 一个actor多条线段

来源:互联网 发布:icc 文件 mac 编辑:程序博客网 时间:2024/06/06 20:53
#include "vtkPoints.h"
#include "vtkNew.h"
#include "vtkPolyLine.h"
#include "vtkCellArray.h"
#include "vtkPolyData.h"
#include "vtkPolyDataMapper.h"
#include "vtkActor.h"
#include "vtkRenderer.h"
#include "vtkRenderWindow.h"
#include "vtkRenderWindowInteractor.h"
#include "vtkProperty.h"
int main()
{
vtkNew<vtkPoints> points;
static float x[8][3] = { { 0, 0, 0 }, { 1, 0, 0 }, { 1, 1, 0 }, { 0, 1, 0 },
{ 0, 0, 1 }, { 1, 0, 1 }, { 1, 1, 1 }, { 0, 1, 1 } };
points->SetNumberOfPoints(8);
for (int i = 0; i<8; i++) points->InsertPoint(i, x[i]);
vtkNew<vtkPolyLine> polyline;
vtkNew<vtkCellArray> cellarray;

int num_2;
num_2 = points->GetNumberOfPoints();

polyline->GetPointIds()->SetNumberOfIds(num_2);
for (int ID2 = 0; ID2 < num_2; ID2++)
{
polyline->GetPointIds()->SetId(ID2, ID2);
}
cellarray->InsertNextCell(polyline.Get());


vtkNew<vtkPolyData> polydata;
polydata->SetLines(cellarray.Get());
polydata->SetPoints(points.Get());


vtkNew<vtkPolyDataMapper> mapper;
mapper->SetInputData(polydata.Get());


vtkNew<vtkActor> actor;
actor->SetMapper(mapper.Get());
actor->GetProperty()->SetLineWidth(15);
actor->GetProperty()->SetColor(1, 0, 0);


vtkNew<vtkRenderer> renderer;
renderer->AddActor(actor.Get());


vtkNew<vtkRenderWindow> renwin;
renwin->AddRenderer(renderer.Get());



vtkNew<vtkRenderWindowInteractor> interactor;
interactor->SetRenderWindow(renwin.Get());


interactor->Initialize();
interactor->Start();


return 0;
}
原创粉丝点击