123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081 |
- #ifndef SETIDS_H
- #define SETIDS_H
- #include <QDialog>
- #include "sequenz.h"
- #include "model.h"
- namespace Ui {
- class SetIds;
- }
- class SetIdsModel; // Siehe unten
- class SetIdsView; // Siehe unten
- /*
- * Verwaltet die inteligente ID zuweisungs oberfläche
- */
- class SetIds : public QDialog
- {
- Q_OBJECT
- public:
- explicit SetIds(Sequenz *s, QWidget *parent = 0);
- ~SetIds();
- private slots:
- // Die Ids sollen nicht gespeichert werden
- void on_abbrechen_clicked();
- // Es sollen weitere Bilder geladen werden
- void on_weiter_clicked();
- // Die Ids sollen gespeichert werden
- void on_speichern_clicked();
- private:
- Ui::SetIds *ui; // Enthält alle in setids.ui spezifizierten Objekte
- Sequenz *s; // Enthält die aktuell annotierte Bildsequenz
- SetIdsModel *m; // Enthält das Model der SetIdViews
- QList<SetIdsView*> views; // Enthält alle aktuellen SetIdViews (für jedes Bild eine)
- };
- /*
- * Das Model der SetIdViews
- */
- class SetIdsModel : public Model
- {
- public:
- int id; // Die Id, welche vergeben werden soll
- QList<ObjectPolygon> list; // Eine Liste mit Objekten, denen die Id zugewiesen werden soll (eins pro bild)
- QList<bool> set; // Speichert, ob das Objekt aus der liste vom Nutzer angegeben wurde oder ob es automatisch erkannt wurde
- };
- /*
- * Verwaltet ein Bild der inteligenten ID zuweisungs Oberfläche
- */
- class SetIdsView : public QWidget
- {
- float xScaleFactor; // Ein Skallierungsfaktor in x Richtung
- float yScaleFactor; // Ein Skallierungsfaktor in y Richtung
- QPoint mousePos; // Die momentane Position der Maus
- SetIdsModel *m; // Das Model
- Sequenz *s; // Die aktuelle Bildsequenz
- int i; // Der Index des Bildes ausgehend vom ersten Bild
- Frame *f; // Das Bild, welches angezeigt wird
- // Transformiert einen Punkt von Bildkoordinaten nach Bildschirmkoordinaten
- QPoint translate(QPoint p);
- // Transformiert ein Polygon von Bildkoordinaten nach Bildschirmkoordinaten
- QPolygon translatePolygon(QPolygon p);
- // Transformiert einen Punkt von Bildschirmkoordinaten nach Bildkoordinaten
- QPoint inverseTranslate(QPoint p);
- // Zeichnet die View neu
- void paintEvent(QPaintEvent *e) override;
- public:
- explicit SetIdsView(Sequenz *s, SetIdsModel *m, int i, QWidget *parent = nullptr);
- ~SetIdsView();
- // Verarbeitet Maus Events und wählt das richtige Objekt aus
- void mouseReleaseEvent(QMouseEvent *e) override;
- // Übernimmt die neue Maus Position
- void mouseMoveEvent(QMouseEvent *e) override;
- };
- #endif // SETIDS_H
|