Main Page Class Hierarchy Alphabetical List Compound List File List Compound Members File Members Related Pages
Common/vtkExtentTranslator.h
Go to the documentation of this file.00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00042 #ifndef __vtkExtentTranslator_h
00043 #define __vtkExtentTranslator_h
00044
00045 #include "vtkObject.h"
00046
00047
00048 class VTK_COMMON_EXPORT vtkExtentTranslator : public vtkObject
00049 {
00050 public:
00051 static vtkExtentTranslator *New();
00052
00053 vtkTypeRevisionMacro(vtkExtentTranslator,vtkObject);
00054 void PrintSelf(ostream& os, vtkIndent indent);
00055
00057
00059 vtkSetVector6Macro(WholeExtent, int);
00060 vtkGetVector6Macro(WholeExtent, int);
00061 vtkSetVector6Macro(Extent, int);
00062 vtkGetVector6Macro(Extent, int);
00063 vtkSetMacro(Piece,int);
00064 vtkGetMacro(Piece,int);
00065 vtkSetMacro(NumberOfPieces,int);
00066 vtkGetMacro(NumberOfPieces,int);
00067 vtkSetMacro(GhostLevel, int);
00068 vtkGetMacro(GhostLevel, int);
00070
00072
00077 virtual int PieceToExtent();
00078 virtual int PieceToExtentByPoints();
00079 virtual int PieceToExtentThreadSafe(int piece, int numPieces,
00080 int ghostLevel, int *wholeExtent,
00081 int *resultExtent, int splitMode,
00082 int byPoints);
00084
00085
00086
00088
00092 void SetSplitModeToBlock()
00093 {this->SplitMode = vtkExtentTranslator::BLOCK_MODE;}
00094 void SetSplitModeToXSlab()
00095 {this->SplitMode = vtkExtentTranslator::X_SLAB_MODE;}
00096 void SetSplitModeToYSlab()
00097 {this->SplitMode = vtkExtentTranslator::Y_SLAB_MODE;}
00098 void SetSplitModeToZSlab()
00099 {this->SplitMode = vtkExtentTranslator::Z_SLAB_MODE;}
00100 vtkGetMacro(SplitMode,int);
00102
00103 protected:
00104 vtkExtentTranslator();
00105 ~vtkExtentTranslator();
00106
00108
00110 int SplitExtent(int piece, int numPieces, int *extent, int splitMode);
00111 int SplitExtentByPoints(int piece, int numPieces, int *extent,
00112 int splitMode);
00114
00115 int Piece;
00116 int NumberOfPieces;
00117 int GhostLevel;
00118 int Extent[6];
00119 int WholeExtent[6];
00120 int SplitMode;
00121
00122
00123
00124
00125 enum Modes {
00126 X_SLAB_MODE=0,
00127 Y_SLAB_MODE=1,
00128 Z_SLAB_MODE=2,
00129 BLOCK_MODE= 3
00130 };
00131
00132
00133 private:
00134 vtkExtentTranslator(const vtkExtentTranslator&);
00135 void operator=(const vtkExtentTranslator&);
00136 };
00137
00138 #endif
00139