为 VTK 非结构化网格声明 vtkSmartPointer<vtkDataArray> 类型变量的问题
Issue with declaring a variable of type vtkSmartPointer<vtkDataArray> for a VTK unstructured grid
我正在尝试使用 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
我想我有需要的 headers:
#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 是一个摘要 class。您不能创建抽象对象 class。所以尝试使用 vtkFloatArray
或 vtkDoubleArray
而不是 vtkDataArray
.
我正在尝试使用 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
我想我有需要的 headers:
#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 是一个摘要 class。您不能创建抽象对象 class。所以尝试使用 vtkFloatArray
或 vtkDoubleArray
而不是 vtkDataArray
.