VTK
Public Types | Public Member Functions | Static Public Member Functions | Protected Member Functions | Protected Attributes | List of all members
vtkTree Class Reference

A rooted tree data structure. More...

#include <vtkTree.h>

Inheritance diagram for vtkTree:
[legend]
Collaboration diagram for vtkTree:
[legend]

Public Types

typedef vtkDirectedAcyclicGraph Superclass
 
- Public Types inherited from vtkDirectedAcyclicGraph
typedef vtkDirectedGraph Superclass
 
- Public Types inherited from vtkDirectedGraph
typedef vtkGraph Superclass
 

Public Member Functions

virtual const char * GetClassName ()
 
virtual int IsA (const char *type)
 
void PrintSelf (ostream &os, vtkIndent indent)
 
virtual int GetDataObjectType ()
 
vtkIdType GetChild (vtkIdType v, vtkIdType i)
 
vtkIdType GetParent (vtkIdType v)
 
vtkIdType GetLevel (vtkIdType v)
 
bool IsLeaf (vtkIdType vertex)
 
virtual void ReorderChildren (vtkIdType parent, vtkIdTypeArray *children)
 
virtual vtkIdType GetRoot ()
 
vtkIdType GetNumberOfChildren (vtkIdType v)
 
void GetChildren (vtkIdType v, vtkAdjacentVertexIterator *it)
 
vtkEdgeType GetParentEdge (vtkIdType v)
 
- Public Member Functions inherited from vtkDirectedAcyclicGraph
void PrintSelf (ostream &os, vtkIndent indent)
 
- Public Member Functions inherited from vtkDirectedGraph
void PrintSelf (ostream &os, vtkIndent indent)
 

Static Public Member Functions

static vtkTreeNew ()
 
static int IsTypeOf (const char *type)
 
static vtkTreeSafeDownCast (vtkObject *o)
 
static vtkTreeGetData (vtkInformation *info)
 
static vtkTreeGetData (vtkInformationVector *v, int i=0)
 
- Static Public Member Functions inherited from vtkDirectedAcyclicGraph
static vtkDirectedAcyclicGraphNew ()
 
static int IsTypeOf (const char *type)
 
static vtkDirectedAcyclicGraphSafeDownCast (vtkObject *o)
 
static vtkDirectedAcyclicGraphGetData (vtkInformation *info)
 
static vtkDirectedAcyclicGraphGetData (vtkInformationVector *v, int i=0)
 
- Static Public Member Functions inherited from vtkDirectedGraph
static vtkDirectedGraphNew ()
 
static int IsTypeOf (const char *type)
 
static vtkDirectedGraphSafeDownCast (vtkObject *o)
 
static vtkDirectedGraphGetData (vtkInformation *info)
 
static vtkDirectedGraphGetData (vtkInformationVector *v, int i=0)
 

Protected Member Functions

 vtkTree ()
 
 ~vtkTree ()
 
virtual bool IsStructureValid (vtkGraph *g)
 
- Protected Member Functions inherited from vtkDirectedAcyclicGraph
 vtkDirectedAcyclicGraph ()
 
 ~vtkDirectedAcyclicGraph ()
 
- Protected Member Functions inherited from vtkDirectedGraph
 vtkDirectedGraph ()
 
 ~vtkDirectedGraph ()
 

Protected Attributes

vtkIdType Root
 

Detailed Description

A rooted tree data structure.

vtkTree is a connected directed graph with no cycles. A tree is a type of directed graph, so works with all graph algorithms.

vtkTree is a read-only data structure. To construct a tree, create an instance of vtkMutableDirectedGraph. Add vertices and edges with AddVertex() and AddEdge(). You may alternately start by adding a single vertex as the root then call graph->AddChild(parent) which adds a new vertex and connects the parent to the child. The tree MUST have all edges in the proper direction, from parent to child. After building the tree, call tree->CheckedShallowCopy(graph) to copy the structure into a vtkTree. This method will return false if the graph is an invalid tree.

vtkTree provides some convenience methods for obtaining the parent and children of a vertex, for finding the root, and determining if a vertex is a leaf (a vertex with no children).

See also
vtkDirectedGraph vtkMutableDirectedGraph vtkGraph
Examples:
vtkTree (Examples)
Tests:
vtkTree (Tests)

Definition at line 58 of file vtkTree.h.

Member Typedef Documentation

Definition at line 62 of file vtkTree.h.

Constructor & Destructor Documentation

vtkTree::vtkTree ( )
protected
vtkTree::~vtkTree ( )
protected

Member Function Documentation

static vtkTree* vtkTree::New ( )
static
virtual const char* vtkTree::GetClassName ( )
virtual

Reimplemented from vtkDirectedAcyclicGraph.

static int vtkTree::IsTypeOf ( const char *  type)
static
virtual int vtkTree::IsA ( const char *  type)
virtual

Reimplemented from vtkDirectedAcyclicGraph.

static vtkTree* vtkTree::SafeDownCast ( vtkObject o)
static
void vtkTree::PrintSelf ( ostream &  os,
vtkIndent  indent 
)
virtual int vtkTree::GetDataObjectType ( )
inlinevirtual

Return what type of dataset this is.

Reimplemented from vtkDirectedAcyclicGraph.

Definition at line 66 of file vtkTree.h.

virtual vtkIdType vtkTree::GetRoot ( )
virtual

Get the root vertex of the tree.

vtkIdType vtkTree::GetNumberOfChildren ( vtkIdType  v)
inline

Get the number of children of a vertex.

Definition at line 75 of file vtkTree.h.

vtkIdType vtkTree::GetChild ( vtkIdType  v,
vtkIdType  i 
)

Get the i-th child of a parent vertex.

void vtkTree::GetChildren ( vtkIdType  v,
vtkAdjacentVertexIterator it 
)
inline

Get the child vertices of a vertex. This is a convenience method that functions exactly like GetAdjacentVertices.

Definition at line 85 of file vtkTree.h.

vtkIdType vtkTree::GetParent ( vtkIdType  v)

Get the parent of a vertex.

vtkEdgeType vtkTree::GetParentEdge ( vtkIdType  v)

Get the edge connecting the vertex to its parent.

vtkIdType vtkTree::GetLevel ( vtkIdType  v)

Get the level of the vertex in the tree. The root vertex has level 0. Returns -1 if the vertex id is < 0 or greater than the number of vertices in the tree.

bool vtkTree::IsLeaf ( vtkIdType  vertex)

Return whether the vertex is a leaf (i.e. it has no children).

static vtkTree* vtkTree::GetData ( vtkInformation info)
static

Retrieve a graph from an information vector.

static vtkTree* vtkTree::GetData ( vtkInformationVector v,
int  i = 0 
)
static

Retrieve a graph from an information vector.

virtual void vtkTree::ReorderChildren ( vtkIdType  parent,
vtkIdTypeArray children 
)
virtual

Reorder the children of a parent vertex. The children array must contain all the children of parent, just in a different order. This does not change the topology of the tree.

virtual bool vtkTree::IsStructureValid ( vtkGraph *  g)
protectedvirtual

Check the storage, and accept it if it is a valid tree.

Reimplemented from vtkDirectedAcyclicGraph.

Member Data Documentation

vtkIdType vtkTree::Root
protected

The root of the tree.

Definition at line 128 of file vtkTree.h.


The documentation for this class was generated from the following file: