Files
rtabmap/guilib/src/GraphViewer.h
2014-06-09 20:47:35 +00:00

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_ */