VTK
vtkMatlabEngineFilter.h
Go to the documentation of this file.
1 /*=========================================================================
2 
3  Program: Visualization Toolkit
4  Module: vtkMatlabEngineFilter.h
5 
6  Copyright (c) Ken Martin, Will Schroeder, Bill Lorensen
7  All rights reserved.
8  See Copyright.txt or http://www.kitware.com/Copyright.htm for details.
9 
10  This software is distributed WITHOUT ANY WARRANTY; without even
11  the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
12  PURPOSE. See the above copyright notice for more information.
13 
14 =========================================================================*/
15 /*-------------------------------------------------------------------------
16  Copyright 2009 Sandia Corporation.
17  Under the terms of Contract DE-AC04-94AL85000 with Sandia Corporation,
18  the U.S. Government retains certain rights in this software.
19 -------------------------------------------------------------------------*/
20 
42 #ifndef __vtkMatlabEngineFilter_h
43 #define __vtkMatlabEngineFilter_h
44 
45 #include "vtkDataObjectAlgorithm.h"
46 
48 class vtkMatlabEngineFilterInternals;
49 class vtkDataSet;
50 class vtkDoubleArray;
51 
53 {
54 
55 public:
56 
57  static vtkMatlabEngineFilter *New();
58 
60  void PrintSelf(ostream& os, vtkIndent indent);
61 
66  void PutArray(const char* NameOfVTKArray, const char* NameOfMatVar);
67 
73  void GetArray(const char* NameOfVTKArray, const char* NameOfMatVar);
74 
76  void RemoveAllPutVariables();
77 
79  void RemoveAllGetVariables();
80 
82 
84  vtkSetStringMacro(MatlabScript);
85  vtkGetStringMacro(MatlabScript);
87 
89 
91  vtkSetStringMacro(ScriptFname);
92  vtkGetStringMacro(ScriptFname);
94 
96 
97  vtkSetMacro(EngineVisible,int);
98  vtkGetMacro(EngineVisible,int);
100 
102 
103  vtkSetMacro(EngineOutput,int);
104  vtkGetMacro(EngineOutput,int);
106 
108 
114  vtkSetMacro(TimeOutput,int);
115  vtkGetMacro(TimeOutput,int);
117 
119 
121  vtkSetMacro(BlockInfoOutput,int);
122  vtkGetMacro(BlockInfoOutput,int);
124 
126 
127  virtual int ProcessRequest(vtkInformation* request,
128  vtkInformationVector** inputVector,
129  vtkInformationVector* outputVector);
131 
132 protected:
133 
134  int SetMatlabScriptFromFile(const char* fname);
135 
136  virtual int RequestData(vtkInformation *vtkNotUsed(request),
137  vtkInformationVector **inputVector,
138  vtkInformationVector *outputVector);
139 
141 
142  virtual int RequestDataObject(vtkInformation* request,
143  vtkInformationVector** inputVector,
144  vtkInformationVector* outputVector);
146 
149 
150 private:
151 
152  vtkMatlabEngineFilter(const vtkMatlabEngineFilter&); // Not implemented.
153  void operator=(const vtkMatlabEngineFilter&); // Not implemented.
154 
155  // Implementation details
156  vtkMatlabEngineFilterInternals* mefi;
157 
158  int ProcessDataSet(vtkDataSet* dsinp, vtkDataSet* dsout);
159 
161  char* MatlabScript;
162  char* MatlabFileScript;
163  char* ScriptFname;
164  int EngineVisible;
165  int EngineOutput;
166  int TimeOutput;
167  int BlockInfoOutput;
168  char* OutputBuffer;
169  vtkDoubleArray* CurrentTime;
170  vtkDoubleArray* TimeRange;
171  vtkDoubleArray* TimeSteps;
172  vtkDoubleArray* BlockId;
173  vtkDoubleArray* NumBlocks;
174 
175 };
176 
177 #endif
178