VTK  9.0.1
vtkStatisticsAlgorithm.h
Go to the documentation of this file.
1 /*=========================================================================
2 
3 Program: Visualization Toolkit
4 Module: vtkStatisticsAlgorithm.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 2011 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  -------------------------------------------------------------------------*/
56 #ifndef vtkStatisticsAlgorithm_h
57 #define vtkStatisticsAlgorithm_h
58 
59 #include "vtkFiltersStatisticsModule.h" // For export macro
60 #include "vtkTableAlgorithm.h"
61 
64 class vtkStdString;
65 class vtkStringArray;
66 class vtkVariant;
67 class vtkVariantArray;
68 class vtkDoubleArray;
70 
71 class VTKFILTERSSTATISTICS_EXPORT vtkStatisticsAlgorithm : public vtkTableAlgorithm
72 {
73 public:
75  void PrintSelf(ostream& os, vtkIndent indent) override;
76 
81  {
82  INPUT_DATA = 0,
83  LEARN_PARAMETERS = 1,
84  INPUT_MODEL = 2
85  };
86 
91  {
92  OUTPUT_DATA = 0,
93  OUTPUT_MODEL = 1,
94  OUTPUT_TEST = 2
95  };
96 
102  {
104  }
105 
111  {
113  }
114 
120  {
122  }
123 
128  virtual void SetInputModel(vtkDataObject* model)
129  {
131  }
132 
134 
137  vtkSetMacro(LearnOption, bool);
138  vtkGetMacro(LearnOption, bool);
140 
142 
145  vtkSetMacro(DeriveOption, bool);
146  vtkGetMacro(DeriveOption, bool);
148 
150 
153  vtkSetMacro(AssessOption, bool);
154  vtkGetMacro(AssessOption, bool);
156 
158 
161  vtkSetMacro(TestOption, bool);
162  vtkGetMacro(TestOption, bool);
164 
166 
169  vtkSetMacro(NumberOfPrimaryTables, vtkIdType);
170  vtkGetMacro(NumberOfPrimaryTables, vtkIdType);
172 
174 
177  virtual void SetAssessNames(vtkStringArray*);
178  vtkGetObjectMacro(AssessNames, vtkStringArray);
180 
182 
186  {
187  public:
188  virtual void operator()(vtkDoubleArray*, vtkIdType) = 0;
189  virtual ~AssessFunctor() {}
190  };
192 
206  virtual void SetColumnStatus(const char* namCol, int status);
207 
211  virtual void ResetAllColumnStates();
212 
217  virtual int RequestSelectedColumns();
218 
222  virtual void ResetRequests();
223 
231  virtual vtkIdType GetNumberOfRequests();
232 
236  virtual vtkIdType GetNumberOfColumnsForRequest(vtkIdType request);
237 
251  virtual const char* GetColumnForRequest(vtkIdType r, vtkIdType c);
252 
253  virtual int GetColumnForRequest(vtkIdType r, vtkIdType c, vtkStdString& columnName);
254 
262  void AddColumn(const char* namCol);
263 
274  void AddColumnPair(const char* namColX, const char* namColY);
275 
283  virtual bool SetParameter(const char* parameter, int index, vtkVariant value);
284 
288  virtual void Aggregate(vtkDataObjectCollection*, vtkMultiBlockDataSet*) = 0;
289 
290 protected:
292  ~vtkStatisticsAlgorithm() override;
293 
294  int FillInputPortInformation(int port, vtkInformation* info) override;
296 
298 
302  virtual void Learn(vtkTable*, vtkTable*, vtkMultiBlockDataSet*) = 0;
303 
307  virtual void Derive(vtkMultiBlockDataSet*) = 0;
308 
312  virtual void Assess(vtkTable*, vtkMultiBlockDataSet*, vtkTable*) = 0;
313 
317  void Assess(vtkTable*, vtkMultiBlockDataSet*, vtkTable*, int);
318 
322  virtual void Test(vtkTable*, vtkMultiBlockDataSet*, vtkTable*) = 0;
323 
327  virtual void SelectAssessFunctor(
328  vtkTable* outData, vtkDataObject* inMeta, vtkStringArray* rowNames, AssessFunctor*& dfunc) = 0;
329 
337 
338 private:
340  void operator=(const vtkStatisticsAlgorithm&) = delete;
341 };
342 
343 #endif
Wrapper around std::string to keep symbols short.
Definition: vtkStdString.h:34
A base class for a functor that assesses data.
vtkStatisticsAlgorithmPrivate * Internals
void PrintSelf(ostream &os, vtkIndent indent) override
Methods invoked by print to print information about the object including superclasses.
An array holding vtkVariants.
Store vtkAlgorithm input/output information.
maintain an unordered list of data objects
InputPorts
enumeration values to specify input port types
virtual void SetInputModelConnection(vtkAlgorithmOutput *model)
A convenience method for setting the input model connection (if one is expected or allowed)...
a vtkAbstractArray subclass for strings
OutputIndices
enumeration values to specify output port types
int vtkIdType
Definition: vtkType.h:338
Port 1 is for learn parameters (initial guesses, etc.)
A atomic type representing the union of many types.
Definition: vtkVariant.h:65
Proxy object to connect input/output ports.
dynamic, self-adjusting array of double
Base class for statistics algorithms.
virtual void SetLearnOptionParameterConnection(vtkAlgorithmOutput *params)
A convenience method for setting learn input parameters (if one is expected or allowed).
a simple class to control print indentation
Definition: vtkIndent.h:33
int Test(int argc, char *argv[], const char *dfile, const InitializationCallback &initCallback)
virtual void SetInputConnection(int port, vtkAlgorithmOutput *input)
Set the connection for the given input port index.
void SetInputData(vtkDataObject *obj)
Assign a data object as input.
int FillInputPortInformation(int port, vtkInformation *info) override
Fill the input port information objects for this algorithm.
A table, which contains similar-typed columns of data.
Definition: vtkTable.h:62
virtual int RequestData(vtkInformation *request, vtkInformationVector **inputVector, vtkInformationVector *outputVector)
This is called by the superclass.
Composite dataset that organizes datasets into blocks.
Superclass for algorithms that produce only vtkTables as output.
Store zero or more vtkInformation instances.
virtual void SetInputModel(vtkDataObject *model)
A convenience method for setting the input model (if one is expected or allowed). ...
virtual void SetLearnOptionParameters(vtkDataObject *params)
A convenience method for setting learn input parameters (if one is expected or allowed).
general representation of visualization data
Definition: vtkDataObject.h:59
int FillOutputPortInformation(int port, vtkInformation *info) override
Fill the output port information objects for this algorithm.
Port 2 is for a priori models.