108 #ifndef vtkDataAssembly_h
109 #define vtkDataAssembly_h
111 #include "vtkCommonDataModelModule.h"
119 VTK_ABI_NAMESPACE_BEGIN
142 bool InitializeFromXML(
const char* xmlcontents);
177 int AddNode(
const char*
name,
int parent = 0);
186 std::vector<int> AddNodes(
const std::vector<std::string>& names,
int parent = 0);
192 int AddSubtree(
int parent,
vtkDataAssembly* other,
int otherParent = 0);
203 bool RemoveNode(
int id);
213 void SetNodeName(
int id,
const char*
name);
214 const char* GetNodeName(
int id)
const;
225 int GetFirstNodeByPath(
const char* path)
const;
235 int FindOrCreateNodeAtPath(
const char* path,
int parent = 0);
247 bool AddDataSetIndex(
int id,
unsigned int dataset_index);
255 bool AddDataSetIndices(
int id,
const std::vector<unsigned int>& dataset_indices);
263 bool AddDataSetIndexRange(
int id,
unsigned int index_start,
int count);
270 bool RemoveDataSetIndex(
int id,
unsigned int dataset_index);
280 bool RemoveAllDataSetIndices(
int id,
bool traverse_subtree =
true);
294 int FindFirstNodeWithName(
295 const char*
name,
int traversal_order = vtkDataAssembly::TraversalOrder::DepthFirst)
const;
301 std::vector<int> FindNodesWithName(
302 const char*
name,
int sort_order = vtkDataAssembly::TraversalOrder::DepthFirst)
const;
314 std::vector<int> GetChildNodes(
int parent,
bool traverse_subtree =
true,
315 int traversal_order = vtkDataAssembly::TraversalOrder::DepthFirst)
const;
323 int GetNumberOfChildren(
int parent)
const;
329 int GetChild(
int parent,
int index)
const;
335 int GetChild(
int parent,
const char*
name)
const;
341 int GetChildIndex(
int parent,
int child)
const;
347 int GetParent(
int id)
const;
353 bool HasAttribute(
int id,
const char*
name)
const;
360 void SetAttribute(
int id,
const char*
name,
const char*
value);
361 void SetAttribute(
int id,
const char*
name,
int value);
362 void SetAttribute(
int id,
const char*
name,
unsigned int value);
363 #if VTK_ID_TYPE_IMPL != VTK_INT
375 #if VTK_ID_TYPE_IMPL != VTK_INT
385 const char* GetAttributeOrDefault(
int id,
const char*
name,
const char* default_value)
const;
386 int GetAttributeOrDefault(
int id,
const char*
name,
int default_value)
const;
387 unsigned int GetAttributeOrDefault(
int id,
const char*
name,
unsigned int default_value)
const;
388 #if VTK_ID_TYPE_IMPL != VTK_INT
399 int traversal_order = vtkDataAssembly::TraversalOrder::DepthFirst)
const
401 this->Visit(0, visitor, traversal_order);
404 int traversal_order = vtkDataAssembly::TraversalOrder::DepthFirst)
const;
420 std::vector<unsigned int> GetDataSetIndices(
int id,
bool traverse_subtree =
true,
421 int traversal_order = vtkDataAssembly::TraversalOrder::DepthFirst)
const;
422 std::vector<unsigned int> GetDataSetIndices(
const std::vector<int>& ids,
423 bool traverse_subtree =
true,
424 int traversal_order = vtkDataAssembly::TraversalOrder::DepthFirst)
const;
436 std::vector<int> SelectNodes(
const std::vector<std::string>& path_queries,
437 int traversal_order = vtkDataAssembly::TraversalOrder::DepthFirst)
const;
444 bool RemapDataSetIndices(
445 const std::map<unsigned int, unsigned int>& mapping,
bool remove_unmapped);
453 void SubsetCopy(
vtkDataAssembly* other,
const std::vector<int>& selected_branches);
463 static bool IsNodeNameValid(
const char*
name);
480 static bool IsNodeNameReserved(
const char*
name);
491 std::unique_ptr<vtkInternals> Internals;
494 VTK_ABI_NAMESPACE_END
const char * GetRootNodeName() const
Get/Set root node name.
abstract base class for most VTK objects
void PrintSelf(ostream &os, vtkIndent indent) override
Methods invoked by print to print information about the object including superclasses.
visitor API for vtkDataAssembly
void Visit(vtkDataAssemblyVisitor *visitor, int traversal_order=vtkDataAssembly::TraversalOrder::DepthFirst) const
Visit each node in the assembly for processing.
VTKIOHDF_EXPORT bool GetAttribute(hid_t group, const char *attributeName, size_t numberOfElements, T *value)
Reads an attribute from the group passed to it.
a simple class to control print indentation
static int GetRootNode()
Returns the ID for the root node.
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...
void SetRootNodeName(const char *name)
Get/Set root node name.