VTK
vtkExtentSplitter.h
Go to the documentation of this file.
1 /*=========================================================================
2 
3  Program: Visualization Toolkit
4  Module: vtkExtentSplitter.h
5 
6  Copyright (c) Ken Martin, Will Schroeder, Bill Lorensen
7  All rights reserved.
8  See Copyright.txt or http://www.kitware.com/Copyright.htm for details.
9 
10  This software is distributed WITHOUT ANY WARRANTY; without even
11  the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
12  PURPOSE. See the above copyright notice for more information.
13 
14 =========================================================================*/
29 #ifndef vtkExtentSplitter_h
30 #define vtkExtentSplitter_h
31 
32 #include "vtkCommonExecutionModelModule.h" // For export macro
33 #include "vtkObject.h"
34 
35 class vtkExtentSplitterInternals;
36 
37 class VTKCOMMONEXECUTIONMODEL_EXPORT vtkExtentSplitter : public vtkObject
38 {
39 public:
41  void PrintSelf(ostream& os, vtkIndent indent) VTK_OVERRIDE;
42  static vtkExtentSplitter *New();
43 
45 
50  void AddExtentSource(int id, int priority, int x0, int x1,
51  int y0, int y1, int z0, int z1);
52  void AddExtentSource(int id, int priority, int* extent);
53  void RemoveExtentSource(int id);
54  void RemoveAllExtentSources();
56 
58 
62  void AddExtent(int x0, int x1, int y0, int y1, int z0, int z1);
63  void AddExtent(int* extent);
65 
72  int ComputeSubExtents();
73 
79  int GetNumberOfSubExtents();
80 
82 
88  int* GetSubExtent(int index);
89  void GetSubExtent(int index, int* extent);
91 
97  int GetSubExtentSource(int index);
98 
100 
107  vtkGetMacro(PointMode, int);
108  vtkSetMacro(PointMode, int);
109  vtkBooleanMacro(PointMode, int);
111 
112 protected:
114  ~vtkExtentSplitter() VTK_OVERRIDE;
115 
116  // Internal utility methods.
117  void SplitExtent(int* extent, int* subextent);
118  int IntersectExtents(const int* extent1, const int* extent2, int* result);
119  int Min(int a, int b);
120  int Max(int a, int b);
121 
122  // Internal implementation data.
123  vtkExtentSplitterInternals* Internal;
124 
125  // On if reading only all points (but not always all cells) is
126  // necessary. Used for reading volumes of planar slices storing
127  // only point data.
128  int PointMode;
129 
130 private:
131  vtkExtentSplitter(const vtkExtentSplitter&) VTK_DELETE_FUNCTION;
132  void operator=(const vtkExtentSplitter&) VTK_DELETE_FUNCTION;
133 };
134 
135 #endif
vtkObject::New
static vtkObject * New()
Create an object with Debug turned off, modified time initialized to zero, and reference counting on.
vtkObject
abstract base class for most VTK objects
Definition: vtkObject.h:59
vtkIndent
a simple class to control print indentation
Definition: vtkIndent.h:39
vtkObject::PrintSelf
void PrintSelf(ostream &os, vtkIndent indent) override
Methods invoked by print to print information about the object including superclasses.
vtkObject.h
vtkBooleanMacro
vtkBooleanMacro(IgnoreDriverBugs, bool)
Updates the extensions string.
vtkSetMacro
vtkSetMacro(IgnoreDriverBugs, bool)
Updates the extensions string.
vtkExtentSplitter
Split an extent across other extents.
Definition: vtkExtentSplitter.h:37
vtkX3D::extent
Definition: vtkX3D.h:345
vtkX3D::index
Definition: vtkX3D.h:246
vtkX3D::priority
Definition: vtkX3D.h:450