vtk与MFC联合编程

vtk与MFC联合编程

ID:40571805

大小:37.97 KB

页数:4页

时间:2019-08-04

vtk与MFC联合编程_第1页
vtk与MFC联合编程_第2页
vtk与MFC联合编程_第3页
vtk与MFC联合编程_第4页
资源描述:

《vtk与MFC联合编程》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、VTK/MFC联合编程(对话框程序)2011-06-1918:10:17

2、分类:VTK

3、标签:vtkmfc

4、字号大中小订阅1首先,建立一个MFC对话框程序,工程名Viewer,删除掉自动生成的.ncb和.sln文件(在下一步用CMake重新生成)2使用CMake进行配置工程的VTK环境,CMakeLists.txt文件如下,需要修改的地方:VTK路径;StdAfx,Viewer,ViewerDlg,Viewer.rc,res/Viewer.rc2则是刚刚建立的工程ImageViewer所自动生成的源文件和资源文件cmake_minimum_required(VERSION2.6)F

5、IND_PACKAGE(VTK)IF(NOTVTK_DIR)MESSAGE(FATAL_ERROR"PleasesetVTK_DIR.")ENDIF(NOTVTK_DIR)INCLUDE(${VTK_USE_FILE})INCLUDE("D:/VTK-5.6/vtk-5.6.1/GUISupport/MFC/VTKMFCSettings.cmake")IF(VTK_MFC_DELAYLOAD_VTK_DLLS)VTK_MFC_ADD_DELAYLOAD_FLAGS(CMAKE_EXE_LINKER_FLAGSvtkMFC.dllvtkRendering.dllvtkIO.dllvt

6、kFiltering.dllvtkCommon.dll)ENDIF(VTK_MFC_DELAYLOAD_VTK_DLLS)SET(vtkDLG_SRCSStdAfxViewerViewerDlgViewer.rcres/Viewer.rc2)ADD_EXECUTABLE(vtkDLGWIN32${vtkDLG_SRCS})IF(VTK_MFC_EXTRA_LIBS)TARGET_LINK_LIBRARIES(vtkDLG${VTK_MFC_EXTRA_LIBS})ENDIF(VTK_MFC_EXTRA_LIBS)TARGET_LINK_LIBRARIES(vtkDLGvtkMFCv

7、tkRenderingvtkIOvtkFilteringvtkCommon)3Viewer程序,直接用对话框作为显示图像的窗口,显示一个球(1)在CViewDlg.h头文件中添加成员变量和函数,当然不要忘记先添加include,留意VTK_MFC编程的renWin和iren分别是vtkWin32OpenGLRenderWindow,vtkWin32RenderWindowInteractor,注意区别.private:voidPipeline();vtkRenderer*ren;vtkWin32OpenGLRenderWindow*renWin;vtkWin32RenderWind

8、owInteractor*iren;vtkSphereSource*sphere;vtkPolyDataMapper*sphereMapper;vtkActor*sphereActor;(2)考虑VTK管道线,我们按照管道线来向Viewer程序中添加代码,理清思路pipeline:vtkSource->vtkMapper->vtkActor【->vtkProperty】【->vtkLight】【->vtkCamera】->vtkRenderer->vtkRenderWindow【->vtkRenderWindowInteractor】A在构造函数中实例化对象CViewerDlg::

9、CViewerDlg(CWnd*pParent/*=NULL*/):CDialog(CViewerDlg::IDD,pParent){m_hIcon=AfxGetApp()->LoadIcon(IDR_MAINFRAME);//实例化对象ren=vtkRenderer::New();renWin=vtkWin32OpenGLRenderWindow::New();iren=vtkWin32RenderWindowInteractor::New();sphere=vtkSphereSource::New();sphereMapper=vtkPolyDataMapper::New();

10、sphereActor=vtkActor::New();}BOnPaint()中添加管道线voidCViewerDlg::OnPaint(){..........................................................else{CDialog::OnPaint();if(!iren->GetInitialized()){renWin->AddRenderer(ren);renWin->SetParentId(this->m_hW

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。