VTK
vtkReduceTable.h
Go to the documentation of this file.
1/*=========================================================================
2
3 Program: Visualization Toolkit
4 Module: vtkReduceTable.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=========================================================================*/
39#ifndef vtkReduceTable_h
40#define vtkReduceTable_h
41
42#include "vtkInfovisCoreModule.h" // For export macro
43#include "vtkTableAlgorithm.h"
44
45#include <map> // For ivar
46#include <set> // For ivar
47#include <vector> // For ivar
48
49class vtkVariant;
50
51class VTKINFOVISCORE_EXPORT vtkReduceTable : public vtkTableAlgorithm
52{
53public:
56 void PrintSelf(ostream& os, vtkIndent indent);
57
59
64 vtkGetMacro(IndexColumn, vtkIdType);
65 vtkSetMacro(IndexColumn, vtkIdType);
67
69
73 vtkGetMacro(NumericalReductionMethod, int);
74 vtkSetMacro(NumericalReductionMethod, int);
76
78
82 vtkGetMacro(NonNumericalReductionMethod, int);
83 vtkSetMacro(NonNumericalReductionMethod, int);
85
92
98
102 enum
103 {
106 MODE
107 };
108
109protected:
112
117
123
129
134
140 void PopulateDataColumn(vtkTable *input, vtkTable *output, vtkIdType col);
141
147 vtkIdType row, vtkIdType col,
148 std::vector<vtkIdType> oldRows);
149
155 vtkIdType row, vtkIdType col,
156 std::vector<vtkIdType> oldRows);
157
163 vtkIdType row, vtkIdType col,
164 std::vector<vtkIdType> oldRows);
165
167 std::set<vtkVariant> IndexValues;
168 std::map<vtkVariant, std::vector<vtkIdType> > NewRowToOldRowsMap;
169 std::map<vtkIdType, int> ColumnReductionMethods;
170
173
174private:
175 vtkReduceTable(const vtkReduceTable&) VTK_DELETE_FUNCTION;
176 void operator=(const vtkReduceTable&) VTK_DELETE_FUNCTION;
177};
178
179#endif
a simple class to control print indentation
Definition: vtkIndent.h:40
Store zero or more vtkInformation instances.
Store vtkAlgorithm input/output information.
combine some of the rows of a table
int GetReductionMethodForColumn(vtkIdType col)
Get the method that should be used to combine the values within the specified column.
std::map< vtkIdType, int > ColumnReductionMethods
int NumericalReductionMethod
int NonNumericalReductionMethod
std::map< vtkVariant, std::vector< vtkIdType > > NewRowToOldRowsMap
void AccumulateIndexValues(vtkTable *input)
Find the distinct values in the input table's index column.
void SetReductionMethodForColumn(vtkIdType col, int method)
Set the method that should be used to combine the values within the specified column.
void PrintSelf(ostream &os, vtkIndent indent)
Methods invoked by print to print information about the object including superclasses.
void ReduceValuesToMedian(vtkTable *input, vtkTable *output, vtkIdType row, vtkIdType col, std::vector< vtkIdType > oldRows)
Find the median of a series of values from the input table and store it in the output table.
static vtkReduceTable * New()
void ReduceValuesToMean(vtkTable *input, vtkTable *output, vtkIdType row, vtkIdType col, std::vector< vtkIdType > oldRows)
Find the mean of a series of values from the input table and store it in the output table.
void ReduceValuesToMode(vtkTable *input, vtkTable *output, vtkIdType row, vtkIdType col, std::vector< vtkIdType > oldRows)
Find the mode of a series of values from the input table and store it in the output table.
int RequestData(vtkInformation *, vtkInformationVector **, vtkInformationVector *)
This is called by the superclass.
std::set< vtkVariant > IndexValues
void PopulateDataColumn(vtkTable *input, vtkTable *output, vtkIdType col)
Populate a non-index column of the output table.
vtkIdType IndexColumn
void PopulateIndexColumn(vtkTable *output)
Populate the index column of the output table.
void InitializeOutputTable(vtkTable *input, vtkTable *output)
Initialize the output table to have the same types of columns as the input table, but no rows.
Superclass for algorithms that produce only vtkTables as output.
A table, which contains similar-typed columns of data.
Definition: vtkTable.h:69
A atomic type representing the union of many types.
Definition: vtkVariant.h:76
vtkSetMacro(IgnoreDriverBugs, bool)
Updates the extensions string.
int vtkIdType
Definition: vtkType.h:287