VTK  9.3.20240328
vtkGenericAttributeCollection.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
14 #ifndef vtkGenericAttributeCollection_h
15 #define vtkGenericAttributeCollection_h
16 
17 #include "vtkCommonDataModelModule.h" // For export macro
18 #include "vtkObject.h"
19 
20 VTK_ABI_NAMESPACE_BEGIN
21 class vtkGenericAttributeInternalVector;
22 class vtkIntInternalVector;
24 
25 class VTKCOMMONDATAMODEL_EXPORT vtkGenericAttributeCollection : public vtkObject
26 {
27 public:
32 
34 
38  void PrintSelf(ostream& os, vtkIndent indent) override;
40 
47 
54 
61 
68 
74  unsigned long GetActualMemorySize();
75 
80  int IsEmpty();
81 
89 
96  int FindAttribute(const char* name);
97 
104  int GetAttributeIndex(int i);
105 
113 
123 
130  void RemoveAttribute(int i);
131 
136  void Reset();
137 
145 
153 
158  vtkMTimeType GetMTime() override;
159 
160  // *** ALL THE FOLLOWING METHODS SHOULD BE REMOVED WHEN when the
161  // new pipeline update mechanism is checked in.
162  // *** BEGIN
163 
165 
170  vtkGetMacro(ActiveAttribute, int);
172 
174 
180  vtkGetMacro(ActiveComponent, int);
182 
192  void SetActiveAttribute(int attribute, int component = 0);
193 
195 
200  vtkGetMacro(NumberOfAttributesToInterpolate, int);
202 
208  int* GetAttributesToInterpolate() VTK_SIZEHINT(GetNumberOfAttributesToInterpolate());
209 
215  vtkTypeBool HasAttribute(int size, int* attributes, int attribute) VTK_SIZEHINT(attributes, size);
216 
218 
228  void SetAttributesToInterpolate(int size, int* attributes) VTK_SIZEHINT(attributes, size);
229  void SetAttributesToInterpolateToAll();
231 
232 protected:
237 
242 
246  vtkGenericAttributeInternalVector* AttributeInternalVector;
250  vtkIntInternalVector* AttributeIndices;
251 
252  int ActiveAttribute;
253  int ActiveComponent;
254  int NumberOfAttributesToInterpolate;
255  int AttributesToInterpolate[10];
256 
257  int NumberOfComponents; // cache
258  int NumberOfPointCenteredComponents; // cache
259  int MaxNumberOfComponents; // cache
260  unsigned long ActualMemorySize; // cache
261  vtkTimeStamp ComputeTime; // cache time stamp
262 
267  void ComputeNumbers();
268 
269 private:
271  void operator=(const vtkGenericAttributeCollection&) = delete;
272 };
273 VTK_ABI_NAMESPACE_END
274 #endif
void ShallowCopy(vtkGenericAttributeCollection *other)
Copy, via reference counting, the other attribute array.
void RemoveAttribute(int i)
Remove the attribute at ‘i’.
int GetNumberOfPointCenteredComponents()
Return the number of components.
int GetNumberOfComponents()
Return the number of components.
void InsertNextAttribute(vtkGenericAttribute *a)
Add the attribute ‘a’ to the end of the collection.
int IsEmpty()
Indicate whether the collection contains any attributes.
void DeepCopy(vtkGenericAttributeCollection *other)
Copy, without reference counting, the other attribute array.
int FindAttribute(const char *name)
Return the index of the attribute named ‘name’.
void PrintSelf(ostream &os, vtkIndent indent) override
Standard type definition and print methods for a VTK class.
void SetActiveAttribute(int attribute, int component=0)
Set the scalar attribute to be processed.
vtkGenericAttribute * GetAttribute(int i)
Return a pointer to the ith instance of vtkGenericAttribute.
static vtkGenericAttributeCollection * New()
Create an empty collection.
int * GetAttributesToInterpolate()
Indices of attributes to interpolate.
vtkMTimeType GetMTime() override
vtkAttributeCollection is a composite object and needs to check each member of its collection for mod...
unsigned long GetActualMemorySize()
Actual size of the data in kibibytes (1024 bytes); only valid after the pipeline has updated.
int GetNumberOfAttributes()
Return the number of attributes (e.g., instances of vtkGenericAttribute) in the collection.
int GetAttributeIndex(int i)
Return the index of the first component of attribute ‘i’ in an array of format attrib0comp0 attrib0co...
void Reset()
Remove all attributes.
int GetMaxNumberOfComponents()
Maximum number of components encountered among all attributes.
void InsertAttribute(int i, vtkGenericAttribute *a)
Replace the attribute at index ‘i’ by ‘a’.
abstract class defined API for attribute data
a simple class to control print indentation
Definition: vtkIndent.h:108
abstract base class for most VTK objects
Definition: vtkObject.h:161
record modification and/or execution time
Definition: vtkTimeStamp.h:44
@ component
Definition: vtkX3D.h:175
@ name
Definition: vtkX3D.h:219
@ size
Definition: vtkX3D.h:253
int vtkTypeBool
Definition: vtkABI.h:64
vtkTypeUInt32 vtkMTimeType
Definition: vtkType.h:270
#define VTK_SIZEHINT(...)