120 #ifndef vtkDataAssembly_h
121 #define vtkDataAssembly_h
123 #include "vtkCommonDataModelModule.h"
153 bool InitializeFromXML(
const char* xmlcontents);
174 const char*
GetRootNodeName()
const {
return this->GetNodeName(this->GetRootNode()); }
185 int AddNode(
const char*
name,
int parent = 0);
194 std::vector<int> AddNodes(
const std::vector<std::string>& names,
int parent = 0);
200 int AddSubtree(
int parent,
vtkDataAssembly* other,
int otherParent = 0);
211 bool RemoveNode(
int id);
221 void SetNodeName(
int id,
const char*
name);
222 const char* GetNodeName(
int id)
const;
233 int GetFirstNodeByPath(
const char* path)
const;
245 bool AddDataSetIndex(
int id,
unsigned int dataset_index);
253 bool AddDataSetIndices(
int id,
const std::vector<unsigned int>& dataset_indices);
261 bool AddDataSetIndexRange(
int id,
unsigned int index_start,
int count);
268 bool RemoveDataSetIndex(
int id,
unsigned int dataset_index);
278 bool RemoveAllDataSetIndices(
int id,
bool traverse_subtree =
true);
292 int FindFirstNodeWithName(
293 const char*
name,
int traversal_order = vtkDataAssembly::TraversalOrder::DepthFirst)
const;
299 std::vector<int> FindNodesWithName(
300 const char*
name,
int sort_order = vtkDataAssembly::TraversalOrder::DepthFirst)
const;
312 std::vector<int> GetChildNodes(
int parent,
bool traverse_subtree =
true,
313 int traversal_order = vtkDataAssembly::TraversalOrder::DepthFirst)
const;
321 int GetNumberOfChildren(
int parent)
const;
326 int GetChild(
int parent,
int index)
const;
331 int GetChildIndex(
int parent,
int child)
const;
337 int GetParent(
int id)
const;
343 bool HasAttribute(
int id,
const char*
name)
const;
350 void SetAttribute(
int id,
const char*
name,
const char*
value);
351 void SetAttribute(
int id,
const char*
name,
int value);
352 void SetAttribute(
int id,
const char*
name,
unsigned int value);
353 #if VTK_ID_TYPE_IMPL != VTK_INT
362 bool GetAttribute(
int id,
const char*
name,
const char*&
value)
const;
363 bool GetAttribute(
int id,
const char*
name,
int&
value)
const;
364 bool GetAttribute(
int id,
const char*
name,
unsigned int&
value)
const;
365 #if VTK_ID_TYPE_IMPL != VTK_INT
375 const char* GetAttributeOrDefault(
int id,
const char*
name,
const char* default_value)
const;
376 int GetAttributeOrDefault(
int id,
const char*
name,
int default_value)
const;
377 unsigned int GetAttributeOrDefault(
int id,
const char*
name,
unsigned int default_value)
const;
378 #if VTK_ID_TYPE_IMPL != VTK_INT
389 int traversal_order = vtkDataAssembly::TraversalOrder::DepthFirst)
const
391 this->Visit(0, visitor, traversal_order);
394 int traversal_order = vtkDataAssembly::TraversalOrder::DepthFirst)
const;
410 std::vector<unsigned int> GetDataSetIndices(
int id,
bool traverse_subtree =
true,
411 int traversal_order = vtkDataAssembly::TraversalOrder::DepthFirst)
const;
412 std::vector<unsigned int> GetDataSetIndices(
const std::vector<int>& ids,
413 bool traverse_subtree =
true,
414 int traversal_order = vtkDataAssembly::TraversalOrder::DepthFirst)
const;
426 std::vector<int> SelectNodes(
const std::vector<std::string>& path_queries,
427 int traversal_order = vtkDataAssembly::TraversalOrder::DepthFirst)
const;
434 bool RemapDataSetIndices(
435 const std::map<unsigned int, unsigned int>& mapping,
bool remove_unmapped);
443 void SubsetCopy(
vtkDataAssembly* other,
const std::vector<int>& selected_branches);
453 static bool IsNodeNameValid(
const char*
name);
466 static bool IsNodeNameReserved(
const char*
name);
477 std::unique_ptr<vtkInternals> Internals;
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.