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;
}
相关推荐
beibeix20153 天前
VTK 渲染全流程与 OpenGL 上下文适配
vtk
把我格子衫拿来15 天前
VTK 9.5 与 Qt 6 联合开发:从嵌入三维窗口到可维护的桌面架构
c++·python·qt·vtk·三维可视化
把我格子衫拿来15 天前
VTK 与 Qt 的 CMake 工程怎么组织?模块、工具链与二进制兼容排错
c++·qt·vtk·cmake·工程实践
把我格子衫拿来16 天前
鼠标点到哪里才算选中?Qt 与 VTK 的拾取坐标、DPI 与体素定位
python·qt·vtk·坐标变换·三维交互
把我格子衫拿来16 天前
VTK 体绘制入门到排错:传递函数、采样距离与透明度的关系
python·vtk·可视化·医学影像·体绘制
走好每一步5 个月前
12、VTK用X、Z平面去切割一个圆锥
平面·vtk·三维图像
走好每一步5 个月前
11、VTK重要数学知识:平面和法向量
平面·vtk·三维图像
走好每一步5 个月前
5、VTK刚体变换
qt·vtk·三维图像
走好每一步5 个月前
2、VDK 使用QVTKOpenGLNativeWidget嵌入到QT窗体中
qt·vtk·三维图像