VTK 学习----VTK对象-基础对象

4.1 基础对象

4.1.1 vtkObject

VTK 学习----VTK对象-基础对象_第1张图片

vtkObject

vtkObject是VTK包中大多数对象的基类。在VTK框架内创建的大多数对象都是vtkObject的子类或其子类之一。vtkObject还执行引用计数:只要另一个对象使用它们,就会存在引用计数的对象。一旦删除了对引用计数对象的最后一个引用,该对象将自发地销毁。

vtkLogger

vtkLogger充当VTK日志框架的入口点。vtkLogger提供了一些静态API来初始化和配置日志记录,以及提供一组宏于将记录添加到生成的日志中。关于日志类的使用后面提供详细例子。

vtkCommand

vtkCommand是观察者/命令设计模式的实现。在此设计模式中,可以对任何可能调用的事件指定任何vtkObject实例观察者。例如,vtkRenderer在开始渲染时调用StartEvent,在完成渲染时调用EndEvent。过滤器(vtkProcessObject的子类)在过滤器处理数据时调用StartEvent,ProgressEvent和EndEvent。使用vtkObject的AddObserver()方法添加事件观察。除了需要事件id或名称之外,AddObserver()还接受vtkCommand(或子类)的实例。

vtkAbstractPicker

vtkAbstractPicker是一个抽象超类,它为其具体的子类定义了一个最小的API。拾取器的最小功能是返回拾取的xyz全局坐标位置。

此类的API是使用选择点(显示坐标 - 像素)和渲染器调用Pick()方法。然后使用GetPickPosition()方法在全局坐标中获取结果拾取位置。vtkPicker在拾取过程中触发事件。这些事件是StartPickEvent,PickEvent和EndPickEvent。vtkProp的PickEvent(及其子类,如vtkActor)在vtkPicker的PickEvent之前触发

vtkAbstractTransform

vtkAbstractTransform是所有VTK几何变换的超类。VTK变换层次分为两个主要分支:扭曲变换和同构(包括线性)变换。后者可以用4x4变换矩阵表示,前者不能。

vtkCamera

vtkCamera是一款用于3D渲染的虚拟相机。它提供了定位和定向视点和焦点的方法。还提供了用于在焦点附近移动的便利方法。更复杂的方法允许操作计算机图形模型,包括查看向量,剪切平面和摄像机透视图。

vtkCellArray

vtkCellArray是一个显式表示单元连接的支持对象。单元格数组结构是以下格式的原始整数列表:(n,id1,id2,...,idn,n,id1,id2,...,idn,...)其中n是中的点数单元格,id是关联点列表的零偏移索引。这种数据结构的优点是其紧凑,简单,并且易于与外部数据接口。但是,它完全不适合随机访问。此功能(必要时)通过使用vtkCellTypesvtkCellLinks对象来扩展数据结构的定义来完成。

4.1.2 vtkAlgorithm

VTK 学习----VTK对象-基础对象_第2张图片

vtkAlgorithm

vtkAlgorithm是VTK中所有源,过滤器和接收器的超类。它定义了用于执行数据处理算法的通用接口。管道连接与输入和输出端口相关联,这些端口与通过连接的数据类型无关。

实例可以独立使用,也可以在具有各种体系结构和更新机制的管道中使用。管道由vtkExecutive实例控制。每个vtkAlgorithm实例在管道中使用时都有一个关联的vtkExecutive。执行官负责数据流。

vtkImageMapper

vtkImageMapper为vtk提供2D图像显示支持。它是一个Mapper2D子类,可以与Actor2D关联并放置在RenderWindow或ImageWindow中。所述vtkImageMapper是2D映射器,这意味着,它在屏幕标中显示图像。在屏幕坐标中,一个图像像素总是一个屏幕像素。

vtkLabeledDataMapper

vtkLabeledDataMapper是一个在数据集点处呈现文本的映射器。可以标记各种事物,包括点id,标量,向量,法线,纹理坐标。

使用printf样式格式字符串指定绘制标签的格式。可以通过与此映射器关联的vtkTextProperty设置文本的字体属性。

如果您只想标记可见的点,请将此过滤器与vtkSelectVisiblePoints结合使用。如果要标记单元格而不是点,请使用过滤器vtkCellCenters在单元格的中心生成点。此外,您可以使用类vtkIdFilter生成ID作为标量或字段数据,然后可以对其进行标记。

vtkPolyDataMapper2D

vtkPolyDataMapper2D是一个映射器,它将3D多边形数据(vtkPolyData)渲染到2D图像平面(即渲染器的视口)上。

默认情况下,通过忽略vtkPolyData 3D点的z坐标并将xy值作为局部显示值(即像素坐标),将3D数据转换为2D数据。或者,您可以提供一个vtkCoordinate对象,该对象将数据转换为本地显示坐标(使用vtkCoordinate :: SetCoordinateSystem()方法指示您正在转换数据的坐标系)。

vtkTextMapper

vtkTextMapper为VTK提供2D文本注释支持。它是一个vtkMapper2D,可以与vtkActor2D关联并放入vtkRenderer

vtkMapper

vtkMapper是一个抽象类,用于指定数据和图形基元之间的接口。vtkMapper子类通过查找表映射数据,并控制与图形库接口的渲染基元的创建。可以通过提供查找表并指定标量范围来映射数据并控制映射。

有几个重要的控制机制会影响这个对象的行为。ScalarVisibility标志控制标量数据(如果有)是否控制引用映射器的关联actor的颜色。ScalarMode ivar用于确定是否使用标量点数据或单元格数据为对象着色。默认情况下,使用点数据标量,除非没有,使用单元格标量。或者您可以明确控制是否使用点或单元标量数据。最后,标量通过查找表的映射根据ColorMode标志的设置而变化。

映射器的另一个重要特性是能够移动z缓冲区以解决重合拓扑。例如,如果您想绘制一些网格,其中一些边缘具有不同的颜色,并且边缘位于网格上,则此功能可用于获得漂亮的线条。

vtkGlyph3DMapper

vtkGlyph3D有相同的功能,但在GPU上。因此它是一个映射器而不是vtkPolyDataAlgorithm

4.1.3 vtkAbstractArray

VTK 学习----VTK对象-基础对象_第3张图片

vtkAbstractArray

vtkAbstractArray是数据数组对象的抽象超类。该类定义了所有子类必须支持的API。数据类型必须是可分配的和可复制构造的。此数组的大多数子类将数字数据作为标量或标量元组处理。程序可以使用IsNumeric()方法检查vtkAbstractArray的实例是否包含数字。外,也可以通过尝试SafeDownCast数组的实例来测试这种vtkDataArray

每个数组都有一个字符串名称。数组的实例化时会自动命名,但您可以使用SetName()方法更改此名称。

这个类(和子类)使用两种形式的寻址元素:

  1. 值索引:假定结构数组内存布局的元素索引。

元组/组件索引:显式指定元组和组件索引。

vtkDataArray

vtkDataArray是包含数字数据的数据数组对象的抽象超类。它扩展了vtkAbstractArray定义的API 。vtkDataArray是数据数组对象的抽象超类。此类定义所有数组对象必须支持的API。

vtkAOSDataArrayTemplate是模板类,用于定义各种类型的集合。例如:vtkFloatArray

vtkStringArray

字符串的vtkAbstractArray子类。

点和单元格有时可能具有存储为字符串的关联数据,例如信息可视化项目的标签。此类提供了一种存储和访问这些字符串的简洁方法。

4.1.4 vtkCell

VTK 学习----VTK对象-基础对象_第4张图片

vtkCell

vtkCell是一个抽象类,它指定数据单元的接口。数据单元是简单的拓扑元素,如点,线,多边形和四面体,其中组成了可视化数据集。在一些情况下,可视化数据集可以明确地表示单元格(例如,vtkPolyDatavtkUnstructuredGrid),并且在一些情况下,数据集隐含地由单元格组成(例如,vtkStructuredPoints)。

vtkCell3D

vtkCell3D是一个抽象类,它扩展了3D数据单元的接口,并实现了满足vtkCell API 所需的方法。3DCell包括六面体,四面体,楔形,金字塔和体素。

vtkPolygon

vtkPolygonvtkCell来表示2D n边形的具体实现。多边形不能有任何内部孔,也不能自相交。定义具有沿逆时针方向排序的n点的多边形; 不要重复最后一点。

vtkTriangle

vtkTriangle是一个代表位于3D空间中的三角形vtkCell的具体实现。

vtkTriangleStrip

vtkTriangleStrip是一个来表示2D三角形带vtkCell的具体实现。三角形条带是以条带方式边缘到边缘连接的三角形的紧凑表示。三角形条带的连通性是定义初始三角形的三个点,然后对于每个附加三角形,单个点与前两个点组合,定义下一个三角形。

vtkVertex

3D顶点

 

你可能感兴趣的:(VTK,VTK)