VTK
vtkRCalculatorFilter.h
Go to the documentation of this file.
1 
2 /*=========================================================================
3 
4  Program: Visualization Toolkit
5  Module: vtkRCalculatorFilter.h
6 
7  Copyright (c) Ken Martin, Will Schroeder, Bill Lorensen
8  All rights reserved.
9  See Copyright.txt or http://www.kitware.com/Copyright.htm for details.
10 
11  This software is distributed WITHOUT ANY WARRANTY; without even
12  the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
13  PURPOSE. See the above copyright notice for more information.
14 
15 =========================================================================*/
16 /*-------------------------------------------------------------------------
17  Copyright 2009 Sandia Corporation.
18  Under the terms of Contract DE-AC04-94AL85000 with Sandia Corporation,
19  the U.S. Government retains certain rights in this software.
20 -------------------------------------------------------------------------*/
21 
43 #ifndef __vtkRCalculatorFilter_h
44 #define __vtkRCalculatorFilter_h
45 
46 #include "vtkFiltersStatisticsGnuRModule.h" // For export macro
47 #include "vtkDataObjectAlgorithm.h"
48 
49 class vtkRInterface;
50 class vtkRCalculatorFilterInternals;
51 class vtkDataSet;
52 class vtkDoubleArray;
53 
54 class VTKFILTERSSTATISTICSGNUR_EXPORT vtkRCalculatorFilter : public vtkDataObjectAlgorithm
55 {
56 
57 public:
58 
59  static vtkRCalculatorFilter *New();
60 
62  void PrintSelf(ostream& os, vtkIndent indent);
63 
68  void PutArray(const char* NameOfVTKArray, const char* NameOfRvar);
69 
74  void GetArray(const char* NameOfVTKArray, const char* NameOfRvar);
75 
77  void RemoveAllPutVariables();
78 
80  void RemoveAllGetVariables();
81 
83 
86  void PutTable(const char* NameOfRvar);
87  void GetTable(const char* NameOfRvar);
89 
91 
92  vtkSetStringMacro(Rscript);
93  vtkGetStringMacro(Rscript);
95 
97 
98  vtkSetStringMacro(ScriptFname);
99  vtkGetStringMacro(ScriptFname);
101 
103 
104  vtkSetMacro(Routput,int);
105  vtkGetMacro(Routput,int);
107 
109 
115  vtkSetMacro(TimeOutput,int);
116  vtkGetMacro(TimeOutput,int);
118 
120 
122  vtkSetMacro(BlockInfoOutput,int);
123  vtkGetMacro(BlockInfoOutput,int);
125 
127 
128  virtual int ProcessRequest(vtkInformation* request,
129  vtkInformationVector** inputVector,
130  vtkInformationVector* outputVector);
132 
133 protected:
134 
135  int SetRscriptFromFile(const char* fname);
136 
137  virtual int RequestData(vtkInformation *vtkNotUsed(request),
138  vtkInformationVector **inputVector,
139  vtkInformationVector *outputVector);
140 
142 
143  virtual int RequestDataObject(vtkInformation* request,
144  vtkInformationVector** inputVector,
145  vtkInformationVector* outputVector);
147 
150 
151 private:
152 
153  vtkRCalculatorFilter(const vtkRCalculatorFilter&); // Not implemented.
154  void operator=(const vtkRCalculatorFilter&); // Not implemented.
155 
156  // Implementation details
157  vtkRCalculatorFilterInternals* rcfi;
158  int ProcessDataSet(vtkDataSet* dsinp, vtkDataSet* dsout);
159 
160  vtkRInterface* ri;
161  char* Rscript;
162  char* RfileScript;
163  char* ScriptFname;
164  int Routput;
165  int TimeOutput;
166  int BlockInfoOutput;
167  char* OutputBuffer;
168  vtkDoubleArray* CurrentTime;
169  vtkDoubleArray* TimeRange;
170  vtkDoubleArray* TimeSteps;
171  vtkDoubleArray* BlockId;
172  vtkDoubleArray* NumBlocks;
173 
174 };
175 
176 #endif
177