vtk的小总结(1):基础知识
2016-04-21 23:00
302 查看
也是因为需要,所以要学一点点vtk。借此发一点点总结,希望能有一点用。
1、 vtk里每个类的构造函数都定义为保护成员,所以不能直接类名+实例进行定义对象。要使用智能指针vtkSmartPointer<vtkRenderWindow>renWin = vtkSmartPointer<vtkRenderWindow>::New();
如果使用的是*和::new()方法实现的,这里的new()需要在生命周期结束前使用Delete()删除。
2、 vtkCylinderSource::setResolution(10)设置柱面10面;
vtkCylinderSource生成的数据类型就是vtkPolyData;
vtkPolyDataMapper():vtkMapper该类用于渲染vtkPolyData,就是将输入的数据转换成几何图进行渲染
vtkActor:vtkProp 而其中的vtkProp就是数据存在于渲染场景中的形式。其子类vtkActor表达场景中的几何数据,vtkVolume表达场景中的体数据
vtkRenderWindow:直接使用来创建操作系统的vtk渲染引擎 其中包含了vtkRender集合、渲染参数。AddRender()方法用于加入vtkRender对象,SetSize()设置窗口。
vtkRender:负责管理场景的渲染过程(p24详细介绍)
vtkLight:设置位置灯光和方向灯光
vtkCamera:设置相机
vtkColor:负责颜色实现工作
vtkStructureedPointsReader:读入此类型的vtk文件
3、 vtk采用RGB和HSV两种颜色系统来描述颜色
4、vtkCoordinate:用来管理坐标系之间的变换p46
5、vtk中的空间变换相关的类:
vtkTransform2D,vtkTransform,vtkPerspectiveTransform,vtkGeneralTransform,vtkTransformFilter,vtkMatrix4x4;
6、vtkRendering Engine(渲染引擎)和VisualizationPipeline(可视化管线)
7、vtkMarchingCubes:移动立方法提取等值面:
vtkSmartPointer<vtkMarchingCubes>marchingCubes=vtkSmartPointer<vtkMarc hingCubes>:New();
marchingCubes->SetInputConnection(reader->GetOutputPort());
marchingCubes->SetValue(0,500);
类似于vtkMarchingCubes的对数据处理对类称为Filter
8、visuallizationpipeline中采用LazyEvaluation(惰性赋值)的方法来控制管线的执行。就是vtkObject中有一个重要的成员变量为Mtime,并且采用的是DemandDriven,即只有在发出请求的时候才控制管线的执行。
9、upDate()函数会在render()函数执行的时候自动调用,如果你要在程序中间显式地输入数据,那么必须手动地调用Update()函数。
10、引用计数功能,就是在程序中有可能有重复的值,将这些数据共享,同时只生成一份数据,并且在引用的对象都被移除的时候,就自动析构。
11、reader->IsA(“类型”)用来判断对象是不是这个类型的。
Reader->GetClassName()用来返回当前对象的类型。
vtk中的数据传是通过port来实现的,具体而言就是,visuallizationpipeline是通过SetInputConnection()和GetPutputPort()来完成的。并且输入输出的数据需要是相同类型的。
BMP是windows下的一种图像格式
在函数返回值中,可以返回智能指针,并且在函数中被声明的对象不会被删除,但是你必须使用智能指针的引用去接收函数的返回值。不然会导致智能指针计数变成0,从而返回了悬空指针。
1、 vtk里每个类的构造函数都定义为保护成员,所以不能直接类名+实例进行定义对象。要使用智能指针vtkSmartPointer<vtkRenderWindow>renWin = vtkSmartPointer<vtkRenderWindow>::New();
如果使用的是*和::new()方法实现的,这里的new()需要在生命周期结束前使用Delete()删除。
2、 vtkCylinderSource::setResolution(10)设置柱面10面;
vtkCylinderSource生成的数据类型就是vtkPolyData;
vtkPolyDataMapper():vtkMapper该类用于渲染vtkPolyData,就是将输入的数据转换成几何图进行渲染
vtkActor:vtkProp 而其中的vtkProp就是数据存在于渲染场景中的形式。其子类vtkActor表达场景中的几何数据,vtkVolume表达场景中的体数据
vtkRenderWindow:直接使用来创建操作系统的vtk渲染引擎 其中包含了vtkRender集合、渲染参数。AddRender()方法用于加入vtkRender对象,SetSize()设置窗口。
vtkRender:负责管理场景的渲染过程(p24详细介绍)
vtkLight:设置位置灯光和方向灯光
vtkCamera:设置相机
vtkColor:负责颜色实现工作
vtkStructureedPointsReader:读入此类型的vtk文件
3、 vtk采用RGB和HSV两种颜色系统来描述颜色
4、vtkCoordinate:用来管理坐标系之间的变换p46
5、vtk中的空间变换相关的类:
vtkTransform2D,vtkTransform,vtkPerspectiveTransform,vtkGeneralTransform,vtkTransformFilter,vtkMatrix4x4;
6、vtkRendering Engine(渲染引擎)和VisualizationPipeline(可视化管线)
7、vtkMarchingCubes:移动立方法提取等值面:
vtkSmartPointer<vtkMarchingCubes>marchingCubes=vtkSmartPointer<vtkMarc hingCubes>:New();
marchingCubes->SetInputConnection(reader->GetOutputPort());
marchingCubes->SetValue(0,500);
类似于vtkMarchingCubes的对数据处理对类称为Filter
8、visuallizationpipeline中采用LazyEvaluation(惰性赋值)的方法来控制管线的执行。就是vtkObject中有一个重要的成员变量为Mtime,并且采用的是DemandDriven,即只有在发出请求的时候才控制管线的执行。
9、upDate()函数会在render()函数执行的时候自动调用,如果你要在程序中间显式地输入数据,那么必须手动地调用Update()函数。
10、引用计数功能,就是在程序中有可能有重复的值,将这些数据共享,同时只生成一份数据,并且在引用的对象都被移除的时候,就自动析构。
11、reader->IsA(“类型”)用来判断对象是不是这个类型的。
Reader->GetClassName()用来返回当前对象的类型。
vtk中的数据传是通过port来实现的,具体而言就是,visuallizationpipeline是通过SetInputConnection()和GetPutputPort()来完成的。并且输入输出的数据需要是相同类型的。
BMP是windows下的一种图像格式
在函数返回值中,可以返回智能指针,并且在函数中被声明的对象不会被删除,但是你必须使用智能指针的引用去接收函数的返回值。不然会导致智能指针计数变成0,从而返回了悬空指针。
相关文章推荐
- 使用C++实现JNI接口需要注意的事项
- 关于指针的一些事情
- c++ primer 第五版 笔记前言
- share_ptr的几个注意点
- Lua中调用C++函数示例
- Lua教程(一):在C++中嵌入Lua脚本
- Lua教程(二):C++和Lua相互传递数据示例
- C++联合体转换成C#结构的实现方法
- C++高级程序员成长之路
- C++编写简单的打靶游戏
- C++ 自定义控件的移植问题
- C++变位词问题分析
- C/C++数据对齐详细解析
- C++基于栈实现铁轨问题
- C++中引用的使用总结
- 使用Lua来扩展C++程序的方法
- C++中调用Lua函数实例
- Lua和C++的通信流程代码实例
- C与C++之间相互调用实例方法讲解
- 解析C++中派生的概念以及派生类成员的访问属性