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

Servers/Filters/vtkTiledDisplaySchedule.h

Go to the documentation of this file.
00001 /*=========================================================================
00002 
00003   Program:   ParaView
00004   Module:    $RCSfile: vtkTiledDisplaySchedule.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 =========================================================================*/
00026 #ifndef __vtkTiledDisplaySchedule_h
00027 #define __vtkTiledDisplaySchedule_h
00028 
00029 #include "vtkObject.h"
00030 class vtkTiledDisplayProcess;
00031 class vtkTiledDisplayElement;
00032 
00033 class VTK_EXPORT vtkTiledDisplaySchedule : public vtkObject
00034 {
00035 public:
00036   static vtkTiledDisplaySchedule *New();
00037   vtkTypeRevisionMacro(vtkTiledDisplaySchedule,vtkObject);
00038   void PrintSelf(ostream& os, vtkIndent indent);
00039 
00041 
00043   int GetProcessTileId(int procIdx);
00044   int GetNumberOfProcessElements(int procIdx);
00045   int GetElementOtherProcessId(int procIdx, int elementIdx);
00046   int GetElementReceiveFlag(int procIdx, int elementIdx);
00047   int GetElementTileId(int procIdx, int elementIdx);
00049 
00051 
00052   vtkGetMacro(NumberOfProcesses,int);
00054 
00056 
00057   vtkGetMacro(NumberOfTiles,int);
00059 
00064   void InitializeForTile(int tileId, int tileProcess, int numProcs);
00065 
00070   void InitializeTiles(int numberOfTiles, int numProcs);
00071 
00072 
00073 protected:
00074   vtkTiledDisplaySchedule();
00075   ~vtkTiledDisplaySchedule();
00076 
00077   // Swaps processes if benefits global totals.
00078   // Also recomputes global totals.
00079   int SwapIfApproporiate(int pid1, int pid2,
00080                          int* totalProcessLengths);
00081   void ComputeElementOtherProcessIds();
00082 
00083   int ShuffleLevel(int level, int numTiles, 
00084                    vtkTiledDisplaySchedule** tileSchedules);
00085   int FindOtherElementIdx(vtkTiledDisplayProcess* p, 
00086                           vtkTiledDisplayElement* e,
00087                           int pId);
00088 
00089 
00090   int NumberOfProcesses; // User set.
00091   int NumberOfTiles;
00092 
00093   int ProcessArrayLength; // Set durring allocation.
00094   vtkTiledDisplayProcess** Processes;
00095   
00096 
00097 private:
00098   vtkTiledDisplaySchedule(const vtkTiledDisplaySchedule&); // Not implemented
00099   void operator=(const vtkTiledDisplaySchedule&); // Not implemented
00100 };
00101 
00102 #endif

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