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

Servers/Filters/vtkRedistributePolyData.h

Go to the documentation of this file.
00001 /*=========================================================================
00002 
00003   Program:   ParaView
00004   Module:    $RCSfile: vtkRedistributePolyData.h,v $
00005 
00006   Copyright (c) Kitware, Inc.
00007   All rights reserved.
00008   See Copyright.txt or http://www.paraview.org/HTML/Copyright.html 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 =========================================================================*/
00015 /*----------------------------------------------------------------------------
00016  Copyright (c) Los Alamos National Laboratory
00017  See Copyright.txt or http://www.paraview.org/HTML/Copyright.html for details.
00018 ----------------------------------------------------------------------------*/
00019 
00025 #ifndef __vtkRedistributePolyData_h
00026 #define __vtkRedistributePolyData_h
00027 
00028 #include "vtkPolyDataToPolyDataFilter.h"
00029 
00030 //*******************************************************************
00031 class vtkDataArray;
00032 class vtkDataSetAttributes;
00033 class vtkMultiProcessController;
00034 class vtkSocketController;
00035 
00036 class VTK_EXPORT vtkRedistributePolyData : public vtkPolyDataToPolyDataFilter 
00037 {
00038 public:
00039   vtkTypeRevisionMacro(vtkRedistributePolyData, vtkPolyDataToPolyDataFilter);
00040   void PrintSelf(ostream& os, vtkIndent indent);
00041 
00042   static vtkRedistributePolyData *New();
00043 
00045 
00046   virtual void SetController(vtkMultiProcessController*);
00047   vtkGetObjectMacro(Controller, vtkMultiProcessController); 
00049 
00050   vtkGetMacro(ColorProc,int);
00051   vtkSetMacro(ColorProc,int);
00052   void SetColorProc() { this->ColorProc = 1; };
00053 
00055 
00056   virtual void SetSocketController(vtkSocketController*) {};
00057   virtual void SetPassThrough(int) {};
00058   virtual int  GetPassThrough() { return 0; };
00059   vtkBooleanMacro(PassThrough, int);
00061 
00062 protected:
00063   vtkRedistributePolyData();
00064   ~vtkRedistributePolyData();
00065 
00066 //BTX
00067   enum {
00068     CELL_ID_TAG        = 10,
00069     POINT_COORDS_TAG   = 20,
00070     NUM_POINTS_TAG     = 30,
00071     NUM_CELLS_TAG      = 40,
00072     BOUNDS_TAG         = 60,
00073     CNT_SEND_TAG       = 80,
00074     CNT_REC_TAG        = 90,
00075     SEND_PROC_TAG      = 100,
00076     SEND_NUM_TAG       = 110,
00077     REC_PROC_TAG       = 120,
00078     REC_NUM_TAG        = 130,
00079     NUM_CURR_CELLS_TAG = 140,
00080 
00081     CELL_CNT_TAG       = 150,
00082     CELL_TAG           = 160,
00083     POINTS_SIZE_TAG    = 170,
00084     POINTS_TAG         = 180
00085   };
00086 
00087   class VTK_EXPORT vtkCommSched
00088   {
00089   public:
00090     vtkCommSched();
00091     ~vtkCommSched();
00092    
00093     int SendCount;
00094     int ReceiveCount;
00095     int* SendTo;
00096     int* ReceiveFrom;
00097     vtkIdType* NumberOfCells;
00098     vtkIdType** SendNumber;
00099     vtkIdType** ReceiveNumber;
00100    
00101     vtkIdType*** SendCellList;
00102     vtkIdType** KeepCellList;
00103    
00104   private:
00105     vtkCommSched(const vtkCommSched&); // Not implemented
00106     void operator=(const vtkCommSched&); // Not implemented
00107   };
00108 
00109 //ETX
00110 
00111   virtual void MakeSchedule (vtkCommSched*);
00112   void OrderSchedule (vtkCommSched*);
00113 
00114   void SendCellSizes (vtkIdType*, vtkIdType*, vtkPolyData*, int, 
00115                       vtkIdType&, vtkIdType*, vtkIdType**); 
00116   void CopyCells (vtkIdType*,vtkPolyData*, vtkPolyData*, vtkIdType**); 
00117   void SendCells (vtkIdType*, vtkIdType*, vtkPolyData*, vtkPolyData*, 
00118                   int, vtkIdType&, vtkIdType*, vtkIdType**); 
00119   void ReceiveCells (vtkIdType*, vtkIdType*, vtkPolyData*, int, 
00120                      vtkIdType*, vtkIdType*, vtkIdType, vtkIdType);
00121 
00122   void FindMemReq (vtkIdType*, vtkPolyData*, vtkIdType&, vtkIdType*);
00123 
00124   void AllocateCellDataArrays (vtkDataSetAttributes*, vtkIdType**, 
00125                                int, vtkIdType*);
00126   void AllocatePointDataArrays (vtkDataSetAttributes*, vtkIdType*, 
00127                                 int, vtkIdType);
00128   void AllocateArrays (vtkDataArray*, vtkIdType);
00129 
00130   void CopyDataArrays(vtkDataSetAttributes*, vtkDataSetAttributes*,
00131                       vtkIdType, vtkIdType*, int);
00132 
00133   void CopyCellBlockDataArrays(vtkDataSetAttributes* , 
00134                                vtkDataSetAttributes* ,
00135                                vtkIdType , vtkIdType, 
00136                                vtkIdType, vtkIdType, int);
00137 
00138   void CopyArrays (vtkDataArray*, vtkDataArray*, vtkIdType, vtkIdType*, 
00139                    int); 
00140 
00141   void CopyBlockArrays (vtkDataArray*, vtkDataArray*, vtkIdType, 
00142                         vtkIdType, vtkIdType, vtkIdType, int); 
00143 
00144   void SendDataArrays (vtkDataSetAttributes*, vtkDataSetAttributes*,
00145                        vtkIdType, int, vtkIdType*, int); 
00146 
00147   void SendCellBlockDataArrays (vtkDataSetAttributes*, 
00148                                 vtkDataSetAttributes*,
00149                                 vtkIdType, int, vtkIdType, int); 
00150 
00151   void SendArrays (vtkDataArray*, vtkIdType, int, 
00152                    vtkIdType*, int); 
00153 
00154   void SendBlockArrays (vtkDataArray*, vtkIdType, int, 
00155                         vtkIdType, int); 
00156 
00157   void ReceiveDataArrays (vtkDataSetAttributes*, vtkIdType, int, 
00158                           vtkIdType*, int); 
00159 
00160   void ReceiveArrays (vtkDataArray*, vtkIdType, int, 
00161                       vtkIdType*, int); 
00162 
00163   void Execute();
00164 
00165   // Do this as a proprocessing step.
00166   void CompleteInputArrays(vtkPolyData* input);
00167   void ReceiveInputArrays(vtkDataSetAttributes* attr, int recFrom);
00168   void SendInputArrays(vtkDataSetAttributes* attr, int sendTo);
00169   int DoubleCheckArrays(vtkPolyData* input);
00170 
00171   vtkMultiProcessController *Controller;
00172 
00173   int ColorProc; // Set to 1 to color data according to processor
00174 
00175 private:
00176   vtkRedistributePolyData(const vtkRedistributePolyData&); // Not implemented
00177   void operator=(const vtkRedistributePolyData&); // Not implemented
00178   
00179 };
00180 
00181 //****************************************************************
00182 
00183 #endif
00184 
00185 

Generated on Tue May 30 12:31:47 2006 for ParaView by doxygen 1.3.5