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;
237 bool AddDataSetIndex(
int id,
unsigned int dataset_index);
245 bool AddDataSetIndices(
int id,
const std::vector<unsigned int>& dataset_indices);
253 bool AddDataSetIndexRange(
int id,
unsigned int index_start,
int count);
260 bool RemoveDataSetIndex(
int id,
unsigned int dataset_index);
270 bool RemoveAllDataSetIndices(
int id,
bool traverse_subtree =
true);
284 int FindFirstNodeWithName(
285 const char*
name,
int traversal_order = vtkDataAssembly::TraversalOrder::DepthFirst)
const;
291 std::vector<int> FindNodesWithName(
292 const char*
name,
int sort_order = vtkDataAssembly::TraversalOrder::DepthFirst)
const;
304 std::vector<int> GetChildNodes(
int parent,
bool traverse_subtree =
true,
305 int traversal_order = vtkDataAssembly::TraversalOrder::DepthFirst)
const;
313 int GetNumberOfChildren(
int parent)
const;
318 int GetChild(
int parent,
int index)
const;
323 int GetChildIndex(
int parent,
int child)
const;
329 int GetParent(
int id)
const;
335 bool HasAttribute(
int id,
const char*
name)
const;
342 void SetAttribute(
int id,
const char*
name,
const char*
value);
343 void SetAttribute(
int id,
const char*
name,
int value);
344 void SetAttribute(
int id,
const char*
name,
unsigned int value);
345 #if VTK_ID_TYPE_IMPL != VTK_INT
354 bool GetAttribute(
int id,
const char*
name,
const char*&
value)
const;
355 bool GetAttribute(
int id,
const char*
name,
int&
value)
const;
356 bool GetAttribute(
int id,
const char*
name,
unsigned int&
value)
const;
357 #if VTK_ID_TYPE_IMPL != VTK_INT
367 const char* GetAttributeOrDefault(
int id,
const char*
name,
const char* default_value)
const;
368 int GetAttributeOrDefault(
int id,
const char*
name,
int default_value)
const;
369 unsigned int GetAttributeOrDefault(
int id,
const char*
name,
unsigned int default_value)
const;
370 #if VTK_ID_TYPE_IMPL != VTK_INT
381 int traversal_order = vtkDataAssembly::TraversalOrder::DepthFirst)
const
383 this->Visit(0, visitor, traversal_order);
386 int traversal_order = vtkDataAssembly::TraversalOrder::DepthFirst)
const;
402 std::vector<unsigned int> GetDataSetIndices(
int id,
bool traverse_subtree =
true,
403 int traversal_order = vtkDataAssembly::TraversalOrder::DepthFirst)
const;
404 std::vector<unsigned int> GetDataSetIndices(
const std::vector<int>& ids,
405 bool traverse_subtree =
true,
406 int traversal_order = vtkDataAssembly::TraversalOrder::DepthFirst)
const;
418 std::vector<int> SelectNodes(
const std::vector<std::string>& path_queries,
419 int traversal_order = vtkDataAssembly::TraversalOrder::DepthFirst)
const;
426 bool RemapDataSetIndices(
427 const std::map<unsigned int, unsigned int>& mapping,
bool remove_unmapped);
435 void SubsetCopy(
vtkDataAssembly* other,
const std::vector<int>& selected_branches);
445 static bool IsNodeNameValid(
const char*
name);
458 static bool IsNodeNameReserved(
const char*
name);
469 std::unique_ptr<vtkInternals> Internals;
472 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.
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.