VTK 学习----VTK对象-算法类-vtkDataSetAlgorithm

4.5.3 vtkDataSetAlgorithm

  1. vtkAttributeDataToFieldDataFilter

将属性数据映射到字段数据。

vtkAttributeDataToFieldDataFilter是一个将属性数据映射到字段数据的类。由于此过滤器是vtkDataSetAlgorithm的子类,因此输出数据集(其结构与输入数据集相同)将包含生成的字段数据。过滤器将点和单元属性数据转换为字段数据,并将其指定为点和单元字段数据,替换之前的任何点或字段数据。默认情况下,原始非字段点和单元属性数据将传递到过滤器的输出,但您可以关闭此行为。

注意:

引用计数基础数据阵列用于创建字段数据。因此,不使用额外的存储器。

与点和单元属性数据相关联的原始字段数据(如果有的话)与标量,向量等一起放入生成的字段中。

  1. vtkCastToConcrete

类型检查。

vtkCastToConcrete是一个过滤器,它解决了过滤器类中的类型检查限制。有些过滤器在输出时生成抽象类型,不能连接到需要具体输入类型的过滤器的输入。例如,vtkElevationFilter生成用于输出的vtkDataSet,并且不能连接到vtkDecimate,因为vtkDecimate需要vtkPolyData作为输入。

vtkCastToConcrete执行运行时检查,以确保输出类型是正确的类型。如果尝试不正确地转换输入类型,将会导致错误消息。否则,过滤器执行适当的转换并返回数据。

  1. vtkCellDataToPointData

vtkCellDataToPointData是一种过滤器,它将单元数据(即每个单元指定的数据)转换为点数据(即,在单元点指定的数据)。转换方法基于使用特定点对所有单元的数据值求平均。对于具有多个单元数据阵列的大型数据集,过滤器可选地支持选择性处理以加速处理。还可以选择将输入单元格数据传递到输出。非结构化网格和多数据可以有不同维度的单元格。为了处理这种情况下的不同用例,用户可以指定哪些单元有助于计算。其选项包括All(默认),Patch和DataSetMax。补丁仅使用附加到点的最高维度单元格。DataSetMax使用整个数据集中的最高单元维度。

  1. vtkDataObjectToDataSetFilter

将字段数据映射到具体数据集

vtkDataObjectToDataSetFilter是一个将数据对象(即字段)映射到具体数据集的类,即通过定义几何和拓扑为字段提供结构。

要使用此过滤器,请将输入字段数据中的组件与输出数据集的各个部分相关联。(组件是来自字段的值的数组。)例如,您可以通过为字段分配x,然后是y,然后是z的点来指定xyz点。您可能还必须指定组件范围(对于每个zyz)以确保x,y和z值的数量相同。此外,您可能希望规范化有助于均匀分布数据的组件。一设置过滤器将所有数据片段组合到指定的数据集中(几何、拓扑、点和单元数据属性)后,将使用各种输出方法(例如GetPolyData())检索最终产品。

此过滤器通常与vtkFieldDataToAttributeDataFilter一起使用。vtkFieldDataToAttributeDataFilter获取字段数据并将其转换为属性数据(例如,点和单元数据属性,例如标量和向量)。为此,请使用此过滤器构造具体数据集,并将输入数据对象字段数据传递给其输出。然后使用vtkFieldDataToAttributeDataFilter生成与数据集关联的属性数据。

注意:

确保提取的数据是一致的。也就是说,如果您有N个点,则提取N个 x,y和z分量。此外,必须提供定义数据集所需的所有信息。例如,vtkPolyData至少需要点数; vtkStructuredPoints需要设置尺寸; vtkStructuredGrid需要定义点和维度; vtkUnstructuredGrid需要设置点数; 和vtkRectilinearGrid要求您定义x,y和z坐标数组(通过指定点)以及维度。

如果您希望创建仅包含点的数据集(即非结构化点数据集),请创建由点组成的vtkPolyData。这样的数据集中没有单元格。

  1. vtkOBBDicer

将数据集划分为空间聚合的片段

vtkOBBDicer使用Oriented Bounding Box(OBB)将数据集的单元格分离为空间聚合的块。然后可以通过其他滤波器(例如,vtkThreshold)操作这些片段。一种应用是将非常大的多边形模型分解成碎片并对碎片进行观察和遮挡剔除。

  1. vtkElevationFilter

沿指定方向生成标量

vtkElevationFilter是一个用于从数据集生成标量值的过滤器。标量值位于用户指定的范围内,并通过计算每个数据集点到线上的投影来生成。该线可以任意定向。典型示例是基于平面上方的高度或高度生成标量。

注意:

在许多情况下,vtkSimpleElevationFilter可能更容易使用;例如,计算零z点以上的垂直高度。

这个类已经与vtkSMPTools进行了线程化。使用TBB或其他非顺序类型(在CMake变量VTK_SMP_IMPLEMENTATION_TYPE中设置)可以显著提高性能。

  1. vtkFieldDataToAttributeDataFilter

将字段数据映射到dataset属性数据

vtkFieldDataToAttributeDataFilter是一个将字段数据映射到dataset属性的类。此筛选器的输入是任何类型的数据集,输出是具有新属性数据的相同数据集(几何/拓扑)(如果在筛选器执行期间没有替换属性数据,则传递属性数据)。

要使用此筛选器,必须指定要使用输入数据集中的哪个字段数据。有三种可能:单元格字段数据、点字段数据或与数据对象超类关联的字段数据。然后指定要创建的属性数据:单元格属性数据或点属性数据。最后,必须定义如何从数组构造各种属性数据类型(例如标量、向量、法线等),以及从字段数据构造数组的组件。这是通过将输入字段中的组件与组成属性数据的组件关联来实现的。例如,通过为标量的R、G和B值分配字段中的组件,可以指定一个包含三个组件(RGB)的标量。您可能还必须指定组件范围(对于每个R-G-B),以确保R、G和B值的数量是相同的。此外,您可能希望标准化有助于统一分布数据的组件。

这个过滤器通常与vtkDataObjectToDataSetFilter一起使用。vtkDataObjectToDataSetFilter过滤器生成数据集拓扑和几何结构,并将其输入字段数据传递给其输出。然后,使用此筛选器生成属性数据来处理数据集。

注意:

确保您提取的数据是一致的。也就是说,如果有N个点,提取N个点属性(标量、向量等)。

  1. vtkImplicitTextureCoords

基于隐式函数生成一维、二维或三维纹理坐标

vtkImplicitTextureCoords是一个过滤器,可分别从一个、两个或三个隐式函数生成一维、二维或三维纹理坐标。与vtkBooleanTexture映射(或您自己创建的另一个纹理映射)相结合,可以使用纹理坐标高亮(通过颜色或强度)或剪切(通过透明度)数据集几何,而无需任何复杂的几何处理。(注意:纹理坐标称为r-s-t坐标。)

纹理坐标自动归一化为位于(0,1)之间。因此,无论隐式函数的值是多少,得到的纹理坐标都位于(0,1)之间,0隐式函数值映射到0.5纹理坐标值。根据最大的负/正隐式函数值,可能不会占用整个(0,1)范围(即,正/负范围使用相同的比例因子映射)。

布尔变量InvertTexture可用于将纹理坐标翻转到0.5左右(值1.0变为0.0,0.25-> 0.75)。这相当于翻转纹理贴图(但更容易)。

注意:

您可以使用vtkImplicitFunction的转换功能来定位、翻译和缩放隐函数。此外,纹理坐标的维数由定义的隐式函数数隐式定义。

  1. vtkMaskFields

控制哪些字段被允许传递到输出。

vtkMaskFields用于标记输入数据集中哪些字段被复制到输出。输出将只包含过滤器标记为on的字段。

  1. vtkmAverageToPoints 

点到单元插值滤波器。

单元到点插值滤波器。

vtkmAverageToPoints是一种过滤器,它将点数据(即,在单元点指定的数据)转换为单元数据(即,每个单元指定的数据)。变换方法基于对特定单元使用的所有点的数据值进行平均。此过滤器还将通过任何现有的点和单元阵列。

vtkmAverageToPoints是一个过滤器,它将单元数据(即每个单元指定的数据)转换为点数据(即,在单元点指定的数据)。转换方法基于使用特定点对所有单元的数据值求平均。此过滤器还将通过任何现有的点和单元阵列。

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

dylan55_you

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值