VTK  9.3.1
vtkDataArraySelection.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
27 #ifndef vtkDataArraySelection_h
28 #define vtkDataArraySelection_h
29 
30 #include "vtkCommonCoreModule.h" // For export macro
31 #include "vtkObject.h"
32 
33 #include <memory> // for std::unique_ptr
34 
35 VTK_ABI_NAMESPACE_BEGIN
36 class VTKCOMMONCORE_EXPORT vtkDataArraySelection : public vtkObject
37 {
38 public:
40  void PrintSelf(ostream& os, vtkIndent indent) override;
41  static vtkDataArraySelection* New();
42 
50  void EnableArray(const char* name);
51 
59  void DisableArray(const char* name);
60 
65  int ArrayIsEnabled(const char* name) const;
66 
70  int ArrayExists(const char* name) const;
71 
78  void EnableAllArrays();
79 
86  void DisableAllArrays();
87 
91  int GetNumberOfArrays() const;
92 
96  int GetNumberOfArraysEnabled() const;
97 
101  const char* GetArrayName(int index) const;
102 
106  int GetArrayIndex(const char* name) const;
107 
112  int GetEnabledArrayIndex(const char* name) const;
113 
117  int GetArraySetting(int index) const;
118 
122  int GetArraySetting(const char* name) const { return this->ArrayIsEnabled(name); }
123 
131  void SetArraySetting(const char* name, int setting);
132 
138  void RemoveAllArrays();
139 
153  int AddArray(const char* name, bool state = true);
154 
160  void RemoveArrayByIndex(int index);
161 
167  void RemoveArrayByName(const char* name);
168 
170 
182  void SetArrays(const char* const* names, int numArrays);
183  void SetArraysWithDefault(const char* const* names, int numArrays, int defaultStatus);
185 
191  void CopySelections(vtkDataArraySelection* selections);
192 
194 
203  void Union(vtkDataArraySelection* other) { this->Union(other, false); }
204  void Union(vtkDataArraySelection* other, bool skipModified);
206 
208 
213  vtkSetMacro(UnknownArraySetting, int);
214  vtkGetMacro(UnknownArraySetting, int);
216 
221  void DeepCopy(const vtkDataArraySelection* other);
222 
226  bool IsEqual(const vtkDataArraySelection* other) const;
227 
228 protected:
230  ~vtkDataArraySelection() override;
231 
232 private:
234  void operator=(const vtkDataArraySelection&) = delete;
235 
236  // Internal implementation details.
237  class vtkInternals;
238  std::unique_ptr<vtkInternals> Internal;
239  int UnknownArraySetting;
240 };
241 
242 VTK_ABI_NAMESPACE_END
243 #endif
abstract base class for most VTK objects
Definition: vtkObject.h:51
void PrintSelf(ostream &os, vtkIndent indent) override
Methods invoked by print to print information about the object including superclasses.
void Union(vtkDataArraySelection *other)
Update this to include values from other.
a simple class to control print indentation
Definition: vtkIndent.h:28
int GetArraySetting(const char *name) const
Get whether the array is enabled/disable using its name.
Store on/off settings for data arrays, etc.
static vtkObject * New()
Create an object with Debug turned off, modified time initialized to zero, and reference counting on...