OSVR-Core
Classes | Functions
osvr_print_tree.cpp File Reference

Implementation. More...

#include <osvr/ClientKit/Context.h>
#include <osvr/Common/ApplyPathNodeVisitor.h>
#include <osvr/Common/ClientContext.h>
#include <osvr/Common/PathElementTools.h>
#include <osvr/Common/PathElementTypes.h>
#include <osvr/Common/PathNode.h>
#include <osvr/Common/PathTreeFull.h>
#include <osvr/Common/ResolveFullTree.h>
#include <osvr/Util/IndentingStream.h>
#include <osvr/Util/ProgramOptionsToggleFlags.h>
#include <osvr/Util/TreeTraversalVisitor.h>
#include <boost/noncopyable.hpp>
#include <boost/program_options.hpp>
#include <boost/variant.hpp>
#include <chrono>
#include <iomanip>
#include <iostream>
#include <string>
#include <thread>
#include <unordered_set>
#include <vector>

Classes

struct  Options
 
class  TreeNodePrinter
 This functor is applied at each node to get the (type-safe variant) value out of it (hence the numerous overloads of the function call operator - one for each node element type we want to treat differently.) More...
 

Functions

int main (int argc, char *argv[])
 

Detailed Description

Implementation.

Date
2015
Author
Sensics, Inc. http://sensics.com/osvr

Function Documentation

§ main()

int main ( int  argc,
char *  argv[] 
)

We only actually need the client open for long enough to get the path tree and clone it.

Get a non-const copy of the path tree.

Resolve all aliases, keeping track of those that don't fully resolve.

Before we print anything, we should flush the logger so it doesn't intermix with our output.

Now traverse for output - traverse every node in the path tree and apply the node visitor to get the type-safe variant data out of the nodes. The lambda will be called (and thus the TreeNodePrinter applied) at every PathNode in the tree.