VTK
vtkProcessObject.h
Go to the documentation of this file.
1 /*=========================================================================
2 
3  Program: Visualization Toolkit
4  Module: vtkProcessObject.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 =========================================================================*/
44 #ifndef __vtkProcessObject_h
45 #define __vtkProcessObject_h
46 
47 #include "vtkAlgorithm.h"
48 
49 class vtkDataObject;
50 
52 {
53 public:
55  void PrintSelf(ostream& os, vtkIndent indent);
56 
58 
60  vtkDataObject **GetInputs();
61  int GetNumberOfInputs();
63 
66  void SqueezeInputArray();
67 
69  void RemoveAllInputs();
70 
72 
74  virtual void SetInputConnection(vtkAlgorithmOutput* input) {
75  this->vtkAlgorithm::SetInputConnection(input); }
76  virtual void SetInputConnection(int port, vtkAlgorithmOutput* input);
77  virtual void AddInputConnection(int port, vtkAlgorithmOutput* input);
79  {
80  this->AddInputConnection(0, input);
81  }
82  virtual void RemoveInputConnection(int port, vtkAlgorithmOutput* input);
83  virtual void SetNthInputConnection(int port, int index,
84  vtkAlgorithmOutput* input);
85  virtual void SetNumberOfInputConnections(int port, int n);
86 protected:
90 
93  vtkDataObject **Inputs; //An array of the inputs to the filter
94 
95  // Called to allocate the input array. Copies old inputs.
96  void SetNumberOfInputs(int num);
97 
98  // protected methods for setting inputs.
99  virtual void SetNthInput(int num, vtkDataObject *input);
100  virtual void AddInput(vtkDataObject *input);
101  virtual void RemoveInput(vtkDataObject *input);
102 
103  virtual void ReportReferences(vtkGarbageCollector*);
104 
105  // Implement methods required by vtkAlgorithm.
106  virtual int FillInputPortInformation(int, vtkInformation*);
107  virtual int FillOutputPortInformation(int, vtkInformation*);
108 
109  // Helper methods for compatibility layer.
110  void AddInputInternal(vtkDataObject* input);
111  void RemoveInputInternal(vtkDataObject* input);
112  void SetupInputs();
113 
114 private:
115  vtkProcessObject(const vtkProcessObject&); // Not implemented.
116  void operator=(const vtkProcessObject&); // Not implemented.
117 };
118 
119 #endif
120 
Store vtkAlgorithm input/output information.
#define VTK_FILTERING_EXPORT
Detect and break reference loops.
Proxy object to connect input/output ports.
void RemoveAllInputs()
virtual void ReportReferences(vtkGarbageCollector *)
virtual void SetInputConnection(vtkAlgorithmOutput *input)
Superclass for all sources, filters, and sinks in VTK.
Definition: vtkAlgorithm.h:59
virtual void SetNumberOfInputConnections(int port, int n)
virtual int FillOutputPortInformation(int port, vtkInformation *info)
a simple class to control print indentation
Definition: vtkIndent.h:37
virtual void SetInputConnection(int port, vtkAlgorithmOutput *input)
abstract class specifies interface for visualization filters
virtual int FillInputPortInformation(int port, vtkInformation *info)
virtual void AddInputConnection(vtkAlgorithmOutput *input)
virtual void AddInputConnection(int port, vtkAlgorithmOutput *input)
helper class to get VTK data object types as string and instantiate them
virtual void SetNthInputConnection(int port, int index, vtkAlgorithmOutput *input)
vtkDataObject ** Inputs
void PrintSelf(ostream &os, vtkIndent indent)
virtual void RemoveInputConnection(int port, vtkAlgorithmOutput *input)