VTK字段数据及数据数组更改优化.pdfVIP

  • 0
  • 0
  • 约2.07万字
  • 约 12页
  • 2026-01-28 发布于北京
  • 举报

字段数据更改

Kitware公司

1对vtkFieldData和vtkDataArray的更改

vtkFieldData的添加和命名接口过于复杂。有许多不同的方法可以添加数组。其中一些方法需要名称,而有些则

不需要。此外,由于可以没有关联名称的数组,因此很难区分这些数组。唯一可靠且明确数组的方法是

通过数组索引(这些索引可以通过可用的Add/Set命令进行更改)。为了减少这种复杂性,我对vtkFieldData

和vtkDataArray进行了几项更改。

1.1vtkDataArray

为了使vtkDataArray成为一个更独立的类,我将一些功能从其他几个类中移到了vtkDataArray。其中最重要的两个是名称和查找表。每个

vtkDataArray实例都将有自己的名称和查找表。在创建vtkDataArray时,会分配一个(唯一的)名称。这个名称可以使用以下方法更改:

voidSetName(constchar*name);

请注意,此方法不接受空指针。虽然可以分配一个空名称(),但我不推荐这样做。

原本位于vtkScalars中的查找表现在已移至vtkDataArray。仍然可以设置vtkScalars的查找表,这将反过来设

置层vtkDataArray的查找表。但是,如果通过voidvtkAttributeData::SetData(vtkDataArray*)更改数据数组,

查表将会丢失。此外,尝试为具有空数据数组的标量对象设置查找表将不起作用(这是一个空操作)。

需要注意的另一点(这与我的更改无关)是,在虚拟函数`intAllocate(constintsz,constintext=1000)`中,参数`ext`已

不再使用。我在`vtkFloatArray.cxx`时发现了这一点。现在,当用户尝试或最后一个ID时,所有数据数组都会将其

增加100%。

1.2vtkFieldData

添和除数

加移组

由于每个数组现在都有一个名称,通过名称字段数据中的数据数组变得更加简单(也更安全)。因此,为了简化

`vtkFieldData`的口并使数组更加安全,我移除了以下方法:

vStArray(inti,vtkDataArray*);intAddArray(vtkDataArray*array,

oide

constchar*name);intAddReceArray(vtkDataArray*array,constchar

*name);intAddNoReceArray(vtkDataArray*array,constchar*name);

取而代之的是,您可以使用以下方法:

vidvDataArray::SetName(constchar*name);

otk

随后是

intAddArray(vtkDataArray*array);

如果字段数据中已经存在同名的数组,它将被替换。添加多个数组的推荐方法如下所示:

1

FieldDataChanges

KitwareInc.

October10,2001

1ChangestovtkFieldDataandvtkDataArray

vtkFieldData’sinterfaceforaddingandnamingisunnecessarilycomplicated.Therearemanydifferentmethodsforadding

arrays.Someofth

您可能关注的文档

文档评论(0)

1亿VIP精品文档

相关文档