mirror of
https://github.com/OpenFOAM/ThirdParty-6.git
synced 2025-12-08 06:57:43 +00:00
ParaView-5.0.1: Added the source-tree to ThirdParty-dev and patched as described in the README file
Resolves bug-report http://bugs.openfoam.org/view.php?id=2098
This commit is contained in:
163
ParaView-5.0.1/VTK/Common/ExecutionModel/vtkImageAlgorithm.h
Normal file
163
ParaView-5.0.1/VTK/Common/ExecutionModel/vtkImageAlgorithm.h
Normal file
@ -0,0 +1,163 @@
|
||||
/*=========================================================================
|
||||
|
||||
Program: Visualization Toolkit
|
||||
Module: vtkImageAlgorithm.h
|
||||
|
||||
Copyright (c) Ken Martin, Will Schroeder, Bill Lorensen
|
||||
All rights reserved.
|
||||
See Copyright.txt or http://www.kitware.com/Copyright.htm for details.
|
||||
|
||||
This software is distributed WITHOUT ANY WARRANTY; without even
|
||||
the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
|
||||
PURPOSE. See the above copyright notice for more information.
|
||||
|
||||
=========================================================================*/
|
||||
// .NAME vtkImageAlgorithm - Generic algorithm superclass for image algs
|
||||
// .SECTION Description
|
||||
// vtkImageAlgorithm is a filter superclass that hides much of the
|
||||
// pipeline complexity. It handles breaking the pipeline execution
|
||||
// into smaller extents so that the vtkImageData limits are observed. It
|
||||
// also provides support for multithreading. If you don't need any of this
|
||||
// functionality, consider using vtkSimpleImageToImageFilter instead.
|
||||
// .SECTION See also
|
||||
// vtkSimpleImageToImageFilter
|
||||
|
||||
#ifndef vtkImageAlgorithm_h
|
||||
#define vtkImageAlgorithm_h
|
||||
|
||||
#include "vtkCommonExecutionModelModule.h" // For export macro
|
||||
#include "vtkAlgorithm.h"
|
||||
|
||||
class vtkDataSet;
|
||||
class vtkImageData;
|
||||
|
||||
class VTKCOMMONEXECUTIONMODEL_EXPORT vtkImageAlgorithm : public vtkAlgorithm
|
||||
{
|
||||
public:
|
||||
vtkTypeMacro(vtkImageAlgorithm,vtkAlgorithm);
|
||||
void PrintSelf(ostream& os, vtkIndent indent);
|
||||
|
||||
// Description:
|
||||
// Get the output data object for a port on this algorithm.
|
||||
vtkImageData* GetOutput();
|
||||
vtkImageData* GetOutput(int);
|
||||
virtual void SetOutput(vtkDataObject* d);
|
||||
|
||||
// Description:
|
||||
// Process a request from the executive. For vtkImageAlgorithm, the
|
||||
// request will be delegated to one of the following methods: RequestData,
|
||||
// RequestInformation, or RequestUpdateExtent.
|
||||
virtual int ProcessRequest(vtkInformation*,
|
||||
vtkInformationVector**,
|
||||
vtkInformationVector*);
|
||||
|
||||
// Description:
|
||||
// Assign a data object as input. Note that this method does not
|
||||
// establish a pipeline connection. Use SetInputConnection to
|
||||
// setup a pipeline connection.
|
||||
void SetInputData(vtkDataObject *);
|
||||
void SetInputData(int, vtkDataObject*);
|
||||
|
||||
// Description:
|
||||
// Get a data object for one of the input port connections. The use
|
||||
// of this method is strongly discouraged, but some filters that were
|
||||
// written a long time ago still use this method.
|
||||
vtkDataObject *GetInput(int port);
|
||||
vtkDataObject *GetInput() { return this->GetInput(0); };
|
||||
vtkImageData *GetImageDataInput(int port);
|
||||
|
||||
// Description:
|
||||
// Assign a data object as input. Note that this method does not
|
||||
// establish a pipeline connection. Use SetInputConnection to
|
||||
// setup a pipeline connection.
|
||||
virtual void AddInputData(vtkDataObject *);
|
||||
virtual void AddInputData(int, vtkDataObject*);
|
||||
|
||||
protected:
|
||||
vtkImageAlgorithm();
|
||||
~vtkImageAlgorithm();
|
||||
|
||||
// Description:
|
||||
// Subclasses can reimplement this method to collect information
|
||||
// from their inputs and set information for their outputs.
|
||||
virtual int RequestInformation(vtkInformation* request,
|
||||
vtkInformationVector** inputVector,
|
||||
vtkInformationVector* outputVector);
|
||||
|
||||
|
||||
// Description:
|
||||
// Subclasses can reimplement this method to translate the update
|
||||
// extent requests from each output port into update extent requests
|
||||
// for the input connections.
|
||||
virtual int RequestUpdateExtent(vtkInformation*,
|
||||
vtkInformationVector**,
|
||||
vtkInformationVector*);
|
||||
|
||||
// Description:
|
||||
// Convenience method to copy the scalar type and number of components
|
||||
// from the input data to the output data. You will generally want to
|
||||
// call this from inside your RequestInformation method, unless you
|
||||
// want the output data to have a different scalar type or number of
|
||||
// components from the input.
|
||||
virtual void CopyInputArrayAttributesToOutput(vtkInformation* request,
|
||||
vtkInformationVector** inputVector,
|
||||
vtkInformationVector* outputVector);
|
||||
|
||||
|
||||
// Description:
|
||||
// This is called in response to a REQUEST_DATA request from the
|
||||
// executive. Subclasses should override either this method or the
|
||||
// ExecuteDataWithInformation method in order to generate data for
|
||||
// their outputs. For images, the output arrays will already be
|
||||
// allocated, so all that is necessary is to fill in the voxel values.
|
||||
virtual int RequestData(vtkInformation *request,
|
||||
vtkInformationVector** inputVector,
|
||||
vtkInformationVector* outputVector);
|
||||
|
||||
// Description:
|
||||
// This is a convenience method that is implemented in many subclasses
|
||||
// instead of RequestData. It is called by RequestData.
|
||||
virtual void ExecuteDataWithInformation(vtkDataObject *output,
|
||||
vtkInformation* outInfo);
|
||||
|
||||
// Description
|
||||
// This method is the old style execute method, provided for the sake
|
||||
// of backwards compatibility with older filters and readers.
|
||||
virtual void ExecuteData(vtkDataObject *output);
|
||||
virtual void Execute();
|
||||
|
||||
// Description:
|
||||
// Allocate the output data. This will be called before RequestData,
|
||||
// it is not necessary for subclasses to call this method themselves.
|
||||
virtual void AllocateOutputData(vtkImageData *out,
|
||||
vtkInformation* outInfo,
|
||||
int *uExtent);
|
||||
virtual vtkImageData *AllocateOutputData(vtkDataObject *out,
|
||||
vtkInformation *outInfo);
|
||||
|
||||
// Description:
|
||||
// Copy the other point and cell data. Subclasses will almost never
|
||||
// need to reimplement this method.
|
||||
virtual void CopyAttributeData(vtkImageData *in, vtkImageData *out,
|
||||
vtkInformationVector** inputVector);
|
||||
|
||||
// Description:
|
||||
// These method should be reimplemented by subclasses that have
|
||||
// more than a single input or single output.
|
||||
// See vtkAlgorithm for more information.
|
||||
virtual int FillOutputPortInformation(int port, vtkInformation* info);
|
||||
virtual int FillInputPortInformation(int port, vtkInformation* info);
|
||||
|
||||
private:
|
||||
vtkImageAlgorithm(const vtkImageAlgorithm&); // Not implemented.
|
||||
void operator=(const vtkImageAlgorithm&); // Not implemented.
|
||||
};
|
||||
|
||||
#endif
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user