11.12 区域和属性数据的接口

前面的章节描述了如何创建,访问,和产生数据集的结构。在这部分,我们描述了滤波器执行时用于管理数据集属性(标量,向量,张量,法线,和纹理坐标)和区域数据处理的一个类及其方法。vtkDataSetAttributesvtkFieldData正是为了实现这个目的。它们提供了一系列方便的方法,从滤波器的输入到输出,进行复制、内插和数据传递。

vtkFieldData在VTK4.0中是vtkDataSetAttributes的父类(当然也是继承自vtkPointDatavtkCellData的)。所有的区域和属性(标量,向量,张量,法线,和纹理坐标)被存储在区域数据中而且可以被容易地交换(请参见使用区域数据工作了解更多操作区域的详细信息)。将一个区域(vtkDataArray)与例如vtkPointData联系起来,并把它标记为活跃的向量数组是可能的。

那么,如何从输入(来自数据)复制区域数据到输出呢?这里使用了相关记数,而且复制标记(CopyFieldOn/Off)被用来控制哪个区域被复制。您可能会好奇,当前区域数据中的数组数目是如何得到的?给定一个索引或名字,都可以返回对应的数组。甚至可以添加或移除使用给定姓名的数组,执行一个深度复制,或者执行一个浅复制,意味着下层的数据对象的相关记数恢复。有关深度复制与浅复制的更多技术细节,请访问动态复制数据集进一步了解。

这些方法被用来控制从输入到输出的单独区域复制和内插。如果您对属性数据存取示例感兴趣,请参考属性数据存取示例,这将提供更详细的操作说明和示例代码。