paraview管道:PipeLine

目录

vtkCPPipeline

vtkCPXMLPWriterPipeline

vtkExecutive及子类vtkDemandDrivenPipeline 

vtkStreamingDemandDrivenPipeline

vtkCachedStreamingDemandDrivenPipeline

vtkCompositeDataPipeline

vtkReaderExecutive已经弃用

vtkImageImportExecutive


vtkCPPipeline

/// @ingroup CoProcessing
/// Generic interface for operating on pipelines.  The user can use this
/// if they only have a single pipeline that they want to operate on
/// or they can use this to create a single pipeline and add it to
/// vtkCPProcessor.  Each derived class should set itself up before
/// adding itself to vtkCPProcessor.

用于在管道上操作的通用接口。

如果用户只有一个要对其进行操作的管道,则可以使用此选项,或者可以使用此选项创建一个管道并将其添加到vtkCPProcessor。

每个派生类在将自身添加到vtkCPProcessor之前都应该进行自身设置。

vtkCPXMLPWriterPipeline

/// @ingroup CoProcessing
/// Generic PXML writer pipeline to write out the full Catalyst
/// input datasets. The filename will correspond to the input
/// name/channel identifier with time step and file extension
/// (e.g. "input_0.pvtu" for an unstructured dataset with no
/// padding).

 ///通用PXML编写器管道,用于编写完整的Catalyst输入数据集。

文件名将与具有时间步长和文件扩展名的输入名称/通道标识符相对应(例如,对于没有填充的非结构化数据集,“input_0.pvtu”)。

vtkExecutive及子类vtkDemandDrivenPipeline 

vtkExecutive

/**
 * @class   vtkExecutive
 * @brief   Superclass for all pipeline executives in VTK.
 *
 * vtkExecutive is the superclass for all pipeline executives in VTK.
 * A VTK executive is responsible for controlling one instance of
 * vtkAlgorithm.  A pipeline consists of one or more executives that
 * control data flow.  Every reader, source, writer, or data
 * processing algorithm in the pipeline is implemented in an instance
 * of vtkAlgorithm.
 */

 *vtkExecutive是VTK中所有管道执行人员的超类。

*VTK执行人员负责控制vtkAlgorithm的一个实例。管道由一个或多个控制数据流的执行人员组成。

管道中的每个读取器、源、写入器或数据处理算法都在vtkAlgorithm的一个实例中实现。

vtkDemandDrivenPipeline 

/**
 * @class   vtkDemandDrivenPipeline
 * @brief   Executive supporting on-demand execution.
 *
 * vtkDemandDrivenPipeline is an executive that will execute an
 * algorithm only when its outputs are out-of-date with respect to its
 * inputs.
 */

*vtkdemandrivenpipeline是一个执行程序,它只在算法的输出相对于输入过期时才执行算法。

vtkStreamingDemandDrivenPipeline

/**
 * @class   vtkStreamingDemandDrivenPipeline
 * @brief   Executive supporting partial updates.
 *
 * vtkStreamingDemandDrivenPipeline is an executive that supports
 * updating only a portion of the data set in the pipeline.  This is
 * the style of pipeline update that is provided by the old-style VTK
 * 4.x pipeline.  Instead of always updating an entire data set, this
 * executive supports asking for pieces or sub-extents.
 */

*vtkStreamingDemandDrivenPipeline是一个执行程序,它只支持更新管道中的一部分数据集。

这是旧式vtk4.x管道提供的管道更新样式。此执行程序不总是更新整个数据集,而是支持请求片段或子区段。 

vtkCachedStreamingDemandDrivenPipeline

 /**
 * @class   vtkCachedStreamingDemandDrivenPipeline
 *
 * vtkCachedStreamingDemandDrivenPipeline
 */

vtkCompositeDataPipeline

/**
 * @class   vtkCompositeDataPipeline
 * @brief   Executive supporting composite datasets.
 *
 * vtkCompositeDataPipeline is an executive that supports the processing of
 * composite dataset. It supports algorithms that are aware of composite
 * dataset as well as those that are not. Type checking is performed at run
 * time. Algorithms that are not composite dataset-aware have to support
 * all dataset types contained in the composite dataset. The pipeline
 * execution can be summarized as follows:
 *
 * * REQUEST_INFORMATION: The producers have to provide information about
 * the contents of the composite dataset in this pass.
 * Sources that can produce more than one piece (note that a piece is
 * different than a block; each piece consistes of 0 or more blocks) should
 * set CAN_HANDLE_PIECE_REQUEST.
 *
 * * REQUEST_UPDATE_EXTENT: This pass is identical to the one implemented
 * in vtkStreamingDemandDrivenPipeline
 *
 * * REQUEST_DATA: This is where the algorithms execute. If the
 * vtkCompositeDataPipeline is assigned to a simple filter,
 * it will invoke the  vtkStreamingDemandDrivenPipeline passes in a loop,
 * passing a different block each time and will collect the results in a
 * composite dataset.
 * @sa
 *  vtkCompositeDataSet
 */

 vtkcompositedapipeline是一个支持复合数据集处理的执行程序。

它支持知道复合数据集和不知道复合数据集的算法。类型检查在运行时执行。不支持复合数据集的算法必须支持复合数据集中包含的所有数据集类型。

管道执行可总结如下: 

 REQUEST_INFORMATION:生产者必须在此过程中提供有关复合数据集内容的信息。

 * 可以产生多个工件的源(注意工件不同于块;每个工件由0个或更多块组成)应设置是否可以处理工件请求。

 REQUEST_UPDATE_EXTENT:此过程与vtkStreamingDemandDrivenPipeline中实现的过程相同。

REQUEST_DATA:这是算法执行的地方。如果将vtkcompositedapipeline分配给简单过滤器,它将调用 vtkStreamingDemandDrivenPipeline在循环中传递,每次传递不同的块,并将结果收集到复合数据集中。 

vtkStreamingDemandDrivenPipeline是vtkcompositedapipeline的父类。

vtkCompositeDataPipeline子类 

                                                                                                            vtkCompositeDataPipeline子类  

vtkThreadedCompositeDataPipeline 

/**
 * @class   vtkThreadedCompositeDataPipeline
 * @brief   Executive that works in parallel
 *
 * vtkThreadedCompositeDataPipeline processes a composite data object in
 * parallel using the SMP framework. It does this by creating a vector of
 * data objects (the pieces of the composite data) and processing them
 * using vtkSMPTools::For. Note that this requires that the
 * algorithm implement all pipeline passes in a re-entrant way. It should
 * store/retrieve all state changes using input and output information
 * objects, which are unique to each thread.
 */

vtkthreadecompositedatapipeline使用SMP框架并行处理复合数据对象。

它通过创建数据对象的向量(组合数据的片段)并使用vtkSMPTools::For处理它们来实现这一点。

请注意,这要求算法以重入方式实现所有管道传递。

它应该使用输入和输出信息对象存储/检索所有状态更改,这些对象对于每个线程都是唯一的。

vtkPVDataRepresentationPipeline

/**
 * @class vtkPVDataRepresentationPipeline
 * @brief executive for vtkPVDataRepresentation.
 *
 * vtkPVDataRepresentationPipeline is an executive for vtkPVDataRepresentation.
 * Unlike other algorithms, vtkPVDataRepresentation does not use MTime as the
 * indication that the pipeline needs to be updated, but instead uses the
 * `vtkPVDataRepresentation::NeedsUpdate` flag. This mechanism, historically
 * referenced as update-suppressor, is implemented by this class. It bypasses
 * pipeline passes unless the representation explicitly indicates it needs an
 * update.
 */

*vtkPVDataRepresentationPipeline是vtkPVDataRepresentation的执行程序。

*与其他算法不同,vtkPVDataRepresentation不使用MTime作为管道需要更新的指示,而是使用“vtkPVDataRepresentation::NeedsUpdate”标志。

这个机制在历史上被称为更新抑制器,是由这个类实现的。除非表示明确指出它需要更新,否则它将绕过管道传递。

vtkPVCompositeDataPipeline 

/**
 * @class   vtkPVCompositeDataPipeline
 * @brief   executive to add support for
 * vtkPVPostFilter in ParaView data pipelines.
 *
 * vtkPVCompositeDataPipeline extends vtkCompositeDataPipeline to add ParaView
 * specific extensions to the pipeline.
 * \\li Post Filter :- it adds support to ensure that array requests made on
 *     algorithms are passed along to the input vtkPVPostFilter, if one exists.
 *     vtkPVPostFilter is used to automatically extract components or generated
 *     derived arrays such as magnitude array for vectors.
*/

在ParaView数据管道中添加对vtkPVPostFilter的支持。

*vtkpvcompositedapipeline扩展vtkcompositedapipeline以向管道添加特定于ParaView的扩展。

*\\li Post Filter:它添加了支持,以确保对算法发出的数组请求被传递到输入vtkPVPostFilter(如果存在)。

*vtkPVPostFilter用于自动提取分量或生成派生数组,如向量的幅度数组。

vtkReaderExecutive已经弃用

/**
 * @class   vtkReaderExecutive
 * @brief   Executive that works with vtkReaderAlgorithm and subclasses.
 *
 * @deprecated VTK 9.1.0. This is no longer needed. vtkReaderAlgorithm can now
 * work with standard executive and hence this can be removed. Follows docs are
 * no longer relevant and left for historical reasons.
 *
 * vtkReaderExecutive is an executive that supports simplified API readers
 * that are written by subclassing from the vtkReaderAlgorithm hierarchy.
 * Currently, its main functionality is to call the basic reader API instead
 * if the standard ProcessRequest() method that other algorithms use.
 * In time, this is likely to add functionality such as caching. See
 * vtkReaderAlgorithm for the API.
 *
 * Note that this executive assumes that the reader has one output port.
 */

*与vtkReaderAlgorithm和子类一起工作的执行程序。

*@已弃用的VTK 9.1.0。这已经不需要了。vtkReaderAlgorithm现在可以与标准executive一起工作,因此可以删除它。以下文档不再相关,并因历史原因而保留。

*vtkReaderExecutive是一个支持简化API读取器的执行程序,这些读取器是通过vtkReaderAlgorithm层次结构的子类化编写的。

*目前,它的主要功能是在其他算法使用的标准ProcessRequest()方法中调用基本的reader API。

*随着时间的推移,这可能会增加缓存等功能。有关API,请参见vtkReaderAlgorithm。

*注意,这个执行程序假设读卡器有一个输出端口。

vtkImageImportExecutive

/**
 * @class   vtkImageImportExecutive
 *
 * vtkImageImportExecutive
 */

© 版权声明
THE END
喜欢就支持一下吧
点赞0 分享
评论 抢沙发
头像
欢迎您留下宝贵的见解!
提交
头像

昵称

取消
昵称表情代码图片