MOAB: Mesh Oriented datABase  (version 5.3.1)
moab::TreeLayoutPrinter Class Reference
+ Inheritance diagram for moab::TreeLayoutPrinter:
+ Collaboration diagram for moab::TreeLayoutPrinter:

Public Member Functions

 TreeLayoutPrinter (std::ostream &stream, Interface *instance)
virtual ErrorCode visit (EntityHandle node, int depth, bool &descend)
 Visit a node in the tree during a traversal.
virtual ErrorCode leaf (EntityHandle node)
 Process a leaf node during tree traversal.

Private Attributes

Interfaceinstance
std::ostream & outputStream
std::vector< bool > path

Detailed Description

Definition at line 1325 of file OrientedBoxTreeTool.cpp.


Constructor & Destructor Documentation

moab::TreeLayoutPrinter::TreeLayoutPrinter ( std::ostream &  stream,
Interface instance 
)

Definition at line 1339 of file OrientedBoxTreeTool.cpp.

    : instance( interface ), outputStream( stream )
{
}

Member Function Documentation

Process a leaf node during tree traversal.

Implements moab::OrientedBoxTreeTool::Op.

Definition at line 1377 of file OrientedBoxTreeTool.cpp.

References MB_SUCCESS.

{
    return MB_SUCCESS;
}
ErrorCode moab::TreeLayoutPrinter::visit ( EntityHandle  node,
int  depth,
bool &  descend 
) [virtual]

Visit a node in the tree during a traversal.

This method is called for each node in the tree visited during a pre-order traversal.

Parameters:
nodeThe EntityHandle for the entity set for the tree node.
depthThe current depth in the tree.
descendOutput: if false, traversal will skip children of the current node, or if the current node is a leaf, the 'leaf' method will not be called.

Implements moab::OrientedBoxTreeTool::Op.

Definition at line 1344 of file OrientedBoxTreeTool.cpp.

References moab::Interface::id_from_handle(), instance, MB_SUCCESS, outputStream, and path.

{
    descend = true;

    if( (unsigned)depth > path.size() )
    {
        // assert(depth+1 == path.size); // preorder traversal
        path.push_back( true );
    }
    else
    {
        path.resize( depth );
        if( depth ) path.back() = false;
    }

    for( unsigned i = 0; i + 1 < path.size(); ++i )
    {
        if( path[i] )
            outputStream << "|   ";
        else
            outputStream << "    ";
    }
    if( depth )
    {
        if( path.back() )
            outputStream << "+---";
        else
            outputStream << "\\---";
    }
    outputStream << instance->id_from_handle( node ) << std::endl;
    return MB_SUCCESS;
}

Member Data Documentation

Definition at line 1334 of file OrientedBoxTreeTool.cpp.

Referenced by visit().

std::ostream& moab::TreeLayoutPrinter::outputStream [private]

Definition at line 1335 of file OrientedBoxTreeTool.cpp.

Referenced by visit().

std::vector< bool > moab::TreeLayoutPrinter::path [private]

Definition at line 1336 of file OrientedBoxTreeTool.cpp.

Referenced by visit().

List of all members.


The documentation for this class was generated from the following file:
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Defines