VTK  9.7.1
vtkDataAssemblyUtilities.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 vtkDataAssemblyUtilities_h
15 #define vtkDataAssemblyUtilities_h
16 
17 #include "vtkCommonDataModelModule.h" // for export macros
18 #include "vtkObject.h"
19 #include "vtkSmartPointer.h" // for vtkSmartPointer
20 
21 #include <string> // for std::string
22 #include <vector> // for std::vector
23 
24 VTK_ABI_NAMESPACE_BEGIN
26 class vtkDataAssembly;
27 class vtkDataObject;
30 class vtkUniformGridAMR;
31 
32 class VTKCOMMONDATAMODEL_EXPORT vtkDataAssemblyUtilities : public vtkObject
33 {
34 public:
35  static vtkDataAssemblyUtilities* New();
37  void PrintSelf(ostream& os, vtkIndent indent) override;
38 
43  static const char* HierarchyName() { return "Hierarchy"; }
44 
49  static const char* CategoryHierarchyName() { return "vtk_category"; };
50 
55  static const char* CategoryHierarchy() { return "hierarchy"; };
56 
62  static const char* CategoryTransformedHierarchy() { return "xformed_hierarchy"; };
63 
69  static vtkSmartPointer<vtkDataAssembly> GetDataAssembly(
70  const char* name, vtkCompositeDataSet* cd);
71 
92  static bool GenerateHierarchy(vtkCompositeDataSet* input, vtkDataAssembly* hierarchy,
93  vtkPartitionedDataSetCollection* output = nullptr);
94 
96 
115  static vtkSmartPointer<vtkCompositeDataSet> GenerateCompositeDataSetFromHierarchy(
117  static vtkSmartPointer<vtkCompositeDataSet> GenerateCompositeDataSetFromHierarchy(
120 
122 
131  static bool HasCompatibilityHierarchy(vtkPartitionedDataSetCollection* input);
132  static bool IsCompatibilityHierarchy(vtkDataAssembly* hierarchy);
134 
147  static std::vector<unsigned int> GetSelectedCompositeIds(
148  const std::vector<std::string>& selectors, vtkDataAssembly* hierarchyOrAssembly,
149  vtkPartitionedDataSetCollection* data = nullptr, bool leaf_nodes_only = false);
150 
152 
160  static std::string GetSelectorForCompositeId(unsigned int id, vtkDataAssembly* hierarchy);
161  static std::vector<std::string> GetSelectorsForCompositeIds(
162  const std::vector<unsigned int>& ids, vtkDataAssembly* hierarchy);
163  static std::vector<std::string> GetSelectorsForCompositeIds(
164  const std::vector<unsigned int>& ids, vtkDataAssembly* hierarchy, vtkDataAssembly* assembly);
165  static std::vector<unsigned int> GetSelectorsCompositeIdsForCompositeIds(
166  const std::vector<unsigned int>& ids, vtkDataAssembly* hierarchy);
168 
169 protected:
171  ~vtkDataAssemblyUtilities() override;
172 
173  static bool GenerateHierarchyInternal(
175  static bool GenerateHierarchyInternal(vtkMultiBlockDataSet* input, vtkDataAssembly* hierarchy,
177  static bool GenerateHierarchyInternal(vtkPartitionedDataSetCollection* input,
179 
180 private:
182  void operator=(const vtkDataAssemblyUtilities&) = delete;
183 };
184 
185 VTK_ABI_NAMESPACE_END
186 #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.
static const char * HierarchyName()
Returns the named used by VTK to correspond to a vtkDataAssembly associated with the structure of a c...
static const char * CategoryHierarchyName()
String used as the attribute name for data assembly nodes to identify data-assembly instances that re...
abstract superclass for composite (multi-block or AMR) datasets
a simple class to control print indentation
Definition: vtkIndent.h:28
Composite dataset that organizes datasets into blocks.
static const char * CategoryHierarchy()
Value used for CategoryHierarchyName() attribute on the generate data assembly when it represents the...
collections of utilities for vtkDataAssembly
hierarchical representation to use with vtkPartitionedDataSetCollection
static vtkObject * New()
Create an object with Debug turned off, modified time initialized to zero, and reference counting on...
static const char * CategoryTransformedHierarchy()
Value used for CategoryHierarchyName() attribute on the generated data assembly when the data assembl...
general representation of visualization data
Definition: vtkDataObject.h:55
Legacy, empty shell inheriting vtkAMRDataObject.
Composite dataset that groups datasets as a collection.