mirror of
https://github.com/introlab/rtabmap.git
synced 2026-09-02 01:20:25 +08:00
git-svn-id: http://rtabmap.googlecode.com/svn/trunk/rtabmap@1341 f169173b-cf89-36c8-b27e-44dbe73f0c83
58 lines
1.3 KiB
C++
58 lines
1.3 KiB
C++
/*
|
|
* 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;}
|
|
void setGridCellSize(float size) {Q_ASSERT(_gridCellSize>0.0f); _gridCellSize= size;}
|
|
|
|
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;
|
|
float _gridCellSize;
|
|
};
|
|
|
|
} /* namespace rtabmap */
|
|
#endif /* GRAPHVIEWER_H_ */
|