要理解VTK的工作原理,首先应明确几个类型: 1.vtkSource(数据源) 这个就好比一个剧本里面的角色,让演员知道要演的是什么人物。 数据源有:vtkConeSource,vtkSphereSource,vtkOutlineSource...等等。 它们都继承与vtkPolyDataAlgorithm类,该类用于提供不同的类型的数据源 2.vtkMapper(映射器) 它就像是一个剧本,应该如何塑造角色的装扮 映射器有:vtkDataSetMapper,vtkMultiGroupPolyDataMapper,vtkPolyDataMapper。 它们都继承于vtkMapper类。所有的数据对象都要通过映射器Mapper映射到vtkActor中。 3.vtkActor(演员) 有了剧本,有了角色,得找个真人来演出这个剧本了。 该类继承于vtkProp3D,有4个子类:vtkFollow,vtkLODActor,vtkMesaActor,vtkOpenGLActor. 4.vtkRenderer(渲染器) 这个过程就相当于对演员进行化妆并布置场景; 该类继承于vtkViewport,有2个子类:vtkMesaRender,vtkOpenGLRender. 该类另外一个作用是设置窗口vtkRenderWindow的背景. 5.vtkRenderWindow(窗口) 这个就相当于个舞台 ,把准备好的演员放进去,准备表演了; 该类继承于vtkWindow,有2个子类:vtkMesaWindow,vtkOpenGLWindow. 6.vtkRenderWindowInteractor(窗口交互器) 这个像摄像机,用于捕捉演员的动作,然后传给导演看 该类的继承关系在vtkRenderWindowInteractor文章中已给出。 7.vtkInteractorObserver(观察者) 有点导演的意思,导演通过观看录像后,做出一系列调整 该类的继承关系在vtkRenderWindowInteractor文章中已给出 Example: vtkConeSource * s=vtkConeSource::New(); //棱锥数据源,用于构造描述棱锥的点、线、面 vtkRenderWindowInteractor *iren=vtkRenderWindowInteractor::New();//交互器 vtkInteractorStyleTrackballCamera *style = vtkInteractorStyleTrackballCamera::New();//观察者 vtkMyCallback *callback = vtkMyCallback::New(); //对观察到的事件响应 |