VTK
vtkProgrammableFilter.h
Go to the documentation of this file.
1 /*=========================================================================
2 
3  Program: Visualization Toolkit
4  Module: vtkProgrammableFilter.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 =========================================================================*/
46 #ifndef vtkProgrammableFilter_h
47 #define vtkProgrammableFilter_h
48 
49 #include "vtkFiltersProgrammableModule.h" // For export macro
51 
52 class vtkGraph;
53 class vtkTable;
54 
55 class VTKFILTERSPROGRAMMABLE_EXPORT vtkProgrammableFilter : public vtkPassInputTypeAlgorithm
56 {
57 public:
58  static vtkProgrammableFilter *New();
60  void PrintSelf(ostream& os, vtkIndent indent);
61 
71  typedef void (*ProgrammableMethodCallbackType)(void *arg);
72 
77  void SetExecuteMethod(void (*f)(void *), void *arg);
78 
82  void SetExecuteMethodArgDelete(void (*f)(void *));
83 
90  vtkPolyData *GetPolyDataInput();
91 
95  vtkStructuredPoints *GetStructuredPointsInput();
96 
100  vtkStructuredGrid *GetStructuredGridInput();
101 
105  vtkUnstructuredGrid *GetUnstructuredGridInput();
106 
110  vtkRectilinearGrid *GetRectilinearGridInput();
111 
115  vtkGraph *GetGraphInput();
116 
117 
121  vtkTable *GetTableInput();
122 
124 
128  vtkSetMacro(CopyArrays, bool);
129  vtkGetMacro(CopyArrays, bool);
130  vtkBooleanMacro(CopyArrays, bool);
132 
133 protected:
136 
139 
140  ProgrammableMethodCallbackType ExecuteMethod; //function to invoke
141  ProgrammableMethodCallbackType ExecuteMethodArgDelete;
143 
145 
146 private:
147  vtkProgrammableFilter(const vtkProgrammableFilter&) VTK_DELETE_FUNCTION;
148  void operator=(const vtkProgrammableFilter&) VTK_DELETE_FUNCTION;
149 };
150 
151 #endif
152 
153 // VTK-HeaderTest-Exclude: vtkProgrammableFilter.h
a dataset that is topologically regular with variable spacing in the three coordinate directions ...
Superclass for algorithms that produce output of the same type as input.
Store vtkAlgorithm input/output information.
concrete dataset represents vertices, lines, polygons, and triangle strips
Definition: vtkPolyData.h:85
Base class for graph data types.
Definition: vtkGraph.h:287
a simple class to control print indentation
Definition: vtkIndent.h:39
dataset represents arbitrary combinations of all possible cell types
int FillInputPortInformation(int port, vtkInformation *info) override
Fill the input port information objects for this algorithm.
vtkSetMacro(IgnoreDriverBugs, bool)
When set known driver bugs are ignored during driver feature detection.
A table, which contains similar-typed columns of data.
Definition: vtkTable.h:68
A subclass of ImageData.
topologically regular array of data
void PrintSelf(ostream &os, vtkIndent indent) override
Methods invoked by print to print information about the object including superclasses.
Store zero or more vtkInformation instances.
vtkBooleanMacro(IgnoreDriverBugs, bool)
When set known driver bugs are ignored during driver feature detection.
ProgrammableMethodCallbackType ExecuteMethodArgDelete
ProgrammableMethodCallbackType ExecuteMethod
a user-programmable filter
virtual int RequestData(vtkInformation *, vtkInformationVector **, vtkInformationVector *)
This is called within ProcessRequest when a request asks the algorithm to do its work.
static vtkPassInputTypeAlgorithm * New()