00001 /********************************************************************** 00002 * 00003 * This source code is part of the Tree-based Network Optimizer (TORO) 00004 * 00005 * TORO Copyright (c) 2007 Giorgio Grisetti, Cyrill Stachniss, and 00006 * Wolfram Burgard 00007 * 00008 * TORO is licences under the Common Creative License, 00009 * Attribution-NonCommercial-ShareAlike 3.0 00010 * 00011 * You are free: 00012 * - to Share - to copy, distribute and transmit the work 00013 * - to Remix - to adapt the work 00014 * 00015 * Under the following conditions: 00016 * 00017 * - Attribution. You must attribute the work in the manner specified 00018 * by the author or licensor (but not in any way that suggests that 00019 * they endorse you or your use of the work). 00020 * 00021 * - Noncommercial. You may not use this work for commercial purposes. 00022 * 00023 * - Share Alike. If you alter, transform, or build upon this work, 00024 * you may distribute the resulting work only under the same or 00025 * similar license to this one. 00026 * 00027 * Any of the above conditions can be waived if you get permission 00028 * from the copyright holder. Nothing in this license impairs or 00029 * restricts the author's moral rights. 00030 * 00031 * TORO is distributed in the hope that it will be useful, 00032 * but WITHOUT ANY WARRANTY; without even the implied 00033 * warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR 00034 * PURPOSE. 00035 **********************************************************************/ 00036 00043 #ifndef _POSEGRAPH2_HH_ 00044 #define _POSEGRAPH2_HH_ 00045 00046 #include "posegraph.hh" 00047 #include "transformation2.hh" 00048 #include <iostream> 00049 #include <vector> 00050 00051 00052 00053 00056 struct TreePoseGraph2: public TreePoseGraph< Operations2D<double> >{ 00057 00058 typedef Operations2D<double>::PoseType Pose; 00059 typedef Operations2D<double>::RotationType Rotation; 00060 typedef Operations2D<double>::TranslationType Translation; 00061 typedef Operations2D<double>::TransformationType Transformation; 00062 typedef Operations2D<double>::CovarianceType CovarianceMatrix; 00063 typedef Operations2D<double>::InformationType InformationMatrix; 00064 00069 bool load( const char* filename, bool overrideCovariances=false); 00070 00072 bool loadEquivalences( const char* filename); 00073 00075 bool save( const char* filename); 00076 00078 bool saveGnuplot( const char* filename); 00079 00081 void printDepth( std::ostream& os ); 00082 00084 void printWidth( std::ostream& os ); 00085 00087 void printEdgesStat( std::ostream& os); 00088 00089 void initializeOnTree(); 00090 00092 virtual void revertEdgeInfo(Edge* e); 00093 00094 virtual void initializeFromParentEdge(Vertex* v); 00095 00099 virtual void collapseEdge(Edge* e); 00100 00102 int verboseLevel; 00103 }; 00104 00105 #endif 00106 00107 00108
1.5.0