VTK  9.3.20240425
vtkDataSetAttributesFieldList.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
43#ifndef vtkDataSetAttributesFieldList_h
44#define vtkDataSetAttributesFieldList_h
45
46#include "vtkCommonDataModelModule.h" // For export macro
47#include "vtkSmartPointer.h" // for vtkSmartPointer
48#include "vtkSystemIncludes.h"
49
50#include <functional> // for std::function
51#include <memory> // for unique_ptr
52
53VTK_ABI_NAMESPACE_BEGIN
56class vtkIdList;
57
58class VTKCOMMONDATAMODEL_EXPORT vtkDataSetAttributesFieldList
59{
60public:
65 vtkDataSetAttributesFieldList(int number_of_inputs = 0);
67 void PrintSelf(ostream& os, vtkIndent indent);
68
72 void Reset();
73
81
87
93
95
101 void CopyAllocate(vtkDataSetAttributes* output, int ctype, vtkIdType sz, vtkIdType ext) const;
102 void CopyData(int inputIndex, vtkDataSetAttributes* input, vtkIdType fromId,
103 vtkDataSetAttributes* output, vtkIdType toId) const;
104 void CopyData(int inputIndex, vtkDataSetAttributes* input, vtkIdType inputStart,
105 vtkIdType numValues, vtkDataSetAttributes* output, vtkIdType outStart) const;
106 void InterpolatePoint(int inputIndex, vtkDataSetAttributes* input, vtkIdList* inputIds,
107 double* weights, vtkDataSetAttributes* output, vtkIdType toId) const;
109
114 void TransformData(int inputIndex, vtkDataSetAttributes* input, vtkDataSetAttributes* output,
115 std::function<void(vtkAbstractArray*, vtkAbstractArray*)> op) const;
116
123
136 void BuildPrototype(vtkDataSetAttributes* protoDSA, vtkDataSetAttributes* ordering = nullptr);
137
138protected:
144
145private:
146 class vtkInternals;
147 std::unique_ptr<vtkInternals> Internals;
148
150 void operator=(vtkDataSetAttributesFieldList&) = delete;
151};
152
153VTK_ABI_NAMESPACE_END
154#endif
155// VTK-HeaderTest-Exclude: vtkDataSetAttributesFieldList.h
Abstract superclass for all arrays.
helps manage arrays from multiple vtkDataSetAttributes.
int GetNumberOfArrays()
This method can be used to determine the number of arrays remaining after intersection or union opera...
void PrintSelf(ostream &os, vtkIndent indent)
void Reset()
Initializes the field list to empty.
void InitializeFieldList(vtkDataSetAttributes *dsa)
Initialize the field list.
virtual vtkSmartPointer< vtkAbstractArray > CreateArray(int type) const
Called to create an output array for the given type.
void BuildPrototype(vtkDataSetAttributes *protoDSA, vtkDataSetAttributes *ordering=nullptr)
A convenience function that builds a prototype / template dataset attributes for initializing the pro...
void IntersectFieldList(vtkDataSetAttributes *dsa)
Update the field list for an intersection of arrays registered so far and those in dsa.
void InterpolatePoint(int inputIndex, vtkDataSetAttributes *input, vtkIdList *inputIds, double *weights, vtkDataSetAttributes *output, vtkIdType toId) const
These methods can called to generate and update the output vtkDataSetAttributes.
void TransformData(int inputIndex, vtkDataSetAttributes *input, vtkDataSetAttributes *output, std::function< void(vtkAbstractArray *, vtkAbstractArray *)> op) const
Use this method to provide a custom callback function to invoke for each array in the input and corre...
void CopyData(int inputIndex, vtkDataSetAttributes *input, vtkIdType inputStart, vtkIdType numValues, vtkDataSetAttributes *output, vtkIdType outStart) const
These methods can called to generate and update the output vtkDataSetAttributes.
void CopyAllocate(vtkDataSetAttributes *output, int ctype, vtkIdType sz, vtkIdType ext) const
These methods can called to generate and update the output vtkDataSetAttributes.
void UnionFieldList(vtkDataSetAttributes *dsa)
Update the field list for an union of arrays registered so far and those in dsa.
void CopyData(int inputIndex, vtkDataSetAttributes *input, vtkIdType fromId, vtkDataSetAttributes *output, vtkIdType toId) const
These methods can called to generate and update the output vtkDataSetAttributes.
vtkDataSetAttributesFieldList(int number_of_inputs=0)
number_of_inputs parameter is not required and only provided for backwards compatibility.
represent and manipulate attribute data in a dataset
list of point or cell ids
Definition vtkIdList.h:133
a simple class to control print indentation
Definition vtkIndent.h:108
Hold a reference to a vtkObjectBase instance.
int vtkIdType
Definition vtkType.h:315