ParaView
vtkSortedTableStreamer.h
Go to the documentation of this file.
1 /*=========================================================================
2 
3  Program: Visualization Toolkit
4  Module: vtkSortedTableStreamer.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 =========================================================================*/
25 #ifndef vtkSortedTableStreamer_h
26 #define vtkSortedTableStreamer_h
27 
28 #include "vtkPVVTKExtensionsRenderingModule.h" // needed for export macro
29 #include "vtkTableAlgorithm.h"
30 class vtkTable;
31 class vtkDataArray;
32 class vtkMultiProcessController;
33 
34 class VTKPVVTKEXTENSIONSRENDERING_EXPORT vtkSortedTableStreamer : public vtkTableAlgorithm
35 {
36 private:
37  class InternalsBase;
38  template <class T>
39  class Internals;
40  InternalsBase* Internal;
41 
42 public:
43  static void PrintInfo(vtkTable* input);
45 
49  static bool TestInternalClasses();
50  static vtkSortedTableStreamer* New();
51  vtkTypeMacro(vtkSortedTableStreamer, vtkTableAlgorithm);
52  void PrintSelf(ostream& os, vtkIndent indent);
54 
58  int FillInputPortInformation(int port, vtkInformation* info);
59 
61 
64  vtkGetMacro(Block, vtkIdType);
65  vtkSetMacro(Block, vtkIdType);
67 
69 
72  vtkGetMacro(BlockSize, vtkIdType);
73  vtkSetMacro(BlockSize, vtkIdType);
75 
77 
80  vtkGetMacro(SelectedComponent, int);
81  vtkSetMacro(SelectedComponent, int);
83 
85 
88  void SetController(vtkMultiProcessController*);
89  vtkGetObjectMacro(Controller, vtkMultiProcessController);
91 
95  const char* GetColumnNameToSort();
96 
97  // Update column to sort has well as invalidating the pre-processing
98  void SetColumnNameToSort(const char* columnName);
99 
100  // Choose if the sorting order should be inverted or not
101  void SetInvertOrder(int newValue);
102  vtkGetMacro(InvertOrder, int);
103 
104 protected:
107 
108  int RequestData(vtkInformation*, vtkInformationVector**, vtkInformationVector*);
109 
110  void CreateInternalIfNeeded(vtkTable* input, vtkDataArray* data);
111  vtkDataArray* GetDataArrayToProcess(vtkTable* input);
112 
114 
117  vtkGetStringMacro(ColumnToSort);
118  vtkSetStringMacro(ColumnToSort);
120 
121  vtkIdType Block;
122  vtkIdType BlockSize;
123  vtkMultiProcessController* Controller;
124 
128 
129 private:
130  vtkSortedTableStreamer(const vtkSortedTableStreamer&) VTK_DELETE_FUNCTION;
131  void operator=(const vtkSortedTableStreamer&) VTK_DELETE_FUNCTION;
132 };
133 
134 #endif
return a sorted subset of the original table
vtkMultiProcessController * Controller