Raw File
landmarks_dialog.h
#ifndef LANDMARKS_DIALOG_H
#define LANDMARKS_DIALOG_H

#include <QDialog>
#include "topo-blend.h"

namespace Ui {
class LandmarksDialog;
}

class LandmarksDialog : public QDialog
{
    Q_OBJECT
    
public:
    explicit LandmarksDialog(topoblend *topo_blender, QWidget *parent = 0);
    ~LandmarksDialog();

private:
	topoblend *tb;
	GraphCorresponder *gcorr;
	Ui::LandmarksDialog *ui;

public:
	Structure::Graph * sg();
	Structure::Graph * tg();
	bool sIsLandmark(int i);
	bool tIsLandmark(int i);
	Structure::Node* sNode(int i);
	Structure::Node* tNode(int i);

	void updatePointLandmarksList();

	void updateSList();
	void updateTList();
	void updateLandmarksTableWidget();
	void updateLandmarksTab();

	void updateCorrTableWidget();	
	void updateCorrTab();

	void updateAlignmentTab();

public slots:
	// Reload everything
	void reload();

	void updateAll();

	// Point Landmarks
	void addPointLandmark();
	void removePointLandmark();
	void visualizeCurrentPointLandmark();
	void visualizeAllPointLandmarks();

	// Part Landmarks
	void sClearSelections();
	void tClearSelections();
	void visualizeSelections();
	void visualizeLandmark();

	void addLandmark();
	void removeLandmark();

	void saveLandmarks();
	void loadLandmarks();
	void loadCorrespondenceFile();

	// Alignment
	void showAABB(int state);
	void normalize();
	void rotateGraph();
	void scaleGraph(int slider);
	void basicAlign();

	/// Correspondences
	void prepareMatrices();

	void setSpatialWeight(double w);
	void setStructuralWeight(double w);
	void setSizeWeight(double w);
	void setOrientationWeight(double w);
	void computeDisM();

	void setScoreThreshold(double tau);
	void computePartToPartCorrespondences();

	void alignAllNodes();
	void computeCorrespondences();
	void visualizeCorr(int row, int column);

	void visualizePart2PartDistance(int id);
};

#endif // LANDMARKS_DIALOG_H
back to top