VTK
vtkDataObjectGenerator.h
Go to the documentation of this file.
1 /*=========================================================================
2 
3  Program: Visualization Toolkit
4  Module: vtkDataObjectGenerator.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 =========================================================================*/
36 #ifndef __vtkDataObjectGenerator_h
37 #define __vtkDataObjectGenerator_h
38 
39 #include "vtkFiltersCoreModule.h" // For export macro
40 #include "vtkDataObjectAlgorithm.h"
41 
42 class vtkInternalStructureCache;
43 
44 class VTKFILTERSCORE_EXPORT vtkDataObjectGenerator
46 {
47  public:
48  static vtkDataObjectGenerator *New();
50  void PrintSelf(ostream &os, vtkIndent indent);
51 
53 
54  vtkSetStringMacro(Program);
55  vtkGetStringMacro(Program);
57 
58 protected:
61 
62  virtual int RequestData(vtkInformation *req,
64  vtkInformationVector *outV);
65  virtual int RequestDataObject(vtkInformation *req,
67  vtkInformationVector *outV);
68  virtual int RequestInformation(vtkInformation *req,
70  vtkInformationVector *outV);
71  virtual int RequestUpdateExtent(vtkInformation *req,
73  vtkInformationVector *outV);
74 
75  //the string to parse to create a structure
76  char *Program;
77  //a record of the structure
78  vtkInternalStructureCache *Structure;
79 
80  //Helper for RequestDataObject
82  CreateOutputDataObjects(vtkInternalStructureCache *structure);
83  //Helper for RequestData
85  FillOutputDataObjects(vtkInternalStructureCache *structure,
86  int level,
87  int stripe=0);
88 
89  //to determine which composite data stripe to fill in
92 
93  //create the templated atomic data sets
94  void MakeImageData1(vtkDataSet *ds);
95  void MakeImageData2(vtkDataSet *ds);
96  void MakeUniformGrid1(vtkDataSet *ds);
97  void MakeRectilinearGrid1(vtkDataSet *ds);
98  void MakeStructuredGrid1(vtkDataSet *ds);
99  void MakePolyData1(vtkDataSet *ds);
100  void MakePolyData2(vtkDataSet *ds);
101  void MakeUnstructuredGrid1(vtkDataSet *ds);
102  void MakeUnstructuredGrid2(vtkDataSet *ds);
103  void MakeUnstructuredGrid3(vtkDataSet *ds);
104  void MakeUnstructuredGrid4(vtkDataSet *ds);
105 
106  //used to spatially separate sub data sets within composites
107  double XOffset; //increases for each dataset index
108  double YOffset; //increases for each sub data set
109  double ZOffset; //increases for each group index
110 
111  //used to filling in point and cell values with unique Ids
114 
115  //assign point and cell values to each point and cell
116  void MakeValues(vtkDataSet *ds);
117 
118 private:
119  vtkDataObjectGenerator(const vtkDataObjectGenerator&); // Not implemented.
120  void operator=(const vtkDataObjectGenerator&); // Not implemented.
121 };
122 
123 #endif