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

dox/Graphics/vtkAppendPolyData.h

Go to the documentation of this file.
00001 /*========================================================================= 00002 00003 Program: Visualization Toolkit 00004 Module: $RCSfile: vtkAppendPolyData.h,v $ 00005 Language: C++ 00006 00007 Copyright (c) 1993-2002 Ken Martin, Will Schroeder, Bill Lorensen 00008 All rights reserved. 00009 See Copyright.txt or http://www.kitware.com/Copyright.htm for details. 00010 00011 This software is distributed WITHOUT ANY WARRANTY; without even 00012 the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR 00013 PURPOSE. See the above copyright notice for more information. 00014 00015 =========================================================================*/ 00040 #ifndef __vtkAppendPolyData_h 00041 #define __vtkAppendPolyData_h 00042 00043 #include "vtkPolyDataToPolyDataFilter.h" 00044 00045 class vtkCellArray; 00046 class vtkDataArray; 00047 class vtkPoints; 00048 class vtkPolyData; 00049 00050 class VTK_GRAPHICS_EXPORT vtkAppendPolyData : public vtkPolyDataToPolyDataFilter 00051 { 00052 public: 00053 static vtkAppendPolyData *New(); 00054 00055 vtkTypeRevisionMacro(vtkAppendPolyData,vtkPolyDataToPolyDataFilter); 00056 void PrintSelf(ostream& os, vtkIndent indent); 00057 00059 00063 vtkSetMacro(UserManagedInputs,int); 00064 vtkGetMacro(UserManagedInputs,int); 00065 vtkBooleanMacro(UserManagedInputs,int); 00067 00070 void AddInput(vtkPolyData *); 00071 00074 void RemoveInput(vtkPolyData *); 00075 00077 00078 vtkPolyData *GetInput(int idx); 00079 vtkPolyData *GetInput() { return this->GetInput( 0 ); }; 00081 00084 void SetNumberOfInputs(int num); 00085 00086 // Set Nth input, should only be used when UserManagedInputs is true. 00087 void SetInputByNumber(int num, vtkPolyData *input); 00088 00090 00097 vtkSetMacro(ParallelStreaming, int); 00098 vtkGetMacro(ParallelStreaming, int); 00099 vtkBooleanMacro(ParallelStreaming, int); 00101 00102 protected: 00103 vtkAppendPolyData(); 00104 ~vtkAppendPolyData(); 00105 00106 // Flag for selecting parallel streaming behavior 00107 int ParallelStreaming; 00108 00109 // Usual data generation method 00110 void Execute(); 00111 00112 void ComputeInputUpdateExtents(vtkDataObject *output); 00113 00114 // An efficient way to append data/cells. 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 // hide the superclass' AddInput() from the user and the compiler 00123 void AddInput(vtkDataObject *) 00124 { vtkErrorMacro( << "AddInput() must be called with a vtkPolyData not a vtkDataObject."); }; 00125 void RemoveInput(vtkDataObject *input) 00126 { this->vtkProcessObject::RemoveInput(input); 00127 this->vtkProcessObject::SqueezeInputArray();}; 00128 int UserManagedInputs; 00129 private: 00130 vtkAppendPolyData(const vtkAppendPolyData&); // Not implemented. 00131 void operator=(const vtkAppendPolyData&); // Not implemented. 00132 }; 00133 00134 #endif 00135 00136