gpt4 book ai didi

c++ - 为 VTK 非结构化网格声明类型为 vtkSmartPointer 的变量的问题

转载 作者:行者123 更新时间:2023-11-28 01:29:34 25 4
gpt4 key购买 nike

我试图在 VTK 8.1 中使用 vtkDataArray 将标量字段存储在 vtkUnstructuredGrid 中,并最终将其写入文件。我正在通过 Visual Studio 2017 社区版编译我的代码。但是,编译器对以下行不满意:

// Add a scalar field to the unstructured grid
vtkSmartPointer<vtkDataArray> data_array = vtkSmartPointer<vtkDataArray>::New();

我收到以下错误:

Error C2440 '<function-style-cast>': cannot convert from 'initializer list' to 'vtkSmartPointer<vtkDataArray>'  mycode c:\vtk\src\common\core\vtksmartpointer.h 155 

我想我有所需的 header :

#include "vtkCellArray.h"
#include "vtkCellData.h"
#include "vtkDataSet.h"
#include "vtkPoints.h"
#include <vtkPointData.h>
#include <vtkCellData.h>
#include <vtkDoubleArray.h>
#include <vtkDataArray.h>
#include <vtkUnstructuredGrid.h>
#include <vtkXMLUnstructuredGridWriter.h>

我的在线研究发现 data_array 的声明行应该有效,但我不知道为什么编译器不喜欢它。

有人可以帮帮我吗?是否有任何其他方法可以在 vtkUnstructuredGrid 中存储标量字段并跳过使用 vtkDataArray

最佳答案

vtkDataArray是一个抽象类。您不能创建抽象类的对象。所以尝试使用 vtkFloatArrayvtkDoubleArray 而不是 vtkDataArray

关于c++ - 为 VTK 非结构化网格声明类型为 vtkSmartPointer<vtkDataArray> 的变量的问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52218230/

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