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

dox/Common/vtkExtentTranslator.h

Go to the documentation of this file.
00001 /*========================================================================= 00002 00003 Program: Visualization Toolkit 00004 Module: $RCSfile: vtkExtentTranslator.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 =========================================================================*/ 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 //BTX 00112 // Don't change the numbers here - they are used in the code 00113 // to indicate array indices. 00114 enum Modes { 00115 X_SLAB_MODE=0, 00116 Y_SLAB_MODE=1, 00117 Z_SLAB_MODE=2, 00118 BLOCK_MODE= 3 00119 }; 00120 //ETX 00121 00122 private: 00123 vtkExtentTranslator(const vtkExtentTranslator&); // Not implemented. 00124 void operator=(const vtkExtentTranslator&); // Not implemented. 00125 }; 00126 00127 #endif 00128