VTK  9.6.20260127
vtkAbstractCellLinks.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
18
19#ifndef vtkAbstractCellLinks_h
20#define vtkAbstractCellLinks_h
21
22#include "vtkCommonDataModelModule.h" // For export macro
23#include "vtkObject.h"
24#include "vtkWrappingHints.h" // For VTK_MARSHALAUTO
25
26VTK_ABI_NAMESPACE_BEGIN
27class vtkDataSet;
28class vtkCellArray;
29class vtkIdList;
30
31class VTKCOMMONDATAMODEL_EXPORT VTK_MARSHALAUTO vtkAbstractCellLinks : public vtkObject
32{
33public:
35
39 void PrintSelf(ostream& os, vtkIndent indent) override;
41
43
46 virtual void SetDataSet(vtkDataSet*);
47 vtkGetObjectMacro(DataSet, vtkDataSet);
49
53 virtual void BuildLinks() = 0;
54
58 virtual void Initialize() = 0;
59
63 virtual void Squeeze() = 0;
64
68 virtual void Reset() = 0;
69
78 virtual unsigned long GetActualMemorySize() = 0;
79
85 virtual void DeepCopy(vtkAbstractCellLinks* src) = 0;
86
92 virtual void ShallowCopy(vtkAbstractCellLinks* src) = 0;
93
94 // Enums for cell links type. Note that the specialized type is
95 // set when users do not use ComputeType() and roll their own type.
105
117 static int ComputeType(vtkIdType maxPtId, vtkIdType maxCellId, vtkCellArray* ca);
118 static int ComputeType(vtkIdType maxPtId, vtkIdType maxCellId, vtkIdType connectivitySize);
119
123 vtkGetMacro(Type, int);
124
137
139
146 virtual void SelectCells(vtkIdType minMaxDegree[2], unsigned char* cellSelection) = 0;
148
150
153 vtkGetMacro(BuildTime, vtkMTimeType);
155
157
160 bool UsesGarbageCollector() const override { return true; }
162protected:
165
167 int Type; // derived classes set this instance variable when constructed
168
169 vtkTimeStamp BuildTime; // time at which links were built
170
172
173private:
175 void operator=(const vtkAbstractCellLinks&) = delete;
176};
177
178VTK_ABI_NAMESPACE_END
179#endif
object to represent cell connectivity
abstract class to specify dataset behavior
Definition vtkDataSet.h:166
list of point or cell ids
Definition vtkIdList.h:133
a simple class to control print indentation
Definition vtkIndent.h:108
friend class vtkGarbageCollector
Some classes need to clear the reference counts manually due to the way they work.
record modification and/or execution time
int vtkIdType
Definition vtkType.h:354
vtkTypeUInt32 vtkMTimeType
Definition vtkType.h:309
#define VTK_MARSHALAUTO