00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00039 #ifndef __vtkMatlabEngineFilter_h
00040 #define __vtkMatlabEngineFilter_h
00041
00042 #include "vtkDataObjectAlgorithm.h"
00043
00044 class vtkMatlabEngineInterface;
00045 class vtkMatlabEngineFilterInternals;
00046 class vtkDataSet;
00047 class vtkDoubleArray;
00048
00049 class VTK_GRAPHICS_EXPORT vtkMatlabEngineFilter : public vtkDataObjectAlgorithm
00050 {
00051
00052 public:
00053
00054 static vtkMatlabEngineFilter *New();
00055
00056 vtkTypeRevisionMacro(vtkMatlabEngineFilter, vtkDataObjectAlgorithm );
00057 void PrintSelf(ostream& os, vtkIndent indent);
00058
00063 void PutArray(const char* NameOfVTKArray, const char* NameOfMatVar);
00064
00070 void GetArray(const char* NameOfVTKArray, const char* NameOfMatVar);
00071
00073 void RemoveAllPutVariables();
00074
00076 void RemoveAllGetVariables();
00077
00079
00081 vtkSetStringMacro(MatlabScript);
00082 vtkGetStringMacro(MatlabScript);
00084
00086
00088 vtkSetStringMacro(ScriptFname);
00089 vtkGetStringMacro(ScriptFname);
00091
00093
00094 vtkSetMacro(EngineVisible,int);
00095 vtkGetMacro(EngineVisible,int);
00097
00099
00100 vtkSetMacro(EngineOutput,int);
00101 vtkGetMacro(EngineOutput,int);
00103
00105
00111 vtkSetMacro(TimeOutput,int);
00112 vtkGetMacro(TimeOutput,int);
00114
00116
00118 vtkSetMacro(BlockInfoOutput,int);
00119 vtkGetMacro(BlockInfoOutput,int);
00121
00123
00124 virtual int ProcessRequest(vtkInformation* request,
00125 vtkInformationVector** inputVector,
00126 vtkInformationVector* outputVector);
00128
00129 protected:
00130
00131 int SetMatlabScriptFromFile(const char* fname);
00132
00133 virtual int RequestData(vtkInformation *vtkNotUsed(request),
00134 vtkInformationVector **inputVector,
00135 vtkInformationVector *outputVector);
00136
00138
00139 virtual int RequestDataObject(vtkInformation* request,
00140 vtkInformationVector** inputVector,
00141 vtkInformationVector* outputVector);
00143
00144 vtkMatlabEngineFilter();
00145 ~vtkMatlabEngineFilter();
00146
00147 private:
00148
00149 vtkMatlabEngineFilter(const vtkMatlabEngineFilter&);
00150 void operator=(const vtkMatlabEngineFilter&);
00151
00152
00153 vtkMatlabEngineFilterInternals* mefi;
00154
00155 int ProcessDataSet(vtkDataSet* dsinp, vtkDataSet* dsout);
00156
00157 vtkMatlabEngineInterface* mengi;
00158 char* MatlabScript;
00159 char* MatlabFileScript;
00160 char* ScriptFname;
00161 int EngineVisible;
00162 int EngineOutput;
00163 int TimeOutput;
00164 int BlockInfoOutput;
00165 char* OutputBuffer;
00166 vtkDoubleArray* CurrentTime;
00167 vtkDoubleArray* TimeRange;
00168 vtkDoubleArray* TimeSteps;
00169 vtkDoubleArray* BlockId;
00170 vtkDoubleArray* NumBlocks;
00171
00172 };
00173
00174 #endif
00175