VTK  9.2.6
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  -------------------------------------------------------------------------*/
59 #ifndef vtkStatisticsAlgorithm_h
60 #define vtkStatisticsAlgorithm_h
61 
62 #include "vtkFiltersStatisticsModule.h" // For export macro
63 #include "vtkTableAlgorithm.h"
64 
67 class vtkStdString;
68 class vtkStringArray;
69 class vtkVariant;
70 class vtkVariantArray;
71 class vtkDoubleArray;
73 
74 class VTKFILTERSSTATISTICS_EXPORT vtkStatisticsAlgorithm : public vtkTableAlgorithm
75 {
76 public:
78  void PrintSelf(ostream& os, vtkIndent indent) override;
79 
84  {
85  INPUT_DATA = 0,
86  LEARN_PARAMETERS = 1,
87  INPUT_MODEL = 2
88  };
89 
94  {
95  OUTPUT_DATA = 0,
96  OUTPUT_MODEL = 1,
97  OUTPUT_TEST = 2
98  };
99 
105  {
107  }
108 
114  {
116  }
117 
123  {
125  }
126 
131  virtual void SetInputModel(vtkDataObject* model)
132  {
134  }
135 
137 
140  vtkSetMacro(LearnOption, bool);
141  vtkGetMacro(LearnOption, bool);
143 
145 
148  vtkSetMacro(DeriveOption, bool);
149  vtkGetMacro(DeriveOption, bool);
151 
153 
156  vtkSetMacro(AssessOption, bool);
157  vtkGetMacro(AssessOption, bool);
159 
161 
164  vtkSetMacro(TestOption, bool);
165  vtkGetMacro(TestOption, bool);
167 
169 
172  vtkSetMacro(NumberOfPrimaryTables, vtkIdType);
173  vtkGetMacro(NumberOfPrimaryTables, vtkIdType);
175 
177 
180  virtual void SetAssessNames(vtkStringArray*);
181  vtkGetObjectMacro(AssessNames, vtkStringArray);
183 
185 
189  {
190  public:
191  virtual void operator()(vtkDoubleArray*, vtkIdType) = 0;
192  virtual ~AssessFunctor() = default;
193  };
195 
209  virtual void SetColumnStatus(const char* namCol, int status);
210 
214  virtual void ResetAllColumnStates();
215 
220  virtual int RequestSelectedColumns();
221 
225  virtual void ResetRequests();
226 
234  virtual vtkIdType GetNumberOfRequests();
235 
239  virtual vtkIdType GetNumberOfColumnsForRequest(vtkIdType request);
240 
254  virtual const char* GetColumnForRequest(vtkIdType r, vtkIdType c);
255 
256  virtual int GetColumnForRequest(vtkIdType r, vtkIdType c, vtkStdString& columnName);
257 
265  void AddColumn(const char* namCol);
266 
277  void AddColumnPair(const char* namColX, const char* namColY);
278 
286  virtual bool SetParameter(const char* parameter, int index, vtkVariant value);
287 
291  virtual void Aggregate(vtkDataObjectCollection*, vtkMultiBlockDataSet*) = 0;
292 
293 protected:
295  ~vtkStatisticsAlgorithm() override;
296 
297  int FillInputPortInformation(int port, vtkInformation* info) override;
299 
301 
305  virtual void Learn(vtkTable*, vtkTable*, vtkMultiBlockDataSet*) = 0;
306 
310  virtual void Derive(vtkMultiBlockDataSet*) = 0;
311 
315  virtual void Assess(vtkTable*, vtkMultiBlockDataSet*, vtkTable*) = 0;
316 
320  void Assess(vtkTable*, vtkMultiBlockDataSet*, vtkTable*, int);
321 
325  virtual void Test(vtkTable*, vtkMultiBlockDataSet*, vtkTable*) = 0;
326 
330  virtual void SelectAssessFunctor(
331  vtkTable* outData, vtkDataObject* inMeta, vtkStringArray* rowNames, AssessFunctor*& dfunc) = 0;
332 
340 
341 private:
343  void operator=(const vtkStatisticsAlgorithm&) = delete;
344 };
345 
346 #endif
Wrapper around std::string to keep symbols short.
Definition: vtkStdString.h:38
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:332
Port 1 is for learn parameters (initial guesses, etc.)
A atomic type representing the union of many types.
Definition: vtkVariant.h:69
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:39
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:73
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:65
int FillOutputPortInformation(int port, vtkInformation *info) override
Fill the output port information objects for this algorithm.
Port 2 is for a priori models.