vtkExtentTranslator.h
Go to the documentation of this file.00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00031 #ifndef __vtkExtentTranslator_h
00032 #define __vtkExtentTranslator_h
00033
00034 #include "vtkObject.h"
00035
00036
00037 class VTK_COMMON_EXPORT vtkExtentTranslator : public vtkObject
00038 {
00039 public:
00040 static vtkExtentTranslator *New();
00041
00042 vtkTypeRevisionMacro(vtkExtentTranslator,vtkObject);
00043 void PrintSelf(ostream& os, vtkIndent indent);
00044
00046
00048 vtkSetVector6Macro(WholeExtent, int);
00049 vtkGetVector6Macro(WholeExtent, int);
00050 vtkSetVector6Macro(Extent, int);
00051 vtkGetVector6Macro(Extent, int);
00052 vtkSetMacro(Piece,int);
00053 vtkGetMacro(Piece,int);
00054 vtkSetMacro(NumberOfPieces,int);
00055 vtkGetMacro(NumberOfPieces,int);
00056 vtkSetMacro(GhostLevel, int);
00057 vtkGetMacro(GhostLevel, int);
00059
00061
00066 virtual int PieceToExtent();
00067 virtual int PieceToExtentByPoints();
00068 virtual int PieceToExtentThreadSafe(int piece, int numPieces,
00069 int ghostLevel, int *wholeExtent,
00070 int *resultExtent, int splitMode,
00071 int byPoints);
00073
00074
00075
00077
00081 void SetSplitModeToBlock()
00082 {this->SplitMode = vtkExtentTranslator::BLOCK_MODE;}
00083 void SetSplitModeToXSlab()
00084 {this->SplitMode = vtkExtentTranslator::X_SLAB_MODE;}
00085 void SetSplitModeToYSlab()
00086 {this->SplitMode = vtkExtentTranslator::Y_SLAB_MODE;}
00087 void SetSplitModeToZSlab()
00088 {this->SplitMode = vtkExtentTranslator::Z_SLAB_MODE;}
00089 vtkGetMacro(SplitMode,int);
00091
00092 protected:
00093 vtkExtentTranslator();
00094 ~vtkExtentTranslator();
00095
00097
00099 int SplitExtent(int piece, int numPieces, int *extent, int splitMode);
00100 int SplitExtentByPoints(int piece, int numPieces, int *extent,
00101 int splitMode);
00103
00104 int Piece;
00105 int NumberOfPieces;
00106 int GhostLevel;
00107 int Extent[6];
00108 int WholeExtent[6];
00109 int SplitMode;
00110
00111
00112
00113
00114 enum Modes {
00115 X_SLAB_MODE=0,
00116 Y_SLAB_MODE=1,
00117 Z_SLAB_MODE=2,
00118 BLOCK_MODE= 3
00119 };
00120
00121
00122 private:
00123 vtkExtentTranslator(const vtkExtentTranslator&);
00124 void operator=(const vtkExtentTranslator&);
00125 };
00126
00127 #endif
00128