4、VDK读取xml模型数据

cpp 复制代码
#include "MainWindow.h"

#include <QApplication>
#include <vtkXMLPolyDataReader.h>
#include <vtkPolyData.h>
#include <vtkPolyDataMapper.h>
#include <vtkRenderer.h>
#include <vtkActor.h>
#include <vtkRenderWindow.h>
#include <vtkRenderWindowInteractor.h>
#include <vtkProperty.h>
#include <iostream>


#include <vtkAutoInit.h>
VTK_MODULE_INIT(vtkRenderingOpenGL2);
VTK_MODULE_INIT(vtkInteractionStyle);

int main(int argc, char *argv[])
{
    auto reader = vtkSmartPointer<vtkXMLPolyDataReader>::New();
    reader->SetFileName("D:\\cube.vtp");
    reader->Update();

    auto polyData = reader->GetOutput();
    int pointCnt = polyData->GetNumberOfPoints();
    if (0 == pointCnt)
    {
        std::cout << "Not valid polydata!";
        return -1;
    }



    auto mapper = vtkSmartPointer<vtkPolyDataMapper>::New();
    mapper->SetInputConnection(reader->GetOutputPort());


    auto actor = vtkSmartPointer<vtkActor>::New();
    actor->SetMapper(mapper);
    actor->GetProperty()->SetColor(0.7, 0.1, 0.1);

    auto render = vtkSmartPointer<vtkRenderer>::New();
    render->AddActor(actor);
    render->SetBackground(0.2, 0.1, 0.7);

    auto renderWindow = vtkSmartPointer<vtkRenderWindow>::New();
    renderWindow->AddRenderer(render);

    auto interator = vtkSmartPointer<vtkRenderWindowInteractor>::New();
    renderWindow->SetInteractor(interator);


    renderWindow->SetPosition(100, 100);
    renderWindow->SetSize(600, 600);
    interator->Start();

    return 0;
}
相关推荐
走好每一步2 天前
2、VDK 使用QVTKOpenGLNativeWidget嵌入到QT窗体中
qt·vtk·三维图像
走好每一步5 天前
1、VTK+QT + cmake编程 三维圆柱体
qt·vtk
走好每一步5 天前
0、VDK编译 CMake + VS2017 x64
qt·vtk·三维图像
酬勤-人间道7 天前
VTK 与 Cesium-native 结合实践:小场景三维编辑 + 数字地球精准贴合
c++·qt·vtk·遥感·岩土·cesium-native
CAE虚拟与现实1 个月前
五一假期闲来无事,来个前段、后端的说明吧
前端·后端·vtk·three.js·前后端
vegetablesssss1 个月前
vtk镜像图
c++·qt·vtk
vegetablesssss1 个月前
VTK切割图
c++·qt·vtk
vegetablesssss1 个月前
vtkCamera
qt·vtk
Tianwen_Burning4 个月前
vtk <vtkRenderWindowInteractor>交互器
vtk