从 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

相关文章

Python使用OpenCV实现获取视频时长的小工具

《Python使用OpenCV实现获取视频时长的小工具》在处理视频数据时,获取视频的时长是一项常见且基础的需求,本文将详细介绍如何使用Python和OpenCV获取视频时长,并对每一行代码进行深入解析... 目录一、代码实现二、代码解析1. 导入 OpenCV 库2. 定义获取视频时长的函数3. 打开视频文

MySQL查询JSON数组字段包含特定字符串的方法

《MySQL查询JSON数组字段包含特定字符串的方法》在MySQL数据库中,当某个字段存储的是JSON数组,需要查询数组中包含特定字符串的记录时传统的LIKE语句无法直接使用,下面小编就为大家介绍两种... 目录问题背景解决方案对比1. 精确匹配方案(推荐)2. 模糊匹配方案参数化查询示例使用场景建议性能优

关于集合与数组转换实现方法

《关于集合与数组转换实现方法》:本文主要介绍关于集合与数组转换实现方法,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录1、Arrays.asList()1.1、方法作用1.2、内部实现1.3、修改元素的影响1.4、注意事项2、list.toArray()2.1、方

MySQL 获取字符串长度及注意事项

《MySQL获取字符串长度及注意事项》本文通过实例代码给大家介绍MySQL获取字符串长度及注意事项,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友参考下吧... 目录mysql 获取字符串长度详解 核心长度函数对比⚠️ 六大关键注意事项1. 字符编码决定字节长度2

python3如何找到字典的下标index、获取list中指定元素的位置索引

《python3如何找到字典的下标index、获取list中指定元素的位置索引》:本文主要介绍python3如何找到字典的下标index、获取list中指定元素的位置索引问题,具有很好的参考价值,... 目录enumerate()找到字典的下标 index获取list中指定元素的位置索引总结enumerat

SpringMVC高效获取JavaBean对象指南

《SpringMVC高效获取JavaBean对象指南》SpringMVC通过数据绑定自动将请求参数映射到JavaBean,支持表单、URL及JSON数据,需用@ModelAttribute、@Requ... 目录Spring MVC 获取 JavaBean 对象指南核心机制:数据绑定实现步骤1. 定义 Ja

C++中RAII资源获取即初始化

《C++中RAII资源获取即初始化》RAII通过构造/析构自动管理资源生命周期,确保安全释放,本文就来介绍一下C++中的RAII技术及其应用,具有一定的参考价值,感兴趣的可以了解一下... 目录一、核心原理与机制二、标准库中的RAII实现三、自定义RAII类设计原则四、常见应用场景1. 内存管理2. 文件操

SpringBoot服务获取Pod当前IP的两种方案

《SpringBoot服务获取Pod当前IP的两种方案》在Kubernetes集群中,SpringBoot服务获取Pod当前IP的方案主要有两种,通过环境变量注入或通过Java代码动态获取网络接口IP... 目录方案一:通过 Kubernetes Downward API 注入环境变量原理步骤方案二:通过

MySQL JSON 查询中的对象与数组技巧及查询示例

《MySQLJSON查询中的对象与数组技巧及查询示例》MySQL中JSON对象和JSON数组查询的详细介绍及带有WHERE条件的查询示例,本文给大家介绍的非常详细,mysqljson查询示例相关知... 目录jsON 对象查询1. JSON_CONTAINS2. JSON_EXTRACT3. JSON_TA

使用Python实现base64字符串与图片互转的详细步骤

《使用Python实现base64字符串与图片互转的详细步骤》要将一个Base64编码的字符串转换为图片文件并保存下来,可以使用Python的base64模块来实现,这一过程包括解码Base64字符串... 目录1. 图片编码为 Base64 字符串2. Base64 字符串解码为图片文件3. 示例使用注意