VTK是一个基于面向对象的开源三维绘图软件包,安装过程并不复杂,简单的cmake就能够编译安装,具体过程仍是要记录一下,以便翻看。linux
一 安装shell
1.下载VTK6,能够上官网自行下载 http://www.vtk.org/download/
缓存
2.解压到当前目录
app
3.进入目录建立build文件夹,存放编译文件。ide
4.进入build文件夹进行配置,进行配置ccmake .. (注意ccmake与..之间有空格,".."表明上一级目录)测试
5.运行步骤4的代码会跳出一下配置:ui
若是没有编译过的会提示没有缓存,能够按c进行配置,以后就会出现这个界面,用上下建选择条目,BUILD_SHARE_LIBS 选择ON ,VTK_Group_Qt选择 On就能够了,其它的能够不作更改,再次按c进行配置确认,按g保存配置。
this
6.执行makespa
7.最后安装 sudo make installcode
这样就安装完成了。
二 测试
新建Plane.cxx,写入代码:
#include <vtkVersion.h> #include <vtkPlaneSource.h> #include <vtkPolyData.h> #include <vtkSmartPointer.h> #include <vtkPolyDataMapper.h> #include <vtkActor.h> #include <vtkRenderWindow.h> #include <vtkRenderer.h> #include <vtkRenderWindowInteractor.h> int main(int, char *[]) { // Create a plane vtkSmartPointer<vtkPlaneSource> planeSource = vtkSmartPointer<vtkPlaneSource>::New(); planeSource->SetCenter(1.0, 0.0, 0.0); planeSource->SetNormal(1.0, 0.0, 1.0); planeSource->Update(); vtkPolyData* plane = planeSource->GetOutput(); // Create a mapper and actor vtkSmartPointer<vtkPolyDataMapper> mapper = vtkSmartPointer<vtkPolyDataMapper>::New(); #if VTK_MAJOR_VERSION <= 5 mapper->SetInput(plane); #else mapper->SetInputData(plane); #endif vtkSmartPointer<vtkActor> actor = vtkSmartPointer<vtkActor>::New(); actor->SetMapper(mapper); // Create a renderer, render window and interactor vtkSmartPointer<vtkRenderer> renderer = vtkSmartPointer<vtkRenderer>::New(); vtkSmartPointer<vtkRenderWindow> renderWindow = vtkSmartPointer<vtkRenderWindow>::New(); renderWindow->AddRenderer(renderer); vtkSmartPointer<vtkRenderWindowInteractor> renderWindowInteractor = vtkSmartPointer<vtkRenderWindowInteractor>::New(); renderWindowInteractor->SetRenderWindow(renderWindow); // Add the actors to the scene renderer->AddActor(actor); renderer->SetBackground(.1,.2,.3); // Background color dark blue // Render and interact renderWindow->Render(); renderWindowInteractor->Start(); return EXIT_SUCCESS; }
新建CMakeLists.txt,写入代码:
cmake_minimum_required(VERSION 2.8) PROJECT(Plane) find_package(VTK REQUIRED) include(${VTK_USE_FILE}) add_executable(Plane MACOSX_BUNDLE Plane) if(VTK_LIBRARIES) target_link_libraries(Plane ${VTK_LIBRARIES}) else() target_link_libraries(Plane vtkHybrid vtkWidgets) endif()
以后运行:
cmake .. make ./Plane
运行效果以下:
若是想要将VTK6的界面在Qt中显示,能够将目录build/lib/libQVTKWidgetPlugin.so文件放置到/usr/lib/x86_64-linux-gnu/qt4/plugins/designer中,记得使用最高权限。
如过是VTK5的版本,libQVTKWidgetPlugin.so文件在build/bin/文件夹下。
问题:
CMake Warning at CMakeLists.txt:5 (FIND_PACKAGE): By not providing "FindQt5Widgets.cmake" in CMAKE_MODULE_PATH this project has asked CMake to find a package configuration file provided by "Qt5Widgets", but CMake did not find one. Could not find a package configuration file provided by "Qt5Widgets" with any of the following names: Qt5WidgetsConfig.cmake qt5widgets-config.cmake Add the installation prefix of "Qt5Widgets" to CMAKE_PREFIX_PATH or set "Qt5Widgets_DIR" to a directory containing one of the above files. If "Qt5Widgets" provides a separate development package or SDK, be sure it has been installed.
新建CMAKE_PREFIX_PATH到qtbase就能够了