VTK  9.3.1
vtkStatisticsAlgorithm.h
Go to the documentation of this file.
1 // SPDX-FileCopyrightText: Copyright (c) Ken Martin, Will Schroeder, Bill Lorensen
2 // SPDX-FileCopyrightText: Copyright 2011 Sandia Corporation
3 // SPDX-License-Identifier: LicenseRef-BSD-3-Clause-Sandia-USGov
43 #ifndef vtkStatisticsAlgorithm_h
44 #define vtkStatisticsAlgorithm_h
45 
46 #include "vtkFiltersStatisticsModule.h" // For export macro
47 #include "vtkTableAlgorithm.h"
48 
49 VTK_ABI_NAMESPACE_BEGIN
52 class vtkStdString;
53 class vtkStringArray;
54 class vtkVariant;
55 class vtkVariantArray;
56 class vtkDoubleArray;
58 
59 class VTKFILTERSSTATISTICS_EXPORT vtkStatisticsAlgorithm : public vtkTableAlgorithm
60 {
61 public:
63  void PrintSelf(ostream& os, vtkIndent indent) override;
64 
69  {
70  INPUT_DATA = 0,
71  LEARN_PARAMETERS = 1,
72  INPUT_MODEL = 2
73  };
74 
79  {
80  OUTPUT_DATA = 0,
81  OUTPUT_MODEL = 1,
82  OUTPUT_TEST = 2
83  };
84 
90  {
92  }
93 
99  {
101  }
102 
108  {
110  }
111 
116  virtual void SetInputModel(vtkDataObject* model)
117  {
119  }
120 
122 
125  vtkSetMacro(LearnOption, bool);
126  vtkGetMacro(LearnOption, bool);
128 
130 
133  vtkSetMacro(DeriveOption, bool);
134  vtkGetMacro(DeriveOption, bool);
136 
138 
141  vtkSetMacro(AssessOption, bool);
142  vtkGetMacro(AssessOption, bool);
144 
146 
149  vtkSetMacro(TestOption, bool);
150  vtkGetMacro(TestOption, bool);
152 
154 
157  vtkSetMacro(NumberOfPrimaryTables, vtkIdType);
158  vtkGetMacro(NumberOfPrimaryTables, vtkIdType);
160 
162 
165  virtual void SetAssessNames(vtkStringArray*);
166  vtkGetObjectMacro(AssessNames, vtkStringArray);
168 
170 
174  {
175  public:
176  virtual void operator()(vtkDoubleArray*, vtkIdType) = 0;
177  virtual ~AssessFunctor() = default;
178  };
180 
194  virtual void SetColumnStatus(const char* namCol, int status);
195 
199  virtual void ResetAllColumnStates();
200 
205  virtual int RequestSelectedColumns();
206 
210  virtual void ResetRequests();
211 
219  virtual vtkIdType GetNumberOfRequests();
220 
224  virtual vtkIdType GetNumberOfColumnsForRequest(vtkIdType request);
225 
239  virtual const char* GetColumnForRequest(vtkIdType r, vtkIdType c);
240 
241  virtual int GetColumnForRequest(vtkIdType r, vtkIdType c, vtkStdString& columnName);
242 
250  void AddColumn(const char* namCol);
251 
262  void AddColumnPair(const char* namColX, const char* namColY);
263 
271  virtual bool SetParameter(const char* parameter, int index, vtkVariant value);
272 
276  virtual void Aggregate(vtkDataObjectCollection*, vtkMultiBlockDataSet*) = 0;
277 
278 protected:
280  ~vtkStatisticsAlgorithm() override;
281 
282  int FillInputPortInformation(int port, vtkInformation* info) override;
284 
286 
290  virtual void Learn(vtkTable*, vtkTable*, vtkMultiBlockDataSet*) = 0;
291 
295  virtual void Derive(vtkMultiBlockDataSet*) = 0;
296 
300  virtual void Assess(vtkTable*, vtkMultiBlockDataSet*, vtkTable*) = 0;
301 
305  void Assess(vtkTable*, vtkMultiBlockDataSet*, vtkTable*, int);
306 
310  virtual void Test(vtkTable*, vtkMultiBlockDataSet*, vtkTable*) = 0;
311 
315  virtual void SelectAssessFunctor(
316  vtkTable* outData, vtkDataObject* inMeta, vtkStringArray* rowNames, AssessFunctor*& dfunc) = 0;
317 
325 
326 private:
328  void operator=(const vtkStatisticsAlgorithm&) = delete;
329 };
330 
331 VTK_ABI_NAMESPACE_END
332 #endif
Wrapper around std::string to keep symbols short.
Definition: vtkStdString.h:28
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:315
Port 1 is for learn parameters (initial guesses, etc.)
A type representing the union of many types.
Definition: vtkVariant.h:52
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:28
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:58
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:54
int FillOutputPortInformation(int port, vtkInformation *info) override
Fill the output port information objects for this algorithm.
Port 2 is for a priori models.