#ifndef MESH_PROCESSING_H
#define MESH_PROCESSING_H

#include "my_mesh.h"
#include "curvature.h"
#include "mesh_viewer.h"
#include <vector>
#include <QObject>


class MeshProcessor : public QObject {
	Q_OBJECT

	Courbures *courbure = nullptr;
	MeshViewer &mesh_viewer;
	bool view_patches = false;

	void updateView() const;

public:
	MyMesh mesh;
	MyMesh patch;

	MeshProcessor(const QString &path, MeshViewer &mesh_viewer);
	~MeshProcessor();

public slots:
	void fillHolesDumb();
	void fillHolesImplicit();
	void smooth();
	void setPatchView(bool on);
	void click(QVector3D position);
};


#endif