VTK入门001——HelloVTK

#include "VTKPlatform.h"

//vtkConeSource 是 VTK 库中的一个类,用于生成一个圆锥体的几何形状。
#include <vtkConeSource.h>

//vtkPolyDataMapper 是 VTK 库中的一个类,
//用于将 vtkPolyData 对象(表示三维几何数据)映射到图形渲染上下文中
#include <vtkPolyDataMapper.h>

//在 VTK 库中,vtkActor 是用于将可视化属性(如几何数据、材质、光照)与场景图中的渲染节点相关联的类。
//vtkActor 可以在渲染器中呈现 3D 几何对象。
#include <vtkActor.h>

//在 VTK 库中,vtkRenderer 是一个用于管理渲染场景的类。
//渲染器管理如何在视窗中显示可视化对象,包括摄像机、演员(vtkActor)和其他渲染属性。
#include <vtkRenderer.h>

//在 VTK 库中,vtkRenderWindow 是一个用于显示渲染结果的窗口类。
//它提供了一个可以在屏幕上渲染和显示渲染器(vtkRenderer)内容的容器。
#include <vtkRenderWindow.h>

//添加读取文件的头文件
#include <vtkSTLReader.h>

//vtkAutoInit 是 VTK 库中的一个模块,用于简化 VTK 模块的初始化过程。
#include <vtkAutoInit.h>
VTK_MODULE_INIT(vtkRenderingOpenGL2);// 初始化渲染模块
VTK_MODULE_INIT(vtkInteractionStyle);// 初始化交互模块

VTKPlatform::VTKPlatform(QWidget *parent)
    : QMainWindow(parent)
{
    ui.setupUi(this);

    //QVTKOpenGLWidget 是一个用于在 Qt 应用程序中显示 VTK 渲染结果的小部件。
    //它是 VTK 和 Qt 的集成组件之一,用于在 Qt 界面中嵌入 VTK 渲染。
    //QVTKOpenGLWidget 使用 OpenGL 渲染,提供了在 Qt 应用程序中进行交互式 3D 可视化的能力。
    _pVTKWidget = new QVTKOpenGLWidget();


    //将 _pVTKWidget 设置为主窗口的中央部件(central widget)。
    //在 Qt 中,setCentralWidget 是 QMainWindow 类的成员函数,用于设置主窗口的中央部件,这将决定主要内容区域的布局。
    this->setCentralWidget(_pVTKWidget);


    // 1.generate data(生成模型)
    //一、vtkSmartPointer<vtkConeSource> cone: 这里声明了一个名为 cone 的智能指针,其类型为 vtkSmartPointer<vtkConeSource>。
    //智能指针是一种在对象超出范围时自动释放的指针,有助于管理内存和资源(不用delete)。

    //二、vtkSmartPointer<vtkConeSource>::New(): 这是一个调用静态成员函数 New() 的方式,用于在堆上创建一个新的 vtkConeSource 实例。
    //在 C++ 中,vtkSmartPointer<vtkConeSource>::New() 是用于创建 VTK 对象的常见用法。
    //::New():这是一个 VTK 类的静态成员函数,用于在堆上创建一个新的对象实例。在 VTK 中,许多类都具有名为 New() 的静态成员函数,用于创建新的对象。
    //New() 函数返回的是一个原始指针,然后被智能指针包装,以实现自动内存管理。
    vtkSmartPointer<vtkConeSource> cone = vtkSmartPointer<vtkConeSource>::New();

    //从文件中读取数据模型
    vtkSmartPointer<vtkSTLReader> reader = vtkSmartPointer<vtkSTLReader>::New();
    reader->SetFileName("C:/VTKPlatform/Data/42400-IDGH.stl");


    // 2.mapper
    //vtkPolyDataMapper 是 VTK 中的一个类,用于将几何数据映射到渲染器以进行可视化。
    //使用 vtkPolyDataMapper 将几何数据源生成的几何信息映射到可供渲染的格式。这个过程中会生成绘制所需的顶点、索引等信息。
    vtkSmartPointer<vtkPolyDataMapper> mapper = vtkSmartPointer<vtkPolyDataMapper>::New();

    // 3.actor
    //演员(actor)是 VTK 中用于表示可渲染对象的类,它们与映射器相关联。
    vtkSmartPointer<vtkActor> actor = vtkSmartPointer<vtkActor>::New();

    // 4.renderer
    //vtkRenderer 是 VTK 中的一个类,用于创建渲染器对象,它负责渲染可视化结果并提供了控制视图和相机等功能。
    //这段代码创建了一个 vtkSmartPointer 智能指针,指向一个新创建的 vtkRenderer 对象。
    vtkSmartPointer<vtkRenderer> renderer = vtkSmartPointer<vtkRenderer>::New();
    //然后,我们在 renderer 对象上设置了背景颜色。
    renderer->SetBackground(.3, .6, .3);

    // 5.connect them
    //这段代码片段是用于创建和设置一个简单的图形可视化场景
    //这行代码是将一个 mapper 对象与一个数据源(在这里是一个 cone 对象)相连接。
    //在这里,cone 是一个锥体,而 mapper 将负责将这个几何体转化为渲染器能够处理的表示形式。
    mapper->SetInputConnection(reader->GetOutputPort());

    actor->SetMapper(mapper);

    renderer->AddActor(actor);

    _pVTKWidget->renderWindow()->AddRenderer(renderer);

}

VTKPlatform::~VTKPlatform()
{}

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值