OCC只是几何内核,显示的话还需整合其他组件。今天介绍与VTK整合。本人是OCC、VTK初学者,代码部分也没整明白,主要介绍Visual Studio配置。
1. 本文采用的工具版本:
- OCC 7.6.0
- VisualStudio 2022
- Vtk-6.1.0
2. 全部代码。
今天主要介绍如何让这段代码跑起来。
#include <BRepPrimAPI_MakeBox.hxx>
#include <vtkRenderWindow.h>
#include <vtkNew.h>
#include <vtkInteractorStyleTrackballCamera.h>
#include <vtkRenderWindowInteractor.h>
#include <vtkAutoInit.h>
#include <vtkRenderer.h>
#include <vtkPolyDataMapper.h>
#include <IVtkTools_ShapeDataSource.hxx>
VTK_MODULE_INIT(vtkRenderingOpenGL)
VTK_MODULE_INIT(vtkInteractionStyle)
int main()
{
BRepPrimAPI_MakeBox mkBox(1., 2., 3.);
const TopoDS_Shape& shape = mkBox.Shape();
vtkNew<vtkRenderWindow> renwin;
vtkNew<vtkRenderer> ren;
renwin->AddRenderer(ren.Get());
vtkNew<vtkInteractorStyleTrackballCamera> istyle;
vtkNew<vtkRenderWindowInteractor> iren;
iren->SetRenderWindow(renwin.Get());
iren->SetInteractorStyle(istyle.Get());
vtkNew<IVtkTools_ShapeDataSource> occsource;
occsource->SetShape(new IVtkOCC_Shape( shape));
vtkNew<vtkPolyDataMapper> mapper;
mapper->SetInputConnection(occsource->GetOutputPort());
vtkNew<vtkActor> actor;
actor->SetMapper(mapper.Get());
ren->AddActor(actor.Get());
renwin->Render();
iren->Start();
return 0;
}
3. Visual Studio配置
- 在Visual Studio中配置OCC的头文件、VTK的头文件;
- 配置附加库目录,包括OCC、VTK的库目录;
- 配置附加依赖项,如果不知道怎么根据链接错误找lib库,可使用Far Manager查找;
TKTopAlgo.lib TKPrim.lib vtkRenderingCore-6.1.lib vtkInteractionStyle-6.1.lib vtkCommonCore-6.1.lib vtkRenderingOpenGL-6.1.lib vtkCommonExecutionModel-6.1.lib TKV3d.lib TKIVtk.lib
4. 配置调试PATH环境变量。PATH变量中需增加OCC、VTK、TBB、Openvr、freeimage、ffmpeg库的dll目录。官网编译好的包包含这些库的,可直接下载。配置好运行应该可以看到一个立方体。
参考资料:
https://www.youtube.com/watch?v=kZpr4ocnavAhttps://www.youtube.com/watch?v=kZpr4ocnavA