从 polydata 中获取数组 及 vtkDoubleArray、vtkIntArray互转

2024-02-07 01:20

本文主要是介绍从 polydata 中获取数组 及 vtkDoubleArray、vtkIntArray互转,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!


开发环境:

  1. Windows 11 家庭中文版
  2. Microsoft Visual Studio Community 2019
  3. VTK-9.3.0.rc0
  4. vtk-example

demo解决问题:示范冲polydata中获取命名数组,并转换数组数据类型

关键点:

  1. 从 polydata 中获取数组,我们必须使用 SafeDownCast 转换为我们想要的类型。
  // Get the distances from the polydata.vtkDoubleArray* array = dynamic_cast<vtkDoubleArray*>(polydata->GetPointData()->GetArray("Distances"));
  1. vtkDoubleArray->vtkIntArray
 // Cast the double distances to ints.vtkDoubleArray* doubleDistances = dynamic_cast<vtkDoubleArray*>(polydata->GetPointData()->GetArray("Distances"));vtkIntArray* intDistances = dynamic_cast<vtkIntArray*>

prj name: Casting

#include <vtkDoubleArray.h>
#include <vtkIntArray.h>
#include <vtkNew.h>
#include <vtkPointData.h>
#include <vtkPoints.h>
#include <vtkPolyData.h>int main(int, char*[])
{// Create points.vtkNew<vtkPoints> points;unsigned int numberOfPoints = 3;points->InsertNextPoint(0.0, 0.0, 0.0);points->InsertNextPoint(1.0, 0.0, 0.0);points->InsertNextPoint(0.0, 1.0, 0.0);// Add the points to a polydatavtkNew<vtkPolyData> polydata;polydata->SetPoints(points);// Add distances to each pointvtkNew<vtkDoubleArray> distances;distances->SetNumberOfComponents(1);distances->SetName("Distances");distances->InsertNextValue(1.1);distances->InsertNextValue(2.2);distances->InsertNextValue(3.3);polydata->GetPointData()->AddArray(distances);// Get the distances from the polydata.vtkDoubleArray* array = dynamic_cast<vtkDoubleArray*>(polydata->GetPointData()->GetArray("Distances"));if (array){for (unsigned int i = 0; i < numberOfPoints; i++){double dist;dist = array->GetValue(i);std::cout << "Distance: " << dist << std::endl;}}// Cast the double distances to ints.vtkDoubleArray* doubleDistances = dynamic_cast<vtkDoubleArray*>(polydata->GetPointData()->GetArray("Distances"));vtkIntArray* intDistances = dynamic_cast<vtkIntArray*>(doubleDistances);if (intDistances){for (unsigned int i = 0; i < numberOfPoints; i++){int dist;dist = intDistances->GetValue(i);std::cout << "Distance: " << dist << std::endl;}}else{std::cout << "invalid cast." << std::endl;}return EXIT_SUCCESS;
}

这篇关于从 polydata 中获取数组 及 vtkDoubleArray、vtkIntArray互转的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/686123

相关文章

golang获取prometheus数据(prometheus/client_golang包)

《golang获取prometheus数据(prometheus/client_golang包)》本文主要介绍了使用Go语言的prometheus/client_golang包来获取Prometheu... 目录1. 创建链接1.1 语法1.2 完整示例2. 简单查询2.1 语法2.2 完整示例3. 范围值

javaScript在表单提交时获取表单数据的示例代码

《javaScript在表单提交时获取表单数据的示例代码》本文介绍了五种在JavaScript中获取表单数据的方法:使用FormData对象、手动提取表单数据、使用querySelector获取单个字... 方法 1:使用 FormData 对象FormData 是一个方便的内置对象,用于获取表单中的键值

C++一个数组赋值给另一个数组方式

《C++一个数组赋值给另一个数组方式》文章介绍了三种在C++中将一个数组赋值给另一个数组的方法:使用循环逐个元素赋值、使用标准库函数std::copy或std::memcpy以及使用标准库容器,每种方... 目录C++一个数组赋值给另一个数组循环遍历赋值使用标准库中的函数 std::copy 或 std::

C++初始化数组的几种常见方法(简单易懂)

《C++初始化数组的几种常见方法(简单易懂)》本文介绍了C++中数组的初始化方法,包括一维数组和二维数组的初始化,以及用new动态初始化数组,在C++11及以上版本中,还提供了使用std::array... 目录1、初始化一维数组1.1、使用列表初始化(推荐方式)1.2、初始化部分列表1.3、使用std::

C++ Primer 多维数组的使用

《C++Primer多维数组的使用》本文主要介绍了多维数组在C++语言中的定义、初始化、下标引用以及使用范围for语句处理多维数组的方法,具有一定的参考价值,感兴趣的可以了解一下... 目录多维数组多维数组的初始化多维数组的下标引用使用范围for语句处理多维数组指针和多维数组多维数组严格来说,C++语言没

如何利用Java获取当天的开始和结束时间

《如何利用Java获取当天的开始和结束时间》:本文主要介绍如何使用Java8的LocalDate和LocalDateTime类获取指定日期的开始和结束时间,展示了如何通过这些类进行日期和时间的处... 目录前言1. Java日期时间API概述2. 获取当天的开始和结束时间代码解析运行结果3. 总结前言在J

java获取图片的大小、宽度、高度方式

《java获取图片的大小、宽度、高度方式》文章介绍了如何将File对象转换为MultipartFile对象的过程,并分享了个人经验,希望能为读者提供参考... 目China编程录Java获取图片的大小、宽度、高度File对象(该对象里面是图片)MultipartFile对象(该对象里面是图片)总结java获取图片

Java通过反射获取方法参数名的方式小结

《Java通过反射获取方法参数名的方式小结》这篇文章主要为大家详细介绍了Java如何通过反射获取方法参数名的方式,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下... 目录1、前言2、解决方式方式2.1: 添加编译参数配置 -parameters方式2.2: 使用Spring的内部工具类 -

Java如何获取视频文件的视频时长

《Java如何获取视频文件的视频时长》文章介绍了如何使用Java获取视频文件的视频时长,包括导入maven依赖和代码案例,同时,也讨论了在运行过程中遇到的SLF4J加载问题,并给出了解决方案... 目录Java获取视频文件的视频时长1、导入maven依赖2、代码案例3、SLF4J: Failed to lo

使用Java实现获取客户端IP地址

《使用Java实现获取客户端IP地址》这篇文章主要为大家详细介绍了如何使用Java实现获取客户端IP地址,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下... 首先是获取 IP,直接上代码import org.springframework.web.context.request.Requ