ParaView
vtkPVDataInformation.h
Go to the documentation of this file.
1 /*=========================================================================
2 
3  Program: ParaView
4  Module: vtkPVDataInformation.h
5 
6  Copyright (c) Kitware, Inc.
7  All rights reserved.
8  See Copyright.txt or http://www.paraview.org/HTML/Copyright.html 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 =========================================================================*/
30 #ifndef vtkPVDataInformation_h
31 #define vtkPVDataInformation_h
32 
33 #include "vtkPVClientServerCoreCoreModule.h" //needed for exports
34 #include "vtkPVInformation.h"
35 
36 class vtkCollection;
37 class vtkCompositeDataSet;
38 class vtkDataObject;
39 class vtkDataSet;
40 class vtkGenericDataSet;
41 class vtkGraph;
42 class vtkInformation;
47 class vtkSelection;
48 class vtkTable;
49 
50 class VTKPVCLIENTSERVERCORECORE_EXPORT vtkPVDataInformation : public vtkPVInformation
51 {
52 public:
53  static vtkPVDataInformation* New();
55  void PrintSelf(ostream& os, vtkIndent indent);
56 
66  vtkPVArrayInformation* GetArrayInformation(const char* arrayname, int fieldAssociation);
67 
69 
74  vtkSetMacro(PortNumber, int);
75  vtkGetMacro(PortNumber, int);
77 
81  virtual void CopyFromObject(vtkObject*);
82 
86  virtual void AddInformation(vtkPVInformation* info);
87 
93  virtual void AddInformation(vtkPVInformation*, int addingParts);
94 
96 
99  virtual void CopyToStream(vtkClientServerStream*);
100  virtual void CopyFromStream(const vtkClientServerStream*);
102 
104 
110  virtual void CopyParametersToStream(vtkMultiProcessStream&);
111  virtual void CopyParametersFromStream(vtkMultiProcessStream&);
113 
118  void Initialize();
119 
121 
124  vtkGetMacro(DataSetType, int);
125  vtkGetMacro(CompositeDataSetType, int);
126  const char* GetDataSetTypeAsString();
127  int DataSetTypeIsA(const char* type);
128  vtkGetMacro(NumberOfPoints, vtkTypeInt64);
129  vtkGetMacro(NumberOfCells, vtkTypeInt64);
130  vtkGetMacro(NumberOfRows, vtkTypeInt64);
131  vtkGetMacro(MemorySize, int);
132  vtkGetMacro(PolygonCount, int);
133  vtkGetMacro(NumberOfDataSets, int);
134  vtkGetVector6Macro(Bounds, double);
136 
141  const char* GetPrettyDataTypeString();
142 
144 
148  vtkGetVector6Macro(Extent, int);
150 
152 
156  vtkGetObjectMacro(PointArrayInformation, vtkPVArrayInformation);
158 
160 
163  vtkGetObjectMacro(PointDataInformation, vtkPVDataSetAttributesInformation);
164  vtkGetObjectMacro(CellDataInformation, vtkPVDataSetAttributesInformation);
165  vtkGetObjectMacro(VertexDataInformation, vtkPVDataSetAttributesInformation);
166  vtkGetObjectMacro(EdgeDataInformation, vtkPVDataSetAttributesInformation);
167  vtkGetObjectMacro(RowDataInformation, vtkPVDataSetAttributesInformation);
169 
171 
174  vtkGetObjectMacro(FieldDataInformation, vtkPVDataSetAttributesInformation);
176 
184  vtkPVDataSetAttributesInformation* GetAttributeInformation(int fieldAssociation);
185 
187 
191  vtkGetObjectMacro(CompositeDataInformation, vtkPVCompositeDataInformation);
193 
198  vtkPVDataInformation* GetDataInformationForCompositeIndex(int index);
199 
207  unsigned int GetNumberOfBlockLeafs(bool skipEmpty);
208 
213  vtkPVDataInformation* GetDataInformationForCompositeIndex(int* index);
214 
216 
219  vtkGetStringMacro(DataClassName);
221 
223 
226  vtkGetStringMacro(CompositeDataClassName);
228 
229  vtkGetVector2Macro(TimeSpan, double);
230 
232 
235  vtkGetMacro(HasTime, int);
237 
239 
242  vtkGetMacro(Time, double);
244 
246 
249  vtkGetMacro(NumberOfTimeSteps, int);
251 
253 
256  vtkGetStringMacro(TimeLabel);
258 
262  int IsDataStructured();
263 
265 
273  vtkGetStringMacro(CompositeDataSetName);
275 
279  static void RegisterHelper(const char* classname, const char* helperclassname);
280 
281 protected:
284 
285  void DeepCopy(vtkPVDataInformation* dataInfo, bool copyCompositeInformation = true);
286 
287  void AddFromMultiPieceDataSet(vtkCompositeDataSet* data);
288  void CopyFromCompositeDataSet(vtkCompositeDataSet* data);
289  void CopyFromCompositeDataSetInitialize(vtkCompositeDataSet* data);
290  void CopyFromCompositeDataSetFinalize(vtkCompositeDataSet* data);
291  virtual void CopyFromDataSet(vtkDataSet* data);
292  void CopyFromGenericDataSet(vtkGenericDataSet* data);
293  void CopyFromGraph(vtkGraph* graph);
294  void CopyFromTable(vtkTable* table);
295  void CopyFromSelection(vtkSelection* selection);
296  void CopyCommonMetaData(vtkDataObject*, vtkInformation*);
297 
298  static vtkPVDataInformationHelper* FindHelper(const char* classname);
299 
300  // Data information collected from remote processes.
304  vtkTypeInt64 NumberOfPoints;
305  vtkTypeInt64 NumberOfCells;
306  vtkTypeInt64 NumberOfRows;
308  vtkIdType PolygonCount;
309  double Bounds[6];
310  int Extent[6];
311  double TimeSpan[2];
312  double Time;
313  int HasTime;
315 
317  vtkSetStringMacro(DataClassName);
318 
319  char* TimeLabel;
320  vtkSetStringMacro(TimeLabel);
321 
323  vtkSetStringMacro(CompositeDataClassName);
324 
325  char* CompositeDataSetName;
326  vtkSetStringMacro(CompositeDataSetName);
327 
334 
336 
338 
341 
342 private:
343  vtkPVDataInformation(const vtkPVDataInformation&) VTK_DELETE_FUNCTION;
344  void operator=(const vtkPVDataInformation&) VTK_DELETE_FUNCTION;
345 
346  int PortNumber;
347 };
348 
349 #endif
vtkPVCompositeDataInformation * CompositeDataInformation
virtual void CopyFromStream(const vtkClientServerStream *)
Manage a serialized version of the information.
vtkPVDataSetAttributesInformation * PointDataInformation
Light object for holding data information.
vtkPVArrayInformation * PointArrayInformation
Light object for holding composite data information.
virtual void CopyParametersToStream(vtkMultiProcessStream &)
Serialize/Deserialize the parameters that control how/what information is gathered.
vtkPVDataSetAttributesInformation * VertexDataInformation
Store messages for the interpreter.
vtkPVDataSetAttributesInformation * CellDataInformation
vtkPVDataSetAttributesInformation * FieldDataInformation
void operator=(const vtkPVInformation &) VTK_DELETE_FUNCTION
void PrintSelf(ostream &os, vtkIndent indent)
Data array information like type.
virtual void CopyParametersFromStream(vtkMultiProcessStream &)
Serialize/Deserialize the parameters that control how/what information is gathered.
virtual void AddInformation(vtkPVInformation *)
Merge another information object.
virtual void CopyToStream(vtkClientServerStream *)=0
Manage a serialized version of the information.
vtkPVDataSetAttributesInformation * RowDataInformation
virtual void CopyFromObject(vtkObject *)
Transfer information about a single object into this object.
allows extension of types that PVDataInformation can handle
Superclass for information objects.
vtkPVDataSetAttributesInformation * EdgeDataInformation