VTK  9.7.1
vtkHyperTreeGridGenerateFields.h
Go to the documentation of this file.
1 // SPDX-FileCopyrightText: Copyright (c) Ken Martin, Will Schroeder, Bill Lorensen
2 // SPDX-License-Identifier: BSD-3-Clause
25 #ifndef vtkHyperTreeGridGenerateFields_h
26 #define vtkHyperTreeGridGenerateFields_h
27 
28 #include "vtkFiltersHyperTreeModule.h" // For export macro
30 #include "vtkHyperTreeGridGenerateFieldStrategy.h" // For vtkHyperTreeGridGenerateFieldStrategy
31 
32 #include <unordered_map>
33 
34 VTK_ABI_NAMESPACE_BEGIN
35 class vtkCellData;
36 class vtkHyperTreeGrid;
38 
39 class VTKFILTERSHYPERTREE_EXPORT vtkHyperTreeGridGenerateFields : public vtkHyperTreeGridAlgorithm
40 {
41 public:
44  void PrintSelf(ostream& os, vtkIndent indent) override;
45 
47 
51  virtual bool GetComputeCellSizeArray() VTK_FUTURE_CONST;
52  virtual void SetComputeCellSizeArray(bool enable);
53  vtkBooleanMacro(ComputeCellSizeArray, bool);
55 
57 
61  virtual std::string GetCellSizeArrayName() VTK_FUTURE_CONST;
62  virtual void SetCellSizeArrayName(std::string name);
64 
66 
70  virtual bool GetComputeValidCellArray() VTK_FUTURE_CONST;
71  virtual void SetComputeValidCellArray(bool enable);
72  vtkBooleanMacro(ComputeValidCellArray, bool);
74 
76 
80  virtual std::string GetValidCellArrayName() VTK_FUTURE_CONST;
81  virtual void SetValidCellArrayName(std::string name);
83 
85 
89  virtual bool GetComputeCellCenterArray() VTK_FUTURE_CONST;
90  virtual void SetComputeCellCenterArray(bool enable);
91  vtkBooleanMacro(ComputeCellCenterArray, bool);
93 
95 
99  virtual std::string GetCellCenterArrayName() VTK_FUTURE_CONST;
100  virtual void SetCellCenterArrayName(std::string name);
102 
104 
108  virtual bool GetComputeTotalVisibleVolumeArray() VTK_FUTURE_CONST;
109  virtual void SetComputeTotalVisibleVolumeArray(bool enable);
110  vtkBooleanMacro(ComputeTotalVisibleVolumeArray, bool);
112 
114 
118  virtual std::string GetTotalVisibleVolumeArrayName() VTK_FUTURE_CONST;
119  virtual void SetTotalVisibleVolumeArrayName(std::string name);
121 
122 protected:
124  ~vtkHyperTreeGridGenerateFields() override = default;
125 
129  int ProcessTrees(vtkHyperTreeGrid*, vtkDataObject*) override;
130 
131 private:
132  vtkHyperTreeGridGenerateFields(const vtkHyperTreeGridGenerateFields&) = delete;
133  void operator=(const vtkHyperTreeGridGenerateFields&) = delete;
134 
139  void ProcessFields(
140  vtkHyperTreeGrid* outputHTG, vtkHyperTreeGrid* input, vtkDataObject::AttributeTypes type);
141 
145  void InitializeFields();
146 
150  void ProcessNode(vtkHyperTreeGridNonOrientedGeometryCursor* cursor,
151  vtkDataObject::AttributeTypes type, vtkCellData* outputCellData);
152 
153  // Cell Data and field data names
154  std::string CellSizeArrayName = "CellSize";
155  std::string ValidCellArrayName = "ValidCell";
156  std::string CellCenterArrayName = "CellCenter";
157  std::string TotalVisibleVolumeArrayName = "TotalVisibleVolume";
158 
159  // Cell Data and field data switches
160  bool ComputeCellSizeArray = true;
161  bool ComputeValidCellArray = true;
162  bool ComputeCellCenterArray = true;
163  bool ComputeTotalVisibleVolumeArray = true;
164 
165  std::unordered_map<std::string, vtkHyperTreeGridGenerateFieldStrategy::Field> Fields;
166 };
167 
168 VTK_ABI_NAMESPACE_END
169 #endif
A dataset containing a grid of vtkHyperTree instances arranged as a rectilinear grid.
represent and manipulate cell attribute data
Definition: vtkCellData.h:31
Generate cell fields for a HTG.
a simple class to control print indentation
Definition: vtkIndent.h:28
void PrintSelf(ostream &os, vtkIndent indent) override
Methods invoked by print to print information about the object including superclasses.
Abstract class for field definition used by vtkHyperTreeGridGenerateFields.
Superclass for algorithms that produce a hyper tree grid as output.
static vtkAlgorithm * New()
VTKACCELERATORSVTKMDATAMODEL_EXPORT void ProcessFields(vtkDataSet *input, viskores::cont::DataSet &dataset, tovtkm::FieldsFlag fields)
general representation of visualization data
Definition: vtkDataObject.h:55