test.cxx
Go to the documentation of this file.00001 /* ======================================================================== 00002 * Copyright (c) 2006, 00003 * Institute for Computer Graphics and Vision 00004 * Graz University of Technology 00005 * All rights reserved. 00006 * 00007 * Redistribution and use in source and binary forms, with or without 00008 * modification, are permitted provided that the following conditions are 00009 * met: 00010 * 00011 * Redistributions of source code must retain the above copyright notice, 00012 * this list of conditions and the following disclaimer. 00013 * 00014 * Redistributions in binary form must reproduce the above copyright 00015 * notice, this list of conditions and the following disclaimer in the 00016 * documentation and/or other materials provided with the distribution. 00017 * 00018 * Neither the name of the Graz University of Technology nor the names of 00019 * its contributors may be used to endorse or promote products derived from 00020 * this software without specific prior written permission. 00021 * 00022 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS 00023 * IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED 00024 * TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A 00025 * PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER 00026 * OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, 00027 * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, 00028 * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR 00029 * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF 00030 * LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING 00031 * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS 00032 * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 00033 * ======================================================================== 00034 * PROJECT: OpenTracker 00035 * ======================================================================== */ 00043 /* ======================================================================= */ 00044 00045 #include <OpenTracker.h> 00046 00047 #include <iostream> 00048 00049 using namespace std; 00050 00051 #include <common/CallbackModule.h> 00052 #include <misc/xml/XMLWriter.h> 00053 00054 using namespace ot; 00055 00056 CallbackFunction *testCB; 00057 00058 00064 int main(int argc, char **argv) 00065 { 00066 if( argc != 2 ) 00067 { 00068 cout << "Usage : " << argv[0] << " configfile" << endl; 00069 return 1; 00070 } 00071 00072 cout << "OpenTracker Timing Test program ...\n"; 00073 00074 // important parts of the system 00075 // get a context, the default modules and factories are 00076 // added allready. 00077 Context context( 1 ); 00078 // initializeContext( context ); 00079 00080 cout << "Context established." << endl; 00081 00082 CallbackModule * cbModule = (CallbackModule *)context.getModule("CallbackConfig"); 00083 00084 // parse the configuration file, builds the tracker tree 00085 context.parseConfiguration( argv[1] ); 00086 cbModule->setCallback( "TIMER", testCB ); 00087 00088 cout << "Parsing complete." << endl << endl << "Press return to start mainloop !" << endl; 00089 char foo; 00090 cin >> foo; 00091 00092 XMLWriter writer( context ); 00093 writer.write( "output.xml" ); 00094 context.run(); 00095 return 0; 00096 } 00097 00098 void testCB( Node & node, Event & event, void * data ){ 00099 double diff = (OSUtils::currentTime() - event.time ) / 1000; 00100 cout << node.getName() << " time diff " << diff << endl; 00101 } 00102 00103 00104 /* 00105 * ------------------------------------------------------------ 00106 * End of test.cxx 00107 * ------------------------------------------------------------ 00108 * Automatic Emacs configuration follows. 00109 * Local Variables: 00110 * mode:c++ 00111 * c-basic-offset: 4 00112 * eval: (c-set-offset 'substatement-open 0) 00113 * eval: (c-set-offset 'case-label '+) 00114 * eval: (c-set-offset 'statement 'c-lineup-runin-statements) 00115 * eval: (setq indent-tabs-mode nil) 00116 * End: 00117 * ------------------------------------------------------------ 00118 */