vtkRenderWindow类中包含的一些函数概析
来源:互联网 发布:微盟 知乎 编辑:程序博客网 时间:2024/04/29 02:58
该类主要用于创建一个window用于renderers来进行绘制
vtkRenderWindow是一个抽象类,主要用于指定渲染窗口的一些参数与函数。一个渲染窗口是一个图形窗口,对于用户绘制他们想要图形的接口。方法用来同步渲染进程,设置窗口大小和控制double buffering。也允许渲染立体图形,交错渲染立体类型是为了输出a VRex stereo projector。所有的奇数平行线是来自左眼,偶数的来自右眼,用户必须使render window与VRex projector对其,否则两眼将被替换。
在vtk4以后的版本vtkWindowToImageFilter类是一个规范的方法的一部分,主要用来输出window的图形到文件中(代替了SaveImageAsPPM)。连接这些filters中的一个到window的输出,并且把这些filters的输出作为一个writer,就像vtkPNGWriter
// .SECTION see also
// vtkRenderer vtkRenderWindowInteractor vtkWindowToImageFilter
#include "vtkRenderingCoreModule.h" // For export macro
#include "vtkWindow.h"
class vtkFloatArray;
class vtkPainterDeviceAdapter;
class vtkProp;
class vtkCollection;
class vtkRenderWindowInteractor;
class vtkRenderer;
class vtkRendererCollection;
class vtkUnsignedCharArray;
// lets define the different types of stereo 立体的不同种类
#define VTK_STEREO_CRYSTAL_EYES 1
#define VTK_STEREO_RED_BLUE 2
#define VTK_STEREO_INTERLACED 3
#define VTK_STEREO_LEFT 4
#define VTK_STEREO_RIGHT 5
#define VTK_STEREO_DRESDEN 6
#define VTK_STEREO_ANAGLYPH 7
#define VTK_STEREO_CHECKERBOARD 8
#define VTK_STEREO_SPLITVIEWPORT_HORIZONTAL 9
//光标的不同种类
#define VTK_CURSOR_DEFAULT 0
#define VTK_CURSOR_ARROW 1
#define VTK_CURSOR_SIZENE 2
#define VTK_CURSOR_SIZENW 3
#define VTK_CURSOR_SIZESW 4
#define VTK_CURSOR_SIZESE 5
#define VTK_CURSOR_SIZENS 6
#define VTK_CURSOR_SIZEWE 7
#define VTK_CURSOR_SIZEALL 8
#define VTK_CURSOR_HAND 9
#define VTK_CURSOR_CROSSHAIR 10
class VTKRENDERINGCORE_EXPORT vtkRenderWindow : public vtkWindow
{
public:
父类为vtkWindow。
void PrintSelf(ostream& os, vtkIndent indent);
static vtkRenderWindow *New();:默认创建的实例是screen size为300*300,borders on,positioned at (0,0),doublebuffering on
添加renderer,去除renderer(都是从lists of renderers),查找某个renderer是否在list中,获取整个renderers 集
获取现在使用的rendering library
GL2PS exporter通过特殊的方式操控特定的props(例如文本信息)。这个方法提供一个 a render,并且通过特定集合捕获all "GL2PS-special" props。对于每个vtkRenderer in this->GetRenderers()这个集合vtkPropCollection,且每一个都包含由相关renderer渲染的props。void CaptureGL2PSSpecialProps(vtkCollection *specialProps);
返回true,当渲染进程捕获了text actors
渲染进程开始渲染函数并且同步开始这个进程,初始化渲染进程,结束渲染进程,swapping buffers,阻止线程,生成图像,
生成交互器:virtual vtkRenderWindowInteractor *MakeRenderWindowInteractor();
光标的相关设置
screen window size设置,borders设置,产生
立体模型渲染的相关参数设置,在这里我们就先不细看了
Set/get the anaglyph color saturation factor 立体颜色的饱和度系数
Set/get the anaglyph color mask values 立体颜色的掩码值
Turn on/off buffer swapping between images
Set/Get the pixel data of an image transmitted as RGBRGBRGB 获取/设置图像的像素数据
含 alpha值的上函数
抗锯齿
焦点深度
运动模糊
打断程序中的渲染
鼠标事件处理
在当下是否渲染
清除状态
期盼的更新速率
获取number of layers for renderers
获取与设置当前renderer相关的interactor(交互器)
检测事件RenderWindow<->Interactor环
vtkWindow API的虚拟根
根据当前的 activated OpenGL context初始化render window
当前window的一些相关的参数设置与检测。color buffer,number of multisamples
protected:
vtkRenderWindow();
~vtkRenderWindow();
virtual void DoStereoRender();
virtual void DoFDRender();
virtual void DoAARender();
vtkPainterDeviceAdapter* PainterDeviceAdapter;
vtkRendererCollection *Renderers;
int Borders;
int FullScreen;
int OldScreen[5];
int PointSmoothing;
int LineSmoothing;
int PolygonSmoothing;
int StereoRender;
int StereoType;
int StereoStatus; // used for keeping track of what's going on
int StereoCapableWindow;
int AlphaBitPlanes;
vtkRenderWindowInteractor *Interactor;
unsigned char* StereoBuffer; // used for red blue stereo
float *AccumulationBuffer; // used for many techniques
unsigned int AccumulationBufferSize;
int AAFrames;
int FDFrames;
int UseConstantFDOffsets; // to use the same offsets at each rendering
double *ConstantFDOffsets[2];
int SubFrames; // number of sub frames
int CurrentSubFrame; // what one are we on
unsigned char *ResultFrame; // used for any non immediate rendering
int SwapBuffers;
double DesiredUpdateRate;
int AbortRender;
int InAbortCheck;
int InRender;
int NeverRendered;
int NumberOfLayers;
int CurrentCursor;
int IsPicking;
float AnaglyphColorSaturation;
int AnaglyphColorMask[2];
int MultiSamples;
int StencilCapable;
int CapturingGL2PSSpecialProps;
- vtkRenderWindow类中包含的一些函数概析
- datatables中包含的一些小技巧
- ctype.h中包含的函数
- json字符串中,包含函数的处理
- Python3中一些类的内置函数
- 两个类相互包含的一些问题
- C++中vector容器所包含的一些方法
- C++中包含有虚函数的单继承状态下的类的内存布局
- C++中包含有虚函数的单继承状态下的类的内存布局
- 当一个类中包含其他类的对象时构造函数的调用顺序
- 【#include<algorithm>】中包含的可以直接调用的函数
- dll包含的函数
- string.h 中包含的函数及实例
- PHP中判断是否包含字符的函数
- c++中头文件stdlib.h主要包含的函数
- c语言常用头文件中包含的函数
- C++中,头文件stdlib.h主要包含的函数
- 检查一个字符串中是否包含另一个字符的函数
- Android编译问题记录
- 基础练习 龟兔赛跑预测
- 关于SVN 目录结构
- iOS开发UI篇—UITabBarController生命周期(使用storyoard搭建)
- html常用标签
- vtkRenderWindow类中包含的一些函数概析
- oracle中分组排序统计
- 插入排序
- c++面试题
- Linux系统cp:omitting directory`XXX'问题解决
- /etc/fstab 文件解释
- 【git】git常用命令
- Android开发规范:性能及UI优化
- android 4.0网络编程之socket聊天室