VTK  9.5.20251215
vtkUnstructuredGridToCellGrid.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
35#ifndef vtkUnstructuredGridToCellGrid_h
36#define vtkUnstructuredGridToCellGrid_h
37
39
40#include "vtkCellGrid.h" // for API + ivars
41#include "vtkFiltersCellGridModule.h" // For export macro
42#include "vtkNew.h" // for ivar
43#include "vtkStringToken.h" // for API + ivars
44#include "vtkUnstructuredGridFieldAnnotations.h" // for API + ivars
45
46#include <map>
47#include <unordered_map>
48#include <unordered_set>
49#include <vector>
50
51VTK_ABI_NAMESPACE_BEGIN
52
53class vtkDataArray;
57
58class VTKFILTERSCELLGRID_EXPORT vtkUnstructuredGridToCellGrid
60{
61public:
64 void PrintSelf(ostream& os, vtkIndent indent) override;
65
66 virtual void Reset();
68 int inputCellType, vtkStringToken preferredOutputType, int priority);
69
76 {
77 public:
80
81 bool Initialize() override;
82 bool Finalize() override;
83
89
92
103 struct Claim
104 {
105 Claim() = default;
106 Claim(const Claim&) = default;
107 Claim& operator=(const Claim&) = default;
108 Claim(vtkIdType numberOfCells, int priority, vtkStringToken cellType)
109 : NumberOfCells(numberOfCells)
110 , CellTypePriority(priority)
111 , CellType(cellType)
112 {
113 }
114
118 };
119
121 int Phase{ 0 };
125 vtkCellGrid* Output{ nullptr };
127 unsigned int FlatIndex{ 0 };
131 std::map<int, Claim> CellTypeMap;
133 std::unordered_map<vtkStringToken, vtkIdType> OutputAllocations;
134
137
140
143
146
147 protected:
148 TranscribeQuery() = default;
149 ~TranscribeQuery() override = default;
150
151 private:
152 TranscribeQuery(const TranscribeQuery&) = delete;
153 void operator=(const TranscribeQuery&) = delete;
154 };
155
156protected:
158 ~vtkUnstructuredGridToCellGrid() override = default;
159
160 int FillInputPortInformation(int port, vtkInformation* info) override;
161
163 vtkInformation* request, vtkInformationVector** inInfo, vtkInformationVector* ouInfo) override;
164
168
171
173
174private:
176 void operator=(const vtkUnstructuredGridToCellGrid&) = delete;
177};
178
179VTK_ABI_NAMESPACE_END
180#endif // vtkUnstructuredGridToCellGrid_h
181// VTK-HeaderTest-Exclude: vtkUnstructuredGridToCellGrid.h
vtkCellGridQuery()=default
Visualization data composed of cells of arbitrary type.
Definition vtkCellGrid.h:49
represent and manipulate attribute data in a dataset
a simple class to control print indentation
Definition vtkIndent.h:108
Store zero or more vtkInformation instances.
Store vtkAlgorithm input/output information.
Allocate and hold a VTK object.
Definition vtkNew.h:167
Composite dataset that groups datasets as a collection.
Represent a string by its integer hash.
An internal query object for transcribing cells from input to output.
vtkUnstructuredGrid * Input
The input dataset whose cells should be transcribed.
unsigned int FlatIndex
The flat index of the current Input and Output data objects inside the collection.
bool Finalize() override
Override this if your query-result state requires finalization.
vtkNew< vtkUnstructuredGridFieldAnnotations > Annotations
Container for field annotations capture from the input unstructured grid.
bool SumOutputCounts()
Sum counts of all input cell types that generate the same output cell type.
void AddCellAttributes(vtkDataSetAttributes *attributes)
For each point- or cell-data array from the Input, create an output cell-attribute.
vtkDataArray * Coordinates
The input point-coordinates (3-component) array, which is copied to the output.
int Phase
The phase of the query: 0 → claiming input cells; 1 → transcribing claimed cells.
std::map< int, Claim > CellTypeMap
A map from input cell type to counts and the output cell type (if any).
bool Initialize() override
Override this if your query-result state requires initialization.
vtkUnstructuredGridFieldAnnotations::FieldGlom FieldGlom
Gloms of multiple field names that represent vectors or tensors.
vtkUnstructuredGridFieldAnnotations::BlockAttributesKey BlockAttributesKey
A key for indexing fields defined on a partitioned dataset collection entry.
std::unordered_map< vtkStringToken, vtkIdType > OutputAllocations
A map from output cell type-token to output count.
vtkUnstructuredGridFieldAnnotations::BlockAttributesValue BlockAttributesValue
Configuration hints for a partitioned dataset collection entry.
virtual void AddPreferredOutputType(int inputCellType, vtkStringToken preferredOutputType, int priority)
void AddAnnotatedAttributes(vtkPartitionedDataSetCollection *input)
Look for IOSS (or other) annotations that aggregate arrays and add cell-attributes for them (marking ...
~vtkUnstructuredGridToCellGrid() override=default
virtual bool ProcessUnstructuredGrid(vtkUnstructuredGrid *input, vtkCellGrid *output)
Transcribe a single unstructured grid from the input collection.
int RequestData(vtkInformation *request, vtkInformationVector **inInfo, vtkInformationVector *ouInfo) override
Methods for subclasses to override to handle different pipeline requests.
static vtkUnstructuredGridToCellGrid * New()
int FillInputPortInformation(int port, vtkInformation *info) override
Fill the input port information objects for this algorithm.
void PrintSelf(ostream &os, vtkIndent indent) override
Methods invoked by print to print information about the object including superclasses.
dataset represents arbitrary combinations of all possible cell types
Configuration hints for a partitioned dataset collection entry.
Gloms of multiple field names that represent vectors or tensors.
Claim(vtkIdType numberOfCells, int priority, vtkStringToken cellType)
#define vtkDataArray
int vtkIdType
Definition vtkType.h:368