当前位置:   article > 正文

【VTK基础】5-VTK数据接口对象_vtkdataarray

vtkdataarray

1 流水线

在 VTK 中数据是我们所处理的对象,而VTK 程序对数据对象的处理机制是基于流水线(pipelines)的,通过流水线的过滤器(filter)来处理数据
在这里插入图片描述

2 数据数组(vtkDataArray)

vtkDataArray类是所有数据数组对象的抽象超类,该类自定义了很多应用程序接口,可以说vtkDataArray 是VTK 中数据对象建立的基础,数据数组用来存储连续的同一类型的数据,如(char、int、float 等),在定义数据数组的过程中必需动态的为其分配内存空间

数据数组中的元素是由组元(tuple)组成的,而每一个组元也是一种结构体,由N 个数据类型相同的分量组成,数据数组可以用来存储的数据包括:几何数据、属性数据(矢量,向量,张量,法线向量)等。数据数组的构成如下图所示:
在这里插入图片描述

3 数据存储

数据数组可以存储多个组元,每个组元由三个分量组成,对于vtkDataArray 的派生类以及关系由下图表示:
在这里插入图片描述

4 结构和单元

VTK 中的数据集有两个非常重要的特性:结构和单元
如果想要对VTK 中的数据模型有了很深入的认识,那么必需要知道:

  • 如何从数据集中得到你想要的那部分数据?
  • 如何创建一个数据集?
  • 如何为已有的数据集添加新的数据?
  • 对于不同的数据集类型有不同的接口方式

数据集根据结构分为如下几种类型,类层次图如图所示:

  • structured points(结构化点集)
  • vtkRectilinearGrid(线性网格)
  • structured grid(结构化网格)
  • unstructured grid(非结构化网格)
  • Polygonal Data(多边形数据)
    在这里插入图片描述
    在这里插入图片描述

5 vtkPolyData

vtkPolyData 数据类型是由一些基本图元(如:顶点、线、多边形、三角面片等)组成的复杂图形,这种数据是完全无结构的,它含有点集和单元,点集属性继承自vtkPointSet,单元属性则来自vtkCellArrays,对于无结构数据vtkPolyData 中的点与单元必需要定义其位置。
在这里插入图片描述

上图为无结构数据的结构关系图,这种关系不仅可以表示 vtkPolyData 数据格式,还可以表示vtkUnstructuredGrid 数据格式。

在 vtkPolyData 数据中用vtkCellArray 来确定数据单元的拓扑属性,vtkCellArray 类是一个关联所有单元的列表,每一个单元都是由多个点所组成,在这个列表的第一个数据是组成这个单元的的点的个数,如下图:
在这里插入图片描述

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/繁依Fanyi0/article/detail/996150
推荐阅读
相关标签
  

闽ICP备14008679号