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
vtkTableAlgorithm::PrintSelf
void PrintSelf(ostream &os, vtkIndent indent) override
Methods invoked by print to print information about the object including superclasses.
vtkStatisticsAlgorithm::SetInputModel
virtual void SetInputModel(vtkDataObject *model)
A convenience method for setting the input model (if one is expected or allowed).
Definition: vtkStatisticsAlgorithm.h:128
vtkStatisticsAlgorithm::SetLearnOptionParameters
virtual void SetLearnOptionParameters(vtkDataObject *params)
A convenience method for setting learn input parameters (if one is expected or allowed).
Definition: vtkStatisticsAlgorithm.h:110
vtkX3D::value
@ value
Definition: vtkX3D.h:226
vtkStatisticsAlgorithmPrivate
Definition: vtkStatisticsAlgorithmPrivate.h:41
vtkIdType
int vtkIdType
Definition: vtkType.h:338
vtkDataObjectCollection
maintain an unordered list of data objects
Definition: vtkDataObjectCollection.h:31
vtkInformationVector
Store zero or more vtkInformation instances.
Definition: vtkInformationVector.h:35
vtkTable
A table, which contains similar-typed columns of data.
Definition: vtkTable.h:62
vtkStatisticsAlgorithm::TestOption
bool TestOption
Definition: vtkStatisticsAlgorithm.h:334
vtkVariantArray
An array holding vtkVariants.
Definition: vtkVariantArray.h:49
vtkStatisticsAlgorithm::SetInputModelConnection
virtual void SetInputModelConnection(vtkAlgorithmOutput *model)
A convenience method for setting the input model connection (if one is expected or allowed).
Definition: vtkStatisticsAlgorithm.h:119
vtkStatisticsAlgorithm::AssessFunctor
A base class for a functor that assesses data.
Definition: vtkStatisticsAlgorithm.h:185
vtkMultiBlockDataSet
Composite dataset that organizes datasets into blocks.
Definition: vtkMultiBlockDataSet.h:45
vtkStatisticsAlgorithm::LEARN_PARAMETERS
@ LEARN_PARAMETERS
Port 1 is for learn parameters (initial guesses, etc.)
Definition: vtkStatisticsAlgorithm.h:83
vtkStatisticsAlgorithm::LearnOption
bool LearnOption
Definition: vtkStatisticsAlgorithm.h:331
vtkX3D::port
@ port
Definition: vtkX3D.h:453
vtkStatisticsAlgorithm::AssessFunctor::~AssessFunctor
virtual ~AssessFunctor()
Definition: vtkStatisticsAlgorithm.h:189
vtkStatisticsAlgorithm::INPUT_MODEL
@ INPUT_MODEL
Port 2 is for a priori models.
Definition: vtkStatisticsAlgorithm.h:84
vtkTableAlgorithm
Superclass for algorithms that produce only vtkTables as output.
Definition: vtkTableAlgorithm.h:48
vtkStatisticsAlgorithm::AssessOption
bool AssessOption
Definition: vtkStatisticsAlgorithm.h:333
impl::Test
int Test(int argc, char *argv[], const char *dfile, const InitializationCallback &initCallback)
Definition: TestMotionFXCFGReaderCommon.h:109
vtkIndent
a simple class to control print indentation
Definition: vtkIndent.h:33
vtkVariant
A atomic type representing the union of many types.
Definition: vtkVariant.h:65
vtkTableAlgorithm::SetInputData
void SetInputData(vtkDataObject *obj)
Assign a data object as input.
Definition: vtkTableAlgorithm.h:72
vtkTableAlgorithm::FillInputPortInformation
int FillInputPortInformation(int port, vtkInformation *info) override
Fill the input port information objects for this algorithm.
vtkStatisticsAlgorithm::AssessNames
vtkStringArray * AssessNames
Definition: vtkStatisticsAlgorithm.h:335
vtkAlgorithm::SetInputConnection
virtual void SetInputConnection(int port, vtkAlgorithmOutput *input)
Set the connection for the given input port index.
vtkInformation
Store vtkAlgorithm input/output information.
Definition: vtkInformation.h:73
vtkX3D::info
@ info
Definition: vtkX3D.h:382
vtkStatisticsAlgorithm::Internals
vtkStatisticsAlgorithmPrivate * Internals
Definition: vtkStatisticsAlgorithm.h:336
vtkAlgorithmOutput
Proxy object to connect input/output ports.
Definition: vtkAlgorithmOutput.h:36
vtkStatisticsAlgorithm::NumberOfPrimaryTables
vtkIdType NumberOfPrimaryTables
Definition: vtkStatisticsAlgorithm.h:330
vtkStringArray
a vtkAbstractArray subclass for strings
Definition: vtkStringArray.h:36
vtkStatisticsAlgorithm::SetLearnOptionParameterConnection
virtual void SetLearnOptionParameterConnection(vtkAlgorithmOutput *params)
A convenience method for setting learn input parameters (if one is expected or allowed).
Definition: vtkStatisticsAlgorithm.h:101
vtkTableAlgorithm.h
vtkDoubleArray
dynamic, self-adjusting array of double
Definition: vtkDoubleArray.h:35
vtkStatisticsAlgorithm::InputPorts
InputPorts
enumeration values to specify input port types
Definition: vtkStatisticsAlgorithm.h:80
vtkStdString
Wrapper around std::string to keep symbols short.
Definition: vtkStdString.h:34
vtkStatisticsAlgorithm
Base class for statistics algorithms.
Definition: vtkStatisticsAlgorithm.h:71
vtkX3D::parameter
@ parameter
Definition: vtkX3D.h:449
vtkDataObject
general representation of visualization data
Definition: vtkDataObject.h:59
vtkStatisticsAlgorithm::DeriveOption
bool DeriveOption
Definition: vtkStatisticsAlgorithm.h:332
vtkTableAlgorithm::RequestData
virtual int RequestData(vtkInformation *request, vtkInformationVector **inputVector, vtkInformationVector *outputVector)
This is called by the superclass.
vtkX3D::index
@ index
Definition: vtkX3D.h:252
vtkStatisticsAlgorithm::OutputIndices
OutputIndices
enumeration values to specify output port types
Definition: vtkStatisticsAlgorithm.h:90
vtkTableAlgorithm::FillOutputPortInformation
int FillOutputPortInformation(int port, vtkInformation *info) override
Fill the output port information objects for this algorithm.