VTK  9.5.20251120
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
92
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;
315 int CopyCells{ 1 };
317 int CopyArrays{ 1 };
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
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.
vtkCellGridQuery()=default
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 *)