VTK  9.3.20240328
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;
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 
79 
87 
91  int GetNumberOfArrays() const;
92 
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 
139 
153  int AddArray(const char* name, bool state = true);
154 
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 
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:
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
Store on/off settings for data arrays, etc.
void DisableArray(const char *name)
Disable the array with the given name.
void DeepCopy(const vtkDataArraySelection *other)
Copy contents of other.
bool IsEqual(const vtkDataArraySelection *other) const
Returns true if the two array selections are equivalent.
int GetEnabledArrayIndex(const char *name) const
Get the index of an array with the given name among those that are enabled.
void SetArraySetting(const char *name, int setting)
Set array setting given the name.
void PrintSelf(ostream &os, vtkIndent indent) override
Methods invoked by print to print information about the object including superclasses.
int GetNumberOfArrays() const
Get the number of arrays that currently have an entry.
void CopySelections(vtkDataArraySelection *selections)
Copy the selections from the given vtkDataArraySelection instance.
int GetNumberOfArraysEnabled() const
Get the number of arrays that are enabled.
void EnableAllArrays()
Enable all arrays that currently have an entry.
void EnableArray(const char *name)
Enable the array with the given name.
int AddArray(const char *name, bool state=true)
Add to the list of arrays that have entries.
int GetArraySetting(int index) const
Get whether the array at the given index is enabled.
const char * GetArrayName(int index) const
Get the name of the array entry at the given index.
void RemoveArrayByIndex(int index)
Remove an array setting given its index.
void SetArraysWithDefault(const char *const *names, int numArrays, int defaultStatus)
Set the list of arrays that have entries.
int ArrayIsEnabled(const char *name) const
Return whether the array with the given name is enabled.
static vtkDataArraySelection * New()
~vtkDataArraySelection() override
void RemoveArrayByName(const char *name)
Remove an array setting given its name.
int ArrayExists(const char *name) const
Return whether the array with the given name exists.
int GetArrayIndex(const char *name) const
Get an index of the array with the given name.
void Union(vtkDataArraySelection *other, bool skipModified)
Update this to include values from other.
void DisableAllArrays()
Disable all arrays that currently have an entry.
void SetArrays(const char *const *names, int numArrays)
Set the list of arrays that have entries.
void Union(vtkDataArraySelection *other)
Update this to include values from other.
void RemoveAllArrays()
Remove all array entries.
int GetArraySetting(const char *name) const
Get whether the array is enabled/disable using its name.
a simple class to control print indentation
Definition: vtkIndent.h:108
abstract base class for most VTK objects
Definition: vtkObject.h:161
@ name
Definition: vtkX3D.h:219
@ index
Definition: vtkX3D.h:246