New classes: Link and GraphViewer (TORO graph visualization and laser scans occupancy grid)

New parameter: RGBD/ToroIterations=100
Rtabmap: added getGraph() method to get TORO poses/link constraints
Fixed ICP correspondences ratio over 1
CloudViewer: added frustum culling and camera view up z lock in render(), moving camera using arrow keys, Menu options: Camera far plane clipping, background color
DatabaseViewer: added 3D Map view and Graph view
MainWindow: Moved main widget (loop closure image status) to a dock widget, added Graph view.


git-svn-id: http://rtabmap.googlecode.com/svn/trunk/rtabmap@1075 f169173b-cf89-36c8-b27e-44dbe73f0c83
This commit is contained in:
matlabbe
2014-02-11 23:04:22 +00:00
parent df3d694829
commit ea570abb8c
27 changed files with 2178 additions and 242 deletions
+55
View File
@@ -0,0 +1,55 @@
/*
* GraphViewer.h
*
* Created on: 2014-01-24
* Author: mathieu
*/
#ifndef GRAPHVIEWER_H_
#define GRAPHVIEWER_H_
#include <QtGui/QGraphicsView>
#include <QtCore/QMap>
#include <rtabmap/core/Link.h>
#include <map>
class QGraphicsItem;
class QGraphicsPixmapItem;
namespace rtabmap {
class NodeItem;
class LinkItem;
class GraphViewer : public QGraphicsView {
public:
GraphViewer(QWidget * parent = 0);
virtual ~GraphViewer();
void updateGraph(const std::map<int, Transform> & poses,
const std::multimap<int, Link> & constraints,
const std::map<int, std::vector<unsigned char> > & scans);
void clearGraph();
void setWorkingDirectory(const QString & path) {_workingDirectory = path;}
protected:
virtual void wheelEvent ( QWheelEvent * event );
virtual void contextMenuEvent(QContextMenuEvent * event);
private:
QString _workingDirectory;
QColor _nodeColor;
QColor _neighborColor;
QColor _loopClosureColor;
QGraphicsItem * _root;
QMap<int, NodeItem*> _nodeItems;
QMap<int, LinkItem*> _neighborLinkItems;
QMap<int, LinkItem*> _loopLinkItems;
float _nodeRadius;
float _linkWidth;
QGraphicsPixmapItem * _gridMap;
};
} /* namespace rtabmap */
#endif /* GRAPHVIEWER_H_ */