VTK  9.3.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;
37 
39 
42  static vtkSmartPointer<vtkDataArray> MCArrayToVTKArray(const conduit_node* mcarray);
43  static vtkSmartPointer<vtkDataArray> MCArrayToVTKArray(
44  const conduit_node* mcarray, const std::string& arrayname);
46 
53  static vtkSmartPointer<vtkCellArray> MCArrayToVTKCellArray(
54  vtkIdType cellSize, const conduit_node* mcarray);
55 
60  static vtkSmartPointer<vtkDataArray> SetNumberOfComponents(
61  vtkDataArray* array, int num_components);
62 
66  static vtkSmartPointer<vtkCellArray> O2MRelationToVTKCellArray(
67  const conduit_node* o2mrelation, const std::string& leafname);
68 
69 protected:
71  ~vtkConduitArrayUtilities() override;
72 
73  static vtkSmartPointer<vtkDataArray> MCArrayToVTKArrayImpl(
74  const conduit_node* mcarray, bool force_signed);
75  static vtkSmartPointer<vtkDataArray> MCArrayToVTKAOSArray(
76  const conduit_node* mcarray, bool force_signed);
77  static vtkSmartPointer<vtkDataArray> MCArrayToVTKSOAArray(
78  const conduit_node* mcarray, bool force_signed);
79 
80 private:
82  void operator=(const vtkConduitArrayUtilities&) = delete;
83 };
84 VTK_ABI_NAMESPACE_END
85 
86 #endif
abstract base class for most VTK objects
Definition: vtkObject.h:51
void PrintSelf(ostream &os, vtkIndent indent) override
Methods invoked by print to print information about the object including superclasses.
int vtkIdType
Definition: vtkType.h:315
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:175
static vtkObject * New()
Create an object with Debug turned off, modified time initialized to zero, and reference counting on...