00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00033 #ifndef __vtkAppendPolyData_h
00034 #define __vtkAppendPolyData_h
00035
00036 #include "vtkPolyDataAlgorithm.h"
00037
00038 class vtkCellArray;
00039 class vtkDataArray;
00040 class vtkPoints;
00041 class vtkPolyData;
00042
00043 class VTK_GRAPHICS_EXPORT vtkAppendPolyData : public vtkPolyDataAlgorithm
00044 {
00045 public:
00046 static vtkAppendPolyData *New();
00047
00048 vtkTypeRevisionMacro(vtkAppendPolyData,vtkPolyDataAlgorithm);
00049 void PrintSelf(ostream& os, vtkIndent indent);
00050
00052
00056 vtkSetMacro(UserManagedInputs,int);
00057 vtkGetMacro(UserManagedInputs,int);
00058 vtkBooleanMacro(UserManagedInputs,int);
00060
00063 void AddInput(vtkPolyData *);
00064
00067 void RemoveInput(vtkPolyData *);
00068
00070
00071 vtkPolyData *GetInput(int idx);
00072 vtkPolyData *GetInput() { return this->GetInput( 0 ); };
00074
00075
00078 void SetNumberOfInputs(int num);
00079
00080
00081 void SetInputByNumber(int num, vtkPolyData *input);
00082
00084
00091 vtkSetMacro(ParallelStreaming, int);
00092 vtkGetMacro(ParallelStreaming, int);
00093 vtkBooleanMacro(ParallelStreaming, int);
00095
00096
00097 int ExecuteAppend(vtkPolyData* output,
00098 vtkPolyData* inputs[], int numInputs);
00099
00100 protected:
00101 vtkAppendPolyData();
00102 ~vtkAppendPolyData();
00103
00104
00105 int ParallelStreaming;
00106
00107
00108 virtual int RequestData(vtkInformation *,
00109 vtkInformationVector **, vtkInformationVector *);
00110 virtual int RequestUpdateExtent(vtkInformation *,
00111 vtkInformationVector **, vtkInformationVector *);
00112 virtual int FillInputPortInformation(int, vtkInformation *);
00113
00114
00115 void AppendData(vtkDataArray *dest, vtkDataArray *src, vtkIdType offset);
00116 void AppendDifferentPoints(vtkDataArray *dest, vtkDataArray *src,
00117 vtkIdType offset);
00118 vtkIdType *AppendCells(vtkIdType *pDest, vtkCellArray *src,
00119 vtkIdType offset);
00120
00121 private:
00122
00123 void AddInput(vtkDataObject *)
00124 { vtkErrorMacro( << "AddInput() must be called with a vtkPolyData not a vtkDataObject."); };
00125
00126 int UserManagedInputs;
00127
00128 private:
00129 vtkAppendPolyData(const vtkAppendPolyData&);
00130 void operator=(const vtkAppendPolyData&);
00131 };
00132
00133 #endif
00134
00135