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:
@ -0,0 +1,124 @@
|
||||
/*=========================================================================
|
||||
|
||||
Program: Visualization Toolkit
|
||||
Module: vtkClientServerMoveData.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 vtkClientServerMoveData - Moves data from the server root node
|
||||
// to the client.
|
||||
// .SECTION Description
|
||||
// This class moves all the input data available at the input on the root
|
||||
// server node to the client node. If not in server-client mode,
|
||||
// this filter behaves as a simple pass-through filter.
|
||||
// This can work with any data type, the application does not need to set
|
||||
// the output type before hand.
|
||||
// .SECTION Warning
|
||||
// This filter may change the output in RequestData().
|
||||
|
||||
#ifndef vtkClientServerMoveData_h
|
||||
#define vtkClientServerMoveData_h
|
||||
|
||||
#include "vtkPVClientServerCoreRenderingModule.h" //needed for exports
|
||||
#include "vtkDataObjectAlgorithm.h"
|
||||
|
||||
class vtkMultiProcessController;
|
||||
class vtkMultiProcessController;
|
||||
|
||||
class VTKPVCLIENTSERVERCORERENDERING_EXPORT vtkClientServerMoveData : public vtkDataObjectAlgorithm
|
||||
{
|
||||
public:
|
||||
static vtkClientServerMoveData* New();
|
||||
vtkTypeMacro(vtkClientServerMoveData, vtkDataObjectAlgorithm);
|
||||
void PrintSelf(ostream& os, vtkIndent indent);
|
||||
|
||||
// Description:
|
||||
// Controls the output type. This is required because processes receiving
|
||||
// data cannot know their output type in RequestDataObject without
|
||||
// communicating with other processes. Since communicating with other
|
||||
// processes in RequestDataObject is dangerous (can cause deadlock because
|
||||
// it may happen out-of-sync), the application has to set the output
|
||||
// type. The default is VTK_POLY_DATA. Make sure to call this before any
|
||||
// pipeline updates occur.
|
||||
vtkSetMacro(OutputDataType, int);
|
||||
vtkGetMacro(OutputDataType, int);
|
||||
|
||||
// Description:
|
||||
// Controls the output WHOLE_EXTENT. This is required because processes
|
||||
// receiving data cannot know their WHOLE_EXTENT in RequestInformation
|
||||
// without communicating with other processes. Since communicating with
|
||||
// other processes in RequestInformation is dangerous (can cause deadlock
|
||||
// because it may happen out-of-sync), the application has to set the
|
||||
// output type. Make sure to call this before any pipeline updates occur.
|
||||
vtkSetVector6Macro(WholeExtent, int);
|
||||
vtkGetVector6Macro(WholeExtent, int);
|
||||
|
||||
// Description:
|
||||
// Optionally, set the process type. If set to AUTO, then the process type is
|
||||
// tried to be determined using the active connection.
|
||||
vtkSetMacro(ProcessType, int);
|
||||
vtkGetMacro(ProcessType, int);
|
||||
|
||||
// Description:
|
||||
// Get/Set the controller to use. This is optional and needed only when
|
||||
// ProcessType is set to something other than AUTO. If AUTO, then the
|
||||
// controller is obtained from the active session.
|
||||
void SetController(vtkMultiProcessController*);
|
||||
vtkGetObjectMacro(Controller, vtkMultiProcessController);
|
||||
//BTX
|
||||
enum ProcessTypes
|
||||
{
|
||||
AUTO=0,
|
||||
SERVER=1,
|
||||
CLIENT=2
|
||||
};
|
||||
|
||||
protected:
|
||||
vtkClientServerMoveData();
|
||||
~vtkClientServerMoveData();
|
||||
|
||||
// Overridden to mark input as optional, since input data may
|
||||
// not be available on all processes that this filter is instantiated.
|
||||
virtual int FillInputPortInformation(int port, vtkInformation *info);
|
||||
|
||||
virtual int RequestData(vtkInformation* request,
|
||||
vtkInformationVector** inputVector,
|
||||
vtkInformationVector* outputVector);
|
||||
|
||||
// Create an output of the type defined by OutputDataType
|
||||
virtual int RequestDataObject(vtkInformation* request,
|
||||
vtkInformationVector** inputVector,
|
||||
vtkInformationVector* outputVector);
|
||||
|
||||
// If there is an input call superclass' RequestInformation
|
||||
// otherwise set the output WHOLE_EXTENT() to be WholeExtent
|
||||
virtual int RequestInformation(vtkInformation* request,
|
||||
vtkInformationVector** inputVector,
|
||||
vtkInformationVector* outputVector);
|
||||
|
||||
virtual int SendData(vtkDataObject*, vtkMultiProcessController*);
|
||||
virtual vtkDataObject* ReceiveData(vtkMultiProcessController*);
|
||||
|
||||
enum Tags {
|
||||
TRANSMIT_DATA_OBJECT = 23483
|
||||
};
|
||||
|
||||
int OutputDataType;
|
||||
int WholeExtent[6];
|
||||
int ProcessType;
|
||||
vtkMultiProcessController* Controller;
|
||||
|
||||
private:
|
||||
vtkClientServerMoveData(const vtkClientServerMoveData&); // Not implemented.
|
||||
void operator=(const vtkClientServerMoveData&); // Not implemented.
|
||||
//ETX
|
||||
};
|
||||
|
||||
#endif
|
||||
Reference in New Issue
Block a user