VTK  9.2.6
vtkAbstractCellLinks.h
Go to the documentation of this file.
1 /*=========================================================================
2 
3  Program: Visualization Toolkit
4  Module: vtkAbstractCellLinks.h
5 
6  Copyright (c) Ken Martin, Will Schroeder, Bill Lorensen
7  All rights reserved.
8  See Copyright.txt or http://www.kitware.com/Copyright.htm for details.
9 
10  This software is distributed WITHOUT ANY WARRANTY; without even
11  the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
12  PURPOSE. See the above copyright notice for more information.
13 
14 =========================================================================*/
31 #ifndef vtkAbstractCellLinks_h
32 #define vtkAbstractCellLinks_h
33 
34 #include "vtkCommonDataModelModule.h" // For export macro
35 #include "vtkObject.h"
36 
37 class vtkDataSet;
38 class vtkCellArray;
39 class vtkIdList;
40 
41 class VTKCOMMONDATAMODEL_EXPORT vtkAbstractCellLinks : public vtkObject
42 {
43 public:
45 
49  void PrintSelf(ostream& os, vtkIndent indent) override;
51 
55  virtual void BuildLinks(vtkDataSet* data) = 0;
56 
60  virtual void Initialize() = 0;
61 
65  virtual void Squeeze() = 0;
66 
70  virtual void Reset() = 0;
71 
80  virtual unsigned long GetActualMemorySize() = 0;
81 
86  virtual void DeepCopy(vtkAbstractCellLinks* src) = 0;
87 
88  // Enums for cell links type. Note that the specialized type is
89  // set when users do not use ComputeType() and roll their own type.
91  {
92  LINKS_NOT_DEFINED = 0,
93  CELL_LINKS = 1,
94  STATIC_CELL_LINKS_USHORT = 2,
95  STATIC_CELL_LINKS_UINT = 3,
96  STATIC_CELL_LINKS_IDTYPE = 4,
97  STATIC_CELL_LINKS_SPECIALIZED = 5
98  };
99 
111  static int ComputeType(vtkIdType maxPtId, vtkIdType maxCellId, vtkCellArray* ca);
112 
116  int GetType() { return this->Type; }
117 
131 
139  virtual void SelectCells(vtkIdType minMaxDegree[2], unsigned char* cellSelection) = 0;
141 
143 
151  vtkSetMacro(SequentialProcessing, bool);
152  vtkGetMacro(SequentialProcessing, bool);
153  vtkBooleanMacro(SequentialProcessing, bool);
155 
156 protected:
158  ~vtkAbstractCellLinks() override;
159 
160  bool SequentialProcessing; // control whether to thread or not
161  int Type; // derived classes set this instance variable when constructed
162 
163 private:
165  void operator=(const vtkAbstractCellLinks&) = delete;
166 };
167 
168 #endif
abstract base class for most VTK objects
Definition: vtkObject.h:62
void PrintSelf(ostream &os, vtkIndent indent) override
Methods invoked by print to print information about the object including superclasses.
abstract class to specify dataset behavior
Definition: vtkDataSet.h:62
int vtkIdType
Definition: vtkType.h:332
a simple class to control print indentation
Definition: vtkIndent.h:39
list of point or cell ids
Definition: vtkIdList.h:33
object to represent cell connectivity
Definition: vtkCellArray.h:186