Main Page | Class Hierarchy | Alphabetical List | Class List | File List | Class Members | File Members | Related Pages

dox/Common/vtkProcessObject.h

Go to the documentation of this file.
00001 /*========================================================================= 00002 00003 Program: Visualization Toolkit 00004 Module: $RCSfile: vtkProcessObject.h,v $ 00005 00006 Copyright (c) Ken Martin, Will Schroeder, Bill Lorensen 00007 All rights reserved. 00008 See Copyright.txt or http://www.kitware.com/Copyright.htm for details. 00009 00010 This software is distributed WITHOUT ANY WARRANTY; without even 00011 the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR 00012 PURPOSE. See the above copyright notice for more information. 00013 00014 =========================================================================*/ 00047 #ifndef __vtkProcessObject_h 00048 #define __vtkProcessObject_h 00049 00050 #include "vtkObject.h" 00051 00052 class vtkDataObject; 00053 00054 class VTK_COMMON_EXPORT vtkProcessObject : public vtkObject 00055 { 00056 public: 00057 vtkTypeRevisionMacro(vtkProcessObject,vtkObject); 00058 void PrintSelf(ostream& os, vtkIndent indent); 00059 00061 00063 vtkSetMacro(AbortExecute,int); 00064 vtkGetMacro(AbortExecute,int); 00065 vtkBooleanMacro(AbortExecute,int); 00067 00069 00070 vtkSetClampMacro(Progress,double,0.0,1.0); 00071 vtkGetMacro(Progress,double); 00073 00077 void UpdateProgress(double amount); 00078 00080 00082 vtkSetStringMacro(ProgressText); 00083 vtkGetStringMacro(ProgressText); 00085 00086 // left public for performance since it is used in inner loops 00087 int AbortExecute; 00088 00090 00092 vtkDataObject **GetInputs() {return this->Inputs;} 00093 vtkGetMacro(NumberOfInputs,int); 00095 00098 void SqueezeInputArray(); 00099 00101 void RemoveAllInputs(); 00102 00104 00106 vtkGetMacro( ErrorCode, unsigned long ); 00108 00109 protected: 00110 vtkProcessObject(); 00111 ~vtkProcessObject(); 00112 00113 // Progress/Update handling 00114 double Progress; 00115 char *ProgressText; 00116 00117 int NumberOfInputs; 00118 int NumberOfRequiredInputs; 00119 vtkDataObject **Inputs; //An array of the inputs to the filter 00120 // Temporary arrays used internally. 00121 // It is only valid after SortInputsByLocality is called. 00122 vtkDataObject **SortedInputs; // Inputs sorted by locality 00123 // We need a second array for an effficeint search. 00124 // This array is never valid. 00125 vtkDataObject **SortedInputs2; 00126 void SortInputsByLocality(); 00127 // A helper method for quicksort. 00128 void SortMerge(vtkDataObject **a1, int l1, 00129 vtkDataObject **a2, int l2, 00130 vtkDataObject **results); 00131 00132 // Called to allocate the input array. Copies old inputs. 00133 void SetNumberOfInputs(int num); 00134 00135 // protected methods for setting inputs. 00136 virtual void SetNthInput(int num, vtkDataObject *input); 00137 virtual void AddInput(vtkDataObject *input); 00138 virtual void RemoveInput(vtkDataObject *input); 00139 00141 00143 vtkSetMacro( ErrorCode, unsigned long ); 00144 unsigned long ErrorCode; 00146 00147 private: 00148 vtkProcessObject(const vtkProcessObject&); // Not implemented. 00149 void operator=(const vtkProcessObject&); // Not implemented. 00150 }; 00151 00152 #endif 00153