00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00042 #ifndef __vtkMatlabEngineFilter_h
00043 #define __vtkMatlabEngineFilter_h
00044
00045 #include "vtkDataObjectAlgorithm.h"
00046
00047 class vtkMatlabEngineInterface;
00048 class vtkMatlabEngineFilterInternals;
00049 class vtkDataSet;
00050 class vtkDoubleArray;
00051
00052 class VTK_GRAPHICS_EXPORT vtkMatlabEngineFilter : public vtkDataObjectAlgorithm
00053 {
00054
00055 public:
00056
00057 static vtkMatlabEngineFilter *New();
00058
00059 vtkTypeMacro(vtkMatlabEngineFilter, vtkDataObjectAlgorithm );
00060 void PrintSelf(ostream& os, vtkIndent indent);
00061
00066 void PutArray(const char* NameOfVTKArray, const char* NameOfMatVar);
00067
00073 void GetArray(const char* NameOfVTKArray, const char* NameOfMatVar);
00074
00076 void RemoveAllPutVariables();
00077
00079 void RemoveAllGetVariables();
00080
00082
00084 vtkSetStringMacro(MatlabScript);
00085 vtkGetStringMacro(MatlabScript);
00087
00089
00091 vtkSetStringMacro(ScriptFname);
00092 vtkGetStringMacro(ScriptFname);
00094
00096
00097 vtkSetMacro(EngineVisible,int);
00098 vtkGetMacro(EngineVisible,int);
00100
00102
00103 vtkSetMacro(EngineOutput,int);
00104 vtkGetMacro(EngineOutput,int);
00106
00108
00114 vtkSetMacro(TimeOutput,int);
00115 vtkGetMacro(TimeOutput,int);
00117
00119
00121 vtkSetMacro(BlockInfoOutput,int);
00122 vtkGetMacro(BlockInfoOutput,int);
00124
00126
00127 virtual int ProcessRequest(vtkInformation* request,
00128 vtkInformationVector** inputVector,
00129 vtkInformationVector* outputVector);
00131
00132 protected:
00133
00134 int SetMatlabScriptFromFile(const char* fname);
00135
00136 virtual int RequestData(vtkInformation *vtkNotUsed(request),
00137 vtkInformationVector **inputVector,
00138 vtkInformationVector *outputVector);
00139
00141
00142 virtual int RequestDataObject(vtkInformation* request,
00143 vtkInformationVector** inputVector,
00144 vtkInformationVector* outputVector);
00146
00147 vtkMatlabEngineFilter();
00148 ~vtkMatlabEngineFilter();
00149
00150 private:
00151
00152 vtkMatlabEngineFilter(const vtkMatlabEngineFilter&);
00153 void operator=(const vtkMatlabEngineFilter&);
00154
00155
00156 vtkMatlabEngineFilterInternals* mefi;
00157
00158 int ProcessDataSet(vtkDataSet* dsinp, vtkDataSet* dsout);
00159
00160 vtkMatlabEngineInterface* mengi;
00161 char* MatlabScript;
00162 char* MatlabFileScript;
00163 char* ScriptFname;
00164 int EngineVisible;
00165 int EngineOutput;
00166 int TimeOutput;
00167 int BlockInfoOutput;
00168 char* OutputBuffer;
00169 vtkDoubleArray* CurrentTime;
00170 vtkDoubleArray* TimeRange;
00171 vtkDoubleArray* TimeSteps;
00172 vtkDoubleArray* BlockId;
00173 vtkDoubleArray* NumBlocks;
00174
00175 };
00176
00177 #endif
00178