VTK  9.4.20250205
vtkCellGridCopyQuery.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
93#ifndef vtkCellGridCopyQuery_h
94#define vtkCellGridCopyQuery_h
95
96#include "vtkCellGridQuery.h"
97#include "vtkStringToken.h" // For API.
98
99#include <map> // For ArrayMap ivar.
100#include <set> // For CellAttributeIds ivar.
101
102VTK_ABI_NAMESPACE_BEGIN
103
104class vtkAbstractArray;
105class vtkCellAttribute;
106class vtkCellGrid;
107class vtkIdList;
108
109class VTKCOMMONDATAMODEL_EXPORT vtkCellGridCopyQuery : public vtkCellGridQuery
110{
111public:
114 void PrintSelf(ostream& os, vtkIndent indent) override;
115
119 bool Initialize() override;
120
122 bool Finalize() override;
124
127
130 vtkGetObjectMacro(Source, vtkCellGrid);
131
134 vtkGetObjectMacro(Target, vtkCellGrid);
135
137
140
145 vtkGetMacro(CopyCellTypes, int);
146 vtkSetMacro(CopyCellTypes, int);
147 vtkBooleanMacro(CopyCellTypes, int);
148
153 vtkGetMacro(CopyCells, int);
154 vtkSetMacro(CopyCells, int);
155 vtkBooleanMacro(CopyCells, int);
156
174 vtkGetMacro(CopyOnlyShape, int);
175 vtkSetMacro(CopyOnlyShape, int);
176 vtkBooleanMacro(CopyOnlyShape, int);
177
183 vtkGetMacro(CopyArrays, int);
184 vtkSetMacro(CopyArrays, int);
185 vtkBooleanMacro(CopyArrays, int);
186
192 vtkGetMacro(CopyArrayValues, int);
193 vtkSetMacro(CopyArrayValues, int);
194 vtkBooleanMacro(CopyArrayValues, int);
195
204 vtkGetMacro(DeepCopyArrays, int);
205 vtkSetMacro(DeepCopyArrays, int);
206 vtkBooleanMacro(DeepCopyArrays, int);
207
211 vtkGetMacro(CopySchema, int);
212 vtkSetMacro(CopySchema, int);
213 vtkBooleanMacro(CopySchema, int);
214
216
222
225 virtual bool AddSourceCellAttributeId(int attributeId);
226
228 virtual bool RemoveSourceCellAttributeId(int attributeId);
229
234
236 const std::set<int>& GetCellAttributeIds() const { return this->CellAttributeIds; }
237
240
242 virtual void ResetCellAttributeIds();
243
245
249
254 const std::map<vtkAbstractArray*, vtkAbstractArray*>& GetArrayMap() const
255 {
256 return this->ArrayMap;
257 }
258 std::map<vtkAbstractArray*, vtkAbstractArray*>& GetArrayMap() { return this->ArrayMap; }
259
264 const std::map<vtkCellAttribute*, vtkCellAttribute*>& GetAttributeMap() const
265 {
266 return this->AttributeMap;
267 }
268 std::map<vtkCellAttribute*, vtkCellAttribute*>& GetAttributeMap() { return this->AttributeMap; }
269
271
278
289
302
304
305protected:
308
309 vtkCellGrid* Source{ nullptr };
310 vtkCellGrid* Target{ nullptr };
311 std::set<int> CellAttributeIds;
312 std::map<vtkAbstractArray*, vtkAbstractArray*> ArrayMap;
313 std::map<vtkCellAttribute*, vtkCellAttribute*> AttributeMap;
314 int CopyCellTypes{ 1 };
315 int CopyCells{ 1 };
316 int CopyOnlyShape{ 1 };
317 int CopyArrays{ 1 };
318 int CopyArrayValues{ 1 };
319 int DeepCopyArrays{ 0 };
320 int CopySchema{ 1 };
321
322private:
324 void operator=(const vtkCellGridCopyQuery&) = delete;
325};
326
327VTK_ABI_NAMESPACE_END
328#endif // vtkCellGridCopyQuery_h
Abstract superclass for all arrays.
A function defined over the physical domain of a vtkCellGrid.
Copy the cell metadata and attribute(s) of one cell-grid into another.
bool Finalize() override
This clears the ArrayMap ivar after the algorithm completes (to save space).
virtual bool AddSourceCellAttributeId(int attributeId)
virtual void SetTarget(vtkCellGrid *target)
Set/get the target cell-grid into which the source should be copied.
vtkCellGridCopyQuery()=default
vtkCellAttribute * CopyOrUpdateAttributeRecord(vtkCellAttribute *srcAtt, vtkStringToken cellType)
Copy a cell-attribute (srcAtt) from the source into the target.
void PrintSelf(ostream &os, vtkIndent indent) override
Methods invoked by print to print information about the object including superclasses.
std::map< vtkCellAttribute *, vtkCellAttribute * > & GetAttributeMap()
Return the map from source to target arrays.
std::map< vtkAbstractArray *, vtkAbstractArray * > ArrayMap
std::set< int > CellAttributeIds
virtual void SetSource(vtkCellGrid *source)
Set/get the source cell-grid to copy into the cell-grid on which this query is run.
const std::map< vtkAbstractArray *, vtkAbstractArray * > & GetArrayMap() const
Return the map from source to target arrays.
const std::map< vtkCellAttribute *, vtkCellAttribute * > & GetAttributeMap() const
Return the map from source to target cell-attributes.
static vtkCellGridCopyQuery * New()
virtual void ResetCellAttributeIds()
Reset the query so that no cell-attributes will be copied from the source.
const std::set< int > & GetCellAttributeIds() const
Return the set of attribute IDs scheduled to be copied when the query is run.
virtual bool AddAllSourceCellAttributeIds()
Add all of the source cell-grid's attributes to the list of IDs to be copied.
~vtkCellGridCopyQuery() override
void GetCellAttributeIds(vtkIdList *ids) const
Populate ids with the attribute IDs scheduled to be copied when the query is run.
bool Initialize() override
This clears the ArrayMap ivar after the algorithm completes (to save space).
virtual bool RemoveSourceCellAttributeId(int attributeId)
Remove attributeId from the list of cell-attributes to be copied from the source.
std::map< vtkCellAttribute *, vtkCellAttribute * > AttributeMap
std::map< vtkAbstractArray *, vtkAbstractArray * > & GetArrayMap()
Return the map from source to target arrays.
void CopyAttributeArrays(vtkCellAttribute *srcAtt, vtkStringToken cellType)
Copy the arrays for a single attribute from the source to the target.
Perform an operation on cells in a vtkCellMetadata instance.
Visualization data composed of cells of arbitrary type.
Definition vtkCellGrid.h:49
list of point or cell ids
Definition vtkIdList.h:133
a simple class to control print indentation
Definition vtkIndent.h:108
Represent a string by its integer hash.
boost::graph_traits< vtkGraph * >::vertex_descriptor source(boost::graph_traits< vtkGraph * >::edge_descriptor e, vtkGraph *)
boost::graph_traits< vtkGraph * >::vertex_descriptor target(boost::graph_traits< vtkGraph * >::edge_descriptor e, vtkGraph *)