VTK  9.7.1
vtkConduitArrayUtilities.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
16 #ifndef vtkConduitArrayUtilities_h
17 #define vtkConduitArrayUtilities_h
18 
19 #include "vtkIOCatalystConduitModule.h" // for exports
20 #include "vtkObject.h"
21 #include "vtkSmartPointer.h" // for vtkSmartPointer
22 
23 #include "conduit.h" // for conduit_node
24 
25 #include <string> // for std::string
26 
27 VTK_ABI_NAMESPACE_BEGIN
28 class vtkCellArray;
29 class vtkDataArray;
30 
31 class VTKIOCATALYSTCONDUIT_EXPORT vtkConduitArrayUtilities : public vtkObject
32 {
33 public:
34  static vtkConduitArrayUtilities* New();
36  void PrintSelf(ostream& os, vtkIndent indent) override;
38 
46  static bool IsDevicePointer(const void* p, int8_t& id, bool& working);
48 
50 
53  static vtkSmartPointer<vtkDataArray> MCArrayToVTKArray(const conduit_node* mcarray);
54  static vtkSmartPointer<vtkDataArray> MCArrayToVTKArray(
55  const conduit_node* mcarray, const std::string& arrayname);
57 
64  static vtkSmartPointer<vtkCellArray> MCArrayToVTKCellArray(
65  vtkIdType numberOfPoints, int cellType, vtkIdType cellSize, const conduit_node* mcarray);
66 
71  static vtkSmartPointer<vtkDataArray> SetNumberOfComponents(
72  vtkDataArray* array, int num_components);
73 
77  static vtkSmartPointer<vtkCellArray> O2MRelationToVTKCellArray(
78  vtkIdType numberOfPoints, const conduit_node* o2mrelation);
79 
80 protected:
82  ~vtkConduitArrayUtilities() override;
83 
84  static bool IsDevicePointer(const void* p, int8_t& id);
85  VTK_DEPRECATED_IN_9_6_0("Use MCArrayToVTKArray.")
86  static vtkSmartPointer<vtkDataArray> MCArrayToVTKArrayImpl(const conduit_node* mcarray)
87  {
88  return MCArrayToVTKArray(mcarray);
89  }
90  static vtkSmartPointer<vtkDataArray> MCArrayToVTKAOSArray(const conduit_node* mcarray);
91  static vtkSmartPointer<vtkDataArray> MCArrayToVTKSOAArray(const conduit_node* mcarray);
92  static vtkSmartPointer<vtkDataArray> MCArrayToVTKStridedArray(const conduit_node* mcarray);
93  VTK_DEPRECATED_IN_9_6_0("Use the overload without force_signed parameter.")
94  static vtkSmartPointer<vtkDataArray> MCArrayToVTKArrayImpl(
95  const conduit_node* mcarray, bool vtkNotUsed(force_signed))
96  {
97  return MCArrayToVTKArray(mcarray);
98  }
99  VTK_DEPRECATED_IN_9_6_0("Use the overload without force_signed parameter.")
100  static vtkSmartPointer<vtkDataArray> MCArrayToVTKAOSArray(
101  const conduit_node* mcarray, bool vtkNotUsed(force_signed))
102  {
103  return MCArrayToVTKAOSArray(mcarray);
104  }
105  VTK_DEPRECATED_IN_9_6_0("Use the overload without force_signed parameter.")
106  static vtkSmartPointer<vtkDataArray> MCArrayToVTKSOAArray(
107  const conduit_node* mcarray, bool vtkNotUsed(force_signed))
108  {
109  return MCArrayToVTKSOAArray(mcarray);
110  }
111  VTK_DEPRECATED_IN_9_6_0("Use the overload without force_signed parameter.")
112  static vtkSmartPointer<vtkDataArray> MCArrayToVTKStridedArray(
113  const conduit_node* mcarray, bool vtkNotUsed(force_signed))
114  {
115  return MCArrayToVTKStridedArray(mcarray);
116  }
117 
118 private:
120  void operator=(const vtkConduitArrayUtilities&) = delete;
121 };
122 
123 VTK_ABI_NAMESPACE_END
124 
125 #endif
abstract base class for most VTK objects
Definition: vtkObject.h:52
void PrintSelf(ostream &os, vtkIndent indent) override
Methods invoked by print to print information about the object including superclasses.
struct conduit_node_impl conduit_node
int vtkIdType
Definition: vtkType.h:363
#define VTK_DEPRECATED_IN_9_6_0(reason)
a simple class to control print indentation
Definition: vtkIndent.h:28
abstract superclass for arrays of numeric data
Definition: vtkDataArray.h:44
helper to convert Conduit arrays to VTK arrays.
object to represent cell connectivity
Definition: vtkCellArray.h:177
static vtkObject * New()
Create an object with Debug turned off, modified time initialized to zero, and reference counting on...