vtk实战(三十)——写入vtu数据

来源:互联网 发布:淘宝的同仁堂是真的吗 编辑:程序博客网 时间:2024/06/03 19:18
#include <vtkVersion.h>#include <vtkSmartPointer.h>#include <vtkTetra.h>#include <vtkCellArray.h>#include <vtkXMLUnstructuredGridReader.h>#include <vtkDataSetMapper.h>#include <vtkActor.h>#include <vtkRenderer.h>#include <vtkRenderWindow.h>#include <vtkRenderWindowInteractor.h>#include <vtkXMLUnstructuredGridWriter.h>#include <vtkUnstructuredGrid.h>#include <vtkPointData.h>#include <vtkVertexGlyphFilter.h>int main(){    std::string filename = "ou.vtu";    vtkSmartPointer<vtkPoints> points =        vtkSmartPointer<vtkPoints>::New();    points->InsertNextPoint(0, 0, 0);    points->InsertNextPoint(1, 0, 0);    points->InsertNextPoint(1, 1, 0);    points->InsertNextPoint(0, 1, 1);    vtkSmartPointer<vtkTetra> tetra =        vtkSmartPointer<vtkTetra>::New();    tetra->GetPointIds()->SetId(0, 0);    tetra->GetPointIds()->SetId(1, 1);    tetra->GetPointIds()->SetId(2, 2);    tetra->GetPointIds()->SetId(3, 3);    vtkSmartPointer<vtkCellArray> cellArray =        vtkSmartPointer<vtkCellArray>::New();    cellArray->InsertNextCell(tetra);    vtkSmartPointer<vtkUnstructuredGrid> unstructuredGrid =        vtkSmartPointer<vtkUnstructuredGrid>::New();    unstructuredGrid->SetPoints(points);    unstructuredGrid->SetCells(VTK_TETRA, cellArray);    vtkSmartPointer<vtkXMLUnstructuredGridWriter> writer =        vtkSmartPointer<vtkXMLUnstructuredGridWriter>::New();    writer->SetFileName(filename.c_str());    writer->SetInput(unstructuredGrid);    writer->Write();    vtkSmartPointer<vtkXMLUnstructuredGridReader> reader =        vtkSmartPointer<vtkXMLUnstructuredGridReader>::New();    reader->SetFileName(filename.c_str());    reader->Update();    vtkSmartPointer<vtkDataSetMapper> mapper =        vtkSmartPointer<vtkDataSetMapper>::New();    mapper->SetInputConnection(reader->GetOutputPort());    vtkSmartPointer<vtkActor> actor =        vtkSmartPointer<vtkActor>::New();    actor->SetMapper(mapper);    vtkSmartPointer<vtkRenderer> renderer =        vtkSmartPointer<vtkRenderer>::New();    vtkSmartPointer<vtkRenderWindow> renderWindow =        vtkSmartPointer<vtkRenderWindow>::New();    renderWindow->AddRenderer(renderer);    vtkSmartPointer<vtkRenderWindowInteractor> renderWindowInteractor =        vtkSmartPointer<vtkRenderWindowInteractor>::New();    renderWindowInteractor->SetRenderWindow(renderWindow);    renderer->AddActor(actor);    renderer->SetBackground(.3, .6, .3);    renderWindow->Render();    renderWindowInteractor->Start();    return 0;}

result

0 0
原创粉丝点击