gpt4 book ai didi

c++ - 什么版本的 VTK 支持 vtkNew 自动转换?

转载 作者:行者123 更新时间:2023-12-04 18:32:57 30 4
gpt4 key购买 nike

一个问题
旧版本的 VTK 需要 Get()GetPointer()访问 vtkNew<vtkClass>元素。较新的版本没有,如 Vtk example web sight 上使用的那样。 .
这是在哪个版本中更改的?
对人们了解这种变化有帮助吗?修辞的
它确实使示例更易于阅读。希望这个问题对某人有所帮助。
背景
这有助于使用 VTK 示例网站。
我正在编译a VTK example在带有 vtk7 软件包的 Ubuntu 20.04 上,并有以下编译错误,

ProteinRibbons.cxx:37:20: error: cannot convert ‘vtkNew’ to ‘vtkMapper*’


我遇到了 this discourse post搜索此错误时。
起初,我认为这是由于 vtkChemistry 模块的差异。不过后来发现需要换线,

- actor->SetMapper(polyDataMapper);
+actor->SetMapper(polyDataMapper.Get());


来自 Discourse 帖子的一些激励信息(在人们认为世界上每个人都在使用鸭式语言之后感到沮丧)。
下面是一个包列表,
$ sudo dpkg -l | grep -i vtk7
ii libvtk7-dev 7.1.1+dfsg2-2ubuntu1 amd64 VTK header files
ii libvtk7-java 7.1.1+dfsg2-2ubuntu1 amd64 Visualization Toolkit - A high level 3D visualization library - java
ii libvtk7-jni 7.1.1+dfsg2-2ubuntu1 amd64 Visualization Toolkit - A high level 3D visualization library - java
ii libvtk7-qt-dev 7.1.1+dfsg2-2ubuntu1 amd64 VTK header files, containing Qt files
ii libvtk7.1p 7.1.1+dfsg2-2ubuntu1 amd64 VTK libraries
ii libvtk7.1p-qt 7.1.1+dfsg2-2ubuntu1 amd64 VTK libraries, Qt files
ii python3-vtk7 7.1.1+dfsg2-2ubuntu1 amd64 Python bindings for VTK
ii tcl-vtk7 7.1.1+dfsg2-2ubuntu1 amd64 Tcl bindings for VTK
ii vtk7 7.1.1+dfsg2-2ubuntu1 amd64 Binaries for VTK7
ii vtk7-doc 7.1.1+dfsg2-2ubuntu1 all VTK class reference documentation
ii vtk7-examples 7.1.1+dfsg2-2ubuntu1 all VTK examples
然后我调查了 Ubuntu 20.04(版本 7)中的 vtkNew.h 和我拥有的 git 拷贝(版本 9)。
vtkNew.h v7.1.1
 * Automatic casting is intentionally unavailable, calling GetPointer() will
* return a raw pointer. Users of this method should ensure that they do not
* return this pointer if the vtkNew will go out of scope without
* incrementing its reference count using vtkSmartPointer or similar.
vtkNew.h v9.0.0-3086-gd3fe17811e
 * Automatic casting to raw pointer is available for convenience, but
* users of this method should ensure that they do not
* return this pointer if the vtkNew will go out of scope without
* incrementing its reference count.

最佳答案

使用git blame给,

00bf5f3d3ac   * Automatic casting to raw pointer is available for convenience, but
00bf5f3d3ac * users of this method should ensure that they do not
6a7e5148ed5 * return this pointer if the vtkNew will go out of scope without
00bf5f3d3ac * incrementing its reference count.
看起来主要是提交 00bf5f3d3ac。发消息,
$ git log --oneline 00bf5f3d3ac~1..00bf5f3d3ac
00bf5f3d3a Add implicit raw pointer conversion to vtkNew
$ git describe 00bf5f3d3a
v8.0.0.rc2-219-g00bf5f3d3a
所以这是第 8 版及更高版本。该信息对想要使用 VTK 示例的其他系统上的开发人员很有帮助。 Ubuntu 22.04 将有一个 VTK9 选项,因此如果您发现此 Q/A,请在几个月后选择它。

Covid-19 beta spike protein
6vsb spike protein如工作示例所示。

关于c++ - 什么版本的 VTK 支持 vtkNew 自动转换?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/71279091/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com