我目前正在尝试在vtk for android上为我的数据集添加剪裁平面。 到目前为止代码没问题,但我有问题构建.apk因为我的程序无法编译。 为了能够使用剪切平面,我有以下内容:
#include <vtkTransformPolyDataFilter.h>
#include <vtkClipPolyData.h>
#include <vtkSampleFunction.h>
#include <vtkPlane.h>
#include <vtkImplicitPlaneWidget2.h>
#include <vtkImplicitPlaneRepresentation.h>
然而,当我尝试编译时(感谢Cmake生成的Makefile)我得到:
error: vtkImplicitPlaneWidget2.h: No such file or directory
#include <vtkImplicitPlaneWidget2.h>
所以我认为我应该尝试将vtkInteractionWidgets组件添加到我的CMakeLists.txt
中的find_package()中以获取此信息:
find_package(VTK COMPONENTS
vtkInteractionStyle
vtkRenderingOpenGL2
vtkRenderingVolumeOpenGL2
vtkRenderingFreeType
)
然而,当我这样做时,我得到了:
Requested modules not available:
vtkInteractionWidgets
所以我在vtkbin/lib/cmake/vtk-7.1/Modules
检查了我的模块列表,我可以清楚地看到:vtkInteractionWidgets.cmake
任何帮助将不胜感激,提前谢谢:)。
编辑:
我确实检查过具有set(VTK_MODULES_DIR "/Users/.../VTK/vtkbin/lib/cmake/vtk-7.1/Modules")
的VTKConfig.cmake。上述目录确实包含vtkInteractionWidgets.cmake
。
但是我注意到我的/Users/.../VTK/vtkbin/CMakeExternals/Install/vtk-android/lib
不包含等效的lib。我包含关键字交互的唯一库是:libvtkInteractionStyle-7.1.a
答案 0 :(得分:1)
所以它必须在vtkAndroid.cmake
的{{1}}文件中手动完成。应该在一些行内部手动添加每个所需的模块:
VTK_SOURCE/CMake/vtkAndroid.cmake
在我的情况下,我需要添加:# Now cross-compile VTK with the android toolchain
set(android_make_flags
-DANDROID_NDK:PATH=${ANDROID_NDK}
#...
-DModule_vtkFiltersCore:BOOL=ON
#...