mirror of
https://github.com/OpenFOAM/ThirdParty-6.git
synced 2025-12-08 06:57:43 +00:00
77 lines
2.9 KiB
C++
77 lines
2.9 KiB
C++
/*=========================================================================
|
|
|
|
Program: ParaView
|
|
Module: vtkCPPythonScriptPipeline.h
|
|
|
|
Copyright (c) Kitware, Inc.
|
|
All rights reserved.
|
|
See Copyright.txt or http://www.paraview.org/HTML/Copyright.html 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.
|
|
|
|
=========================================================================*/
|
|
#ifndef vtkCPPythonScriptPipeline_h
|
|
#define vtkCPPythonScriptPipeline_h
|
|
|
|
#include "vtkCPPipeline.h"
|
|
#include "vtkStdString.h" // for the string
|
|
#include "vtkPVPythonCatalystModule.h" // For windows import/export of shared libraries
|
|
|
|
class vtkCPDataDescription;
|
|
|
|
/// @ingroup CoProcessing
|
|
/// Class that creates a coprocessing pipeline starting from a coprocessing
|
|
/// script. This class only does operations with respect to the script
|
|
/// and uses the name of the script as the module to hide its definitions
|
|
/// from other python modules.
|
|
class VTKPVPYTHONCATALYST_EXPORT vtkCPPythonScriptPipeline : public vtkCPPipeline
|
|
{
|
|
public:
|
|
static vtkCPPythonScriptPipeline* New();
|
|
vtkTypeMacro(vtkCPPythonScriptPipeline,vtkCPPipeline);
|
|
void PrintSelf(ostream& os, vtkIndent indent);
|
|
|
|
/// Initialize this pipeline from given the file name of a
|
|
/// python script. Returns 1 for success and 0 for failure.
|
|
int Initialize(const char* fileName);
|
|
|
|
/// Configuration Step:
|
|
/// The coprocessor first determines if any coprocessing needs to be done
|
|
/// at this TimeStep/Time combination returning 1 if it does and 0
|
|
/// otherwise. If coprocessing does need to be performed this time step
|
|
/// it fills in the FieldNames array that the coprocessor requires
|
|
/// in order to fulfill all the coprocessing requests for this
|
|
/// TimeStep/Time combination.
|
|
virtual int RequestDataDescription(vtkCPDataDescription* dataDescription);
|
|
|
|
/// Execute the pipeline. Returns 1 for success and 0 for failure.
|
|
virtual int CoProcess(vtkCPDataDescription* dataDescription);
|
|
|
|
/// Finalize the pipeline before deleting it. A default no-op implementation
|
|
/// is given. Returns 1 for success and 0 for failure.
|
|
virtual int Finalize();
|
|
|
|
protected:
|
|
vtkCPPythonScriptPipeline();
|
|
virtual ~vtkCPPythonScriptPipeline();
|
|
|
|
/// Return the address of Pointer for the python script.
|
|
vtkStdString GetPythonAddress(void* pointer);
|
|
|
|
/// Set/get macro functinos for setting PythonScriptName.
|
|
vtkSetStringMacro(PythonScriptName);
|
|
vtkGetStringMacro(PythonScriptName);
|
|
|
|
private:
|
|
vtkCPPythonScriptPipeline(const vtkCPPythonScriptPipeline&); // Not implemented
|
|
void operator=(const vtkCPPythonScriptPipeline&); // Not implemented
|
|
|
|
/// The name of the python script (without the path or extension)
|
|
/// that is used as the namespace of the functions of the script.
|
|
char* PythonScriptName;
|
|
};
|
|
|
|
#endif
|