1, no override found for ‘vtkPolyDataMapper’ 解决办法
错误原因
VTK在图像可视化过程中基本流程:Data -> Mapper -> Actor -> Renderer -> Renderwindow -> VTKRenderWindow;
而报错原因就是 链接器无法找到 vtkPolyDataMapper 的方法定义;而我们需要做的就是,提前定义图像成像时 vtk 使用到的渲染 后端:vtkRenderingOpenGL 或者是 vtkRenderingOpenGL2
解决方法
在脚本头文件的下面加上代码:
#include "vtkAutoInit.h" VTK_MODULE_INIT(vtkRenderingOpenGL2); // VTK was built with vtkRenderingOpenGL2 VTK_MODULE_INIT(vtkInteractionStyle);
上面的代码也可以换成:
#define vtkRenderingCore_AUTOINIT 2(vtkRenderingOpenGL2, vtkInteractionStyle)
2,Failed getting the TextRenderer instance/Could not locate vtkTextRenderer object."解决办法
解决方法
代码中加入
VTK_MODULE_INIT(vtkRenderingFreeType);
3,vtkStandardNewMacro()定义自定义交互类时,出现语法错误;
使用 vtkStandardNewMacro() 定义新的交互类时,出现下面的语法类型错误:
error C4430: missing type specifier - int assumed. Note: C++ does not support default-int
解决方法:
头文件加入一行代码
#include<vtkObjectFactory.h>