VTK  9.4.20241103
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
115 vtkIdType NumberOfCells{ 0 };
116 int CellTypePriority{ 0 };
118 };
119
121 int Phase{ 0 };
123 vtkUnstructuredGrid* Input{ nullptr };
125 vtkCellGrid* Output{ nullptr };
127 unsigned int FlatIndex{ 0 };
129 vtkDataArray* Coordinates{ nullptr };
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
Perform an operation on cells in a vtkCellMetadata instance.
Visualization data composed of cells of arbitrary type.
Definition vtkCellGrid.h:49
abstract superclass for arrays of numeric data
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
Superclass for algorithms that produce vtkPartitionedDataSetCollectionAlgorithm.
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.
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.
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.
std::unordered_map< vtkStringToken, vtkIdType > OutputAllocations
A map from output cell type-token to output count.
Create a cell-grid that approximates a collection of vtkUnstructuredGrids.
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.
A claim on input vtkCell types registered by an output vtkCellMetadata subclass.
Claim(vtkIdType numberOfCells, int priority, vtkStringToken cellType)
int vtkIdType
Definition vtkType.h:315