vtk实战(二十九)——读入未知格式XMLFile数据

#include <vtkSmartPointer.h>
#include <vtkPolyData.h>
#include <vtkUnstructuredGrid.h>
#include <vtkDataSetMapper.h>
#include <vtkActor.h>
#include <vtkRenderWindow.h>
#include <vtkRenderer.h>
#include <vtkRenderWindowInteractor.h>
#include <vtkXMLGenericDataObjectReader.h>

int main()
{
    std::string inputFilename ="cow.vtp";

    vtkSmartPointer<vtkXMLGenericDataObjectReader> reader =
        vtkSmartPointer<vtkXMLGenericDataObjectReader>::New();
    reader->SetFileName(inputFilename.c_str());
    reader->Update();

    if (vtkPolyData::SafeDownCast(reader->GetOutput()))
    {
        std::cout << "File is a polydata" << std::endl;
    }
    else if (vtkUnstructuredGrid::SafeDownCast(reader->GetOutput()))
    {
        std::cout << "File is an unstructured grid" << std::endl;
    }

    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;
}

vtk实战(二十九)——读入未知格式XMLFile数据_第1张图片

你可能感兴趣的:(VTK)