VTK  9.3.0
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:
37  void PrintSelf(ostream& os, vtkIndent indent) override;
38 
43  static const char* HierarchyName() { return "Hierarchy"; }
44 
51  const char* name, vtkCompositeDataSet* cd);
52 
67  static bool GenerateHierarchy(vtkCompositeDataSet* input, vtkDataAssembly* hierarchy,
68  vtkPartitionedDataSetCollection* output = nullptr);
69 
83 
96  static std::vector<unsigned int> GetSelectedCompositeIds(
97  const std::vector<std::string>& selectors, vtkDataAssembly* hierarchyOrAssembly,
98  vtkPartitionedDataSetCollection* data = nullptr, bool leaf_nodes_only = false);
99 
101 
109  static std::string GetSelectorForCompositeId(unsigned int id, vtkDataAssembly* hierarchy);
110  static std::vector<std::string> GetSelectorsForCompositeIds(
111  const std::vector<unsigned int>& ids, vtkDataAssembly* hierarchy);
112  static std::vector<std::string> GetSelectorsForCompositeIds(
113  const std::vector<unsigned int>& ids, vtkDataAssembly* hierarchy, vtkDataAssembly* assembly);
114  static std::vector<unsigned int> GetSelectorsCompositeIdsForCompositeIds(
115  const std::vector<unsigned int>& ids, vtkDataAssembly* hierarchy);
117 
118 protected:
121 
128 
129 private:
131  void operator=(const vtkDataAssemblyUtilities&) = delete;
132 };
133 
134 VTK_ABI_NAMESPACE_END
135 #endif
abstract superclass for composite (multi-block or AMR) datasets
collections of utilities for vtkDataAssembly
static vtkDataAssemblyUtilities * New()
static std::vector< std::string > GetSelectorsForCompositeIds(const std::vector< unsigned int > &ids, vtkDataAssembly *hierarchy, vtkDataAssembly *assembly)
For a vtkDataAssembly representing an hierarchy, returns the selector for the given composite id.
static bool GenerateHierarchyInternal(vtkPartitionedDataSetCollection *input, vtkDataAssembly *hierarchy, vtkPartitionedDataSetCollection *output)
static bool GenerateHierarchyInternal(vtkUniformGridAMR *input, vtkDataAssembly *hierarchy, vtkPartitionedDataSetCollection *output)
static bool GenerateHierarchy(vtkCompositeDataSet *input, vtkDataAssembly *hierarchy, vtkPartitionedDataSetCollection *output=nullptr)
Populates hierarchy with a representation of the hierarchy for the given composite dataset input.
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 std::string GetSelectorForCompositeId(unsigned int id, vtkDataAssembly *hierarchy)
For a vtkDataAssembly representing an hierarchy, returns the selector for the given composite id.
static bool GenerateHierarchyInternal(vtkMultiBlockDataSet *input, vtkDataAssembly *hierarchy, vtkPartitionedDataSetCollection *output)
~vtkDataAssemblyUtilities() override
static std::vector< unsigned int > GetSelectorsCompositeIdsForCompositeIds(const std::vector< unsigned int > &ids, vtkDataAssembly *hierarchy)
For a vtkDataAssembly representing an hierarchy, returns the selector for the given composite id.
static std::vector< unsigned int > GetSelectedCompositeIds(const std::vector< std::string > &selectors, vtkDataAssembly *hierarchyOrAssembly, vtkPartitionedDataSetCollection *data=nullptr, bool leaf_nodes_only=false)
Given a vtkDataAssembly and collection of selectors, returns a list of selected composite indices for...
static vtkSmartPointer< vtkCompositeDataSet > GenerateCompositeDataSetFromHierarchy(vtkPartitionedDataSetCollection *input, vtkDataAssembly *hierarchy)
Inverse of GenerateHierarchy.
static std::vector< std::string > GetSelectorsForCompositeIds(const std::vector< unsigned int > &ids, vtkDataAssembly *hierarchy)
For a vtkDataAssembly representing an hierarchy, returns the selector for the given composite id.
static vtkSmartPointer< vtkDataAssembly > GetDataAssembly(const char *name, vtkCompositeDataSet *cd)
Convenience method to get a named vtkDataAssembly from a vtkCompositeDataSet, if available.
hierarchical representation to use with vtkPartitionedDataSetCollection
general representation of visualization data
Definition: vtkDataObject.h:55
a simple class to control print indentation
Definition: vtkIndent.h:29
Composite dataset that organizes datasets into blocks.
abstract base class for most VTK objects
Definition: vtkObject.h:52
Composite dataset that groups datasets as a collection.
Hold a reference to a vtkObjectBase instance.
a concrete implementation of vtkCompositeDataSet
@ name
Definition: vtkX3D.h:219
@ data
Definition: vtkX3D.h:315
@ string
Definition: vtkX3D.h:490