从 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

相关文章

Java实现Excel与HTML互转

《Java实现Excel与HTML互转》Excel是一种电子表格格式,而HTM则是一种用于创建网页的标记语言,虽然两者在用途上存在差异,但有时我们需要将数据从一种格式转换为另一种格式,下面我们就来看看... Excel是一种电子表格格式,广泛用于数据处理和分析,而HTM则是一种用于创建网页的标记语言。虽然两

在C#中获取端口号与系统信息的高效实践

《在C#中获取端口号与系统信息的高效实践》在现代软件开发中,尤其是系统管理、运维、监控和性能优化等场景中,了解计算机硬件和网络的状态至关重要,C#作为一种广泛应用的编程语言,提供了丰富的API来帮助开... 目录引言1. 获取端口号信息1.1 获取活动的 TCP 和 UDP 连接说明:应用场景:2. 获取硬

Python MySQL如何通过Binlog获取变更记录恢复数据

《PythonMySQL如何通过Binlog获取变更记录恢复数据》本文介绍了如何使用Python和pymysqlreplication库通过MySQL的二进制日志(Binlog)获取数据库的变更记录... 目录python mysql通过Binlog获取变更记录恢复数据1.安装pymysqlreplicat

Java 字符数组转字符串的常用方法

《Java字符数组转字符串的常用方法》文章总结了在Java中将字符数组转换为字符串的几种常用方法,包括使用String构造函数、String.valueOf()方法、StringBuilder以及A... 目录1. 使用String构造函数1.1 基本转换方法1.2 注意事项2. 使用String.valu

C#实现获取电脑中的端口号和硬件信息

《C#实现获取电脑中的端口号和硬件信息》这篇文章主要为大家详细介绍了C#实现获取电脑中的端口号和硬件信息的相关方法,文中的示例代码讲解详细,有需要的小伙伴可以参考一下... 我们经常在使用一个串口软件的时候,发现软件中的端口号并不是普通的COM1,而是带有硬件信息的。那么如果我们使用C#编写软件时候,如

C#实现WinForm控件焦点的获取与失去

《C#实现WinForm控件焦点的获取与失去》在一个数据输入表单中,当用户从一个文本框切换到另一个文本框时,需要准确地判断焦点的转移,以便进行数据验证、提示信息显示等操作,本文将探讨Winform控件... 目录前言获取焦点改变TabIndex属性值调用Focus方法失去焦点总结最后前言在一个数据输入表单

通过C#获取PDF中指定文本或所有文本的字体信息

《通过C#获取PDF中指定文本或所有文本的字体信息》在设计和出版行业中,字体的选择和使用对最终作品的质量有着重要影响,然而,有时我们可能会遇到包含未知字体的PDF文件,这使得我们无法准确地复制或修改文... 目录引言C# 获取PDF中指定文本的字体信息C# 获取PDF文档中用到的所有字体信息引言在设计和出

python中os.stat().st_size、os.path.getsize()获取文件大小

《python中os.stat().st_size、os.path.getsize()获取文件大小》本文介绍了使用os.stat()和os.path.getsize()函数获取文件大小,文中通过示例代... 目录一、os.stat().st_size二、os.path.getsize()三、函数封装一、os

JAVA中整型数组、字符串数组、整型数和字符串 的创建与转换的方法

《JAVA中整型数组、字符串数组、整型数和字符串的创建与转换的方法》本文介绍了Java中字符串、字符数组和整型数组的创建方法,以及它们之间的转换方法,还详细讲解了字符串中的一些常用方法,如index... 目录一、字符串、字符数组和整型数组的创建1、字符串的创建方法1.1 通过引用字符数组来创建字符串1.2

python获取当前文件和目录路径的方法详解

《python获取当前文件和目录路径的方法详解》:本文主要介绍Python中获取当前文件路径和目录的方法,包括使用__file__关键字、os.path.abspath、os.path.realp... 目录1、获取当前文件路径2、获取当前文件所在目录3、os.path.abspath和os.path.re