Debugged ZigzagPersistence (having added heavier consistency checking)
* Added DEBUG_CONTAINERS option (uses std::__debug::* containers for chains
and in ZigzagPersistence)
* Added SizeStorage specialization for std::deque<T>
* ZigzagPersistence got a lot more consistency checking (in debug mode only,
which now crawls); as a result it's been debugged (running on non-trivial examples)
* examples/rips/rips-zigzag takes command-line options
* added ChainWrapper::clear()
* added Simplex::VertexDimensionComparison
* added PairwiseDistances class (for computing distances between points in a
container according to a distance functor)
#ifndef __DIAGRAM_H__
#define __DIAGRAM_H__
#include <QtGui>
#include <QObject>
#include <QColor>
#include <map>
#include <utilities/types.h>
#include <topology/persistence-diagram.h>
typedef PersistenceDiagram<> PDiagram;
typedef std::map<Dimension, PDiagram> Diagrams;
class DgmPoint;
class DgmViewer: public QGraphicsView
{
Q_OBJECT
public:
typedef std::vector<DgmPoint*> PointsVector;
DgmViewer(const PDiagram& dgm);
~DgmViewer();
void addDgmPoints();
private:
PointsVector points;
QGraphicsScene scene;
RealType min_x, min_y, max_x, max_y;
};
class DgmPoint: public PDPoint<>, public QGraphicsItem
{
public:
typedef PDPoint<> Parent;
DgmPoint(QGraphicsItem* parent = 0);
DgmPoint(const Parent& pt, qreal size, QGraphicsItem *parent = 0);
DgmPoint(RealType b, RealType d, qreal size, QGraphicsItem *parent = 0);
void paint(QPainter *painter, const QStyleOptionGraphicsItem *option, QWidget *widget = 0);
QRectF boundingRect() const;
qreal getX() const { return Parent::x(); }
qreal getY() const { return Parent::y(); }
int type() const { return QGraphicsItem::UserType + 1; }
private:
// size of rectangle containing ellipses
qreal ellipse_size;
};
#endif // __DIAGRAM_H__